--- name: milestone-review description: "Generates a comprehensive milestone progress review including feature completeness, quality metrics, risk assessment, and go/no-go recommendation. Use at milestone checkpoints or when evaluating readiness for a milestone deadline." argument-hint: "[milestone-name|current] [--review full|lean|solo]" user-invocable: true allowed-tools: Read, Glob, Grep, Write, Task, AskUserQuestion --- ## Phase 0: Parse Arguments Extract the milestone name (`current` or a specific name) and resolve the review mode (once, store for all gate spawns this run): 1. If `--review [full|lean|solo]` was passed → use that 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` See `.claude/docs/director-gates.md` for the full check pattern. --- ## Phase 1: Load Milestone Data Read the milestone definition from `production/milestones/`. If the argument is `current`, use the most recently modified milestone file. Read all sprint reports for sprints within this milestone from `production/sprints/`. --- ## Phase 2: Scan Codebase Health - Scan for `TODO`, `FIXME`, `HACK` markers that indicate incomplete work - Check the risk register at `production/risk-register/` --- ## Phase 3: Generate the Milestone Review ```markdown # Milestone Review: [Milestone Name] ## Overview - **Target Date**: [Date] - **Current Date**: [Today] - **Days Remaining**: [N] - **Sprints Completed**: [X/Y] ## Feature Completeness ### Fully Complete | Feature | Acceptance Criteria | Test Status | |---------|-------------------|-------------| ### Partially Complete | Feature | % Done | Remaining Work | Risk to Milestone | |---------|--------|---------------|------------------| ### Not Started | Feature | Priority | Can Cut? | Impact of Cutting | |---------|----------|----------|------------------| ## Quality Metrics - **Open S1 Bugs**: [N] -- [List] - **Open S2 Bugs**: [N] - **Open S3 Bugs**: [N] - **Test Coverage**: [X%] - **Performance**: [Within budget? Details] ## Code Health - **TODO count**: [N across codebase] - **FIXME count**: [N] - **HACK count**: [N] - **Technical debt items**: [List critical ones] ## Risk Assessment | Risk | Status | Impact if Realized | Mitigation Status | |------|--------|-------------------|------------------| ## Velocity Analysis - **Planned vs Completed** (across all sprints): [X/Y tasks = Z%] - **Trend**: [Improving / Stable / Declining] - **Adjusted estimate for remaining work**: [Days needed at current velocity] ## Scope Recommendations ### Protect (Must ship with milestone) - [Feature and why] ### At Risk (May need to cut or simplify) - [Feature and risk] ### Cut Candidates (Can defer without compromising milestone) - [Feature and impact of cutting] ## Go/No-Go Assessment **Recommendation**: [GO / CONDITIONAL GO / NO-GO] **Conditions** (if conditional): - [Condition 1 that must be met] - [Condition 2 that must be met] **Rationale**: [Explanation of the recommendation] ## Action Items | # | Action | Owner | Deadline | |---|--------|-------|----------| ``` --- ## Phase 3b: Producer Risk Assessment **Review mode check** — apply before spawning PR-MILESTONE: - `solo` → skip. Note: "PR-MILESTONE skipped — Solo mode." Present the Go/No-Go section without a producer verdict. - `lean` → skip (not a PHASE-GATE). Note: "PR-MILESTONE skipped — Lean mode." Present the Go/No-Go section without a producer verdict. - `full` → spawn as normal. Before generating the Go/No-Go recommendation, spawn `producer` via Task using gate **PR-MILESTONE** (`.claude/docs/director-gates.md`). Pass: milestone name and target date, current completion percentage, blocked story count, velocity data from sprint reports (if available), list of cut candidates. Present the producer's assessment inline within the Go/No-Go section. The producer's verdict (ON TRACK / AT RISK / OFF TRACK) informs the overall recommendation — do not issue a GO against an OFF TRACK producer verdict without explicit user acknowledgement. --- ## Phase 4: Save Review Present the review to the user. Ask: "May I write this to `production/milestones/[milestone-name]-review.md`?" If yes, write the file, creating the directory if needed. Verdict: **COMPLETE** — milestone review saved. If no, stop here. Verdict: **BLOCKED** — user declined write. --- ## Phase 5: Next Steps - Run `/gate-check` for a formal phase gate verdict if this milestone marks a development phase boundary. - Run `/sprint-plan` to adjust the next sprint based on the scope recommendations above.