Morning Message
Generates Ben's daily good-morning message for the Reuters News Applications Desk Teams channel. The message follows a strict format with four or five lines. The message is them shared with Ben via Telegram. He will tidy it up and post it to Teams himself.
Message Format
☀️ Good morning from <LOCATION>. It is <DAY_OF_WEEK>, <MONTH> <DAY>. The news time is <TIME>.
📰 The top story on Chartbeat is "<HEADLINE>"
🗓️ <NEWS_PEGS>
🪿 <SCHEDULE>
🏃 <RUN_LINE> (only if Ben ran that morning)
Line-by-line rules
Greeting & location — Always starts with "Good morning from". The
location is usually one of:
the Thomson Reuters Building at 3 Times Square (the office)
Studio 4D in moneymaking Manhattan (home studio)
- A train, plane, or conference venue when traveling
Ask Ben where he is if not obvious. Include the day of week, full date
(e.g. "Wednesday, May 14"), and current time formatted as
H:MM a.m. or
H:MM p.m. (AP style — lowercase, periods, no leading zero).
Chartbeat top story — Fetch the #1 story using the chartbeat skill:
{{HOME}}/bin/chartbeat-top-stories.sh stories 1
Extract just the headline and wrap it in quotes with a hyperlink over the entire headline text.
News pegs — Mention any known news pegs for the day (economic data
releases, scheduled events, team member assignments like "Grant has a
forecast"). If none are known, use: I don't know of any pegs today.
Ask Ben if you are unsure.
Schedule — Lead with the gaggle (daily 2 p.m. Eastern meeting). Default is
We gaggle at 2 p.m. Eastern. Then append any other meetings Ben mentions.
If Ben cannot make gaggle, note that instead. This 2 p.m. default replaced
the old 11 a.m. default after Casey Miller moved to Los Angeles.
Run line (optional) — If Ben ran that morning, add a line describing
the distance and route. Check the runs log for today's date:
Use the Google Workspace MCP read_sheet_values on the Runs Log spreadsheet (1ybViNc3uJp9Be7Os5Cryu6E83VTxB0ZqWPRYYiQAMfA), passing user_google_email: "kip@palewi.re". Do not use gog.
Use natural phrasing like "I ran 10k over the Queensborough Bridge and back."
If no run is logged for today, omit this line entirely.
Workflow
- Ask Ben for anything you don't already know:
- Where is he today? (office, home, traveling)
- Any news pegs or special schedule items?
- Fetch the Chartbeat top story.
- Check the runs log for today.
- Check today's calendar for meetings:
vdirsyncer sync && khal list today
- Assemble the message and share it here in Telegram by default.
Style Notes
- Use AP style for times:
8:42 a.m., not 8:42 AM or 08:42
- Day of week and month are spelled out:
Wednesday, May 14
- The Chartbeat headline is wrapped in straight double quotes with a hyperlink over it
- Emoji go at the start of each line with a space after
- Keep the tone casual and direct — this is a team chat, not a memo
- The gaggle emoji is always 🪿 (goose)
- The default gaggle time is
2 p.m. Eastern, not 11 a.m.
- Preserve the format as separate visible lines. In Telegram rich text, insert literal newline characters between every emoji-led item; do not let the message collapse into one paragraph.
- If using rich HTML for the Chartbeat link, keep each emoji-led item separated by a literal newline, or wrap each item in its own block element such as
<p>...</p>.
- Do not add sign-offs or pleasantries beyond the format
Examples
Typical office day
☀️ Good morning from the Thomson Reuters Building at 3 Times Square. It is Wednesday, May 14. The news time is 8:35 a.m.
📰 The top story on Chartbeat is "Fed signals rate decision is approaching as inflation cools"
🗓️ Grant has a forecast this morning.
🪿 We gaggle at 2 p.m. Eastern. I have my regular meeting with Simon at 12.
Home day with a run
☀️ Good morning from Studio 4D in moneymaking Manhattan. It is Thursday, May 7. The news time is 9:02 a.m.
📰 The top story on Chartbeat is "US and Iran explore short-term deal to end fighting"
🗓️ I don't know of any pegs today.
🪿 We gaggle at 2 p.m. Eastern. I have a GitHub tech meeting at 1. I'll walk into the office shortly.
🏃 I ran 10k over the Queensborough Bridge and back.
Travel day
☀️ Good morning from Acela 2910, which left New York Penn Station this morning at 5:27 a.m. It is Tuesday, May 5. The news time is 7:58 a.m.
📰 The top story on Chartbeat is "Middle East truce in doubt as US and Iran fight for control of Strait of Hormuz"
🗓️ Grant has some forecasts this morning.
🪿 I'll be presenting at RESPONSIBLE BUSINESS USA 2026 this morning, so I can't make the 2 p.m. Eastern gaggle. You should go on without me.
Notes
- This skill only generates the message. Ben reviews, tweaks, and posts it
himself.
- In a direct Telegram chat with Ben, share the assembled morning message in
the chat by default after drafting it. Do not make him ask twice.
- The Chartbeat headline changes constantly — fetch it right before assembling.
- If the chartbeat script fails, ask Ben to supply the headline manually.
- News pegs and schedule details beyond the calendar often require Ben's input.
Don't guess — ask.
1---2name: morning-message3description: Writes Ben's daily Reuters News Apps morning message.4---56# Morning Message78Generates Ben's daily good-morning message for the Reuters News Applications Desk Teams channel. The message follows a strict format with four or five lines. The message is them shared with Ben via Telegram. He will tidy it up and post it to Teams himself.910## Message Format1112```13☀️ Good morning from <LOCATION>. It is <DAY_OF_WEEK>, <MONTH> <DAY>. The news time is <TIME>.14📰 The top story on Chartbeat is "<HEADLINE>"15🗓️ <NEWS_PEGS>16🪿 <SCHEDULE>17🏃 <RUN_LINE> (only if Ben ran that morning)18```1920### Line-by-line rules21221. **Greeting & location** — Always starts with "Good morning from". The23 location is usually one of:24 - `the Thomson Reuters Building at 3 Times Square` (the office)25 - `Studio 4D in moneymaking Manhattan` (home studio)26 - A train, plane, or conference venue when traveling27 Ask Ben where he is if not obvious. Include the day of week, full date28 (e.g. "Wednesday, May 14"), and current time formatted as `H:MM a.m.` or29 `H:MM p.m.` (AP style — lowercase, periods, no leading zero).30312. **Chartbeat top story** — Fetch the #1 story using the chartbeat skill:32 ```bash33 {{HOME}}/bin/chartbeat-top-stories.sh stories 134 ```35 Extract just the headline and wrap it in quotes with a hyperlink over the entire headline text.36373. **News pegs** — Mention any known news pegs for the day (economic data38 releases, scheduled events, team member assignments like "Grant has a39 forecast"). If none are known, use: `I don't know of any pegs today.`40 Ask Ben if you are unsure.41424. **Schedule** — Lead with the gaggle (daily 2 p.m. Eastern meeting). Default is43 `We gaggle at 2 p.m. Eastern.` Then append any other meetings Ben mentions.44 If Ben cannot make gaggle, note that instead. This 2 p.m. default replaced45 the old 11 a.m. default after Casey Miller moved to Los Angeles.46475. **Run line** (optional) — If Ben ran that morning, add a line describing48 the distance and route. Check the runs log for today's date:49 Use the Google Workspace MCP `read_sheet_values` on the Runs Log spreadsheet (`1ybViNc3uJp9Be7Os5Cryu6E83VTxB0ZqWPRYYiQAMfA`), passing `user_google_email: "kip@palewi.re"`. Do not use `gog`.50 Use natural phrasing like "I ran 10k over the Queensborough Bridge and back."51 If no run is logged for today, omit this line entirely.5253## Workflow54551. Ask Ben for anything you don't already know:56 - Where is he today? (office, home, traveling)57 - Any news pegs or special schedule items?582. Fetch the Chartbeat top story.593. Check the runs log for today.604. Check today's calendar for meetings:61 ```bash62 vdirsyncer sync && khal list today63 ```645. Assemble the message and share it here in Telegram by default.6566## Style Notes6768- Use AP style for times: `8:42 a.m.`, not `8:42 AM` or `08:42`69- Day of week and month are spelled out: `Wednesday, May 14`70- The Chartbeat headline is wrapped in straight double quotes with a hyperlink over it71- Emoji go at the start of each line with a space after72- Keep the tone casual and direct — this is a team chat, not a memo73- The gaggle emoji is always 🪿 (goose)74- The default gaggle time is `2 p.m. Eastern`, not 11 a.m.75- Preserve the format as separate visible lines. In Telegram rich text, insert literal newline characters between every emoji-led item; do not let the message collapse into one paragraph.76- If using rich HTML for the Chartbeat link, keep each emoji-led item separated by a literal newline, or wrap each item in its own block element such as `<p>...</p>`.77- Do not add sign-offs or pleasantries beyond the format7879## Examples8081### Typical office day8283```84☀️ Good morning from the Thomson Reuters Building at 3 Times Square. It is Wednesday, May 14. The news time is 8:35 a.m.85📰 The top story on Chartbeat is "Fed signals rate decision is approaching as inflation cools"86🗓️ Grant has a forecast this morning.87🪿 We gaggle at 2 p.m. Eastern. I have my regular meeting with Simon at 12.88```8990### Home day with a run9192```93☀️ Good morning from Studio 4D in moneymaking Manhattan. It is Thursday, May 7. The news time is 9:02 a.m.94📰 The top story on Chartbeat is "US and Iran explore short-term deal to end fighting"95🗓️ I don't know of any pegs today.96🪿 We gaggle at 2 p.m. Eastern. I have a GitHub tech meeting at 1. I'll walk into the office shortly.97🏃 I ran 10k over the Queensborough Bridge and back.98```99100### Travel day101102```103☀️ Good morning from Acela 2910, which left New York Penn Station this morning at 5:27 a.m. It is Tuesday, May 5. The news time is 7:58 a.m.104📰 The top story on Chartbeat is "Middle East truce in doubt as US and Iran fight for control of Strait of Hormuz"105🗓️ Grant has some forecasts this morning.106🪿 I'll be presenting at RESPONSIBLE BUSINESS USA 2026 this morning, so I can't make the 2 p.m. Eastern gaggle. You should go on without me.107```108109## Notes110111- This skill only **generates** the message. Ben reviews, tweaks, and posts it112 himself.113- In a direct Telegram chat with Ben, share the assembled morning message in114 the chat by default after drafting it. Do not make him ask twice.115- The Chartbeat headline changes constantly — fetch it right before assembling.116- If the chartbeat script fails, ask Ben to supply the headline manually.117- News pegs and schedule details beyond the calendar often require Ben's input.118 Don't guess — ask.