Daily standups slip when people are traveling or juggling time zones. An async version works if it is structured, time-boxed, and easy to skim. Here’s a format that keeps signal high and noise low.

## Use the same window every day

Pick a 30–60 minute window when everyone can post. Late updates create follow-up questions that bleed into the day. If someone misses the window, they post later but start with `Late update:` so it’s obvious.

## Lead with a one-line headline

- Pattern: `Status — Headline`  
- Example: `Green — Shipped billing retries; adoption spike on Teams.`

## Answer three prompts, no extras

- **Done:** What shipped since the last update (max 2 bullets).  
- **Next:** What’s the single next outcome you’ll complete today.  
- **Blockers:** What’s in your way and who can unblock.

Example block you can paste into `/clr`:

```
Status — Green: Shipped billing retries; adoption spike on Teams.  
Done: Rolled retry jobs to 50%. Fixed webhook alerting noise.  
Next: Move retries to 100% and monitor error budget.  
Blockers: Need @Nina to approve new SLO threshold before 3 PM.
```

## Link to the source, don’t paste the source

Drop one link to the relevant doc, issue, or dashboard. Avoid screenshot dumps. If there’s nothing to link, say `Link: n/a`.

## React to close loops, not to chat

Default reactions keep threads tidy:

- 👀 Seen it.  
- ✅ Unblocked / done.  
- ❓ Need clarification (follow with one question).

## Escalate to live only when needed

Call for a huddle only when a blocker affects more than one person or a decision is ambiguous. Post the BLUF summary back into the thread so latecomers don’t have to watch a recording.

Run your async standup like this for a week and watch meetings shrink. The structure makes it easy to scan and gives you a log of decisions, blockers, and owners without extra ceremony.

Shorter Slack updates with Clear.
