get-shit-done-cc 1.20.2 → 1.20.3

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.
@@ -45,6 +45,12 @@ A "complete" codebase with broken wiring is a broken product.
45
45
 
46
46
  - Which phases should connect to which
47
47
  - What each phase provides vs. consumes
48
+
49
+ **Milestone Requirements:**
50
+
51
+ - List of REQ-IDs with descriptions and assigned phases (provided by milestone auditor)
52
+ - MUST map each integration finding to affected requirement IDs where applicable
53
+ - Requirements with no cross-phase wiring MUST be flagged in the Requirements Integration Map
48
54
  </inputs>
49
55
 
50
56
  <verification_process>
@@ -391,6 +397,15 @@ Return structured report to milestone auditor:
391
397
  #### Unprotected Routes
392
398
 
393
399
  {List each with path/reason}
400
+
401
+ #### Requirements Integration Map
402
+
403
+ | Requirement | Integration Path | Status | Issue |
404
+ |-------------|-----------------|--------|-------|
405
+ | {REQ-ID} | {Phase X export → Phase Y import → consumer} | WIRED / PARTIAL / UNWIRED | {specific issue or "—"} |
406
+
407
+ **Requirements with no cross-phase wiring:**
408
+ {List REQ-IDs that exist in a single phase with no integration touchpoints — these may be self-contained or may indicate missing connections}
394
409
  ```
395
410
 
396
411
  </output>
@@ -419,5 +434,7 @@ Return structured report to milestone auditor:
419
434
  - [ ] Orphaned code identified
420
435
  - [ ] Missing connections identified
421
436
  - [ ] Broken flows identified with specific break points
437
+ - [ ] Requirements Integration Map produced with per-requirement wiring status
438
+ - [ ] Requirements with no cross-phase wiring identified
422
439
  - [ ] Structured report returned to auditor
423
440
  </success_criteria>
package/bin/install.js CHANGED
@@ -456,7 +456,16 @@ function convertClaudeToGeminiAgent(content) {
456
456
  }
457
457
 
458
458
  const newFrontmatter = newLines.join('\n').trim();
459
- return `---\n${newFrontmatter}\n---${stripSubTags(body)}`;
459
+
460
+ // Escape ${VAR} patterns in agent body for Gemini CLI compatibility.
461
+ // Gemini's templateString() treats all ${word} patterns as template variables
462
+ // and throws "Template validation failed: Missing required input parameters"
463
+ // when they can't be resolved. GSD agents use ${PHASE}, ${PLAN}, etc. as
464
+ // shell variables in bash code blocks — convert to $VAR (no braces) which
465
+ // is equivalent bash and invisible to Gemini's /\$\{(\w+)\}/g regex.
466
+ const escapedBody = body.replace(/\$\{(\w+)\}/g, '$$$1');
467
+
468
+ return `---\n${newFrontmatter}\n---${stripSubTags(escapedBody)}`;
460
469
  }
461
470
 
462
471
  function convertClaudeToOpencodeFrontmatter(content) {
@@ -57,6 +57,8 @@ If a phase is missing VERIFICATION.md, flag it as "unverified phase" — this is
57
57
 
58
58
  With phase context collected:
59
59
 
60
+ Extract `MILESTONE_REQ_IDS` from REQUIREMENTS.md traceability table — all REQ-IDs assigned to phases in this milestone.
61
+
60
62
  ```
61
63
  Task(
62
64
  prompt="Check cross-phase integration and E2E flows.
@@ -65,6 +67,11 @@ Phases: {phase_dirs}
65
67
  Phase exports: {from SUMMARYs}
66
68
  API routes: {routes created}
67
69
 
70
+ Milestone Requirements:
71
+ {MILESTONE_REQ_IDS — list each REQ-ID with description and assigned phase}
72
+
73
+ MUST map each integration finding to affected requirement IDs where applicable.
74
+
68
75
  Verify cross-phase wiring and E2E user flows.",
69
76
  subagent_type="gsd-integration-checker",
70
77
  model="{integration_checker_model}"
@@ -77,12 +84,48 @@ Combine:
77
84
  - Phase-level gaps and tech debt (from step 2)
78
85
  - Integration checker's report (wiring gaps, broken flows)
79
86
 
80
- ## 5. Check Requirements Coverage
87
+ ## 5. Check Requirements Coverage (3-Source Cross-Reference)
88
+
89
+ MUST cross-reference three independent sources for each requirement:
90
+
91
+ ### 5a. Parse REQUIREMENTS.md Traceability Table
92
+
93
+ Extract all REQ-IDs mapped to milestone phases from the traceability table:
94
+ - Requirement ID, description, assigned phase, current status, checked-off state (`[x]` vs `[ ]`)
95
+
96
+ ### 5b. Parse Phase VERIFICATION.md Requirements Tables
97
+
98
+ For each phase's VERIFICATION.md, extract the expanded requirements table:
99
+ - Requirement | Source Plan | Description | Status | Evidence
100
+ - Map each entry back to its REQ-ID
101
+
102
+ ### 5c. Extract SUMMARY.md Frontmatter Cross-Check
103
+
104
+ For each phase's SUMMARY.md, extract `requirements-completed` from YAML frontmatter:
105
+ ```bash
106
+ for summary in .planning/phases/*-*/*-SUMMARY.md; do
107
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs summary-extract "$summary" --fields requirements_completed | jq -r '.requirements_completed'
108
+ done
109
+ ```
110
+
111
+ ### 5d. Status Determination Matrix
112
+
113
+ For each REQ-ID, determine status using all three sources:
114
+
115
+ | VERIFICATION.md Status | SUMMARY Frontmatter | REQUIREMENTS.md | → Final Status |
116
+ |------------------------|---------------------|-----------------|----------------|
117
+ | passed | listed | `[x]` | **satisfied** |
118
+ | passed | listed | `[ ]` | **satisfied** (update checkbox) |
119
+ | passed | missing | any | **partial** (verify manually) |
120
+ | gaps_found | any | any | **unsatisfied** |
121
+ | missing | listed | any | **partial** (verification gap) |
122
+ | missing | missing | any | **unsatisfied** |
123
+
124
+ ### 5e. FAIL Gate and Orphan Detection
125
+
126
+ **REQUIRED:** Any `unsatisfied` requirement MUST force `gaps_found` status on the milestone audit.
81
127
 
82
- For each requirement in REQUIREMENTS.md mapped to this milestone:
83
- - Find owning phase
84
- - Check phase verification status
85
- - Determine: satisfied | partial | unsatisfied
128
+ **Orphan detection:** Requirements present in REQUIREMENTS.md traceability table but absent from ALL phase VERIFICATION.md files MUST be flagged as orphaned. Orphaned requirements are treated as `unsatisfied` — they were assigned but never verified by any phase.
86
129
 
87
130
  ## 6. Aggregate into v{version}-MILESTONE-AUDIT.md
88
131
 
@@ -99,7 +142,14 @@ scores:
99
142
  integration: N/M
100
143
  flows: N/M
101
144
  gaps: # Critical blockers
102
- requirements: [...]
145
+ requirements:
146
+ - id: "{REQ-ID}"
147
+ status: "unsatisfied | partial | orphaned"
148
+ phase: "{assigned phase}"
149
+ claimed_by_plans: ["{plan files that reference this requirement}"]
150
+ completed_by_plans: ["{plan files whose SUMMARY marks it complete}"]
151
+ verification_status: "passed | gaps_found | missing | orphaned"
152
+ evidence: "{specific evidence or lack thereof}"
103
153
  integration: [...]
104
154
  flows: [...]
105
155
  tech_debt: # Non-critical, deferred
@@ -235,8 +285,13 @@ All requirements met. No critical blockers. Accumulated tech debt needs review.
235
285
  <success_criteria>
236
286
  - [ ] Milestone scope identified
237
287
  - [ ] All phase VERIFICATION.md files read
288
+ - [ ] SUMMARY.md `requirements-completed` frontmatter extracted for each phase
289
+ - [ ] REQUIREMENTS.md traceability table parsed for all milestone REQ-IDs
290
+ - [ ] 3-source cross-reference completed (VERIFICATION + SUMMARY + traceability)
291
+ - [ ] Orphaned requirements detected (in traceability but absent from all VERIFICATIONs)
238
292
  - [ ] Tech debt and deferred gaps aggregated
239
- - [ ] Integration checker spawned for cross-phase wiring
240
- - [ ] v{version}-MILESTONE-AUDIT.md created
293
+ - [ ] Integration checker spawned with milestone requirement IDs
294
+ - [ ] v{version}-MILESTONE-AUDIT.md created with structured requirement gap objects
295
+ - [ ] FAIL gate enforced — any unsatisfied requirement forces gaps_found status
241
296
  - [ ] Results presented with actionable next steps
242
297
  </success_criteria>
@@ -48,6 +48,12 @@ This returns all phases with plan/summary counts and disk status. Use this to ve
48
48
  - All phases complete (all plans have summaries)? Check `disk_status === 'complete'` for each.
49
49
  - `progress_percent` should be 100%.
50
50
 
51
+ **Requirements completion check (REQUIRED before presenting):**
52
+
53
+ Parse REQUIREMENTS.md traceability table:
54
+ - Count total v1 requirements vs checked-off (`[x]`) requirements
55
+ - Identify any non-Complete rows in the traceability table
56
+
51
57
  Present:
52
58
 
53
59
  ```
@@ -60,7 +66,24 @@ Includes:
60
66
  - Phase 4: Polish (1/1 plan complete)
61
67
 
62
68
  Total: {phase_count} phases, {total_plans} plans, all complete
69
+ Requirements: {N}/{M} v1 requirements checked off
70
+ ```
71
+
72
+ **If requirements incomplete** (N < M):
73
+
63
74
  ```
75
+ ⚠ Unchecked Requirements:
76
+
77
+ - [ ] {REQ-ID}: {description} (Phase {X})
78
+ - [ ] {REQ-ID}: {description} (Phase {Y})
79
+ ```
80
+
81
+ MUST present 3 options:
82
+ 1. **Proceed anyway** — mark milestone complete with known gaps
83
+ 2. **Run audit first** — `/gsd:audit-milestone` to assess gap severity
84
+ 3. **Abort** — return to development
85
+
86
+ If user selects "Proceed anyway": note incomplete requirements in MILESTONES.md under `### Known Gaps` with REQ-IDs and descriptions.
64
87
 
65
88
  <config-check>
66
89
 
@@ -669,6 +692,9 @@ Milestone completion is successful when:
669
692
  - [ ] STATE.md updated with fresh project reference
670
693
  - [ ] Git tag created (v[X.Y])
671
694
  - [ ] Milestone commit made (includes archive files and deletion)
695
+ - [ ] Requirements completion checked against REQUIREMENTS.md traceability table
696
+ - [ ] Incomplete requirements surfaced with proceed/audit/abort options
697
+ - [ ] Known gaps recorded in MILESTONES.md if user proceeded with incomplete requirements
672
698
  - [ ] User knows next step (/gsd:new-milestone)
673
699
 
674
700
  </success_criteria>
@@ -123,19 +123,34 @@ Add new phases to current milestone:
123
123
  ...
124
124
  ```
125
125
 
126
- ## 7. Create Phase Directories
126
+ ## 7. Update REQUIREMENTS.md Traceability Table (REQUIRED)
127
+
128
+ For each REQ-ID assigned to a gap closure phase:
129
+ - Update the Phase column to reflect the new gap closure phase
130
+ - Reset Status to `Pending`
131
+
132
+ Reset checked-off requirements the audit found unsatisfied:
133
+ - Change `[x]` → `[ ]` for any requirement marked unsatisfied in the audit
134
+ - Update coverage count at top of REQUIREMENTS.md
135
+
136
+ ```bash
137
+ # Verify traceability table reflects gap closure assignments
138
+ grep -c "Pending" .planning/REQUIREMENTS.md
139
+ ```
140
+
141
+ ## 8. Create Phase Directories
127
142
 
128
143
  ```bash
129
144
  mkdir -p ".planning/phases/{NN}-{name}"
130
145
  ```
131
146
 
132
- ## 8. Commit Roadmap Update
147
+ ## 9. Commit Roadmap and Requirements Update
133
148
 
134
149
  ```bash
135
- node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md
150
+ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md .planning/REQUIREMENTS.md
136
151
  ```
137
152
 
138
- ## 9. Offer Next Steps
153
+ ## 10. Offer Next Steps
139
154
 
140
155
  ```markdown
141
156
  ## ✓ Gap Closure Phases Created
@@ -250,7 +265,10 @@ becomes:
250
265
  - [ ] Gaps grouped into logical phases
251
266
  - [ ] User confirmed phase plan
252
267
  - [ ] ROADMAP.md updated with new phases
268
+ - [ ] REQUIREMENTS.md traceability table updated with gap closure phase assignments
269
+ - [ ] Unsatisfied requirement checkboxes reset (`[x]` → `[ ]`)
270
+ - [ ] Coverage count updated in REQUIREMENTS.md
253
271
  - [ ] Phase directories created
254
- - [ ] Changes committed
272
+ - [ ] Changes committed (includes REQUIREMENTS.md)
255
273
  - [ ] User knows to run `/gsd:plan-phase` next
256
274
  </success_criteria>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-shit-done-cc",
3
- "version": "1.20.2",
3
+ "version": "1.20.3",
4
4
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code, OpenCode and Gemini by TÂCHES.",
5
5
  "bin": {
6
6
  "get-shit-done-cc": "bin/install.js"