gsd-ag 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.agent/skills/codebase-mapper/SKILL.md +226 -0
  2. package/.agent/skills/context-compressor/SKILL.md +201 -0
  3. package/.agent/skills/context-fetch/SKILL.md +184 -0
  4. package/.agent/skills/context-health-monitor/SKILL.md +105 -0
  5. package/.agent/skills/debugger/SKILL.md +273 -0
  6. package/.agent/skills/empirical-validation/SKILL.md +97 -0
  7. package/.agent/skills/executor/SKILL.md +465 -0
  8. package/.agent/skills/plan-checker/SKILL.md +283 -0
  9. package/.agent/skills/planner/SKILL.md +485 -0
  10. package/.agent/skills/token-budget/SKILL.md +166 -0
  11. package/.agent/skills/verifier/SKILL.md +421 -0
  12. package/.agent/workflows/add-phase.md +96 -0
  13. package/.agent/workflows/add-todo.md +69 -0
  14. package/.agent/workflows/audit-milestone.md +107 -0
  15. package/.agent/workflows/check-todos.md +80 -0
  16. package/.agent/workflows/complete-milestone.md +135 -0
  17. package/.agent/workflows/debug.md +235 -0
  18. package/.agent/workflows/discuss-phase.md +103 -0
  19. package/.agent/workflows/execute.md +325 -0
  20. package/.agent/workflows/health.md +122 -0
  21. package/.agent/workflows/help.md +96 -0
  22. package/.agent/workflows/insert-phase.md +109 -0
  23. package/.agent/workflows/install.md +152 -0
  24. package/.agent/workflows/list-phase-assumptions.md +82 -0
  25. package/.agent/workflows/map.md +394 -0
  26. package/.agent/workflows/new-milestone.md +126 -0
  27. package/.agent/workflows/new-project.md +368 -0
  28. package/.agent/workflows/pause.md +176 -0
  29. package/.agent/workflows/plan-milestone-gaps.md +116 -0
  30. package/.agent/workflows/plan.md +380 -0
  31. package/.agent/workflows/progress.md +90 -0
  32. package/.agent/workflows/quick.md +128 -0
  33. package/.agent/workflows/remove-phase.md +139 -0
  34. package/.agent/workflows/research-phase.md +160 -0
  35. package/.agent/workflows/resume.md +131 -0
  36. package/.agent/workflows/update.md +203 -0
  37. package/.agent/workflows/verify.md +263 -0
  38. package/.agent/workflows/web-search.md +121 -0
  39. package/.agent/workflows/whats-new.md +80 -0
  40. package/.gemini/GEMINI.md +67 -0
  41. package/.gsd/GSD-STYLE.md +272 -0
  42. package/.gsd/PROJECT_RULES.md +256 -0
  43. package/.gsd/adapters/CLAUDE.md +77 -0
  44. package/.gsd/adapters/GEMINI.md +92 -0
  45. package/.gsd/adapters/GPT_OSS.md +130 -0
  46. package/.gsd/docs/model-selection-playbook.md +128 -0
  47. package/.gsd/docs/runbook.md +296 -0
  48. package/.gsd/docs/token-optimization-guide.md +207 -0
  49. package/.gsd/examples/cross-platform.md +99 -0
  50. package/.gsd/examples/multi-wave-workflow.md +256 -0
  51. package/.gsd/examples/quick-reference.md +73 -0
  52. package/.gsd/examples/workflow-example.md +139 -0
  53. package/.gsd/model_capabilities.yaml +108 -0
  54. package/.gsd/templates/DEBUG.md +123 -0
  55. package/.gsd/templates/PLAN.md +90 -0
  56. package/.gsd/templates/RESEARCH.md +75 -0
  57. package/.gsd/templates/SUMMARY.md +103 -0
  58. package/.gsd/templates/UAT.md +168 -0
  59. package/.gsd/templates/VERIFICATION.md +70 -0
  60. package/.gsd/templates/architecture.md +67 -0
  61. package/.gsd/templates/context.md +91 -0
  62. package/.gsd/templates/decisions.md +37 -0
  63. package/.gsd/templates/discovery.md +122 -0
  64. package/.gsd/templates/journal.md +46 -0
  65. package/.gsd/templates/milestone.md +91 -0
  66. package/.gsd/templates/phase-summary.md +52 -0
  67. package/.gsd/templates/project.md +124 -0
  68. package/.gsd/templates/requirements.md +92 -0
  69. package/.gsd/templates/roadmap.md +103 -0
  70. package/.gsd/templates/spec.md +51 -0
  71. package/.gsd/templates/sprint.md +57 -0
  72. package/.gsd/templates/stack.md +62 -0
  73. package/.gsd/templates/state.md +92 -0
  74. package/.gsd/templates/state_snapshot.md +132 -0
  75. package/.gsd/templates/todo.md +32 -0
  76. package/.gsd/templates/token_report.md +79 -0
  77. package/.gsd/templates/user-setup.md +116 -0
  78. package/LICENSE +21 -0
  79. package/README.md +523 -0
  80. package/bin/init.js +117 -0
  81. package/package.json +35 -0
@@ -0,0 +1,421 @@
1
+ ---
2
+ name: GSD Verifier
3
+ description: Validates implemented work against spec requirements with empirical evidence
4
+ ---
5
+
6
+ # GSD Verifier Agent
7
+
8
+ <role>
9
+ You are a GSD verifier. You validate that implemented work achieves the stated phase goal through empirical evidence, not claims.
10
+
11
+ Your job: Verify must-haves, detect stubs, identify gaps, and produce VERIFICATION.md with structured findings.
12
+ </role>
13
+
14
+ ---
15
+
16
+ ## Core Principle
17
+
18
+ **Trust nothing. Verify everything.**
19
+
20
+ - SUMMARY.md says "completed" → Verify it actually works
21
+ - Code exists → Verify it's substantive, not a stub
22
+ - Function is called → Verify the wiring actually connects
23
+ - Tests pass → Verify they test the right things
24
+
25
+ ---
26
+
27
+ ## Verification Process
28
+
29
+ ### Step 0: Check for Previous Verification
30
+
31
+ Before starting fresh, check if a previous VERIFICATION.md exists:
32
+
33
+ ```powershell
34
+ Get-ChildItem ".gsd/phases/{N}/*-VERIFICATION.md" -ErrorAction SilentlyContinue
35
+ ```
36
+
37
+ **If previous verification exists with gaps → RE-VERIFICATION MODE:**
38
+ 1. Parse previous VERIFICATION.md
39
+ 2. Extract must-haves (truths, artifacts, key_links)
40
+ 3. Extract gaps (items that failed)
41
+ 4. Set `is_re_verification = true`
42
+ 5. **Skip to Step 3** with optimization:
43
+ - **Failed items:** Full 3-level verification
44
+ - **Passed items:** Quick regression check only
45
+
46
+ **If no previous verification → INITIAL MODE:**
47
+ Set `is_re_verification = false`, proceed with Step 1.
48
+
49
+ ---
50
+
51
+ ### Step 1: Load Context (Initial Mode Only)
52
+
53
+ Gather verification context:
54
+
55
+ ```powershell
56
+ # Phase PLANs and SUMMARYs
57
+ Get-ChildItem ".gsd/phases/{N}/*-PLAN.md"
58
+ Get-ChildItem ".gsd/phases/{N}/*-SUMMARY.md"
59
+
60
+ # Phase goal from ROADMAP
61
+ Select-String -Path ".gsd/ROADMAP.md" -Pattern "Phase {N}"
62
+ ```
63
+
64
+ Extract phase goal from ROADMAP.md. This is the outcome to verify, not the tasks.
65
+
66
+ ---
67
+
68
+ ### Step 2: Establish Must-Haves (Initial Mode Only)
69
+
70
+ **Option A: Must-haves in PLAN frontmatter**
71
+
72
+ ```yaml
73
+ must_haves:
74
+ truths:
75
+ - "User can see existing messages"
76
+ - "User can send a message"
77
+ artifacts:
78
+ - path: "src/components/Chat.tsx"
79
+ provides: "Message list rendering"
80
+ key_links:
81
+ - from: "Chat.tsx"
82
+ to: "api/chat"
83
+ via: "fetch in useEffect"
84
+ ```
85
+
86
+ **Option B: Derive from phase goal**
87
+
88
+ 1. **State the goal:** Take phase goal from ROADMAP.md
89
+ 2. **Derive truths:** "What must be TRUE for this goal?"
90
+ - List 3-7 observable behaviors from user perspective
91
+ - Each truth should be testable
92
+ 3. **Derive artifacts:** "What must EXIST?"
93
+ - Map truths to concrete files
94
+ - Be specific: `src/components/Chat.tsx`, not "chat component"
95
+ 4. **Derive key links:** "What must be CONNECTED?"
96
+ - Identify critical wiring (component → API → DB)
97
+ - These are where stubs hide
98
+
99
+ ---
100
+
101
+ ### Step 3: Verify Observable Truths
102
+
103
+ For each truth, determine if codebase enables it.
104
+
105
+ **Verification status:**
106
+ - ✓ VERIFIED: All supporting artifacts pass all checks
107
+ - ✗ FAILED: Artifacts missing, stub, or unwired
108
+ - ? UNCERTAIN: Can't verify programmatically (needs human)
109
+
110
+ For each truth:
111
+ 1. Identify supporting artifacts
112
+ 2. Check artifact status (Step 4)
113
+ 3. Check wiring status (Step 5)
114
+ 4. Determine truth status
115
+
116
+ ---
117
+
118
+ ### Step 4: Verify Artifacts (Three Levels)
119
+
120
+ For each required artifact, verify three levels:
121
+
122
+ #### Level 1: Existence
123
+ ```powershell
124
+ Test-Path "src/components/Chat.tsx"
125
+ ```
126
+ - File exists at expected path
127
+ - **If missing:** FAILED at Level 1
128
+
129
+ #### Level 2: Substantive
130
+ ```powershell
131
+ Get-Content "src/components/Chat.tsx" | Select-String -Pattern "TODO|placeholder|stub"
132
+ ```
133
+ - File contains real implementation
134
+ - Not a stub, placeholder, or minimal scaffold
135
+ - **If stub detected:** FAILED at Level 2
136
+
137
+ #### Level 3: Wired
138
+ - Imports are used, not just present
139
+ - Exports are consumed by other files
140
+ - Functions are called with correct arguments
141
+ - **If unwired:** FAILED at Level 3
142
+
143
+ ---
144
+
145
+ ### Step 5: Verify Key Links (Wiring)
146
+
147
+ For each key link, verify the connection exists:
148
+
149
+ **Pattern: Component → API**
150
+ ```powershell
151
+ # Check Chat.tsx calls /api/chat
152
+ Select-String -Path "src/components/Chat.tsx" -Pattern "fetch.*api/chat"
153
+ ```
154
+
155
+ **Pattern: API → Database**
156
+ ```powershell
157
+ # Check route calls prisma
158
+ Select-String -Path "src/app/api/chat/route.ts" -Pattern "prisma\."
159
+ ```
160
+
161
+ **Pattern: Form → Handler**
162
+ ```powershell
163
+ # Check onSubmit has implementation
164
+ Select-String -Path "src/components/Form.tsx" -Pattern "onSubmit" -Context 0,5
165
+ ```
166
+
167
+ **Pattern: State → Render**
168
+ ```powershell
169
+ # Check state is used in JSX
170
+ Select-String -Path "src/components/Chat.tsx" -Pattern "messages\.map"
171
+ ```
172
+
173
+ ---
174
+
175
+ ### Step 6: Check Requirements Coverage
176
+
177
+ If REQUIREMENTS.md exists:
178
+
179
+ ```powershell
180
+ Select-String -Path ".gsd/REQUIREMENTS.md" -Pattern "Phase {N}"
181
+ ```
182
+
183
+ For each requirement:
184
+ 1. Identify which truths/artifacts support it
185
+ 2. Determine status based on supporting infrastructure
186
+
187
+ **Requirement status:**
188
+ - ✓ SATISFIED: All supporting truths verified
189
+ - ✗ BLOCKED: Supporting truths failed
190
+ - ? NEEDS HUMAN: Can't verify programmatically
191
+
192
+ ---
193
+
194
+ ### Step 7: Scan for Anti-Patterns
195
+
196
+ Run anti-pattern detection on modified files:
197
+
198
+ ```powershell
199
+ # TODO/FIXME comments
200
+ Select-String -Path "src/**/*.ts" -Pattern "TODO|FIXME|XXX|HACK"
201
+
202
+ # Placeholder content
203
+ Select-String -Path "src/**/*.tsx" -Pattern "placeholder|coming soon"
204
+
205
+ # Empty implementations
206
+ Select-String -Path "src/**/*.ts" -Pattern "return null|return \{\}|return \[\]"
207
+
208
+ # Console.log only
209
+ Select-String -Path "src/**/*.ts" -Pattern "console\.log" -Context 2
210
+ ```
211
+
212
+ **Categorize findings:**
213
+ - 🛑 Blocker: Prevents goal achievement
214
+ - ⚠️ Warning: Indicates incomplete work
215
+ - ℹ️ Info: Notable but not problematic
216
+
217
+ ---
218
+
219
+ ### Step 8: Identify Human Verification Needs
220
+
221
+ Some things can't be verified programmatically:
222
+
223
+ **Always needs human:**
224
+ - Visual appearance (does it look right?)
225
+ - User flow completion
226
+ - Real-time behavior (WebSocket, SSE)
227
+ - External service integration
228
+ - Performance feel
229
+ - Error message clarity
230
+
231
+ **Format:**
232
+ ```markdown
233
+ ### 1. {Test Name}
234
+ **Test:** {What to do}
235
+ **Expected:** {What should happen}
236
+ **Why human:** {Why can't verify programmatically}
237
+ ```
238
+
239
+ ---
240
+
241
+ ### Step 9: Determine Overall Status
242
+
243
+ **Status: passed**
244
+ - All truths VERIFIED
245
+ - All artifacts pass levels 1-3
246
+ - All key links WIRED
247
+ - No blocker anti-patterns
248
+
249
+ **Status: gaps_found**
250
+ - One or more truths FAILED
251
+ - OR artifacts MISSING/STUB
252
+ - OR key links NOT_WIRED
253
+ - OR blocker anti-patterns found
254
+
255
+ **Status: human_needed**
256
+ - All automated checks pass
257
+ - BUT items flagged for human verification
258
+
259
+ **Calculate score:**
260
+ ```
261
+ score = verified_truths / total_truths
262
+ ```
263
+
264
+ ---
265
+
266
+ ### Step 10: Structure Gap Output
267
+
268
+ When gaps found, structure for `/plan --gaps`:
269
+
270
+ ```yaml
271
+ ---
272
+ phase: {N}
273
+ verified: {timestamp}
274
+ status: gaps_found
275
+ score: {N}/{M} must-haves verified
276
+ gaps:
277
+ - truth: "User can see existing messages"
278
+ status: failed
279
+ reason: "Chat.tsx doesn't fetch from API"
280
+ artifacts:
281
+ - path: "src/components/Chat.tsx"
282
+ issue: "No useEffect with fetch call"
283
+ missing:
284
+ - "API call in useEffect to /api/chat"
285
+ - "State for storing fetched messages"
286
+ - "Render messages array in JSX"
287
+ ---
288
+ ```
289
+
290
+ ---
291
+
292
+ ## Stub Detection Patterns
293
+
294
+ ### Universal Stub Patterns
295
+ ```powershell
296
+ # Comment-based stubs
297
+ Select-String -Pattern "TODO|FIXME|XXX|HACK|PLACEHOLDER"
298
+
299
+ # Placeholder text
300
+ Select-String -Pattern "placeholder|lorem ipsum|coming soon"
301
+
302
+ # Empty implementations
303
+ Select-String -Pattern "return null|return undefined|return \{\}|return \[\]"
304
+ ```
305
+
306
+ ### React Component Stubs
307
+ ```javascript
308
+ // RED FLAGS:
309
+ return <div>Component</div>
310
+ return <div>Placeholder</div>
311
+ return <div>{/* TODO */}</div>
312
+ return null
313
+ return <></>
314
+
315
+ // Empty handlers:
316
+ onClick={() => {}}
317
+ onChange={() => console.log('clicked')}
318
+ onSubmit={(e) => e.preventDefault()} // Only prevents default
319
+ ```
320
+
321
+ ### API Route Stubs
322
+ ```typescript
323
+ // RED FLAGS:
324
+ export async function POST() {
325
+ return Response.json({ message: "Not implemented" });
326
+ }
327
+
328
+ export async function GET() {
329
+ return Response.json([]); // Empty array, no DB query
330
+ }
331
+
332
+ // Console log only:
333
+ export async function POST(req) {
334
+ console.log(await req.json());
335
+ return Response.json({ ok: true });
336
+ }
337
+ ```
338
+
339
+ ### Wiring Red Flags
340
+ ```typescript
341
+ // Fetch exists but response ignored:
342
+ fetch('/api/messages') // No await, no .then
343
+
344
+ // Query exists but result not returned:
345
+ await prisma.message.findMany()
346
+ return Response.json({ ok: true }) // Returns static, not query
347
+
348
+ // Handler only prevents default:
349
+ onSubmit={(e) => e.preventDefault()}
350
+
351
+ // State exists but not rendered:
352
+ const [messages, setMessages] = useState([])
353
+ return <div>No messages</div> // Always shows static
354
+ ```
355
+
356
+ ---
357
+
358
+ ## VERIFICATION.md Format
359
+
360
+ ```markdown
361
+ ---
362
+ phase: {N}
363
+ verified: {timestamp}
364
+ status: {passed | gaps_found | human_needed}
365
+ score: {N}/{M} must-haves verified
366
+ is_re_verification: {true | false}
367
+ gaps: [...] # If gaps_found
368
+ ---
369
+
370
+ # Phase {N} Verification
371
+
372
+ ## Must-Haves
373
+
374
+ ### Truths
375
+ | Truth | Status | Evidence |
376
+ |-------|--------|----------|
377
+ | {truth 1} | ✓ VERIFIED | {how verified} |
378
+ | {truth 2} | ✗ FAILED | {what's missing} |
379
+
380
+ ### Artifacts
381
+ | Path | Exists | Substantive | Wired |
382
+ |------|--------|-------------|-------|
383
+ | src/components/Chat.tsx | ✓ | ✓ | ✗ |
384
+
385
+ ### Key Links
386
+ | From | To | Via | Status |
387
+ |------|-----|-----|--------|
388
+ | Chat.tsx | api/chat | fetch | ✗ NOT_WIRED |
389
+
390
+ ## Anti-Patterns Found
391
+ - 🛑 {blocker}
392
+ - ⚠️ {warning}
393
+
394
+ ## Human Verification Needed
395
+ ### 1. Visual Review
396
+ **Test:** Open http://localhost:3000/chat
397
+ **Expected:** Message list renders with real data
398
+ **Why human:** Visual layout verification
399
+
400
+ ## Gaps (if any)
401
+ {Structured gap analysis for planner}
402
+
403
+ ## Verdict
404
+ {Status explanation}
405
+ ```
406
+
407
+ ---
408
+
409
+ ## Success Criteria
410
+
411
+ - [ ] Previous VERIFICATION.md checked
412
+ - [ ] Must-haves established (from frontmatter or derived)
413
+ - [ ] All truths verified with status and evidence
414
+ - [ ] All artifacts checked at 3 levels (exists, substantive, wired)
415
+ - [ ] All key links verified
416
+ - [ ] Anti-patterns scanned and categorized
417
+ - [ ] Human verification items identified
418
+ - [ ] Overall status determined
419
+ - [ ] Gaps structured in YAML (if gaps_found)
420
+ - [ ] VERIFICATION.md created
421
+ - [ ] Results returned to orchestrator
@@ -0,0 +1,96 @@
1
+ ---
2
+ description: Add a new phase to the end of the roadmap
3
+ argument-hint: "<phase-name>"
4
+ ---
5
+
6
+ # /add-phase Workflow
7
+
8
+ <objective>
9
+ Add a new phase to the end of the current roadmap.
10
+ </objective>
11
+
12
+ <process>
13
+
14
+ ## 1. Validate Roadmap Exists
15
+
16
+ ```powershell
17
+ if (-not (Test-Path ".gsd/ROADMAP.md")) {
18
+ Write-Error "ROADMAP.md required. Run /new-milestone first."
19
+ }
20
+ ```
21
+
22
+ ---
23
+
24
+ ## 2. Determine Next Phase Number
25
+
26
+ ```powershell
27
+ # Count existing phases
28
+ $phases = Select-String -Path ".gsd/ROADMAP.md" -Pattern "### Phase \d+"
29
+ $nextPhase = $phases.Count + 1
30
+ ```
31
+
32
+ ---
33
+
34
+ ## 3. Gather Phase Information
35
+
36
+ Ask for:
37
+ - **Name** — Phase title
38
+ - **Objective** — What this phase achieves
39
+ - **Depends on** — Previous phases (usually N-1)
40
+
41
+ ---
42
+
43
+ ## 4. Add to ROADMAP.md
44
+
45
+ Append:
46
+ ```markdown
47
+ ---
48
+
49
+ ### Phase {N}: {name}
50
+ **Status**: ⬜ Not Started
51
+ **Objective**: {objective}
52
+ **Depends on**: Phase {N-1}
53
+
54
+ **Tasks**:
55
+ - [ ] TBD (run /plan {N} to create)
56
+
57
+ **Verification**:
58
+ - TBD
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 5. Update STATE.md
64
+
65
+ Note phase added.
66
+
67
+ ---
68
+
69
+ ## 6. Commit
70
+
71
+ ```powershell
72
+ git add .gsd/ROADMAP.md .gsd/STATE.md
73
+ git commit -m "docs: add phase {N} - {name}"
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 7. Offer Next Steps
79
+
80
+ ```
81
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
82
+ GSD ► PHASE ADDED ✓
83
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
84
+
85
+ Phase {N}: {name}
86
+
87
+ ───────────────────────────────────────────────────────
88
+
89
+ ▶ NEXT
90
+
91
+ /plan {N} — Create execution plans for this phase
92
+
93
+ ───────────────────────────────────────────────────────
94
+ ```
95
+
96
+ </process>
@@ -0,0 +1,69 @@
1
+ ---
2
+ description: Capture a todo item for later
3
+ argument-hint: "<description> [--priority high|medium|low]"
4
+ ---
5
+
6
+ # /add-todo Workflow
7
+
8
+ <objective>
9
+ Quickly capture an idea, task, or issue without interrupting current work flow.
10
+ </objective>
11
+
12
+ <context>
13
+ **Item:** $ARGUMENTS (the todo description)
14
+
15
+ **Flags:**
16
+ - `--priority high|medium|low` — Set priority (default: medium)
17
+
18
+ **Output:**
19
+ - `.gsd/TODO.md` — Accumulated todo items
20
+ </context>
21
+
22
+ <process>
23
+
24
+ ## 1. Parse Arguments
25
+
26
+ Extract:
27
+ - Todo description
28
+ - Priority (default: medium)
29
+
30
+ ---
31
+
32
+ ## 2. Ensure TODO.md Exists
33
+
34
+ ```powershell
35
+ if (-not (Test-Path ".gsd/TODO.md")) {
36
+ # Create with header
37
+ }
38
+ ```
39
+
40
+ ---
41
+
42
+ ## 3. Add Todo Item
43
+
44
+ Append to `.gsd/TODO.md`:
45
+
46
+ ```markdown
47
+ - [ ] {description} `{priority}` — {date}
48
+ ```
49
+
50
+ ---
51
+
52
+ ## 4. Confirm
53
+
54
+ ```
55
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
56
+ GSD ► TODO ADDED ✓
57
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
58
+
59
+ {description}
60
+ Priority: {priority}
61
+
62
+ ───────────────────────────────────────────────────────
63
+
64
+ /check-todos — see all pending items
65
+
66
+ ───────────────────────────────────────────────────────
67
+ ```
68
+
69
+ </process>
@@ -0,0 +1,107 @@
1
+ ---
2
+ description: Audit a milestone for quality and completeness
3
+ argument-hint: "[milestone-name]"
4
+ ---
5
+
6
+ # /audit-milestone Workflow
7
+
8
+ <objective>
9
+ Review a completed (or in-progress) milestone for quality, completeness, and lessons learned.
10
+ </objective>
11
+
12
+ <process>
13
+
14
+ ## 1. Load Milestone Context
15
+
16
+ If milestone name provided, load from archive:
17
+ ```powershell
18
+ Get-Content ".gsd/milestones/{name}-SUMMARY.md"
19
+ ```
20
+
21
+ If no name, audit current milestone from ROADMAP.md.
22
+
23
+ ---
24
+
25
+ ## 2. Check Must-Haves Verification
26
+
27
+ For each must-have in the milestone:
28
+ - Was it verified with empirical evidence?
29
+ - Is the evidence still valid?
30
+ - Any regressions since completion?
31
+
32
+ ---
33
+
34
+ ## 3. Review Technical Debt
35
+
36
+ Check TODO.md and DECISIONS.md for:
37
+ - Deferred items during this milestone
38
+ - Technical debt acknowledged
39
+ - Items that should be addressed
40
+
41
+ ---
42
+
43
+ ## 4. Analyze Phase Quality
44
+
45
+ For each phase:
46
+ - Review VERIFICATION.md
47
+ - Check for gap closures (were there many?)
48
+ - Note recurring issues
49
+
50
+ ---
51
+
52
+ ## 5. Generate Audit Report
53
+
54
+ ```markdown
55
+ # Milestone Audit: {name}
56
+
57
+ **Audited:** {date}
58
+
59
+ ## Summary
60
+ | Metric | Value |
61
+ |--------|-------|
62
+ | Phases | {N} |
63
+ | Gap closures | {M} |
64
+ | Technical debt items | {K} |
65
+
66
+ ## Must-Haves Status
67
+ | Requirement | Verified | Evidence |
68
+ |-------------|----------|----------|
69
+ | {req 1} | ✅ | {link} |
70
+ | {req 2} | ✅ | {link} |
71
+
72
+ ## Concerns
73
+ - {concern 1}
74
+ - {concern 2}
75
+
76
+ ## Recommendations
77
+ 1. {recommendation 1}
78
+ 2. {recommendation 2}
79
+
80
+ ## Technical Debt to Address
81
+ - [ ] {item 1}
82
+ - [ ] {item 2}
83
+ ```
84
+
85
+ ---
86
+
87
+ ## 6. Offer Actions
88
+
89
+ ```
90
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
+ GSD ► AUDIT COMPLETE
92
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
93
+
94
+ Milestone: {name}
95
+ Health: {GOOD | CONCERNS | NEEDS ATTENTION}
96
+
97
+ ───────────────────────────────────────────────────────
98
+
99
+ ▶ ACTIONS
100
+
101
+ /plan-milestone-gaps — Create plans to address gaps
102
+ /add-todo — Capture debt items for later
103
+
104
+ ───────────────────────────────────────────────────────
105
+ ```
106
+
107
+ </process>