Site icon Phil Seamark on DAX

The morning routine: a single phrase that briefs you

A glowing scroll of light unfurling against a dark background.

Part of the VS Code + GitHub Copilot as a Personal Assistant series.

The first three minutes of the working day used to look like this. Open Outlook. Skim the inbox. Open the calendar. Note the day’s meetings. Open the diary. Read yesterday’s carry-forward. Open a few project files. Try to remember where I left off. Reach for the second coffee. Try again.

It now looks like this. Type a single phrase into a chat. Wait. Read the briefing.

What the routine does

The phrase is “good morning” (or some variant). Custom instructions in the workspace recognise the trigger and fire off a structured routine. The routine:

  1. Calls a small script that fetches authoritative time from an external API, so the briefing knows what time it actually is regardless of the machine’s clock.
  2. Reads !Calendar/today.md and !Calendar/upcoming.json for the day’s meetings, converted into my current timezone.
  3. Reads any new emails that landed overnight from !Emails/input/.
  4. Reads yesterday’s diary entry for carry-forward action items.
  5. Reads the active projects in !WorkDiary/projects/ and notes any blockers.
  6. Reads any new entries that arrived overnight on the Teams chat threads it monitors.
  7. Produces a single briefing in a fixed format: time and zone, today’s calendar, emails that need attention, carry-forward actions, projects with blockers, and a suggested focus for the morning.

Total elapsed time, including me reading the briefing carefully: about three minutes. Total typing on my end: two words.

What the briefing actually looks like

A typical one for a normal weekday:

Monday 26 May 2026, 07:34 NZST

Today’s calendar:
– 09:00 to 09:30, internal weekly with engineering
– 11:30 to 12:00, customer briefing prep, blocked
– 14:00 to 15:00, customer X review call (Teams link)

Emails since end of yesterday:
– One from customer Y about the open performance issue. Wants a 30 min call this week.
– One from a colleague about the upcoming conference talk. Needs the slide deck preview by Wednesday.

Carry-forward from Friday:
– Finish the FATCAT product area audit
– Send the customer X follow-up email
– Review the draft blog post in !Blogs/drafts/

Active projects with blockers:
– Project Z is waiting on a decision from team T. Last update was three days ago. Worth a nudge.

Suggested focus for the morning: customer X review call prep, then carry-forward actions in order of size.

The format is the same every day. The content is whatever the inputs actually contain. There is no editorial fluff. No “have a productive day”. Just the information.

Why the format matters

Three things make this work where similar attempts have failed for me in the past.

It is the same every day. Same sections, same order, same conventions. My eye knows where to look for what. I do not have to read the whole thing to find the calendar. I know it is in section two.

It is grounded in actual files. The briefing is not generated from the model’s general knowledge. It is generated by reading specific files in the workspace. If a meeting was on my calendar, it will be in the briefing. If an email arrived, it will be summarised. The accuracy is the accuracy of the underlying files.

It surfaces blockers without being asked. This is the section that surprises me most often. The routine notices that a project has not had a status update in days, and flags it. That nudge has saved me from going a full week without realising something I cared about was stuck.

The end-of-day bookend

For about six months I only had the morning routine. Then I added an end-of-day version. The two routines together close the loop.

The end-of-day routine:

Adding the EOD routine made the morning one work better. The morning routine relies on yesterday’s diary having a clean carry-forward section. The EOD routine guarantees that.

How to set this up

You do not need everything I have on day one. The minimum viable version is:

  1. A !Calendar/today.md file with today’s meetings. Manually maintained at first if you do not have a Power Automate feed yet.
  2. A daily diary file at !WorkDiary/daily/YYYY-MM-DD.md. Empty is fine. The routine will create one if it does not exist.
  3. A section in your custom instructions file that defines the routine. Something like “When the user says ‘good morning’, do the following: read these files, format them like this, produce a briefing in this shape.”

That is enough to get value from day one. Everything else (Power Automate feeds, project tracking, Teams chat capture) can be added later. The routine improves as the inputs improve.

Practical tips

The mental model

A regular morning involves running through your inputs by hand, in your head, while making coffee.

The routine version is a colleague who got in early, read everything, and is waiting at your desk with a single page.

The colleague is not smarter than you. They are just earlier and more thorough than you can be at 7am.


Next in the series: Subagents: send the intern to do the legwork.

The LinkedIn version of this tip went out on 20 May 2026.

0 0 votes
Article Rating
Exit mobile version