This command IS the orchestrator. Reads existing VERIFICATION.md files (phases already verified during execute-phase), aggregates tech debt and deferred gaps, then spawns integration checker for cross-phase wiring. </objective>
<execution_context>
<!-- Spawns gsd-integration-checker agent which has all audit expertise baked in --></execution_context>
<context> Version: $ARGUMENTS (optional — defaults to current milestone)Original Intent: @.planning/PROJECT.md @.planning/REQUIREMENTS.md
Planned Work: @.planning/ROADMAP.md @.planning/config.json (if exists)
Completed Work: Glob: .planning/phases//-SUMMARY.md Glob: .planning/phases//-VERIFICATION.md </context>
<process>1. Determine Milestone Scope
# Get phases in milestone ls -d .planning/phases/*/ | sort -V
- •Parse version from arguments or detect current from ROADMAP.md
- •Identify all phase directories in scope
- •Extract milestone definition of done from ROADMAP.md
- •Extract requirements mapped to this milestone from REQUIREMENTS.md
2. Read All Phase Verifications
For each phase directory, read the VERIFICATION.md:
cat .planning/phases/01-*/*-VERIFICATION.md cat .planning/phases/02-*/*-VERIFICATION.md # etc.
From each VERIFICATION.md, extract:
- •Status: passed | gaps_found
- •Critical gaps: (if any — these are blockers)
- •Non-critical gaps: tech debt, deferred items, warnings
- •Anti-patterns found: TODOs, stubs, placeholders
- •Requirements coverage: which requirements satisfied/blocked
If a phase is missing VERIFICATION.md, flag it as "unverified phase" — this is a blocker.
3. Spawn Integration Checker
With phase context collected:
Task(
prompt="Check cross-phase integration and E2E flows.
Phases: {phase_dirs}
Phase exports: {from SUMMARYs}
API routes: {routes created}
Verify cross-phase wiring and E2E user flows.",
subagent_type="gsd-integration-checker"
)
4. Collect Results
Combine:
- •Phase-level gaps and tech debt (from step 2)
- •Integration checker's report (wiring gaps, broken flows)
5. Check Requirements Coverage
For each requirement in REQUIREMENTS.md mapped to this milestone:
- •Find owning phase
- •Check phase verification status
- •Determine: satisfied | partial | unsatisfied
6. Aggregate into v{version}-MILESTONE-AUDIT.md
Create .planning/v{version}-v{version}-MILESTONE-AUDIT.md with:
---
milestone: {version}
audited: {timestamp}
status: passed | gaps_found | tech_debt
scores:
requirements: N/M
phases: N/M
integration: N/M
flows: N/M
gaps: # Critical blockers
requirements: [...]
integration: [...]
flows: [...]
tech_debt: # Non-critical, deferred
- phase: 01-auth
items:
- "TODO: add rate limiting"
- "Warning: no password strength validation"
- phase: 03-dashboard
items:
- "Deferred: mobile responsive layout"
---
Plus full markdown report with tables for requirements, phases, integration, tech debt.
Status values:
- •
passed— all requirements met, no critical gaps, minimal tech debt - •
gaps_found— critical blockers exist - •
tech_debt— no blockers but accumulated deferred items need review
7. Present Results
Route by status (see <offer_next>).
<offer_next> Output this markdown directly (not as a code block). Route based on status:
If passed:
✓ Milestone {version} — Audit Passed
Score: {N}/{M} requirements satisfied Report: .planning/v{version}-MILESTONE-AUDIT.md
All requirements covered. Cross-phase integration verified. E2E flows complete.
───────────────────────────────────────────────────────────────
▶ Next Up
Complete milestone — archive and tag
{{COMMAND_PREFIX}}complete-milestone {version}
<sub>/clear first → fresh context window</sub>
───────────────────────────────────────────────────────────────
If gaps_found:
⚠ Milestone {version} — Gaps Found
Score: {N}/{M} requirements satisfied Report: .planning/v{version}-MILESTONE-AUDIT.md
Unsatisfied Requirements
{For each unsatisfied requirement:}
- •{REQ-ID}: {description} (Phase {X})
- •{reason}
Cross-Phase Issues
{For each integration gap:}
- •{from} → {to}: {issue}
Broken Flows
{For each flow gap:}
- •{flow name}: breaks at {step}
───────────────────────────────────────────────────────────────
▶ Next Up
Plan gap closure — create phases to complete milestone
{{COMMAND_PREFIX}}plan-milestone-gaps
<sub>/clear first → fresh context window</sub>
───────────────────────────────────────────────────────────────
Also available:
- •cat .planning/v{version}-MILESTONE-AUDIT.md — see full report
- •{{COMMAND_PREFIX}}complete-milestone {version} — proceed anyway (accept tech debt)
───────────────────────────────────────────────────────────────
If tech_debt (no blockers but accumulated debt):
⚡ Milestone {version} — Tech Debt Review
Score: {N}/{M} requirements satisfied Report: .planning/v{version}-MILESTONE-AUDIT.md
All requirements met. No critical blockers. Accumulated tech debt needs review.
Tech Debt by Phase
{For each phase with debt:} Phase {X}: {name}
- •{item 1}
- •{item 2}
Total: {N} items across {M} phases
───────────────────────────────────────────────────────────────
▶ Options
A. Complete milestone — accept debt, track in backlog
{{COMMAND_PREFIX}}complete-milestone {version}
B. Plan cleanup phase — address debt before completing
{{COMMAND_PREFIX}}plan-milestone-gaps
<sub>/clear first → fresh context window</sub>
─────────────────────────────────────────────────────────────── </offer_next>
<success_criteria>
- • Milestone scope identified
- • All phase VERIFICATION.md files read
- • Tech debt and deferred gaps aggregated
- • Integration checker spawned for cross-phase wiring
- • v{version}-MILESTONE-AUDIT.md created
- • Results presented with actionable next steps </success_criteria>