§ Academy Use case
Kill the Standup: Async Status That Compiles Itself
A scheduled flow harvests what shipped and what is blocked from Slack and your tracker, then posts one digest. The information survives; the meeting does not.
The daily standup survives on a myth: that the meeting is where the information lives. Eight people, fifteen minutes, so that each can say out loud what most of them already posted in Slack, closed in the task tracker, or shipped in plain sight. Multiply it out: fifteen minutes times eight people times five days is ten person-hours a week, spent narrating work the tools already witnessed, at the one time of day when makers are freshest. Distributed teams pay a second tax on top: someone’s standup is always at someone else’s dinner.
And here is the quiet failure: the standup does not even keep the information. Whatever was said evaporates by lunch. Ask on Thursday what Maya was blocked on Monday and nobody remembers, even though everyone was in the room when she said it.
The information deserves to survive. The meeting does not. You can have that trade today, because everything a standup extracts already exists in your connected tools; it just needs compiling.
The shape of the day
Morning, async. Team members post a line or two in the standup channel on their own schedule, between coffee sips, no synchronization required. People in other time zones post when their morning happens. That part your team likely half-does already.
Then the capture runs. At a fixed time after the posting window, an agent reads the channel and compiles it into a durable record in your context layer: a meeting record for the day (per person: working on, blocked on), with clear blockers and follow-ups becoming tracked tasks, attributed, after a search to avoid duplicating tickets that already exist.
One digest posts back. What moved, who is blocked on what, in a scannable few lines. Here is the shape of one:
Standup · Tuesday
Shipped / moved
Maya: checkout flow behind the flag; PR up for review.
Jonas: closed 3 support escalations; Meridian ticket resolved.
Priya: pricing page copy finalized (decision logged Mon).
Blocked
Maya: waiting on API keys from vendor (day 2). → task, owner Deniz
Jonas: needs access to the billing sandbox. → task, owner Priya
Quiet
Sam: no post today (was: migration testing).
Anyone who wants the standup picture gets it in thirty seconds, asynchronously, including the manager in another time zone and the exec who would never attend a standup but reads every digest. Note the “quiet” line: not an accusation, just the record being honest about coverage.
Evening, the bookend. A companion flow posts the end-of-day wrap: what actually moved (tasks closed, decisions made) and what is still open going into tomorrow. Morning intentions, evening reality. The gap between the two, visible over weeks, tells you more about where delivery leaks than any retrospective, because it is measured rather than remembered.
The config, shown
The actual starter flow:
name: standup-capture
trigger: schedule
cron: "45 9 * * 1-5" # weekdays, 09:45, after the posting window
tools: [engine]
watch_conversation: true
confirm_first: false
prompt: |
The conversation above is this morning's standup. Capture it as
a meeting record: for each person, what they're working on and
anything they said they're blocked on. Turn clear blockers or
follow-ups into tasks (search first to avoid duplicates).
Attribute to the right people. If there was no standup in the
window, say so and stop.
Two companions round out the rhythm. The overdue nudge keeps the captured blockers from becoming a new graveyard:
name: overdue-nudge
trigger: schedule
cron: "0 9 * * 1-5"
tools: [engine]
prompt: |
Find overdue commitments. Pull the open tasks from the engine
and check each one's due date and owner. Post one short, kind
list: what, who, and how overdue. No guilt-tripping. If nothing
is overdue, say "nothing overdue" in one line and stop.
And a Friday weekly review closes the loop at the week level: decisions made, tasks closed versus still open, one thing to watch next week. A few tight sections, not an essay, compiled from the same memory the standups fed all week. Nobody writes a status report; the status was captured as it happened.
The tone instructions in these prompts (“one short, kind list”, “no guilt-tripping”) are not decoration. A nudge system the team experiences as surveillance gets routed around within a month. One that reads like a helpful colleague gets kept. The difference is almost entirely in the prompt.
What about the human part?
The honest objection to killing standups is that they were never really about status: they are the one moment the team sees each other. Keep that, deliberately. A weekly synchronous ritual spent on things that need humans in a room, decisions, demos, arguments, morale, is worth its slot precisely because the status recitation no longer squats in it. What the flow removes is the pretext. If your standup truly is beloved, run the flow anyway: it captures what the meeting loses, and within a month you will notice which one the team would rather keep.
The pattern generalizes past standups. Any recurring meeting whose real function is collecting status, weekly client updates, cross-team syncs, the Monday “alignment” call, is a compilation job wearing a calendar slot. Compile the status; keep meetings for what only meetings can do. Decisions made in the channel still get caught by the decision log, commitments by action-item capture, all on the same shared memory, so nothing depends on the ritual surviving.
Tuning it
| Knob | Default | Alternatives |
|---|---|---|
| Capture time | 09:45 local | after the last time zone’s morning |
| Posting window | same morning | rolling 24h for global teams |
| Blocker handling | tasks, attributed | digest-only, no tasks |
| Tracker cross-check | on if connected | chat only |
| Weekly review | Friday 16:00 | Monday lookback |
Teams on Linear or Jira should connect the tracker: the digest then distinguishes “said they’re working on it” from “the ticket actually moved.” That distinction is diplomatic gold: nobody is accused of anything, the record simply shows both, and the standing gap between narrative and movement surfaces coaching conversations that vague unease never did.
Failure modes, and the fixes
People stop posting. The flow tolerates stragglers but cannot compile silence. The fix is social, not technical: the digest must be visibly read, ideally by leadership reacting to it. Posts feed a digest people demonstrably use; posts into a void decay in three weeks.
The digest becomes wallpaper. If nobody would notice its absence, it is too long or too bland. Tighten to movement and blockers only; cut the “still working on X” lines that repeat for days. The quiet-list and the overdue nudge carry the accountability; the digest should carry the news.
Blocker tasks pile up unowned. A blocker without a resolver is a complaint, not a task. The capture prompt assigns the blocked person by default; route the resolution to whoever can actually unblock, which the review pass should fix in seconds.
Build this yourself
- A standup channel, with the one norm that matters: post your line in the window.
- The capture flow, cron matched to your team’s mornings.
- The tracker connection, so the digest reflects real movement.
- The overdue nudge and the Friday review, so captured blockers and weekly rhythm take care of themselves.
- A leadership habit of reading the digest, which is the entire adoption mechanism.
This is the kind of workflow we install during a transformation: tuned to your channels and time zones, wired to your tracker, running on an engine you own. It starts with a $1,500 assessment, which, among other things, will tell you exactly how many person-hours your standing meetings actually cost.