---
name: fp-status-report
description: Generate a stakeholder status report straight from fastpace artifacts (PRDs, ERDs, exec plans, watch cards, git history, in-flight features, metrics). Asks for period and audience, outputs audience-tailored markdown saved to fastpace/docs/status-reports/. Triggers on /fp-status-report.
---

# fp-status-report

Produce the weekly/monthly report without anyone copy-pasting from Jira + Slack + GitHub. Every line is grounded in a file in the repo — no fabrication, no vibes.

## Preflight

1. Confirm `fastpace/` structure exists (watch-cards/, docs/, exec-plans/). If the repo hasn't used fastpace at all, say so and stop: "No artifacts yet — nothing to report on."
2. Read `fastpace/metrics.json` if present. This is the authoritative source for numeric metrics.
3. Resolve "period" and "audience" from the invocation. If the user didn't specify, ask *both at once* (this is the one exception to the one-question rule — it's a setup ritual, not an interview):
   > "Period? (this week / last week / last two weeks / this month / custom dates)  \
   >  Audience? (senior leadership / director / eng manager / product+stakeholders)"

## Data sources (the 4×N bucket)

Each bucket reads from specific files — never from memory.

| Bucket | Reads from |
|---|---|
| **In-progress features** | `fastpace/watch-cards/*.json` where `status != completed`. Use `name`, `current_phase`, `completed_phases.length / phases.length`, `progress.pct`, owner from `assignee` (or "unassigned"). |
| **Current designs** | `fastpace/docs/erd/*.md` (status: review / approved). Use the frontmatter `status` and the h1. |
| **Execution plans & progress** | `fastpace/exec-plans/*.json` — wave count, stories done, critical-path hours remaining. |
| **Risks & blockers** | Watch cards with `risk: high` or `status: blocked`. Recent `learnings.md` entries within the period. Critical reviewer findings in `audit.log`. |
| **Next period priorities** | Exec plans: next wave's stories. PRDs with `status: draft` that likely need approval. ADRs with `status: proposed`. |
| **Key metrics** | `fastpace/metrics.json` + git log for the period (commit count, merges to main). DORA-style metrics if the UI has them — but from the JSON, not computed inline. |

## Process

1. **Gather** — read every file listed above within the period window. Use `git log --since="<period>"` for the commit window.
2. **Filter by audience.** The shape is the same; the depth isn't (see audience rules).
3. **Draft** the report in the 4-section structure below.
4. **Show** the draft to the user before writing.
5. **Write** to `fastpace/docs/status-reports/<YYYY-MM-DD>-<audience>.md`.
6. **Report** the file path and suggest committing it.

## Audience rules (depth + tone)

| Audience | Include | Omit | Tone |
|---|---|---|---|
| **Senior leadership (VP+)** | Outcomes, top 3 risks, one ask, 1 headline metric. | Per-story detail, engineering jargon. | Ship dates + confidence. |
| **Director** | Outcomes per workstream, blockers, 3 metrics, next-period plan. | Story-level detail. | Portfolio view. |
| **Eng manager** | Stream-by-stream progress, on-track/at-risk per epic, velocity signals. | Feature marketing framing. | Operational. |
| **Product + stakeholders** | Feature-level status mapped to PRDs, user-facing milestones, launch dates. | Internal refactors, infra work unless customer-impacting. | Narrative. |

## Report format (the 4-section structure)

```markdown
---
title: Engineering status — <period>
audience: <audience>
period:
  from: <YYYY-MM-DD>
  to: <YYYY-MM-DD>
author: fastpace
generated_at: <iso>
---

# Engineering status — <period>

<2-sentence TL;DR. The one thing leadership needs to know. Ship dates + one
risk + one win. No more.>

## 1. In-progress features

<For each in-flight watch card, one line:>
- **<name>** — <pct>% complete · phase: `<current_phase>` · owner: <assignee>
  <optional one-line note if status is notable>

## 2. Current ERDs & technical designs

<For each ERD touched in the period:>
- **<name>** — *<status>*.  [erd link]
  <one-line what / why>

## 3. Execution plans & progress

<For each active plan:>
- **<plan name>** — <waves_done>/<waves_total> waves · critical path <hours_left>h of <hours_total>h remaining.
  <one-line note if the plan shifted>

## 4. Risks & blockers · Next <period> · Key metrics

### Risks
- **<risk title>** — <owner>, <ETA>, <mitigation status>.

### Next <period>
- **Ship <feature>** — <milestone, e.g. "10% canary">, <day + owner>.
- **Close <design>** — <what needs to happen>, <day + owner>.

### Key metrics

| Metric | Current | Prior | Δ |
|--------|---------|-------|---|
| <name> | <value> | <prior> | <change> |
| <…> | <…> | <…> | <…> |

<If metrics.json is empty, show the single row:>
| Metrics | TBD | — | Add entries to `fastpace/metrics.json` to populate. |

---

_Generated by `/fp-status-report`. Saved to `fastpace/docs/status-reports/` for version control._
```

## Rules

- **Every claim cites a file.** Watch-card lines cite the watch card. ERD lines cite the ERD. Metrics cite metrics.json. No hand-waving.
- **Never fabricate metrics.** If a metric isn't in `metrics.json` or isn't computable from git log, write `TBD` and tell the user in the footer how to populate it.
- **Never fabricate owners.** "Unassigned" is fine; a made-up name is not.
- **Dates are absolute.** Resolve "last week" to ISO dates.
- **Length discipline by audience.** VP report: ≤ 1 page printed. Eng manager: 1-2 pages. Don't pad.
- **Watch for "silence is bad".** If the period has almost no activity, surface that: "Low throughput — 2 merges in the period." That's a finding.
- **Do NOT summarize individual commits.** Commits are noise at this level; roll them up into features/epics.

## Worked example (abridged)

```markdown
## 1. In-progress features

- **Credit card validation** — 62% complete · phase: `implement` · owner: Priya
  On track for canary next Monday per exec plan.
- **Migrate auth to OIDC** — 14% complete · phase: `spec` · owner: Lee
  Blocked pending security sign-off.
- **Rate-limit public endpoints** — 82% complete · phase: `create-pr` · owner: Sam
  In review; expect merge this week.

## 4. Risks & blockers

### Risks
- **OIDC rollout blocked on legacy-session migration** — Lee, ETA next week,
  security review in progress.
- **Third-party rate-limit provider quota uncertain** — Sam, no mitigation yet;
  we need a fallback plan before launch.
```

## Integration

- If the report surfaces a risk not yet in `learnings.md`, suggest `/fp-remember` at the end.
- If there are pending ADRs (`status: proposed`), flag them in Next <period>.
- Suggest the user run `git add fastpace/docs/status-reports/<file>` + commit, so the report persists as a historical artifact.

## Exit criteria

- File written at `fastpace/docs/status-reports/<YYYY-MM-DD>-<audience>.md`.
- Every section has content or a concrete "nothing to report — here's why".
- Metrics section either has real rows or a single `TBD` row with guidance.
- Report output: file path + "run `git add` / commit to preserve" + 1-line TL;DR echo.
