sprint-status ยท diff

v4 to v5

18 added, 18 removed. Audit A to A.

---
name: sprint-status
description: Make sure to use this skill whenever the user asks "where are we", "sprint status", "how's the sprint going", "what's left in this sprint", "are we on track", /sprint-status, or wants a readout of the current sprint's progress. Reads the active sprint.md, the sprint queue, the active claims in .devops/plans/, and the archive, then produces a burn-up snapshot, flags at-risk or stale claims, and recommends what to work on next. This skill READS state โ€” it writes no files and changes nothing.
- version: 4
- updated: 2026-09-17
+ version: 5
+ updated: 2026-09-30
---
- # Sprint Status โ€” Read-Only Burn-Up
+ # Sprint Status โ€” Read-Only Status Readout
> **Boundary:** Pure reporting. Writes nothing. If the user wants to change scope, that's `@sprint-plan` (new sprint) or editing the active `sprint.md` directly with their agreement. This skill only answers "where are we right now."
## 1. Find the Active Sprint
Read `.devops/backlog/SPRINTS.md`. Locate the row with status `๐ŸŸข ACTIVE`.
- If none is active โ†’ report "No sprint open" and suggest `@sprint-plan`. Stop.
- If more than one is active โ†’ flag the violation of the one-active-sprint rule and ask the user which is real.
- Resolve the sprint folder `.devops/sprints/sprint-{n}-<slug>/` from that row.
## 2. Read Committed Scope
Open `.devops/sprints/sprint-{n}-<slug>/sprint.md`. Extract the **Committed Scope (queue)** table (codes, sizes, plan links). The queue is the authoritative committed scope.
## 3. Determine Each Plan's State
For each committed code, find its actual state by checking, in order:
1. `.devops/archive/` contains the plan โ†’ `COMPLETE` (archived).
2. `.devops/plans/` contains the plan โ†’ read its claim front-matter: `claim_status` `CLAIMED` or `GATE_D_USER_APPROVAL` (or `COMPLETE` if wrap-up has run but the move has not), plus `owner` / `last_touch`, and the bottom `Status` phase (`PHASE_1`+). `GATE_D_USER_APPROVAL` means **executed, awaiting the Gate D verdict** โ€” report it as awaiting sign-off, **not** as in-flight work. (Values and semantics: `.devops/rules/plan-lifecycle.md` ยง Claim Front-Matter โ€” the canonical home.)
3. Still in the sprint folder with `claim_status: QUEUED` โ†’ `QUEUED` (not started).
4. Not found anywhere โ†’ `MISSING` โ€” flag it; the queue and reality disagree.
Cross-reference recent `.devops/logs/agent-changelog.md` entries to confirm completions match reality. The archive is the machine signal for COMPLETE; `sprint.md`'s own status column is the human record โ€” if they disagree, the archive wins and the sprint record needs updating.
- ## 4. Produce the Burn-Up Readout
+ ## 4. Produce the Dashboard Readout
- Present as a compact report:
+ **The machine shape lives in the script; this section is the operator-facing example, cited to it.** Run `python scripts/sprint_dashboard.py` โ€” its plain-text output IS the readout (one format, two entry points: the batch host prints the same shape at every transition, `@sprint-run` ยง 3; this skill prints it on demand). The pins (exact top-level keys, row fields, state tokens, rail ladders, degrade kinds) are owned by the script + the fixture suite (`scripts/tests/test_sprint_dashboard.py`) โ€” this example is never edited ahead of them:
```
- Sprint {n}: {Name} Goal: {one line}
- Capacity: {delivered}/{committed} pts ({%}) Plans: {done}/{total}
-
- | Code | Plan | Size | State | Owner | Last touch | Note |
- |------|------|------|-------|-------|------------|------|
- | T.. | ... | M | โœ… DONE | โ€” | โ€” | archived {date} |
- | T.. | ... | M | ๐ŸŸ  AWAITING GATE D | {owner} | {date} | `GATE_D_USER_APPROVAL` at `PHASE_9` โ€” verdict + wrap-up pending |
- | T.. | ... | L | ๐Ÿ”„ CLAIMED | {owner} | {date} | PHASE 8 executing |
- | T.. | ... | S | ๐ŸŸก QUEUED | โ€” | โ€” | claimable |
- | T.. | ... | S | โฌœ BLOCKED | โ€” | โ€” | depends on {code} |
-
- On track? {yes / at risk / behind} โ€” {reason}
- Recommended next: {the highest-priority claimable plan, with why}
+ Sprint 14 โ€” Queue Dashboard open
+ โ–ถ sprint start โ€” current
+ โ˜ user testing โ€” pending
+ โ˜ sprint close โ€” pending
+ โœ… complete T1-E3.20 preset overrule check
+ โœ… complete T1-E3.22 manual claim baseline
+ โ–ถ running โ€” batch T1-E3.26 sprint queue dashboard
+ โŸต you are here (running โ€” batch)
+ โธ waiting on your call T1-E1.06 subagent surface
+ โฌœ queued โ€” batch T1-E5.03 plan-record lever
+ note: T1-E3.26 wrap-up done, archive move pending (appears only when true)
```
+
+ **Kept alongside the shape (ride R6 โ€” adoption never silently drops these):** Capacity / Plans / Points lines and the "On track?" read stay as the report's closing block, reading from `sprint.md`'s Capacity section as before. ยง 3's five-state machine maps onto the dashboard's badges 1:1: `COMPLETE` โ†’ `โœ… complete`, awaiting the Gate D verdict โ†’ `โณ awaiting gate D`, `CLAIMED` โ†’ `โ–ถ running`, `QUEUED` (and its claimable subset) โ†’ `โฌœ queued โ€” batch`, blocked โ†’ `๐Ÿšง blocked โ€” <the predicate's reason>` (from `compute()`'s `skipped` โ€” ยง 5's Blocked-queue note renders from the same data), MISSING โ†’ `โ” missing`. One mapping home: this ยง 4; ยง 3's vocabulary points here, never re-rendered.
## 5. Flag Risk
- A large (L/XL) plan still `QUEUED` late in the sprint โ†’ at risk; recommend splitting or carrying forward.
- **Stale claims:** a plan in `.devops/plans/` whose `last_touch` is older than the newest changelog entry, or that carries a review flag, is stale โ€” surface it for human review. Staleness is `last_touch` + review flag, **never** a time lease; human-gated phases pause legitimately.
- **Blocked queue:** a `QUEUED` plan whose `depends_on` codes are neither in `.devops/archive/` **nor** in `.devops/plans/` with `claim_status: GATE_D_USER_APPROVAL` is blocked โ€” do not recommend claiming it. A dependency that is executed-but-unverified (`GATE_D_USER_APPROVAL`) **does** satisfy it.
- Delivered points far below pace โ†’ note it neutrally; do not editorialise.
- Any plan whose size estimate looks wrong vs the changelog effort โ†’ surface it so the retro can capture the calibration lesson.
## 6. Stop
Do not modify any file. End with the recommended next action for the user (claim the next eligible plan via the Claim Protocol and run `@pass-the-parcel`, or if all done โ€” run `@sprint-close`).