WritingEveryday skill

Status Report Writer

Writes a clear weekly status update from a messy list of what happened, tuned for your boss or your team.

What it does

You did a week of work and now you have to explain it to someone who has eight other updates open. Writing it takes forty minutes because you keep rereading your own notes trying to work out what counts.

With this skill active, the assistant sorts your pile into what shipped, what is still moving and what is stuck, then does the part that makes the difference: it turns activity into outcomes. "Worked on the signup page" becomes "signup page is live, drop-off fell from 31% to 22%". It also sizes the update to whoever is reading it, since a manager needs to know what to expect next week and an executive needs one number and one thing they can unblock, from exactly the same facts.

Anything you are stuck on comes back written as a request with a name and a date attached, and nothing gets padded or quietly inflated.

You end up with a one-minute update in a named format, sized for its reader, with blockers written as specific asks.

When to reach for it

Use it for the update you write on a schedule: the weekly report to your manager, a team update, a project note to leadership, or a written standup.

Skip it when there is genuinely nothing to report - it will tell you to write the quiet week honestly rather than stretching three items into six, and you can do that in one line yourself. It also will not invent a metric you do not have.

What's inside

status-report-writer/
├── SKILL.md
└── references/
    ├── examples.md
    └── formats.md
SKILL.md
---
name: status-report-writer
description: Turns a messy pile of what happened into a status update sized for its reader - a manager, the team, or senior leadership - using a named format such as Progress/Plans/Problems or Done/Doing/Blocked. Converts activity into results, writes blockers as specific asks, and never inflates. Use for weekly updates, project updates, standups and leadership reports.
license: Apache-2.0
metadata:
  source: anthropics/skills
---

# Status Report Writer

You write the update that actually gets read. Your reader has eight of these open and forty seconds for yours, and they are looking for two things: is this on track, and does anything need me.

## Workflow

1. **Take the four inputs:** the raw pile, the reader, the period, and anything they are stuck on.
2. **Pick the format.** Four named ones below. Say which you picked.
3. **Sort the pile** into shipped, in flight, and stuck. Discard the rest.
4. **Convert activity into results.** This is where most of the value is added.
5. **Set the altitude** to match the reader. Same facts, different grain.
6. **Write blockers as asks:** what is stuck, what you need, from whom, by when.
7. **Lead with the most important item,** not the first one on the list.
8. **Cut to reading time.** Forty to sixty seconds, out loud.

```text
Status update checklist
[ ] Four inputs: raw pile, reader, period, blockers
[ ] Format chosen and named
[ ] Every line converted from activity to result
[ ] Altitude matches the reader - no task detail in a leadership update
[ ] Most important item is first, not chronologically first
[ ] Each blocker names the ask, the person, and the date
[ ] Anything that slipped is stated plainly with one line of cause
[ ] No invented numbers; missing metrics left out rather than guessed
[ ] Reads aloud in under 60 seconds
```

## Step 1: the four inputs

- **The raw pile.** Whatever they have: a scratch list, chat messages, commits, a calendar. Messy is expected.
- **The reader.** Manager, the team, or senior leadership. Ask if they do not say, because it changes everything below.
- **The period.** This week, this sprint, this month. Progress and problems look backwards; plans look forwards by the same span.
- **What they are stuck on.** People consistently under-report this, so ask directly rather than waiting for it to appear in the pile.

## Step 2: the four formats

Pick one, name it, and keep it stable week to week. Readers learn a format and then skim it, which is the whole point.

| Format | Shape | Use it when |
|---|---|---|
| Progress / Plans / Problems | Three sections: what happened, what is next, what is in the way | A recurring team or company update to people with some context, read in under a minute |
| Done / Doing / Blocked | Three lists of items | An individual's weekly update to a manager who tracks specific work |
| Leadership update | One-line status verdict, then results, risks, decisions needed | Senior readers who need to act or reassure, not to follow along |
| Standup note | Yesterday, today, blockers. Three lines | A daily written standup for a team already in context |

Progress/Plans/Problems is the workhorse for team updates: it forces a forward-looking section, which the other formats leave optional and people then skip.

If a workplace already has a house format, use theirs. A familiar shape beats a better one.

## Step 3: sorting the pile

Three buckets, and be ruthless with the fourth:

- **Shipped.** Finished, live, merged, sent, signed. Someone else can see it.
- **In flight.** Started, not finished. Needs a state and an expected finish.
- **Stuck.** Waiting on a person, a decision, a dependency, or an answer.
- **Discard.** Meetings attended, emails answered, routine maintenance, anything with no outcome attached. Attending a meeting is not progress.

## Step 4: activity into results

The single biggest improvement available. Activity says what you touched; a result says what is now true.

| Activity | Result |
|---|---|
| "Worked on the signup page" | "Signup page is live; drop-off fell from 31% to 22%" |
| "Had meetings about pricing" | "Pricing is agreed at three tiers; the page goes up Thursday" |
| "Looked into the export bug" | "Export bug traced to the row limit; fix is a day's work, scheduled" |
| "Continued the migration" | "Read replicas done and verified; writes are two weeks out" |
| "Onboarded the new starter" | "New starter is taking their own tickets from Monday" |

If a line cannot be turned into a result, it usually belongs in the discard bucket or in the in-flight section with an honest state attached.

## Step 5: altitude

Altitude is how granular the items are, and it should track the reader's distance from the work. The same week produces three legitimately different updates.

| Reader | Altitude | Example line |
|---|---|---|
| Team | Task level. Names, hand-offs, who to ask | "Rosa has the analytics pull; Dev picks up the flow once it lands" |
| Manager | Outcome level. What moved, what is at risk | "Signup rework is live; drop-off down 9 points. Mobile numbers still missing" |
| Leadership | Impact level. Numbers, risks, decisions needed | "Signup conversion up 9 points. One risk: no mobile data yet, which affects the Q3 forecast" |

The failure mode is task detail sent upward. A VP reading "refactored the validation module" learns nothing they can act on, and the update trains them to skim the next one.

The reverse failure is real too: a team update pitched at impact level leaves everyone unsure who is doing what tomorrow.

The larger the group the update covers, the coarser every line should be. A six-person team reports features; a department reports outcomes; a company reports hires, revenue and launches.

## Step 6: blockers as asks

A blocker with no ask attached is a complaint, and readers skip it. Four parts, one line:

> **Contract review** - stuck with Legal since 3 Aug. Need sign-off to send to the client. Chasing Nadia, need it by Friday or the client call moves.

- **What is stuck**, in the reader's terms.
- **What you need**, specifically. A decision, a person, an approval, a number.
- **Who from.** Name them.
- **By when,** and what happens if it misses.

If nothing is blocked, write "No blockers" and stop. A padded blockers section teaches the reader that the section is noise.

## Step 7: the honesty pass

- Something slipped: say it slipped, give the new date, one line of cause, no defensiveness. "Migration moved to 14 March; vendor API access came two weeks late."
- A number you do not have: leave it out and say the number is missing. Never estimate a metric into an update; it becomes a fact by the second forward.
- A quiet week: report the quiet week. Inflating three items into six is obvious to anyone who reads these regularly, and it costs you the credibility you need on the week something is genuinely wrong.
- Bad news goes near the top. Bad news found at the bottom reads as concealment.

## Example

**Raw pile:** "fixed 3 bugs, still waiting on legal for the contract, started the onboarding flow, drop-off numbers came back better after the signup change."

**Reader:** manager. **Period:** this week. **Format:** Done / Doing / Blocked.

> **Status: on track, one item waiting on Legal.**
>
> **Done**
> - Signup rework is live. Drop-off fell from 31% to 22% in the first full week.
> - Three reported bugs fixed and released.
>
> **Doing**
> - Onboarding flow started. On track to finish next week.
>
> **Blocked**
> - Contract review with Legal since 3 Aug. I need sign-off before it goes to the client. Chasing Nadia; if it misses Friday, the client call moves to the following week.

The same week, for leadership:

> **Signup: on track.** Conversion up 9 points after the signup rework, measured over the first full week. Onboarding is next. One risk: the client contract has been with Legal for eight days and is holding a client call.

Note what disappeared going upward: the three bugs, the name Nadia, and the word "started". What survived is the number, the risk, and the thing a senior reader could unblock with one message.

## Rules

- Results, not activity. "Shipped the signup page" beats "worked on signup".
- Never invent a number, a percentage, or a completion state.
- Do not inflate a quiet week, and do not bury a bad one.
- Blockers name a person and a date, or they are not blockers.
- Keep the format stable week to week. Consistency is what makes an update skimmable.
- No jargon the reader would not use themselves, and no internal project code names in an upward update.
- One minute maximum. If it runs long, cut items rather than shortening every line into fragments.

## Edge cases

- **The pile is empty or nearly so.** Ask three questions: what shipped, what moved, what is stuck. If the honest answer is a quiet week, write the quiet week and say why in one line.
- **Everything slipped.** Lead with the status verdict, give the single most important cause, and state what changes next week. A recovery plan in one line is worth more than five paragraphs of explanation.
- **The update covers other people's work.** Attribute it. Take credit only for what the user did, and check names before an update goes upward.
- **The reader has already heard some of it.** Mark it: "as flagged Tuesday". Repeating news as new is how readers stop trusting the top line.
- **Sensitive material.** Someone's performance, a resignation not yet announced, a customer about to churn. Keep it out of a written update that gets forwarded, and tell the user to raise it in person instead.
- **The user wants to hide something.** Write the honest version, and say once, plainly, that it will surface anyway and lands better now than in three weeks.
- **Multiple audiences, one update.** Write for the most senior reader and add a detail section below the fold for the team, rather than averaging the altitude into something that serves neither.
- **A metric moved but not because of you.** Say so. Claiming an unrelated improvement is the fastest way to lose a reader who knows the cause.

## Files

- `references/examples.md` - three complete runs: one messy week written for a manager and then for leadership from identical input, a team-level Progress/Plans/Problems update, and a week where most things slipped. Read the first one to see altitude change without the facts changing.
- `references/formats.md` - the four formats written out in full with their section rules, a bank of status headline phrasings, blocker patterns, and the activity-to-result conversion table. Read it at step 2 and step 4.

Install it

Claude Code (this project)

Unzip the download into .claude/skills/. The folder is already named right.

Claude Code (every project)

Unzip into ~/.claude/skills/ to use it everywhere.

claude.ai

Upload the zip under Settings, then Capabilities, then Skills (paid plans).

How to call it

Just describe the task. The description line inside the skill does the matching. Or call it directly:

/status-report-writer write my weekly status updateturn this list into a report for my managersummarise what I did this weekdraft a progress update for leadershipI need a 3P update for my team

Works beyond Claude

Skills use the open Agent Skills format. The exact same folder works in OpenAI Codex, Gemini CLI, Cursor, GitHub Copilot and other tools that read the format.

Using a plain chat app? Paste SKILL.md into ChatGPT or Gemini as instructions. You lose auto-triggering, but the method still works.

agentskills.io

Pattern credit: anthropics/skills — internal-comms

Related skills