Blog

Write your standup from what you actually did

Standups go wrong when they are written from memory. Here is a simple format, and the commands that pull the truth from your own work.

Most standup updates are written in the five minutes before the meeting, from memory. That is why they drift. You remember the last thing you did, not the most important one. The bug you fixed on Monday disappears. The blocker you worked around quietly never gets mentioned.

The fix is not a better memory. It is to write the update from the record of what you actually did.

A format that works

The classic three questions are fine. What matters is how you answer them.

  • Done: outcomes, not activity. “Export now handles 50,000 rows” beats “worked on export”.
  • Next: the one or two things you will actually finish before the next standup.
  • Blocked: name what you are waiting for and who can unblock it. “Waiting on the staging key from Priya” gets solved. “Some infra issues” does not.

If it takes more than a minute to say out loud, it is too long.

Where the truth lives

Almost everything you did yesterday already left a trace somewhere. You just have to look.

Your commits

Git can show only your own work since yesterday:

git log --since=yesterday --author="$(git config user.email)" --oneline

If you commit under more than one email, for example work and personal, --author takes a pattern:

git log --since=yesterday --author="you@work.com\|you@home.com" --oneline

Working across several repos? Run it in each one:

for d in ~/code/*/; do
  echo "== $(basename "$d")"
  git -C "$d" log --since=yesterday --author="$(git config user.email)" --oneline
done

Your agent sessions

If you used Claude Code or Codex, the session history shows the work that never made it into a commit: the approach you tried and abandoned, the investigation that found the real cause. That is often the most useful part of an update.

Your notes and your calls

Decisions made on a call, and promises made to other people, belong in “Done” or “Next” too. They are the easiest things to forget, and the ones your team most needs to hear.

A template to copy

Done
- Export handles 50,000 rows; bigger exports run in the background
- Found why webhook retries failed on replay (signature check)

Next
- Fix the replay signature check and add a test

Blocked
- Staging key for the billing sandbox (Priya)

Where Stuart fits

Stuart drafts this for you. It reads your own commits, across every GitHub identity you use, plus your agent sessions and notes on your Mac, and drafts what you did, what is next and what is blocking you. You read it, fix anything it got wrong, and copy it into your standup in one click. The point is the same as the commands above: your update should come from what you did, not from what you happen to remember at 9:58.

Stuart, for MacAnswers from your own work, with a source for every sentence.
See how it works

More from the blog

Where was I? Getting back into code after an interruption

A meeting, a message, a weekend. Here is why coming back to code is slow, and five small habits that make it fast.

Recording or transcribing a call? Tell people first

A plain guide to consent for recorded and transcribed calls: one-party and all-party rules, calls across borders, and what to actually say.