@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.
- package/CHANGELOG.md +171 -0
- package/bin/gsd-t-parallel.cjs +64 -13
- package/bin/gsd-t.js +48 -376
- package/bin/journey-coverage.cjs +6 -3
- package/bin/parallel-cli.cjs +13 -1
- package/commands/gsd-t-complete-milestone.md +6 -12
- package/commands/gsd-t-debug.md +47 -533
- package/commands/gsd-t-design-decompose.md +24 -497
- package/commands/gsd-t-doc-ripple.md +23 -139
- package/commands/gsd-t-execute.md +41 -958
- package/commands/gsd-t-feature.md +2 -6
- package/commands/gsd-t-gap-analysis.md +3 -6
- package/commands/gsd-t-help.md +2 -4
- package/commands/gsd-t-impact.md +26 -295
- package/commands/gsd-t-init-scan-setup.md +7 -7
- package/commands/gsd-t-integrate.md +44 -369
- package/commands/gsd-t-milestone.md +25 -124
- package/commands/gsd-t-partition.md +28 -539
- package/commands/gsd-t-plan.md +26 -472
- package/commands/gsd-t-prd.md +25 -311
- package/commands/gsd-t-quick.md +1 -1
- package/commands/gsd-t-resume.md +0 -33
- package/commands/gsd-t-scan.md +45 -652
- package/commands/gsd-t-verify.md +52 -569
- package/commands/gsd-t-wave.md +41 -430
- package/package.json +1 -1
- package/scripts/gsd-t-calibration-hook.js +3 -1
- package/scripts/hooks/pre-commit-journey-coverage +0 -2
- package/scripts/hooks/pre-commit-playwright-gate +0 -2
- package/templates/CLAUDE-global.md +44 -173
- package/templates/CLAUDE-project.md +118 -104
- package/templates/prompts/design-verify-subagent.md +3 -0
- package/templates/prompts/qa-subagent.md +3 -0
- package/templates/prompts/red-team-subagent.md +5 -2
- package/templates/workflows/_lib.js +176 -0
- package/templates/workflows/gsd-t-debug.workflow.js +86 -0
- package/templates/workflows/gsd-t-execute.workflow.js +206 -0
- package/templates/workflows/gsd-t-integrate.workflow.js +71 -0
- package/templates/workflows/gsd-t-phase.workflow.js +94 -0
- package/templates/workflows/gsd-t-quick.workflow.js +72 -0
- package/templates/workflows/gsd-t-scan.workflow.js +711 -0
- package/templates/workflows/gsd-t-verify.workflow.js +348 -0
- package/templates/workflows/gsd-t-wave.workflow.js +43 -0
- package/bin/check-headless-sessions.js +0 -140
- package/bin/context-budget-audit.cjs +0 -447
- package/bin/context-meter-config.cjs +0 -101
- package/bin/context-meter-config.test.cjs +0 -101
- package/bin/event-stream.cjs +0 -205
- package/bin/gsd-t-benchmark-orchestrator.js +0 -437
- package/bin/gsd-t-capture-lint.cjs +0 -440
- package/bin/gsd-t-economics.cjs +0 -315
- package/bin/gsd-t-in-session-usage.cjs +0 -213
- package/bin/gsd-t-orchestrator-config.cjs +0 -161
- package/bin/gsd-t-orchestrator-queue.cjs +0 -180
- package/bin/gsd-t-orchestrator-recover.cjs +0 -231
- package/bin/gsd-t-orchestrator-worker.cjs +0 -219
- package/bin/gsd-t-orchestrator.js +0 -535
- package/bin/gsd-t-parallel-probe.cjs +0 -132
- package/bin/gsd-t-ratelimit-probe-worker.cjs +0 -237
- package/bin/gsd-t-ratelimit-probe.cjs +0 -648
- package/bin/gsd-t-report-tokens.cjs +0 -549
- package/bin/gsd-t-stream-feed-client.cjs +0 -151
- package/bin/gsd-t-token-backfill.cjs +0 -366
- package/bin/gsd-t-token-capture.cjs +0 -321
- package/bin/gsd-t-token-dashboard.cjs +0 -353
- package/bin/gsd-t-token-regenerate-log.cjs +0 -129
- package/bin/gsd-t-tool-attribution.cjs +0 -377
- package/bin/gsd-t-tool-cost.cjs +0 -195
- package/bin/gsd-t-transcript-tee.cjs +0 -246
- package/bin/gsd-t-unattended-heartbeat.cjs +0 -188
- package/bin/gsd-t-unattended-platform.cjs +0 -551
- package/bin/gsd-t-unattended-platform.js +0 -381
- package/bin/gsd-t-unattended-safety.cjs +0 -773
- package/bin/gsd-t-unattended-safety.js +0 -788
- package/bin/gsd-t-unattended.cjs +0 -2109
- package/bin/gsd-t-unattended.js +0 -1367
- package/bin/gsd-t-worker-dispatch.cjs +0 -211
- package/bin/handoff-lock.cjs +0 -249
- package/bin/handoff-lock.js +0 -249
- package/bin/headless-auto-spawn.cjs +0 -711
- package/bin/headless-auto-spawn.js +0 -373
- package/bin/headless-exit-codes.cjs +0 -67
- package/bin/live-activity-report.cjs +0 -615
- package/bin/log-tail.cjs +0 -81
- package/bin/m44-proof-measure.cjs +0 -285
- package/bin/m46-iter-proof.cjs +0 -149
- package/bin/m46-worker-proof.cjs +0 -201
- package/bin/m55-substrate-proof.cjs +0 -134
- package/bin/metrics-rollup.js +0 -200
- package/bin/model-windows.cjs +0 -99
- package/bin/model-windows.test.cjs +0 -75
- package/bin/parallelism-report.cjs +0 -535
- package/bin/runway-estimator.cjs +0 -242
- package/bin/spawn-plan-derive.cjs +0 -163
- package/bin/spawn-plan-status-updater.cjs +0 -292
- package/bin/spawn-plan-writer.cjs +0 -204
- package/bin/supervisor-pid-fingerprint.cjs +0 -126
- package/bin/token-budget.cjs +0 -265
- package/bin/unattended-watch-format.cjs +0 -178
- package/bin/watch-progress.js +0 -155
- package/commands/gsd-t-unattended-stop.md +0 -85
- package/commands/gsd-t-unattended-watch.md +0 -465
- package/commands/gsd-t-unattended.md +0 -476
- package/commands/gsd-t-visualize.md +0 -116
- package/scripts/gsd-t-context-meter.e2e.test.js +0 -364
- package/scripts/gsd-t-context-meter.js +0 -341
- package/scripts/gsd-t-context-meter.test.js +0 -471
- package/scripts/gsd-t-dashboard-server.js +0 -1203
- package/scripts/gsd-t-post-commit-spawn-plan.sh +0 -86
- package/scripts/gsd-t-transcript.html +0 -1821
- package/scripts/hooks/gsd-t-conversation-capture.js +0 -439
- package/scripts/hooks/gsd-t-in-session-usage-hook.js +0 -84
- package/scripts/spawn-plan-fmt-tokens.cjs +0 -80
- 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
|
|
18
|
-
- Re-run
|
|
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
|
|
18
|
-
- Re-run
|
|
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/
|
|
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
|
|
package/commands/gsd-t-help.md
CHANGED
|
@@ -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
|
|
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/
|
|
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)
|
package/commands/gsd-t-impact.md
CHANGED
|
@@ -1,314 +1,45 @@
|
|
|
1
1
|
# GSD-T: Impact — Downstream Effect Analysis
|
|
2
2
|
|
|
3
|
-
You are
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
161
|
-
# Impact Analysis — {date}
|
|
13
|
+
## Step 1: Read the current milestone state
|
|
162
14
|
|
|
163
|
-
|
|
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
|
-
##
|
|
171
|
-
| File | Change Type | Description |
|
|
172
|
-
|------|-------------|-------------|
|
|
173
|
-
| {file} | {create/modify/delete} | {what} |
|
|
17
|
+
## Step 2: Invoke the phase Workflow
|
|
174
18
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
+
The Workflow returns `{ status, artifacts, summary, decisions }`.
|
|
305
34
|
|
|
306
|
-
|
|
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
|
-
|
|
39
|
+
## Document Ripple
|
|
309
40
|
|
|
310
|
-
|
|
41
|
+
The impact agent records findings in the Decision Log and flags any contract or requirement that must change before execution.
|
|
311
42
|
|
|
312
|
-
##
|
|
43
|
+
## Next Up
|
|
313
44
|
|
|
314
|
-
|
|
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
|
|
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.
|
|
107
|
-
2.
|
|
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
|
-
|
|
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**:
|
|
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
|
|