standup-gen

May 16, 2026 · View on GitHub

Each scenario shows: a starting state, the exact command, the markdown the helper produces, and what Claude can layer on top.


Scenario 1 — single repo, last business day

Setup: It's Monday morning. Friday you made three commits to the api repo.

$ git -C ~/work/api log --oneline --since=2026-05-15
3313ef1 feat: change 3
373dec1 feat: change 2
0070d08 feat: change 1

Command:

python3 scripts/standup.py --format md

Helper output (verbatim, captured from a hermetic test repo):

# Standup — 2026-05-16

## Yesterday
### api
- 2026-05-15 `3313ef1` feat: change 3
- 2026-05-15 `373dec1` feat: change 2
- 2026-05-15 `0070d08` feat: change 1

## Today (planned)
- TODO

## Blockers
- TODO

What Claude does next (running /standup-gen):

# Standup — 2026-05-16

## Yesterday
- Shipped three iterative changes to the api service (Friday)

## Today (planned)
- Open a PR for the in-flight work
- Pair with @reviewer on the rate-limiting design

## Blockers
- None

Claude can compress duplicate-feeling commits, lift in-flight work from your unpushed branch, and propose specific Today items.


Scenario 2 — multiple repos

You split work across two repos:

python3 scripts/standup.py --repos /work/api,/work/web --format md

The "Yesterday" section gets one sub-section per repo so it's clear which work happened where.


Scenario 3 — different date range

Coming back from a long weekend:

python3 scripts/standup.py --since 2026-05-11 --until none --format md

--until none removes the default "today 00:00" upper bound when you want everything up to right now.


Scenario 4 — different author (e.g. summarising a teammate's week)

python3 scripts/standup.py --author teammate@company.com --since 2026-05-11 --format json

Useful for a tech lead or manager prepping a 1:1.


The date-bound guarantee

The most important behaviour to know: by default, --until is set to today 00:00, exclusive. This is intentional — without it, "yesterday" would silently include today's in-progress work, which is confusing for the audience of a standup.

The test test_default_until_excludes_today enforces this. Use --until none only when you want to include today.