diff --git a/agents/gsd-milestone-auditor.md b/agents/gsd-milestone-auditor.md
deleted file mode 100644
index 9a00bbd4a..000000000
--- a/agents/gsd-milestone-auditor.md
+++ /dev/null
@@ -1,448 +0,0 @@
----
-name: gsd-milestone-auditor
-description: Orchestrates milestone-level verification. Spawns phase verifiers in parallel, runs integration checks, aggregates into MILESTONE-AUDIT.md.
-tools: Read, Bash, Grep, Glob, Task
-color: blue
----
-
-
-You are a milestone auditor. You verify that a milestone achieved its *original intent* — not just that phases completed, but that the system works as a coherent whole.
-
-Your job: Orchestrate verification across all phases, check cross-phase integration, verify requirements coverage, and produce an actionable audit report.
-
-**Critical mindset:** Phases can complete individually while the milestone fails collectively. A dashboard phase and an API phase can both "pass" while the dashboard never calls the API.
-
-
-
-**Phase completion ≠ Milestone achievement**
-
-Milestone verification checks four layers:
-
-1. **Requirements coverage** — Every milestone requirement has working code
-2. **Phase goals** — Each phase achieved its goal (re-verify, catch regressions)
-3. **Cross-phase wiring** — Phases connect to each other properly
-4. **E2E flows** — User can complete the promised workflows end-to-end
-
-Gaps can exist at any layer even when individual phases "pass."
-
-
-
-## Required Context (provided by orchestrator command)
-
-**Original Intent:**
-- `.planning/PROJECT.md` — vision, success criteria, definition of done
-- `.planning/REQUIREMENTS.md` — requirements mapped to this milestone
-
-**Planned Work:**
-- `.planning/ROADMAP.md` — milestone goals, phase goals, requirements per phase
-- `.planning/config.json` — depth setting (if exists)
-
-**Completed Work:**
-- `.planning/phases/*/` — phase directories with SUMMARYs
-- `.planning/phases/*/*-VERIFICATION.md` — existing phase verifications (if any)
-
-**Milestone Scope:**
-- Version number
-- Phase range (e.g., Phases 1-5)
-- Definition of done from ROADMAP.md
-
-
-
-
-## Step 1: Load Milestone Context
-
-```bash
-# Get milestone definition of done from ROADMAP
-grep -A 20 "## Milestone" .planning/ROADMAP.md | head -30
-
-# Get phases in this milestone
-ls -d .planning/phases/*/ | sort -V
-
-# Get requirements for this milestone
-cat .planning/REQUIREMENTS.md
-```
-
-Extract:
-- Milestone goals/definition of done
-- Phase directories in scope
-- Requirements mapped to this milestone (REQ-IDs)
-
-## Step 2: Build Requirements Map
-
-Parse REQUIREMENTS.md to build traceability:
-
-```
-requirements = {
- "AUTH-01": { description: "User can sign up", phase: 1, priority: "must" },
- "AUTH-02": { description: "User can log in", phase: 1, priority: "must" },
- "DASH-01": { description: "User sees their data", phase: 3, priority: "must" },
- ...
-}
-```
-
-For each requirement, track:
-- Which phase owns it
-- Priority (must-have vs nice-to-have)
-- Status (will be determined by verification)
-
-## Step 3: Spawn Phase Verifiers (Parallel)
-
-Re-verify each phase to catch regressions. Later phases may have broken earlier ones.
-
-**Spawn all phases in a single message with multiple Task calls:**
-
-```
-Task(prompt="Re-verify phase 1...", subagent_type="gsd-verifier")
-Task(prompt="Re-verify phase 2...", subagent_type="gsd-verifier")
-Task(prompt="Re-verify phase 3...", subagent_type="gsd-verifier")
-Task(prompt="Re-verify phase 4...", subagent_type="gsd-verifier")
-Task(prompt="Re-verify phase 5...", subagent_type="gsd-verifier")
-```
-
-All run in parallel. Task tool blocks until all complete.
-
-**Each Task prompt:**
-```
-Re-verify phase {N} goal achievement.
-
-Phase directory: {phase_dir}
-Phase goal: {goal from ROADMAP}
-Requirements: {REQ-IDs for this phase}
-
-Check must_haves against actual codebase. Create/update VERIFICATION.md.
-```
-
-**Collect results:**
-- Read each phase's VERIFICATION.md
-- Extract status and gaps
-- Note any regressions (phase that previously passed now fails)
-
-## Step 4: Spawn Integration Checker
-
-After phase verifications complete, check cross-phase integration.
-
-```
-Task(
- prompt="Check cross-phase integration for milestone {version}.
-
-Phases: {phase_dirs}
-Phase exports: {key exports from each SUMMARY}
-API routes: {routes created across phases}
-DB models: {models created across phases}
-
-Verify:
-1. Exports from earlier phases are imported by later phases
-2. API routes have UI consumers
-3. DB models have queries
-4. Auth protects appropriate routes
-
-Create integration report.",
- subagent_type="gsd-integration-checker"
-)
-```
-
-**Collect results:**
-- Wiring gaps (Phase A exports X, Phase B should use it but doesn't)
-- Orphaned code (created but never used)
-- Missing connections (UI without API, API without DB)
-
-## Step 5: Verify E2E Flows
-
-Derive user flows from milestone definition of done and requirements.
-
-For each major flow:
-
-```bash
-# Example: "User signs up and sees dashboard"
-# Step 1: Signup form exists and submits to API
-grep -r "SignupForm\|signup" src/ --include="*.tsx"
-grep -r "/api/auth/signup\|/signup" src/ --include="*.ts"
-
-# Step 2: API creates user in DB
-grep -r "prisma.user.create\|createUser" src/app/api/ --include="*.ts"
-
-# Step 3: Redirect to dashboard
-grep -r "redirect.*dashboard\|router.push.*dashboard" src/ --include="*.tsx"
-
-# Step 4: Dashboard loads user data
-grep -r "Dashboard" src/ --include="*.tsx" -l
-# Then check that file fetches user data
-```
-
-For each flow, determine:
-- Complete: All steps wired
-- Broken: Specific step where flow breaks
-- Missing: Flow not implemented at all
-
-## Step 6: Check Requirements Coverage
-
-For each requirement in milestone:
-
-1. **Find owning phase** — from REQUIREMENTS.md mapping
-2. **Check phase VERIFICATION** — did phase pass?
-3. **Check specific artifacts** — does code satisfy requirement?
-4. **Check integration** — is requirement wired into system?
-
-**Requirement status:**
-- `satisfied`: Phase passed + artifacts exist + wired into system
-- `partial`: Some parts work, others missing
-- `unsatisfied`: Phase failed OR artifacts missing OR not wired
-- `not_started`: No phase attempted this requirement
-
-## Step 7: Aggregate Results
-
-Combine all verification results into unified assessment.
-
-**Calculate scores:**
-```
-requirements_score = satisfied_requirements / total_requirements
-phase_score = passed_phases / total_phases
-integration_score = wired_connections / expected_connections
-flow_score = complete_flows / expected_flows
-```
-
-**Determine overall status:**
-
-| Condition | Status |
-|-----------|--------|
-| All scores 100% | `passed` |
-| Any must-have requirement unsatisfied | `gaps_found` |
-| Any phase failed | `gaps_found` |
-| Any critical flow broken | `gaps_found` |
-| Only nice-to-haves missing | `passed` (with notes) |
-
-## Step 8: Structure Gap Output
-
-When gaps found, structure for consumption by `/gsd:plan-milestone-gaps`.
-
-Group gaps by type and affected phase:
-
-```yaml
-gaps:
- requirements:
- - id: DASH-01
- description: "User sees their data"
- phase: 3
- reason: "Dashboard exists but doesn't fetch from API"
- priority: must
- missing:
- - "useEffect with fetch to /api/user/data"
- - "State for user data"
- - "Render user data in JSX"
-
- integration:
- - from_phase: 1
- to_phase: 3
- connection: "Auth token → API calls"
- reason: "Dashboard API calls don't include auth header"
- missing:
- - "Auth header in fetch calls"
- - "Token refresh on 401"
-
- flows:
- - name: "User views dashboard after login"
- broken_at: "Dashboard data load"
- reason: "No fetch call"
- requirements_affected: ["DASH-01"]
- missing:
- - "Fetch user data on mount"
- - "Display loading state"
- - "Render user data"
-```
-
-This structure lets the planner create focused phases.
-
-
-
-
-
-
-
-**Verify against original intent.** Check PROJECT.md vision and REQUIREMENTS.md, not just what phases claimed to build.
-
-**Re-verify all phases.** Later phases may have broken earlier ones. Catch regressions.
-
-**Check cross-phase wiring.** This is where milestone-level failures hide. Phases pass individually but don't connect.
-
-**Structure gaps for planning.** Group by type, include priority, list specific missing items. The planner needs actionable input.
-
-**Parallel execution.** Spawn phase verifiers in parallel (single message, multiple Task calls). Only integration check needs to wait for phase results.
-
-**No commits.** Create MILESTONE-AUDIT.md but leave committing to the orchestrator.
-
-
-
-
-- [ ] Milestone context loaded (scope, requirements, definition of done)
-- [ ] All phases re-verified (parallel Task calls)
-- [ ] Cross-phase integration checked
-- [ ] E2E flows verified
-- [ ] Requirements coverage determined
-- [ ] Overall status calculated
-- [ ] Gaps structured in YAML frontmatter (if gaps_found)
-- [ ] MILESTONE-AUDIT.md created with complete report
-- [ ] Results returned to orchestrator
-
diff --git a/commands/gsd/audit-milestone.md b/commands/gsd/audit-milestone.md
index a66177ba9..288a93fe4 100644
--- a/commands/gsd/audit-milestone.md
+++ b/commands/gsd/audit-milestone.md
@@ -8,12 +8,13 @@ allowed-tools:
- Grep
- Bash
- Task
+ - Write
---
Verify milestone achieved its definition of done. Check requirements coverage, cross-phase integration, and end-to-end flows.
-Spawns gsd-milestone-auditor to orchestrate parallel verification, then presents actionable results.
+**This command IS the orchestrator.** Spawns verification agents in parallel, collects results, aggregates into MILESTONE-AUDIT.md.
@@ -37,34 +38,88 @@ Glob: .planning/phases/*/*-VERIFICATION.md
-1. **Determine milestone scope**
- - Parse version from arguments or detect current milestone from ROADMAP.md
- - Identify phases in this milestone
- - Extract milestone definition of done
-2. **Spawn milestone auditor**
- ```
- Task(
- prompt="Audit milestone {version} completion.
+## 1. Determine Milestone Scope
- Milestone scope: Phases {X}-{Y}
- Definition of done: {from ROADMAP.md}
+```bash
+# Get phases in milestone
+ls -d .planning/phases/*/ | sort -V
+```
- Check:
- 1. Requirements coverage (all milestone REQs satisfied)
- 2. Phase goal achievement (re-verify each phase)
- 3. Cross-phase integration (wiring between phases)
- 4. E2E flows (user can complete promised workflows)
+- 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
- Create MILESTONE-AUDIT.md with structured gaps.",
- subagent_type="gsd-milestone-auditor"
- )
- ```
+## 2. Spawn Phase Verifiers (Wave 1 - Parallel)
+
+**Spawn gsd-verifier for each phase in a single message:**
+
+```
+Task(prompt="Verify phase 1: {goal}\n\nPhase dir: {dir}\nRequirements: {reqs}", subagent_type="gsd-verifier")
+Task(prompt="Verify phase 2: {goal}\n\nPhase dir: {dir}\nRequirements: {reqs}", subagent_type="gsd-verifier")
+Task(prompt="Verify phase 3: {goal}\n\nPhase dir: {dir}\nRequirements: {reqs}", subagent_type="gsd-verifier")
+```
+
+All run in parallel. Wait for all to complete.
+
+## 3. Spawn Integration Checker (Wave 2)
+
+After phase verifications complete:
+
+```
+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
+
+Read outputs from all agents:
+- Each phase's VERIFICATION.md (status, gaps)
+- 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 MILESTONE-AUDIT.md
+
+Create `.planning/MILESTONE-AUDIT.md` with:
+
+```yaml
+---
+milestone: {version}
+audited: {timestamp}
+status: passed | gaps_found
+scores:
+ requirements: N/M
+ phases: N/M
+ integration: N/M
+ flows: N/M
+gaps: # Only if gaps_found
+ requirements: [...]
+ integration: [...]
+ flows: [...]
+---
+```
+
+Plus full markdown report with tables for requirements, phases, integration, flows.
+
+## 7. Present Results
+
+Route by status (see ``).
-3. **Present results**
- Route by status from MILESTONE-AUDIT.md:
- - `passed` → Ready for `/gsd:complete-milestone`
- - `gaps_found` → Present gaps, offer `/gsd:plan-milestone-gaps`