@tekyzinc/gsd-t 3.29.11 → 4.0.14

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 (114) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/bin/gsd-t-parallel.cjs +64 -13
  3. package/bin/gsd-t.js +48 -376
  4. package/bin/journey-coverage.cjs +6 -3
  5. package/bin/parallel-cli.cjs +13 -1
  6. package/commands/gsd-t-complete-milestone.md +6 -12
  7. package/commands/gsd-t-debug.md +47 -533
  8. package/commands/gsd-t-design-decompose.md +24 -497
  9. package/commands/gsd-t-doc-ripple.md +23 -139
  10. package/commands/gsd-t-execute.md +41 -958
  11. package/commands/gsd-t-feature.md +2 -6
  12. package/commands/gsd-t-gap-analysis.md +3 -6
  13. package/commands/gsd-t-help.md +2 -4
  14. package/commands/gsd-t-impact.md +26 -295
  15. package/commands/gsd-t-init-scan-setup.md +7 -7
  16. package/commands/gsd-t-integrate.md +44 -369
  17. package/commands/gsd-t-milestone.md +25 -124
  18. package/commands/gsd-t-partition.md +28 -539
  19. package/commands/gsd-t-plan.md +26 -472
  20. package/commands/gsd-t-prd.md +25 -311
  21. package/commands/gsd-t-quick.md +1 -1
  22. package/commands/gsd-t-resume.md +0 -33
  23. package/commands/gsd-t-scan.md +45 -652
  24. package/commands/gsd-t-verify.md +52 -569
  25. package/commands/gsd-t-wave.md +41 -430
  26. package/package.json +1 -1
  27. package/scripts/gsd-t-calibration-hook.js +3 -1
  28. package/scripts/hooks/pre-commit-journey-coverage +0 -2
  29. package/scripts/hooks/pre-commit-playwright-gate +0 -2
  30. package/templates/CLAUDE-global.md +44 -173
  31. package/templates/CLAUDE-project.md +118 -104
  32. package/templates/prompts/design-verify-subagent.md +3 -0
  33. package/templates/prompts/qa-subagent.md +3 -0
  34. package/templates/prompts/red-team-subagent.md +5 -2
  35. package/templates/workflows/_lib.js +176 -0
  36. package/templates/workflows/gsd-t-debug.workflow.js +86 -0
  37. package/templates/workflows/gsd-t-execute.workflow.js +206 -0
  38. package/templates/workflows/gsd-t-integrate.workflow.js +71 -0
  39. package/templates/workflows/gsd-t-phase.workflow.js +94 -0
  40. package/templates/workflows/gsd-t-quick.workflow.js +72 -0
  41. package/templates/workflows/gsd-t-scan.workflow.js +711 -0
  42. package/templates/workflows/gsd-t-verify.workflow.js +348 -0
  43. package/templates/workflows/gsd-t-wave.workflow.js +43 -0
  44. package/bin/check-headless-sessions.js +0 -140
  45. package/bin/context-budget-audit.cjs +0 -447
  46. package/bin/context-meter-config.cjs +0 -101
  47. package/bin/context-meter-config.test.cjs +0 -101
  48. package/bin/event-stream.cjs +0 -205
  49. package/bin/gsd-t-benchmark-orchestrator.js +0 -437
  50. package/bin/gsd-t-capture-lint.cjs +0 -440
  51. package/bin/gsd-t-economics.cjs +0 -315
  52. package/bin/gsd-t-in-session-usage.cjs +0 -213
  53. package/bin/gsd-t-orchestrator-config.cjs +0 -161
  54. package/bin/gsd-t-orchestrator-queue.cjs +0 -180
  55. package/bin/gsd-t-orchestrator-recover.cjs +0 -231
  56. package/bin/gsd-t-orchestrator-worker.cjs +0 -219
  57. package/bin/gsd-t-orchestrator.js +0 -535
  58. package/bin/gsd-t-parallel-probe.cjs +0 -132
  59. package/bin/gsd-t-ratelimit-probe-worker.cjs +0 -237
  60. package/bin/gsd-t-ratelimit-probe.cjs +0 -648
  61. package/bin/gsd-t-report-tokens.cjs +0 -549
  62. package/bin/gsd-t-stream-feed-client.cjs +0 -151
  63. package/bin/gsd-t-token-backfill.cjs +0 -366
  64. package/bin/gsd-t-token-capture.cjs +0 -321
  65. package/bin/gsd-t-token-dashboard.cjs +0 -353
  66. package/bin/gsd-t-token-regenerate-log.cjs +0 -129
  67. package/bin/gsd-t-tool-attribution.cjs +0 -377
  68. package/bin/gsd-t-tool-cost.cjs +0 -195
  69. package/bin/gsd-t-transcript-tee.cjs +0 -246
  70. package/bin/gsd-t-unattended-heartbeat.cjs +0 -188
  71. package/bin/gsd-t-unattended-platform.cjs +0 -551
  72. package/bin/gsd-t-unattended-platform.js +0 -381
  73. package/bin/gsd-t-unattended-safety.cjs +0 -773
  74. package/bin/gsd-t-unattended-safety.js +0 -788
  75. package/bin/gsd-t-unattended.cjs +0 -2109
  76. package/bin/gsd-t-unattended.js +0 -1367
  77. package/bin/gsd-t-worker-dispatch.cjs +0 -211
  78. package/bin/handoff-lock.cjs +0 -249
  79. package/bin/handoff-lock.js +0 -249
  80. package/bin/headless-auto-spawn.cjs +0 -711
  81. package/bin/headless-auto-spawn.js +0 -373
  82. package/bin/headless-exit-codes.cjs +0 -67
  83. package/bin/live-activity-report.cjs +0 -615
  84. package/bin/log-tail.cjs +0 -81
  85. package/bin/m44-proof-measure.cjs +0 -285
  86. package/bin/m46-iter-proof.cjs +0 -149
  87. package/bin/m46-worker-proof.cjs +0 -201
  88. package/bin/m55-substrate-proof.cjs +0 -134
  89. package/bin/metrics-rollup.js +0 -200
  90. package/bin/model-windows.cjs +0 -99
  91. package/bin/model-windows.test.cjs +0 -75
  92. package/bin/parallelism-report.cjs +0 -535
  93. package/bin/runway-estimator.cjs +0 -242
  94. package/bin/spawn-plan-derive.cjs +0 -163
  95. package/bin/spawn-plan-status-updater.cjs +0 -292
  96. package/bin/spawn-plan-writer.cjs +0 -204
  97. package/bin/supervisor-pid-fingerprint.cjs +0 -126
  98. package/bin/token-budget.cjs +0 -265
  99. package/bin/unattended-watch-format.cjs +0 -178
  100. package/bin/watch-progress.js +0 -155
  101. package/commands/gsd-t-unattended-stop.md +0 -85
  102. package/commands/gsd-t-unattended-watch.md +0 -465
  103. package/commands/gsd-t-unattended.md +0 -476
  104. package/commands/gsd-t-visualize.md +0 -116
  105. package/scripts/gsd-t-context-meter.e2e.test.js +0 -364
  106. package/scripts/gsd-t-context-meter.js +0 -341
  107. package/scripts/gsd-t-context-meter.test.js +0 -471
  108. package/scripts/gsd-t-dashboard-server.js +0 -1203
  109. package/scripts/gsd-t-post-commit-spawn-plan.sh +0 -86
  110. package/scripts/gsd-t-transcript.html +0 -1821
  111. package/scripts/hooks/gsd-t-conversation-capture.js +0 -439
  112. package/scripts/hooks/gsd-t-in-session-usage-hook.js +0 -84
  113. package/scripts/spawn-plan-fmt-tokens.cjs +0 -80
  114. package/templates/hooks/post-commit-spawn-plan.sh +0 -85
@@ -14,12 +14,8 @@ If `.gsd-t/scan/.cache.json` exists:
14
14
  1. Read the cache and check `scannedAt` for each dimension
15
15
  2. Count commits since the scan: `git rev-list --count --after="{scannedAt}" HEAD`
16
16
  3. If **>10 commits since scan** OR **scan is older than 14 days**:
17
- - Log: "Auto-refreshing scan docs (stale by {N} commits / {N} days)..."
18
- - Re-run only the stale dimensions by spawning the relevant scan teammates:
19
- - If `quality.md` stale → spawn quality teammate (model: sonnet)
20
- - If `architecture.md` stale → spawn architecture teammate (model: haiku)
21
- - If `security.md` stale → spawn security teammate (model: sonnet)
22
- - Update `.gsd-t/scan/.cache.json` after refresh
17
+ - Log: "Auto-refreshing the tech-debt register (stale by {N} commits / {N} days)..."
18
+ - Re-run the scan by invoking the volume-scaled scan Workflow (`templates/workflows/gsd-t-scan.workflow.js`, same as `/gsd-t-scan`) — the probe re-slices the codebase and the finders refresh the register. This replaces the retired fixed-dimension teammate refresh.
23
19
  4. If fresh → proceed silently
24
20
 
25
21
  If `.gsd-t/scan/` doesn't exist at all → skip (no scan data to refresh).
@@ -14,14 +14,11 @@ If `.gsd-t/scan/.cache.json` exists:
14
14
  1. Read the cache and check `scannedAt` for each dimension
15
15
  2. Count commits since the scan: `git rev-list --count --after="{scannedAt}" HEAD`
16
16
  3. If **>10 commits since scan** OR **scan is older than 14 days**:
17
- - Log: "Auto-refreshing scan docs (stale by {N} commits / {N} days)..."
18
- - Re-run only the stale dimensions by spawning the relevant scan teammates:
19
- - If `architecture.md` stale → spawn architecture teammate (model: haiku)
20
- - If `quality.md` stale → spawn quality teammate (model: sonnet)
21
- - Update `.gsd-t/scan/.cache.json` after refresh
17
+ - Log: "Auto-refreshing the tech-debt register (stale by {N} commits / {N} days)..."
18
+ - Re-run the scan by invoking the volume-scaled scan Workflow (`templates/workflows/gsd-t-scan.workflow.js`, same as `/gsd-t-scan`) — the probe re-slices the codebase and the finders refresh the register. This replaces the retired fixed-dimension teammate refresh.
22
19
  4. If fresh → proceed silently
23
20
 
24
- If `.gsd-t/scan/` doesn't exist at all → skip (no scan data to refresh).
21
+ If no prior `.gsd-t/techdebt.md` exists at all → skip (no scan data to refresh).
25
22
 
26
23
  ## Step 1: Load Context
27
24
 
@@ -196,9 +196,9 @@ Use these when user asks for help on a specific command:
196
196
  - **Use when**: Adding significant new functionality to existing project
197
197
 
198
198
  ### scan
199
- - **Summary**: Deep codebase analysis producing architecture docs and techdebt.md
199
+ - **Summary**: Deep codebase analysis producing techdebt.md volume-scaled native Workflow (`templates/workflows/gsd-t-scan.workflow.js`): a probe carves the codebase into per-area slices, one deep finder per slice (enumerate-don't-sample), a single verify pass drops false positives, synthesis dedups/re-ranks into the register. Finder count scales with codebase volume (1-3 slices tiny → 15-40 large), not a fixed 5.
200
200
  - **Auto-invoked**: No
201
- - **Creates**: `.gsd-t/scan/`, `.gsd-t/techdebt.md`
201
+ - **Creates**: `.gsd-t/techdebt.md` (prior archived to `.gsd-t/techdebt_YYYY-MM-DD.md`), the `.gsd-t/scan/*.md` dimension files, the full living-doc set (`docs/architecture.md`, `docs/workflows.md`, `docs/infrastructure.md`, `docs/requirements.md`, `README.md` — merged not overwritten, via the M67 document phase), and the HTML scan report
202
202
  - **Use when**: Understanding an existing codebase or auditing technical debt
203
203
 
204
204
  ### gap-analysis
@@ -318,8 +318,6 @@ Use these when user asks for help on a specific command:
318
318
  - **Reads**: `.gsd-t/dashboard.pid`, `.gsd-t/events/*.jsonl` (via server)
319
319
  - **Creates**: `.gsd-t/dashboard.pid` (when starting server)
320
320
  - **Use when**: Monitoring live agent activity during execute/wave phases; run `gsd-t-visualize stop` to stop the server
321
- - **Spawn-plan panel (M44 D8, v3.18.10+)**: the transcript viewer at `/transcript/{spawnId}` now includes a right-side two-layer task panel (Layer 1 project · Layer 2 active spawn). Status icons `☐` pending, `◐` in_progress, `✓` done. Done tasks show a right-aligned token cell `in=12.5k out=1.7k $0.42` (or `—` when attribution unavailable). Token attribution is sourced from `.gsd-t/token-log.md` via the post-commit hook `scripts/gsd-t-post-commit-spawn-plan.sh`. Endpoints: `GET /api/spawn-plans` + SSE `/api/spawn-plans/stream`. Contract: `.gsd-t/contracts/spawn-plan-contract.md` v1.0.0.
322
- - **Parallelism panel (M44 D9, v3.19.0+)**: below the spawn-plan panel, the transcript viewer shows `activeWorkers`, `readyTasks`, `parallelism_factor`, oldest-spawn age, gate-decision tallies (dep/disjoint/economics), a color-state border (green/yellow/red/dimmed), a `📄 Full Report` button that downloads a post-mortem markdown, and a `Stop Supervisor` button. Polls `GET /api/parallelism` every 5s (5s server-side cache). Endpoints: `GET /api/parallelism`, `GET /api/parallelism/report?wave=N`, `POST /api/unattended-stop`. Pure reader — zero added LLM token cost. Contract: `.gsd-t/contracts/parallelism-report-contract.md` v1.0.0.
323
321
 
324
322
  ### metrics
325
323
  - **Summary**: View task telemetry, process ELO, signal distribution, domain health, and cross-project comparison (with `--cross-project` flag)
@@ -1,314 +1,45 @@
1
1
  # GSD-T: Impact — Downstream Effect Analysis
2
2
 
3
- You are analyzing the downstream effects of planned changes before execution. Your job is to identify what might break, what needs updating, and what risks exist.
3
+ You are the lead agent. Run the impact phase by invoking the generic upper-stage Workflow at `templates/workflows/gsd-t-phase.workflow.js` with `phase: "impact"`. This phase is read-only it analyzes, it does not implement.
4
4
 
5
- This command is:
6
- - **Auto-invoked** between plan and execute phases in `/gsd-t-wave`
7
- - **Standalone** when user wants to evaluate potential changes
5
+ ## What this command does
8
6
 
9
- ## Step 1: Load Context
10
-
11
- Read:
12
- 1. `CLAUDE.md` — project conventions
13
- 2. `.gsd-t/progress.md` — current state
14
- 3. `.gsd-t/contracts/` — all contracts
15
- 4. `.gsd-t/domains/{current}/tasks.md` — planned changes
16
-
17
- If run standalone, ask: "What changes are you considering?"
18
-
19
- <!-- M56-D3: brief wire-in -->
20
- **M56 Context-Brief (surfaces git diff + integration-points excerpt without re-walking the repo):**
21
-
22
- ```bash
23
- SPAWN_ID="impact-${MILESTONE:-default}-$(date -u +%Y%m%dT%H%M%SZ)"
24
- gsd-t brief --kind impact --spawn-id "${SPAWN_ID}" --out ".gsd-t/briefs/${SPAWN_ID}.json" || true
25
- export BRIEF_PATH=".gsd-t/briefs/${SPAWN_ID}.json"
26
- ```
27
-
28
- The `impact` brief includes `gitDiffSummary`, `changedFiles[]`, and the milestone's `integrationPointsExcerpt` so downstream workers can scan blast radius without re-reading the contract dir.
29
- <!-- /M56-D3: brief wire-in -->
30
-
31
- ## Step 2: Identify Changed Files
32
-
33
- From the plan or user description, list:
34
- - Files to be created
35
- - Files to be modified
36
- - Files to be deleted
37
- - Functions/classes/endpoints being changed
38
-
39
- ## Step 2.5: Graph-Enhanced Analysis (if available)
40
-
41
- Check if a graph index exists: read `.gsd-t/graph/meta.json`. If it exists:
42
-
43
- ```
44
- For each changed file/function, query the graph:
45
- 1. query('getCallers', { entity: '{function_name}' }) → all direct callers
46
- 2. query('getTransitiveCallers', { entity: '{name}', depth: 5 }) → full caller chain
47
- 3. query('getDomainOwner', { entity: '{name}' }) → which domain owns this
48
- 4. query('getContractFor', { entity: '{name}' }) → which contract it implements
49
- 5. query('getSurfaceConsumers', { entity: '{name}' }) → which surfaces consume it
50
- 6. query('getDomainBoundaryViolations', {}) → cross-domain access issues
51
- ```
52
-
53
- Use graph results to build a **complete blast radius** that includes transitive callers, contract violations, and cross-surface impact. This replaces the grep-based search in Step 3A when available but grep remains the fallback when no graph exists.
54
-
55
- ## Step 3: Trace Dependencies
56
-
57
- For each changed file/function:
58
-
59
- ### A) Who Calls This?
60
-
61
- **If graph available** (Step 2.5): use graph results — they include transitive callers that grep misses.
62
-
63
- **If no graph** (fallback):
64
- ```bash
65
- # Find all imports/requires of this module
66
- grep -r "import.*{module}" src/
67
- grep -r "from.*{module}" src/
68
- grep -r "require.*{module}" src/
69
- ```
70
-
71
- ### B) Who Does This Call?
72
- - List dependencies this code relies on
73
- - Note if any of those are also changing
74
-
75
- ### C) Contract Consumers
76
- - Check `.gsd-t/contracts/api-contract.md` — does this change an endpoint?
77
- - Check `.gsd-t/contracts/schema-contract.md` — does this change data shape?
78
- - Check `.gsd-t/contracts/component-contract.md` — does this change props/interface?
79
-
80
- ### D) New Consumer Analysis
81
-
82
- **Trigger**: Run this section when the planned change adds a new client surface (web app, mobile app, CLI, external API, admin panel, etc.) that will consume the existing backend.
83
-
84
- If no new consumer surface is being added, skip this section.
85
-
86
- **Step 1 — List what the new consumer needs:**
87
7
  ```
88
- Operations the new consumer requires:
89
- - {operation-name}: {brief description}
90
- - {operation-name}: {brief description}
8
+ preflight brief (kind=impact) → impact agent (opus, with phase protocol)
91
9
  ```
92
10
 
93
- **Step 2 Compare against existing backend operations:**
94
- ```bash
95
- # Search for existing implementations of each needed operation
96
- grep -r "{operation-name}" src/
97
- grep -r "{operation-name}" commands/
98
- ```
99
-
100
- **Step 3 — Classify each needed operation:**
101
-
102
- | Operation | Classification | Action |
103
- |-----------|---------------|--------|
104
- | {op} | REUSE — identical operation exists | Call existing endpoint/function |
105
- | {op} | EXTEND — similar operation exists, needs a variant | Add param or thin adapter |
106
- | {op} | DUPLICATE — new endpoint would replicate existing logic | 🔴 Must route through shared layer |
107
- | {op} | NEW — no equivalent exists | Build new, consider SharedCore placement |
108
-
109
- **DUPLICATE items become 🔴 Breaking Changes** in Step 4 — they block execution until the shared layer is designed. Add them to the impact report under "Breaking Changes" with:
110
- - Required Action: "Extract `{operation}` to shared-core domain; {new-consumer} and {existing-consumer} both call it from there."
111
-
112
- ### E) Test Coverage
113
- - Which tests cover this code?
114
- - Will they still pass after changes?
115
- - Are there tests that assert current behavior that will become wrong?
116
-
117
- ## Step 4: Classify Impacts
118
-
119
- Categorize each finding:
120
-
121
- ### 🔴 Breaking Changes
122
- Changes that WILL break something if not addressed:
123
- - API signature changes with existing consumers
124
- - Database schema changes with existing queries
125
- - Removed functions still being called
126
- - Changed return types
127
-
128
- ### 🟡 Requires Updates
129
- Changes that need coordinated updates:
130
- - Tests asserting old behavior
131
- - Documentation references
132
- - Related UI components
133
- - Dependent domain tasks
134
-
135
- ### 🟢 Safe Changes
136
- Changes with no downstream impact:
137
- - New files with no consumers yet
138
- - Internal refactors with same interface
139
- - Additive changes (new optional params)
140
-
141
- ### ⚪ Unknown
142
- Can't determine impact — needs investigation:
143
- - Dynamic imports
144
- - Reflection-based code
145
- - External integrations
146
-
147
- ## Step 5: Check Contract Compliance
148
-
149
- For each contract:
150
- - Will planned changes violate the contract?
151
- - Does the contract need to be updated first?
152
- - Are there consumers not yet updated for contract changes?
153
-
154
- Flag: "Contract violation detected — {contract} specifies {X}, but plan changes to {Y}"
155
-
156
- ## Step 6: Produce Impact Report
157
-
158
- Create/update `.gsd-t/impact-report.md`:
11
+ The agent analyzes the downstream effects of proposed changes: what might break, what needs updating, which consumers are affected, and what migration paths exist. No code is written.
159
12
 
160
- ```markdown
161
- # Impact Analysis — {date}
13
+ ## Step 1: Read the current milestone state
162
14
 
163
- ## Summary
164
- - Breaking changes: {N}
165
- - Requires updates: {N}
166
- - Safe changes: {N}
167
- - Unknown: {N}
168
- - **Recommendation**: {PROCEED | PROCEED WITH CAUTION | BLOCK}
15
+ Read `.gsd-t/progress.md`, the relevant domain `tasks.md`, and `docs/architecture.md`/`.gsd-t/contracts/` for the surfaces in scope.
169
16
 
170
- ## Planned Changes
171
- | File | Change Type | Description |
172
- |------|-------------|-------------|
173
- | {file} | {create/modify/delete} | {what} |
17
+ ## Step 2: Invoke the phase Workflow
174
18
 
175
- ---
176
-
177
- ## 🔴 Breaking Changes
178
-
179
- ### IMP-001: {title}
180
- - **Change**: {what's changing}
181
- - **Affected**: {files/functions/consumers}
182
- - **Impact**: {what will break}
183
- - **Required Action**: {what must be done}
184
- - **Blocking**: YES — cannot proceed without addressing
185
-
186
- ---
187
-
188
- ## 🟡 Requires Updates
189
-
190
- ### IMP-010: {title}
191
- - **Change**: {what's changing}
192
- - **Affected**: {files/tests/docs}
193
- - **Action**: {update X to reflect Y}
194
- - **Blocking**: NO — can be done during or after execution
195
-
196
- ---
197
-
198
- ## 🟢 Safe Changes
199
-
200
- - {file}: {change} — no downstream impact
201
- - {file}: {change} — additive only
202
-
203
- ---
204
-
205
- ## ⚪ Unknown Impact
206
-
207
- ### IMP-020: {title}
208
- - **Change**: {what}
209
- - **Uncertainty**: {why we can't determine impact}
210
- - **Recommendation**: {manual review / test thoroughly / ask user}
211
-
212
- ---
213
-
214
- ## Contract Status
215
-
216
- | Contract | Status | Notes |
217
- |----------|--------|-------|
218
- | api-contract.md | {OK / VIOLATION / UPDATE NEEDED} | {details} |
219
- | schema-contract.md | {OK / VIOLATION / UPDATE NEEDED} | {details} |
220
- | component-contract.md | {OK / VIOLATION / UPDATE NEEDED} | {details} |
221
-
222
- ---
223
-
224
- ## Test Impact
225
-
226
- | Test File | Status | Action Needed |
227
- |-----------|--------|---------------|
228
- | {test} | {WILL PASS / WILL FAIL / NEEDS UPDATE} | {action} |
229
-
230
- ---
231
-
232
- ## Recommended Execution Order
233
-
234
- 1. {First, update X because...}
235
- 2. {Then, modify Y...}
236
- 3. {Finally, Z...}
237
-
238
- ## Generated Tasks
239
-
240
- If breaking changes require pre-work, add to domain tasks:
241
- - [ ] IMP-001: {remediation task}
242
- - [ ] IMP-002: {remediation task}
243
- ```
244
-
245
- ## Step 7: Document Ripple
246
-
247
- After producing the impact report, update affected documentation:
248
-
249
- ### Always update:
250
- 1. **`.gsd-t/progress.md`** — Log the impact analysis in the Decision Log with date and key findings
251
-
252
- ### Check if affected:
253
- 2. **`docs/architecture.md`** — If the analysis revealed architectural concerns or proposed changes, document them
254
- 3. **`docs/requirements.md`** — If the analysis found requirements that would be affected by the planned changes, note the impact
255
- 4. **`.gsd-t/contracts/`** — If contract violations or needed updates were found, flag them clearly in the contracts (mark as "PENDING UPDATE")
256
- 5. **`.gsd-t/techdebt.md`** — If the analysis uncovered new debt or risk areas, add them
257
-
258
- ### Skip what's not affected.
259
-
260
- ## Step 8: Test Verification
261
-
262
- Validate the test landscape before recommending proceed/block:
263
-
264
- 1. **Run existing tests**: Execute the full test suite to establish current state
265
- 2. **Verify passing**: Confirm what passes today — any pre-existing failures should be noted in the impact report
266
- 3. **Map test impact**: For each planned change in Step 2, identify which tests will need updating — include this in the "Test Impact" section of the report
267
-
268
- ## Step 9: Decision Gate
269
-
270
- ### If PROCEED:
271
- "✅ Impact analysis complete. No blocking issues found. Ready for execution."
272
- - Continue to execute phase (if auto-invoked)
273
- - Or report and exit (if standalone)
274
-
275
- ### If PROCEED WITH CAUTION:
276
- "⚠️ Impact analysis found {N} items requiring attention:"
277
- - List the yellow items
278
-
279
- **Level 3 (Full Auto)**: Log the caution items and auto-advance to execute. Do NOT wait for user input.
280
-
281
- **Level 1–2**: "These can be addressed during execution. Proceed?" Wait for user confirmation. If user declines, pause for remediation.
282
-
283
- ### If BLOCK:
284
- "🛑 Impact analysis found breaking changes that must be addressed first:"
285
- - List the red items
286
- - Generate remediation tasks
287
- - Add tasks to current domain's task list
288
- - "Run `/gsd-t-execute` to address these first, then re-run impact analysis."
289
- - Do NOT proceed to execute phase
290
-
291
- ## Standalone Mode
292
-
293
- When run independently (not as part of wave):
294
-
295
- ```
296
- /gsd-t-impact "considering adding user roles to the auth system"
19
+ ```js
20
+ {
21
+ scriptPath: "templates/workflows/gsd-t-phase.workflow.js",
22
+ args: {
23
+ phase: "impact",
24
+ milestone: "M{NN}",
25
+ projectDir: ".",
26
+ userInput: "$ARGUMENTS"
27
+ }
28
+ }
297
29
  ```
298
30
 
299
- 1. Ask clarifying questions about the change
300
- 2. Run full analysis
301
- 3. Produce report
302
- 4. Do NOT auto-proceed — just inform
31
+ ## Step 3: Interpret the result
303
32
 
304
- ### Autonomy Behavior
33
+ The Workflow returns `{ status, artifacts, summary, decisions }`.
305
34
 
306
- **Level 3 (Full Auto)**: If PROCEED or PROCEED WITH CAUTION, log findings and auto-advance to execute phase. If BLOCK, stop and report breaking changes to user do NOT auto-advance. When run standalone, always report and exit without auto-proceeding.
35
+ - `status === "complete"`: blast radius identified; breaking changes and migration paths listed in `summary`/`decisions`. Auto-advance to `/gsd-t-execute`.
36
+ - `status === "blocked"`: the analysis surfaced a decision the user must make (e.g. an unavoidable breaking change). Surface it.
37
+ - `status === "failed"`: read `summary`.
307
38
 
308
- **Level 1–2**: Present the full impact report. Wait for user confirmation before proceeding (PROCEED) or pause for remediation (BLOCK). For PROCEED WITH CAUTION, ask "These can be addressed during execution. Proceed?"
39
+ ## Document Ripple
309
40
 
310
- $ARGUMENTS
41
+ The impact agent records findings in the Decision Log and flags any contract or requirement that must change before execution.
311
42
 
312
- ## Auto-Clear
43
+ ## Next Up
313
44
 
314
- All work is committed to project files. Execute `/clear` to free the context window for the next command.
45
+ `/gsd-t-execute` run domain tasks with the impact findings in hand.
@@ -101,16 +101,16 @@ If the project has source code, graph indexing (`.gsd-t/graph/`) will run as par
101
101
 
102
102
  ## Step 4: Deep Codebase Scan (gsd-t-scan)
103
103
 
104
- Execute the full scan workflow (same as `/gsd-t-scan`):
104
+ Execute the full scan by invoking the volume-scaled scan Workflow (same as `/gsd-t-scan` — `templates/workflows/gsd-t-scan.workflow.js`):
105
105
 
106
- 1. Scan across all dimensions: architecture, business rules, security, quality, contracts
107
- 2. Build `.gsd-t/techdebt.md` register
108
- 3. Cross-populate findings into living documents (docs/architecture.md, docs/workflows.md, docs/infrastructure.md, docs/requirements.md)
109
- 4. Update README.md with discovered tech stack and setup info
106
+ 1. The volume-probe slices the codebase by area (scaling with volume, not a fixed dimension set); per-slice deep finders enumerate; a single verify pass drops false positives.
107
+ 2. Synthesis builds the `.gsd-t/techdebt.md` register and the `.gsd-t/scan/*.md` analysis files.
108
+ 3. Cross-populate findings into living documents (docs/architecture.md, docs/workflows.md, docs/infrastructure.md, docs/requirements.md) from the register + analysis files.
109
+ 4. Update README.md with discovered tech stack and setup info.
110
110
 
111
- Always use team mode for the scan unless the codebase is trivially small (< 5 files) or teams are explicitly disabled.
111
+ The Workflow's fan-out scales with codebase volume automatically no team-mode toggle.
112
112
 
113
- **If `.gsd-t/techdebt.md` already exists**: Append new findings, don't overwrite.
113
+ **If `.gsd-t/techdebt.md` already exists**: the Workflow archives it to `.gsd-t/techdebt_YYYY-MM-DD.md` and continues TD numbering.
114
114
 
115
115
  ## Step 5: Generate Project CLAUDE.md (gsd-t-setup)
116
116