Use when the user asks to write a status update, weekly or monthly update, stakeholder update, project update, standup, status report, or QBR. Do NOT use for writing a PRD or a retro doc — those need different structures.
Turn messy notes into a precise stakeholder update that stands alone without a follow-up meeting.
Step 0 — Read first
Source
Path
What to extract
User's raw notes
whatever they pasted
What actually shipped, real numbers, real dates, real names
Project context
CLAUDE.md
North star metrics, OKRs, company terminology, audience norms
Cadence formats
references/cadences.md
Daily / monthly / QBR variants of the base format
Last update
any prior update they name
What was promised last week — the delta is the story
Metrics source
dashboard link or data they provide
Current values only. Never estimate a metric.
If the user gave you no numbers, the update stays qualitative and you say so. Do not fill the gap.
Constraints
Mandatory.
Total update under 200 words for the weekly default.
Never fabricate progress. If the notes are thin, the update is thin.
Never hide bad news. It goes in the TL;DR, never at the bottom.
Never report activity as progress. "Had 6 meetings about the migration" is activity. "Migrated 40% of users at 0.3% error rate" is progress.
Every risk gets a mitigation. An unmitigated risk is just anxiety.
Every blocker gets a named owner and a date.
Every decision request gets a recommendation with reasoning.
Active voice only. "Team shipped the migration," not "The migration was completed."
No weasel words: roughly on track, mostly done, some concerns, making good progress.
Every line passes the "so what?" test for this specific audience. If cutting it changes nothing, cut it.
Never invent metrics. If the user did not give you a number, write [NEED: X].
Existence check
Before writing, verify:
The work — what actually happened, in specifics.
The audience — who reads this and at what altitude.
The status — On Track, At Risk, or Blocked, and the evidence for it.
If two of three are missing, do not write. Ask for exactly those. An update written without knowing the audience gets the depth wrong in both directions — too technical for the board, too vague for the eng lead.
Step 1 — Gather
Ask:
What project or initiative is this for?
What happened this week? Paste notes, Slack threads, whatever you have — the messier the better.
Who is the audience — CEO, VP Eng, cross-functional, skip-level, board?
Is there bad news? If so, I will help frame it with a mitigation plan.
Never ask the user to organize their notes first. Extracting structure from mess is the job.
Step 2 — Calibrate to the audience
Audience
Focus on
Leave out
CEO / C-suite
Outcomes, metrics, strategic implications
Implementation details, technical decisions
VP / Director
Progress against milestones, risks, resource needs
Code-level detail, day-to-day tasks
Cross-functional
Dependencies, timeline impacts, what they must know
Default cadence is weekly. If the user says daily, monthly, quarterly, or QBR, switch to that format in references/cadences.md.
Output template
Exact fields, exact order. Omit only the sections marked optional.
**TL;DR** (2 sentences max)
[The whole update if they read nothing else. Most important thing first.
Bad news goes HERE, not below.]
**Status:** On Track | At Risk | Blocked
**Progress This Week**
- [What shipped or completed — never what was "worked on". Specific numbers.
Links to PRs, docs, demos, dashboards where provided. Milestones called out.]
**Next Week**
- [What's planned, with owner. Dependencies on other teams flagged.
Hard deadlines made visible.]
**Risks & Blockers**
- RISK: [description]. Likelihood: [H/M/L]. Impact: [what it costs].
Mitigation: [the plan].
- BLOCKER: [what's blocked]. Owner: [who unblocks it]. Need by: [date].
[If none: "None currently." Never invent risks to fill the section.]
**Decisions Needed** (omit if none)
[What must be decided, who decides, by when, enough context to decide
without a meeting, and a recommendation with reasoning.]
**Metrics** (omit if the user provided no data)
- [Metric]: [current] (target: [target]) — [trend] — [one-line interpretation]
Status definitions: On Track = shipping on schedule, no blockers. At Risk = potential issues needing visibility, with a mitigation plan. Blocked = cannot proceed without a specific decision or action from a specific person.
Example
Input notes: "auth migration, we're at 40% web rollout now up from 10%, error rate 0.3%, load tests done handles 5x peak. mobile has a session bug hitting ~12% of users, jake's on it thinks thursday. launch was march 7, probably march 14 now. waiting on maria for QA signoff before we go past 40%. need to know if we ship web only."
Output:
TL;DR: Auth migration is at risk. We found a session handling bug
that affects 12% of users on mobile. Fix is in progress — ETA Thursday.
Launch pushed from March 7 to March 14.
Status: AT RISK
Progress This Week:
- Shipped auth migration to 40% of web users (up from 10% last week)
- Error rate holding at 0.3% — within our 1% threshold
- Completed load testing: system handles 5x current peak traffic
Next Week:
- Fix mobile session bug (owner: Jake, ETA Thursday)
- Expand to 100% of web users if mobile fix validates (owner: Sarah)
- Begin mobile rollout at 10% by Friday (owner: Sarah)
Risks & Blockers:
- RISK: Mobile session bug could have deeper root cause than initial
diagnosis suggests. Likelihood: Medium. Impact: Additional 1-week
delay. Mitigation: Jake is pairing with platform team on diagnosis.
If not resolved by Thursday, we'll ship web-only and decouple mobile.
- BLOCKER: Need QA sign-off on load test results before expanding
beyond 40%. Owner: Maria. Need by: Tuesday EOD.
Decision Needed:
Should we launch web-only on March 10 if the mobile bug isn't fixed,
or hold everything for March 14? I recommend launching web-only —
88% of auth traffic is web, and decoupling de-risks the mobile fix.
Need a decision from @VP-Eng by Wednesday.
The same notes written badly: "This week we continued working on the authentication project. The team has been making good progress. We're also looking into some issues that came up during testing but nothing major. On track for launch, will keep you posted." No specifics. "Some issues" is hiding a 12% failure rate. "On track" is false. The reader learns nothing and finds out about the slip later, which is how PMs lose trust.
Metrics, done badly and well:
Bad:
- Users: going well
- Revenue: looking good
- NPS: stable
Good:
- WAU: 142K (target: 150K) — flat for 3 weeks. Investigating whether
the new onboarding friction is suppressing activation.
- Revenue: $1.2M MRR (+4% MoM) — on track for Q1 target of $1.3M
- NPS: 34 (down from 38 last month) — correlated with auth migration
complaints. Expect recovery after bug fixes ship.
Shortcuts Claude takes
What Claude might think
Why it's wrong
"The bad news reads harshly, I'll move it down"
Burying the lead is how stakeholders find out too late. TL;DR or nowhere.
"The notes are thin, I'll add reasonable-sounding progress"
Fabricated progress becomes a commitment the user has to defend. Keep it thin.
"I don't have the exact metric, I'll approximate"
An approximate metric gets quoted as real in the next meeting. Write [NEED:].
"'Working on the migration' counts as progress"
That is activity. Report what completed or explicitly say nothing shipped.
"A risk with no mitigation is still worth flagging"
It is anxiety with no action. Either name a mitigation or downgrade it.
"The decision is obvious, they'll pick right"
Always state the recommendation. Never make the reader redo your analysis.
"This is over 200 words but it's all useful"
Length means the audience calibration is wrong. Cut to the audience's altitude.
Exit checklist
Not complete until every box is checked. Any [NEED: X], [date], [owner], or [metric] placeholder left in the update is an automatic unchecked box — fill it or ask the user for it before sending.
Existence check passed, or missing inputs requested
TL;DR is 2 sentences and contains the most important thing
If there is bad news, it is in the TL;DR
Status is exactly one of On Track / At Risk / Blocked
Every Progress bullet is an outcome, not an activity
Every Next Week item has an owner where known
Every risk has likelihood, impact, and a mitigation
Every blocker has a named owner and a date
Any decision request includes a recommendation with reasoning
Every metric has current value, target, trend, and interpretation
Under 200 words for weekly (see references/cadences.md for other targets)
No weasel words, no passive voice, no fabricated items
The update stands alone — no follow-up meeting needed to understand it
No placeholders remain
Next
If the update surfaced a decision that needs a written case → offer to draft the one-pager.
If a risk became a real slip → recommend re-running this skill at monthly cadence to reset expectations with the wider group.
If the update is going to a public or semi-public channel and needs a different register → recommend /linkedin-post-writer only for genuinely external wins.
If the metrics section keeps coming back empty → the gap is instrumentation, not writing. Say so.
1---2name: status-update-writer3description: Use when the user asks to write a status update, weekly or monthly update, stakeholder update, project update, standup, status report, or QBR. Do NOT use for writing a PRD or a retro doc — those need different structures.4---56# Status Update Writer78Turn messy notes into a precise stakeholder update that stands alone without a follow-up meeting.910## Step 0 — Read first1112| Source | Path | What to extract |13|--------|------|-----------------|14| User's raw notes | whatever they pasted | What actually shipped, real numbers, real dates, real names |15| Project context | `CLAUDE.md` | North star metrics, OKRs, company terminology, audience norms |16| Cadence formats | `references/cadences.md` | Daily / monthly / QBR variants of the base format |17| Last update | any prior update they name | What was promised last week — the delta is the story |18| Metrics source | dashboard link or data they provide | Current values only. Never estimate a metric. |1920If the user gave you no numbers, the update stays qualitative and you say so. Do not fill the gap.2122## Constraints2324Mandatory.2526- Total update under 200 words for the weekly default.27- Never fabricate progress. If the notes are thin, the update is thin.28- Never hide bad news. It goes in the TL;DR, never at the bottom.29- Never report activity as progress. "Had 6 meetings about the migration" is activity. "Migrated 40% of users at 0.3% error rate" is progress.30- Every risk gets a mitigation. An unmitigated risk is just anxiety.31- Every blocker gets a named owner and a date.32- Every decision request gets a recommendation with reasoning.33- Active voice only. "Team shipped the migration," not "The migration was completed."34- No weasel words: roughly on track, mostly done, some concerns, making good progress.35- Every line passes the "so what?" test for this specific audience. If cutting it changes nothing, cut it.36- Never invent metrics. If the user did not give you a number, write `[NEED: X]`.3738## Existence check3940Before writing, verify:41421. **The work** — what actually happened, in specifics.432. **The audience** — who reads this and at what altitude.443. **The status** — On Track, At Risk, or Blocked, and the evidence for it.4546If two of three are missing, do not write. Ask for exactly those. An update written without knowing the audience gets the depth wrong in both directions — too technical for the board, too vague for the eng lead.4748## Step 1 — Gather4950Ask:511. What project or initiative is this for?522. What happened this week? Paste notes, Slack threads, whatever you have — the messier the better.533. Who is the audience — CEO, VP Eng, cross-functional, skip-level, board?544. Is there bad news? If so, I will help frame it with a mitigation plan.5556Never ask the user to organize their notes first. Extracting structure from mess is the job.5758## Step 2 — Calibrate to the audience5960| Audience | Focus on | Leave out |61|----------|----------|-----------|62| CEO / C-suite | Outcomes, metrics, strategic implications | Implementation details, technical decisions |63| VP / Director | Progress against milestones, risks, resource needs | Code-level detail, day-to-day tasks |64| Cross-functional | Dependencies, timeline impacts, what they must know | Internal team dynamics, tech debt |65| Engineering lead | Technical blockers, architecture decisions, velocity | Business context they already have |66| Skip-level | Team impact, growth, wins | Minutiae the direct manager handles |67| Board | Metrics, trajectory, market context | Everything operational |6869Default cadence is weekly. If the user says daily, monthly, quarterly, or QBR, switch to that format in `references/cadences.md`.7071## Output template7273Exact fields, exact order. Omit only the sections marked optional.7475```76**TL;DR** (2 sentences max)77[The whole update if they read nothing else. Most important thing first.78Bad news goes HERE, not below.]7980**Status:** On Track | At Risk | Blocked8182**Progress This Week**83- [What shipped or completed — never what was "worked on". Specific numbers.84 Links to PRs, docs, demos, dashboards where provided. Milestones called out.]8586**Next Week**87- [What's planned, with owner. Dependencies on other teams flagged.88 Hard deadlines made visible.]8990**Risks & Blockers**91- RISK: [description]. Likelihood: [H/M/L]. Impact: [what it costs].92 Mitigation: [the plan].93- BLOCKER: [what's blocked]. Owner: [who unblocks it]. Need by: [date].94[If none: "None currently." Never invent risks to fill the section.]9596**Decisions Needed** (omit if none)97[What must be decided, who decides, by when, enough context to decide98without a meeting, and a recommendation with reasoning.]99100**Metrics** (omit if the user provided no data)101- [Metric]: [current] (target: [target]) — [trend] — [one-line interpretation]102```103104Status definitions: **On Track** = shipping on schedule, no blockers. **At Risk** = potential issues needing visibility, with a mitigation plan. **Blocked** = cannot proceed without a specific decision or action from a specific person.105106## Example107108**Input notes:** "auth migration, we're at 40% web rollout now up from 10%, error rate 0.3%, load tests done handles 5x peak. mobile has a session bug hitting ~12% of users, jake's on it thinks thursday. launch was march 7, probably march 14 now. waiting on maria for QA signoff before we go past 40%. need to know if we ship web only."109110**Output:**111112```113TL;DR: Auth migration is at risk. We found a session handling bug114that affects 12% of users on mobile. Fix is in progress — ETA Thursday.115Launch pushed from March 7 to March 14.116117Status: AT RISK118119Progress This Week:120- Shipped auth migration to 40% of web users (up from 10% last week)121- Error rate holding at 0.3% — within our 1% threshold122- Completed load testing: system handles 5x current peak traffic123124Next Week:125- Fix mobile session bug (owner: Jake, ETA Thursday)126- Expand to 100% of web users if mobile fix validates (owner: Sarah)127- Begin mobile rollout at 10% by Friday (owner: Sarah)128129Risks & Blockers:130- RISK: Mobile session bug could have deeper root cause than initial131 diagnosis suggests. Likelihood: Medium. Impact: Additional 1-week132 delay. Mitigation: Jake is pairing with platform team on diagnosis.133 If not resolved by Thursday, we'll ship web-only and decouple mobile.134- BLOCKER: Need QA sign-off on load test results before expanding135 beyond 40%. Owner: Maria. Need by: Tuesday EOD.136137Decision Needed:138Should we launch web-only on March 10 if the mobile bug isn't fixed,139or hold everything for March 14? I recommend launching web-only —14088% of auth traffic is web, and decoupling de-risks the mobile fix.141Need a decision from @VP-Eng by Wednesday.142```143144The same notes written badly: *"This week we continued working on the authentication project. The team has been making good progress. We're also looking into some issues that came up during testing but nothing major. On track for launch, will keep you posted."* No specifics. "Some issues" is hiding a 12% failure rate. "On track" is false. The reader learns nothing and finds out about the slip later, which is how PMs lose trust.145146Metrics, done badly and well:147148```149Bad:150- Users: going well151- Revenue: looking good152- NPS: stable153154Good:155- WAU: 142K (target: 150K) — flat for 3 weeks. Investigating whether156 the new onboarding friction is suppressing activation.157- Revenue: $1.2M MRR (+4% MoM) — on track for Q1 target of $1.3M158- NPS: 34 (down from 38 last month) — correlated with auth migration159 complaints. Expect recovery after bug fixes ship.160```161162## Shortcuts Claude takes163164| What Claude might think | Why it's wrong |165|-------------------------|----------------|166| "The bad news reads harshly, I'll move it down" | Burying the lead is how stakeholders find out too late. TL;DR or nowhere. |167| "The notes are thin, I'll add reasonable-sounding progress" | Fabricated progress becomes a commitment the user has to defend. Keep it thin. |168| "I don't have the exact metric, I'll approximate" | An approximate metric gets quoted as real in the next meeting. Write `[NEED:]`. |169| "'Working on the migration' counts as progress" | That is activity. Report what completed or explicitly say nothing shipped. |170| "A risk with no mitigation is still worth flagging" | It is anxiety with no action. Either name a mitigation or downgrade it. |171| "The decision is obvious, they'll pick right" | Always state the recommendation. Never make the reader redo your analysis. |172| "This is over 200 words but it's all useful" | Length means the audience calibration is wrong. Cut to the audience's altitude. |173174## Exit checklist175176Not complete until every box is checked. Any `[NEED: X]`, `[date]`, `[owner]`, or `[metric]` placeholder left in the update is an automatic unchecked box — fill it or ask the user for it before sending.177178- [ ] Existence check passed, or missing inputs requested179- [ ] TL;DR is 2 sentences and contains the most important thing180- [ ] If there is bad news, it is in the TL;DR181- [ ] Status is exactly one of On Track / At Risk / Blocked182- [ ] Every Progress bullet is an outcome, not an activity183- [ ] Every Next Week item has an owner where known184- [ ] Every risk has likelihood, impact, and a mitigation185- [ ] Every blocker has a named owner and a date186- [ ] Any decision request includes a recommendation with reasoning187- [ ] Every metric has current value, target, trend, and interpretation188- [ ] Under 200 words for weekly (see references/cadences.md for other targets)189- [ ] No weasel words, no passive voice, no fabricated items190- [ ] The update stands alone — no follow-up meeting needed to understand it191- [ ] No placeholders remain192193## Next194195- If the update surfaced a decision that needs a written case → offer to draft the one-pager.196- If a risk became a real slip → recommend re-running this skill at monthly cadence to reset expectations with the wider group.197- If the update is going to a public or semi-public channel and needs a different register → recommend `/linkedin-post-writer` only for genuinely external wins.198- If the metrics section keeps coming back empty → the gap is instrumentation, not writing. Say so.
Run npx skillmds@latest add aakashg/status-update-writer in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Use when the user asks to write a status update, weekly or monthly update, stakeholder update, project update, standup, status report, or QBR. Do NOT use for writing a PRD or a retro doc — those need different structures. It is listed under Product & Planning on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
aakashg (@aakashg) published this skill. Their other Agent Skills are listed on their SkillMD profile.