@tekyzinc/gsd-t 3.12.12 → 3.12.13

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 (53) hide show
  1. package/CHANGELOG.md +73 -26
  2. package/README.md +76 -76
  3. package/bin/design-orchestrator.js +1 -1
  4. package/bin/gsd-t-unattended.cjs +1 -1
  5. package/bin/gsd-t-unattended.js +1 -1
  6. package/bin/gsd-t.js +82 -10
  7. package/commands/gsd-t-backlog-promote.md +6 -6
  8. package/commands/gsd-t-complete-milestone.md +7 -7
  9. package/commands/gsd-t-design-audit.md +3 -3
  10. package/commands/gsd-t-design-build.md +1 -1
  11. package/commands/gsd-t-design-decompose.md +4 -4
  12. package/commands/gsd-t-execute.md +1 -1
  13. package/commands/gsd-t-feature.md +3 -3
  14. package/commands/gsd-t-gap-analysis.md +3 -3
  15. package/commands/gsd-t-health.md +3 -3
  16. package/commands/gsd-t-help.md +10 -10
  17. package/commands/gsd-t-impact.md +3 -3
  18. package/commands/gsd-t-init-scan-setup.md +5 -5
  19. package/commands/gsd-t-init.md +4 -4
  20. package/commands/gsd-t-log.md +1 -1
  21. package/commands/gsd-t-milestone.md +2 -2
  22. package/commands/gsd-t-pause.md +2 -2
  23. package/commands/gsd-t-prd.md +2 -2
  24. package/commands/gsd-t-project.md +1 -1
  25. package/commands/gsd-t-resume.md +4 -4
  26. package/commands/gsd-t-scan.md +3 -3
  27. package/commands/gsd-t-setup.md +2 -2
  28. package/commands/gsd-t-test-sync.md +1 -1
  29. package/commands/gsd-t-unattended-watch.md +5 -5
  30. package/commands/gsd-t-unattended.md +9 -9
  31. package/commands/gsd-t-wave.md +4 -4
  32. package/commands/gsd.md +17 -17
  33. package/docs/GSD-T-README.md +68 -68
  34. package/docs/architecture.md +8 -8
  35. package/docs/context-budget-recovery-plan.md +2 -2
  36. package/docs/infrastructure.md +7 -7
  37. package/docs/methodology.md +1 -1
  38. package/docs/neo4j-setup.md +2 -2
  39. package/docs/prd-gsd2-hybrid.md +1 -1
  40. package/docs/prd-harness-evolution.md +1 -1
  41. package/docs/requirements.md +2 -2
  42. package/docs/unattended-config.md +1 -1
  43. package/docs/unattended-windows-caveats.md +1 -1
  44. package/docs/workflows.md +1 -1
  45. package/package.json +1 -1
  46. package/scripts/context-meter/threshold.test.js +2 -2
  47. package/scripts/gsd-t-auto-route.js +1 -1
  48. package/scripts/gsd-t-context-meter.e2e.test.js +1 -1
  49. package/scripts/gsd-t-context-meter.test.js +1 -1
  50. package/scripts/gsd-t-update-check.js +1 -1
  51. package/templates/CLAUDE-global.md +18 -163
  52. package/templates/stacks/_markdown.md +32 -0
  53. package/templates/stacks/design-to-code.md +1 -1
@@ -192,7 +192,7 @@ Options:
192
192
  [2] web-app — "User-facing app: accessible, performant, visually consistent. UX is the product."
193
193
  [3] cli — "Developer CLI: fast, predictable, clear output. Error messages explain what went wrong and how to fix it."
194
194
  [4] custom — Write your own 1–3 sentences
195
- [5] skip — No Quality North Star (can add later via /user:gsd-t-setup)
195
+ [5] skip — No Quality North Star (can add later via /gsd-t-setup)
196
196
  ```
197
197
 
198
198
  If the user picks 1–3, use the corresponding preset text from the table below.
@@ -240,7 +240,7 @@ Would you like to generate a design brief at .gsd-t/contracts/design-brief.md?
240
240
  This gives subagents a consistent visual language reference (colors, typography, spacing, patterns).
241
241
 
242
242
  [1] Yes — generate now (sources: Tailwind config if exists, then project defaults)
243
- [2] No — skip for now (can generate later by re-running /user:gsd-t-setup)
243
+ [2] No — skip for now (can generate later by re-running /gsd-t-setup)
244
244
  ```
245
245
 
246
246
  If user picks 1: generate `.gsd-t/contracts/design-brief.md` using the format defined in `.gsd-t/contracts/design-brief-contract.md` (or the standard format):
@@ -322,7 +322,7 @@ Full sync:
322
322
 
323
323
  ### Standalone Mode:
324
324
  ```
325
- /user:gsd-t-test-sync
325
+ /gsd-t-test-sync
326
326
  ```
327
327
  1. Full analysis of entire codebase
328
328
  2. Comprehensive report
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Model**: haiku (polling a state file is mechanical — no reasoning needed)
4
4
 
5
- You are running one tick of the unattended supervisor watch loop. This command is **stateless**: every firing re-reads `.gsd-t/.unattended/supervisor.pid` + `state.json` + `run.log` from disk and makes a fresh decision. There is no in-memory state between ticks, and a `/clear` followed by `/user:gsd-t-resume` during a live unattended run is a no-op.
5
+ You are running one tick of the unattended supervisor watch loop. This command is **stateless**: every firing re-reads `.gsd-t/.unattended/supervisor.pid` + `state.json` + `run.log` from disk and makes a fresh decision. There is no in-memory state between ticks, and a `/clear` followed by `/gsd-t-resume` during a live unattended run is a no-op.
6
6
 
7
7
  The watch loop is the user's visibility surface into the running supervisor. It fires every 270 seconds (inside the 5-minute prompt-cache TTL) and either:
8
8
  1. Renders a compact status block + reschedules itself, OR
@@ -245,7 +245,7 @@ The supervisor process is gone but it did not remove its PID file — this is a
245
245
 
246
246
  Recovery: inspect .gsd-t/.unattended/run.log and .gsd-t/.unattended/state.json.
247
247
  Remove the stale PID file with: rm .gsd-t/.unattended/supervisor.pid
248
- Then relaunch with: /user:gsd-t-unattended
248
+ Then relaunch with: /gsd-t-unattended
249
249
  ```
250
250
 
251
251
  **STOP** — do NOT reschedule. End the turn.
@@ -296,7 +296,7 @@ The supervisor is still alive but has transitioned to a terminal status on its l
296
296
  Total elapsed: {Hh Mm}
297
297
  Log: {LOG_PATH}
298
298
 
299
- Stop sentinel was honored between worker iterations. Relaunch with /user:gsd-t-unattended.
299
+ Stop sentinel was honored between worker iterations. Relaunch with /gsd-t-unattended.
300
300
  ```
301
301
 
302
302
  **STOP** — do NOT reschedule. End the turn.
@@ -321,7 +321,7 @@ Format rules:
321
321
  📋 Tasks: {TASKS_DONE}/{TASKS_TOTAL} [{progress bar}] · elapsed {Hh Mm}
322
322
  🔧 {DOMAIN_SUMMARY or "No domains yet (pre-partition)"}
323
323
  ⏱ Iter {ITER}/{MAX_ITER} · last tick {tickAge} · last exit {LAST_EXIT} ({durationSec}s)
324
- ⏰ Next tick in 270s · Stop: /user:gsd-t-unattended-stop
324
+ ⏰ Next tick in 270s · Stop: /gsd-t-unattended-stop
325
325
  ```
326
326
 
327
327
  Progress bar rendering (8 chars wide):
@@ -392,7 +392,7 @@ After the tool call, end the turn. Do NOT output a "Next Up" hint, do NOT contin
392
392
  ## Notes
393
393
 
394
394
  - **Stateless**: every tick re-reads state from disk. No memory between firings.
395
- - **Terminal = STOP**: any terminal branch (3, 4, 5) ends the loop. The user relaunches via `/user:gsd-t-unattended` if needed.
395
+ - **Terminal = STOP**: any terminal branch (3, 4, 5) ends the loop. The user relaunches via `/gsd-t-unattended` if needed.
396
396
  - **Never spawn subagents**: this is a pure polling command — no Task, no TeamCreate, no observability logging block.
397
397
  - **No branch guard, no pre-commit gate, no doc ripple**: this command does not modify any files.
398
398
  - **Stale-tick tolerance**: if `lastTick` is >540s old but PID is still alive, warn soft (`⚠️ stale`) but still reschedule — the supervisor may be mid-worker.
@@ -16,7 +16,7 @@ Run via Bash:
16
16
 
17
17
  ```bash
18
18
  if [ ! -f ".gsd-t/progress.md" ]; then
19
- echo "ERROR: .gsd-t/progress.md not found — not a GSD-T project. Run /user:gsd-t-init first."
19
+ echo "ERROR: .gsd-t/progress.md not found — not a GSD-T project. Run /gsd-t-init first."
20
20
  exit 1
21
21
  fi
22
22
  ```
@@ -61,10 +61,10 @@ If `PID_RUNNING=true`, **STOP** and print:
61
61
  ```
62
62
  🔴 Unattended supervisor is already running (PID {PID}).
63
63
 
64
- Use /user:gsd-t-unattended-stop to request a clean halt, then wait for the
64
+ Use /gsd-t-unattended-stop to request a clean halt, then wait for the
65
65
  watch loop to confirm it has stopped before relaunching.
66
66
 
67
- To just watch the current run: /user:gsd-t-unattended-watch
67
+ To just watch the current run: /gsd-t-unattended-watch
68
68
  ```
69
69
 
70
70
  Do NOT spawn a second supervisor. End the turn.
@@ -137,7 +137,7 @@ The `/gsd-t-resume` worker already knows how to chain through phases automatical
137
137
  ```
138
138
  ❌ No active milestone found and none identifiable from context.
139
139
 
140
- Specify one explicitly: /user:gsd-t-unattended --milestone=M1
140
+ Specify one explicitly: /gsd-t-unattended --milestone=M1
141
141
  ```
142
142
  - **STOP.** Do NOT spawn.
143
143
 
@@ -230,7 +230,7 @@ If `PREFLIGHT=fail`, **STOP** and print:
230
230
  • {name}
231
231
  Install: {install}
232
232
 
233
- Install the missing software and retry: /user:gsd-t-unattended
233
+ Install the missing software and retry: /gsd-t-unattended
234
234
  ```
235
235
 
236
236
  End the turn. Do NOT spawn.
@@ -393,7 +393,7 @@ If `LIVENESS=dead`, the supervisor crashed at startup. Print diagnostics and **S
393
393
  • Protected branch or dirty worktree rejected by safety rails
394
394
  • Permissions error on .gsd-t/.unattended/ directory
395
395
 
396
- Fix the issue above and retry: /user:gsd-t-unattended
396
+ Fix the issue above and retry: /gsd-t-unattended
397
397
  ```
398
398
 
399
399
  End the turn without scheduling a watch tick.
@@ -415,8 +415,8 @@ Print the launch confirmation block:
415
415
  Watch: ScheduleWakeup every 270s
416
416
 
417
417
  The supervisor is running detached — it survives /clear and terminal close.
418
- Stop gracefully: /user:gsd-t-unattended-stop
419
- Watch manually: /user:gsd-t-unattended-watch
418
+ Stop gracefully: /gsd-t-unattended-stop
419
+ Watch manually: /gsd-t-unattended-watch
420
420
  ```
421
421
 
422
422
  ## Step 5: Schedule the First Watch Tick
@@ -446,6 +446,6 @@ After the tool call, end the turn. The in-session watch loop takes over from her
446
446
  - **Platform helper**: uses `spawnSupervisor` from `bin/gsd-t-unattended-platform.cjs` — never hand-rolls `child_process.spawn` directly. This handles macOS/Linux/Windows differences.
447
447
  - **Dry-run**: `--dry-run` prints the would-be invocation without spawning. Useful for validating flags before a long overnight run.
448
448
  - **No doc ripple, no pre-commit gate**: this command spawns a background process; it does not modify any source files or contracts.
449
- - **watch command is stateless**: after this command returns, every `/user:gsd-t-unattended-watch` tick re-reads state from disk. There is no in-memory state to preserve.
449
+ - **watch command is stateless**: after this command returns, every `/gsd-t-unattended-watch` tick re-reads state from disk. There is no in-memory state to preserve.
450
450
 
451
451
  $ARGUMENTS
@@ -49,7 +49,7 @@ After reading progress.md, verify it contains the required fields before proceed
49
49
  - **Domains table**: A `| Domain |` table with at least one row
50
50
 
51
51
  If ANY of these are missing or malformed, STOP and report:
52
- "Wave cannot proceed — progress.md is missing required fields: {list}. Run `/user:gsd-t-status` to inspect, or `/user:gsd-t-init` to repair."
52
+ "Wave cannot proceed — progress.md is missing required fields: {list}. Run `/gsd-t-status` to inspect, or `/gsd-t-init` to repair."
53
53
  Do NOT attempt to fix progress.md yourself — that risks data loss.
54
54
 
55
55
  ## Step 2: Determine Resume Point
@@ -304,8 +304,8 @@ Summary:
304
304
 
305
305
  Next steps:
306
306
  - Push tag: git push origin milestone/{name}
307
- - Start next: /user:gsd-t-milestone "{next}"
308
- - View roadmap: /user:gsd-t-status
307
+ - Start next: /gsd-t-milestone "{next}"
308
+ - View roadmap: /gsd-t-status
309
309
  ═══════════════════════════════════════════════════════════════════════════════
310
310
  ```
311
311
 
@@ -313,7 +313,7 @@ Next steps:
313
313
 
314
314
  If the user interrupts or a phase agent fails:
315
315
  1. The current phase agent saves its own state to `.gsd-t/progress.md`
316
- 2. Report: "Paused at {phase}. Run `/user:gsd-t-resume` to continue."
316
+ 2. Report: "Paused at {phase}. Run `/gsd-t-resume` to continue."
317
317
  3. Resume will pick up from the last completed phase
318
318
 
319
319
  ## Error Recovery
package/commands/gsd.md CHANGED
@@ -28,7 +28,7 @@ Before semantic evaluation, determine if this is a **continuation** of an alread
28
28
 
29
29
  For non-continuation messages, decide whether the request is **conversational** (user is thinking, exploring, or articulating — no command spawn) or **workflow** (user wants work done — route to a GSD-T command via Step 2).
30
30
 
31
- This step replaces the retired `/user:gsd-t-prompt`, `/user:gsd-t-brainstorm`, and `/user:gsd-t-discuss` commands, whose use cases the router now handles inline.
31
+ This step replaces the retired `/gsd-t-prompt`, `/gsd-t-brainstorm`, and `/gsd-t-discuss` commands, whose use cases the router now handles inline.
32
32
 
33
33
  ### Conversational triggers (respond inline, NO command spawn):
34
34
 
@@ -74,7 +74,7 @@ Read the **Command Summaries** section of `commands/gsd-t-help.md` (or the in-me
74
74
  - **1 match** → Route immediately
75
75
  - **2+ matches** → Pick the best fit based on scope and context. Show the runner-up:
76
76
  ```
77
- → Routing to /user:gsd-t-{command}: {reason}
77
+ → Routing to /gsd-t-{command}: {reason}
78
78
  (also considered: gsd-t-{runner-up} — Esc to switch)
79
79
  ```
80
80
 
@@ -136,7 +136,7 @@ When cleanup is needed, do it at the start of `design-decompose` before reading
136
136
 
137
137
  ### New request (from Step 2):
138
138
  ```
139
- → Routing to /user:gsd-t-{command}: {brief reason}
139
+ → Routing to /gsd-t-{command}: {brief reason}
140
140
  ```
141
141
 
142
142
  ### Conversational (from Step 2.5):
@@ -148,13 +148,13 @@ Follow this header with your direct in-line response — ask clarifying question
148
148
  ### Design pipeline (from design-to-code routing):
149
149
  ```
150
150
  → Design pipeline: clean → decompose → build
151
- Starting: /user:gsd-t-design-decompose
151
+ Starting: /gsd-t-design-decompose
152
152
  ```
153
153
  Use this format when the router detects a design-to-code pipeline. Show the full pipeline with the current step highlighted. Auto-advance between steps without returning to the router.
154
154
 
155
155
  ### Continuation (from Step 2a):
156
156
  ```
157
- → /gsd ──▶ continue /user:gsd-t-{last-command}
157
+ → /gsd ──▶ continue /gsd-t-{last-command}
158
158
  ```
159
159
 
160
160
  Where `{last-command}` is:
@@ -188,10 +188,10 @@ Valid command slugs: `quick`, `debug`, `feature`, `execute`, `milestone`, `proje
188
188
 
189
189
  **RIGHT ✅** — always use the exact command slug:
190
190
  ```
191
- → Routing to /user:gsd-t-execute: implement auth feature across backend
192
- → Routing to /user:gsd-t-debug: investigate login bug before fixing
193
- → /gsd ──▶ continue /user:gsd-t-execute
194
- → /gsd ──▶ continue /user:gsd-t-quick
191
+ → Routing to /gsd-t-execute: implement auth feature across backend
192
+ → Routing to /gsd-t-debug: investigate login bug before fixing
193
+ → /gsd ──▶ continue /gsd-t-execute
194
+ → /gsd ──▶ continue /gsd-t-quick
195
195
  ```
196
196
 
197
197
  This MUST be the very first line of your response. Then immediately execute that command's full workflow, passing `$ARGUMENTS` through.
@@ -203,16 +203,16 @@ This MUST be the very first line of your response. Then immediately execute that
203
203
  If called with no arguments, show:
204
204
 
205
205
  ```
206
- Usage: /user:gsd {describe what you want}
206
+ Usage: /gsd {describe what you want}
207
207
 
208
208
  Examples:
209
- /user:gsd Fix the login timeout bug
210
- /user:gsd Add dark mode support
211
- /user:gsd Scan the codebase for tech debt
212
- /user:gsd What's the current progress?
213
- /user:gsd Compare this spec against our code
214
- /user:gsd Help me think through this integration before I start
215
- /user:gsd I'm stuck — what are other angles?
209
+ /gsd Fix the login timeout bug
210
+ /gsd Add dark mode support
211
+ /gsd Scan the codebase for tech debt
212
+ /gsd What's the current progress?
213
+ /gsd Compare this spec against our code
214
+ /gsd Help me think through this integration before I start
215
+ /gsd I'm stuck — what are other angles?
216
216
 
217
217
  I'll route to the right GSD-T command — or just think out loud with you
218
218
  if you're still figuring things out (no command spawn).
@@ -24,34 +24,34 @@ cd my-project
24
24
  claude
25
25
 
26
26
  # 2. Full onboarding (git + init + scan + setup in one)
27
- /user:gsd-t-init-scan-setup
27
+ /gsd-t-init-scan-setup
28
28
 
29
29
  # Or step by step:
30
- /user:gsd-t-init my-project
30
+ /gsd-t-init my-project
31
31
 
32
32
  # 3. Define what you're building
33
- /user:gsd-t-milestone "User Authentication System"
33
+ /gsd-t-milestone "User Authentication System"
34
34
 
35
35
  # 5. Let it rip (auto-advances through all phases)
36
- /user:gsd-t-wave
36
+ /gsd-t-wave
37
37
 
38
38
  # Or go phase by phase for more control:
39
- /user:gsd-t-partition
40
- /user:gsd-t-discuss
41
- /user:gsd-t-plan
42
- /user:gsd-t-impact
43
- /user:gsd-t-execute
44
- /user:gsd-t-test-sync
45
- /user:gsd-t-integrate
46
- /user:gsd-t-verify
47
- /user:gsd-t-complete-milestone
39
+ /gsd-t-partition
40
+ /gsd-t-discuss
41
+ /gsd-t-plan
42
+ /gsd-t-impact
43
+ /gsd-t-execute
44
+ /gsd-t-test-sync
45
+ /gsd-t-integrate
46
+ /gsd-t-verify
47
+ /gsd-t-complete-milestone
48
48
  ```
49
49
 
50
50
  ## Resuming After a Break
51
51
 
52
52
  ```bash
53
53
  claude
54
- /user:gsd-t-resume
54
+ /gsd-t-resume
55
55
  ```
56
56
 
57
57
  GSD-T reads all state files and tells you exactly where you left off.
@@ -64,86 +64,86 @@ GSD-T reads all state files and tells you exactly where you left off.
64
64
 
65
65
  | Command | Purpose | Auto |
66
66
  |---------|---------|------|
67
- | `/user:gsd {request}` | Describe what you need → auto-routes to the right command | Manual |
67
+ | `/gsd {request}` | Describe what you need → auto-routes to the right command | Manual |
68
68
  | _(any plain text)_ | Auto-routed via UserPromptSubmit hook — no leading `/` needed | Auto |
69
69
 
70
70
  ### Help & Onboarding
71
71
 
72
72
  | Command | Purpose | Auto |
73
73
  |---------|---------|------|
74
- | `/user:gsd-t-help` | List all commands with descriptions | Manual |
75
- | `/user:gsd-t-help {cmd}` | Detailed help for specific command | Manual |
76
- | `/user:gsd-t-prompt` | Help formulate your idea before committing | Manual |
77
- | `/user:gsd-t-brainstorm` | Creative exploration and idea generation | Manual |
78
- | `/user:gsd-t-prd` | Generate a GSD-T-optimized Product Requirements Document | Manual |
74
+ | `/gsd-t-help` | List all commands with descriptions | Manual |
75
+ | `/gsd-t-help {cmd}` | Detailed help for specific command | Manual |
76
+ | `/gsd-t-prompt` | Help formulate your idea before committing | Manual |
77
+ | `/gsd-t-brainstorm` | Creative exploration and idea generation | Manual |
78
+ | `/gsd-t-prd` | Generate a GSD-T-optimized Product Requirements Document | Manual |
79
79
 
80
80
  ### Project Initialization
81
81
 
82
82
  | Command | Purpose | Auto |
83
83
  |---------|---------|------|
84
- | `/user:gsd-t-setup` | Generate or restructure project CLAUDE.md | Manual |
85
- | `/user:gsd-t-init` | Initialize GSD-T structure in project | Manual |
86
- | `/user:gsd-t-init-scan-setup` | Full onboarding: git + init + scan + setup in one | Manual |
87
- | `/user:gsd-t-project` | Full project → milestone roadmap | Manual |
88
- | `/user:gsd-t-feature` | Major feature → impact analysis + milestones | Manual |
89
- | `/user:gsd-t-scan` | Deep codebase analysis → techdebt.md | Manual |
90
- | `/user:gsd-t-gap-analysis` | Requirements gap analysis — spec vs. existing code | Manual |
91
- | `/user:gsd-t-promote-debt` | Convert techdebt items to milestones | Manual |
92
- | `/user:gsd-t-populate` | Auto-populate docs from existing codebase | Manual |
93
- | `/user:gsd-t-design-decompose` | Decompose design into element/widget/page contracts | Manual |
84
+ | `/gsd-t-setup` | Generate or restructure project CLAUDE.md | Manual |
85
+ | `/gsd-t-init` | Initialize GSD-T structure in project | Manual |
86
+ | `/gsd-t-init-scan-setup` | Full onboarding: git + init + scan + setup in one | Manual |
87
+ | `/gsd-t-project` | Full project → milestone roadmap | Manual |
88
+ | `/gsd-t-feature` | Major feature → impact analysis + milestones | Manual |
89
+ | `/gsd-t-scan` | Deep codebase analysis → techdebt.md | Manual |
90
+ | `/gsd-t-gap-analysis` | Requirements gap analysis — spec vs. existing code | Manual |
91
+ | `/gsd-t-promote-debt` | Convert techdebt items to milestones | Manual |
92
+ | `/gsd-t-populate` | Auto-populate docs from existing codebase | Manual |
93
+ | `/gsd-t-design-decompose` | Decompose design into element/widget/page contracts | Manual |
94
94
 
95
95
  ### Milestone Workflow
96
96
 
97
97
  | Command | Purpose | Auto |
98
98
  |---------|---------|------|
99
- | `/user:gsd-t-milestone` | Define new milestone | Manual |
100
- | `/user:gsd-t-partition` | Decompose into domains + contracts | In wave |
101
- | `/user:gsd-t-discuss` | Multi-perspective design exploration | In wave |
102
- | `/user:gsd-t-plan` | Create atomic task lists per domain (tasks auto-split to fit one context window) | In wave |
103
- | `/user:gsd-t-impact` | Analyze downstream effects | In wave |
104
- | `/user:gsd-t-execute` | Run tasks — task-level fresh dispatch, worktree isolation, adaptive replanning, stack rules injection | In wave |
105
- | `/user:gsd-t-test-sync` | Sync tests with code changes | In wave |
106
- | `/user:gsd-t-qa` | QA agent — test generation, execution, gap reporting | Auto-spawned |
99
+ | `/gsd-t-milestone` | Define new milestone | Manual |
100
+ | `/gsd-t-partition` | Decompose into domains + contracts | In wave |
101
+ | `/gsd-t-discuss` | Multi-perspective design exploration | In wave |
102
+ | `/gsd-t-plan` | Create atomic task lists per domain (tasks auto-split to fit one context window) | In wave |
103
+ | `/gsd-t-impact` | Analyze downstream effects | In wave |
104
+ | `/gsd-t-execute` | Run tasks — task-level fresh dispatch, worktree isolation, adaptive replanning, stack rules injection | In wave |
105
+ | `/gsd-t-test-sync` | Sync tests with code changes | In wave |
106
+ | `/gsd-t-qa` | QA agent — test generation, execution, gap reporting | Auto-spawned |
107
107
  | *Red Team* | Adversarial QA — spawns after QA passes to find bugs the builder missed | Auto-spawned |
108
- | `/user:gsd-t-doc-ripple` | Automated document ripple — update downstream docs after code changes | Auto-spawned |
109
- | `/user:gsd-t-integrate` | Wire domains together | In wave |
110
- | `/user:gsd-t-verify` | Run quality gates + goal-backward verification → auto-invokes complete-milestone | In wave |
111
- | `/user:gsd-t-complete-milestone` | Archive + git tag (auto-invoked by verify, also standalone) | In wave |
108
+ | `/gsd-t-doc-ripple` | Automated document ripple — update downstream docs after code changes | Auto-spawned |
109
+ | `/gsd-t-integrate` | Wire domains together | In wave |
110
+ | `/gsd-t-verify` | Run quality gates + goal-backward verification → auto-invokes complete-milestone | In wave |
111
+ | `/gsd-t-complete-milestone` | Archive + git tag (auto-invoked by verify, also standalone) | In wave |
112
112
 
113
113
  ### Automation & Utilities
114
114
 
115
115
  | Command | Purpose | Auto |
116
116
  |---------|---------|------|
117
- | `/user:gsd-t-unattended` | Launch detached supervisor — runs active milestone to completion with zero human intervention | Manual |
118
- | `/user:gsd-t-unattended-watch` | Watch tick — fires every 270s via ScheduleWakeup, reports supervisor status | Auto |
119
- | `/user:gsd-t-unattended-stop` | Touch stop sentinel — supervisor halts after current worker finishes | Manual |
120
- | `/user:gsd-t-wave` | Full cycle, auto-advances all phases | Manual |
121
- | `/user:gsd-t-status` | Cross-domain progress view with token breakdown, global ELO and cross-project rankings | Manual |
122
- | `/user:gsd-t-resume` | Restore context, continue | Manual |
123
- | `/user:gsd-t-quick` | Fast task with GSD-T guarantees | Manual |
124
- | `/user:gsd-t-visualize` | Launch browser dashboard — SSE server + React Flow agent visualization | Manual |
125
- | `/user:gsd-t-debug` | Systematic debugging with state | Manual |
126
- | `/user:gsd-t-metrics` | View task telemetry, process ELO, signal distribution, domain health, and cross-project comparison (`--cross-project`) | Manual |
127
- | `/user:gsd-t-health` | Validate .gsd-t/ structure, optionally repair | Manual |
128
- | `/user:gsd-t-pause` | Save exact position for reliable resume | Manual |
129
- | `/user:gsd-t-log` | Sync progress Decision Log with recent git activity | Manual |
130
- | `/user:gsd-t-version-update` | Update GSD-T to latest version | Manual |
131
- | `/user:gsd-t-version-update-all` | Update GSD-T + all registered projects | Manual |
132
- | `/user:gsd-t-triage-and-merge` | Auto-review, merge, and publish GitHub branches | Manual |
133
- | `/user:gsd-t-design-audit` | Compare built screen against Figma — per-widget deviation report with severity | Manual |
117
+ | `/gsd-t-unattended` | Launch detached supervisor — runs active milestone to completion with zero human intervention | Manual |
118
+ | `/gsd-t-unattended-watch` | Watch tick — fires every 270s via ScheduleWakeup, reports supervisor status | Auto |
119
+ | `/gsd-t-unattended-stop` | Touch stop sentinel — supervisor halts after current worker finishes | Manual |
120
+ | `/gsd-t-wave` | Full cycle, auto-advances all phases | Manual |
121
+ | `/gsd-t-status` | Cross-domain progress view with token breakdown, global ELO and cross-project rankings | Manual |
122
+ | `/gsd-t-resume` | Restore context, continue | Manual |
123
+ | `/gsd-t-quick` | Fast task with GSD-T guarantees | Manual |
124
+ | `/gsd-t-visualize` | Launch browser dashboard — SSE server + React Flow agent visualization | Manual |
125
+ | `/gsd-t-debug` | Systematic debugging with state | Manual |
126
+ | `/gsd-t-metrics` | View task telemetry, process ELO, signal distribution, domain health, and cross-project comparison (`--cross-project`) | Manual |
127
+ | `/gsd-t-health` | Validate .gsd-t/ structure, optionally repair | Manual |
128
+ | `/gsd-t-pause` | Save exact position for reliable resume | Manual |
129
+ | `/gsd-t-log` | Sync progress Decision Log with recent git activity | Manual |
130
+ | `/gsd-t-version-update` | Update GSD-T to latest version | Manual |
131
+ | `/gsd-t-version-update-all` | Update GSD-T + all registered projects | Manual |
132
+ | `/gsd-t-triage-and-merge` | Auto-review, merge, and publish GitHub branches | Manual |
133
+ | `/gsd-t-design-audit` | Compare built screen against Figma — per-widget deviation report with severity | Manual |
134
134
  | `/global-change` | Apply file changes (copy/insert/update/delete) across all GSD-T projects | Manual |
135
135
 
136
136
  ### Backlog Management
137
137
 
138
138
  | Command | Purpose | Auto |
139
139
  |---------|---------|------|
140
- | `/user:gsd-t-backlog-add` | Capture item, auto-categorize, append to backlog | Manual |
141
- | `/user:gsd-t-backlog-list` | Filtered, ordered view of backlog items | Manual |
142
- | `/user:gsd-t-backlog-move` | Reorder items by position (priority) | Manual |
143
- | `/user:gsd-t-backlog-edit` | Modify backlog entry fields | Manual |
144
- | `/user:gsd-t-backlog-remove` | Drop item with optional reason | Manual |
145
- | `/user:gsd-t-backlog-promote` | Refine, classify, launch GSD-T workflow | Manual |
146
- | `/user:gsd-t-backlog-settings` | Manage types, apps, categories, defaults | Manual |
140
+ | `/gsd-t-backlog-add` | Capture item, auto-categorize, append to backlog | Manual |
141
+ | `/gsd-t-backlog-list` | Filtered, ordered view of backlog items | Manual |
142
+ | `/gsd-t-backlog-move` | Reorder items by position (priority) | Manual |
143
+ | `/gsd-t-backlog-edit` | Modify backlog entry fields | Manual |
144
+ | `/gsd-t-backlog-remove` | Drop item with optional reason | Manual |
145
+ | `/gsd-t-backlog-promote` | Refine, classify, launch GSD-T workflow | Manual |
146
+ | `/gsd-t-backlog-settings` | Manage types, apps, categories, defaults | Manual |
147
147
 
148
148
  ---
149
149
 
@@ -293,7 +293,7 @@ Run the active milestone to completion over hours or days with zero human interv
293
293
 
294
294
  **Relay model**: Each iteration spawns a fresh `claude -p` session with a compact prompt derived from `.gsd-t/progress.md` state. The supervisor waits for the worker to exit, records the exit code in `state.json`, runs safety checks (gutter detection, blocker sentinel scan), and spawns the next worker. Workers never overlap. Context rot is impossible — each worker starts clean.
295
295
 
296
- **Watch loop**: `/user:gsd-t-unattended` starts an in-session ScheduleWakeup loop that ticks every 270 seconds. Each tick reads `state.json` and `supervisor.pid` to render a live progress block. When the supervisor reaches a terminal state (`done`, `failed`, `stopped`), the watch loop stops rescheduling and prints a final summary. A `/clear` + `/user:gsd-t-resume` transparently re-attaches: the resume command checks for a live `supervisor.pid` and re-starts the watch loop automatically.
296
+ **Watch loop**: `/gsd-t-unattended` starts an in-session ScheduleWakeup loop that ticks every 270 seconds. Each tick reads `state.json` and `supervisor.pid` to render a live progress block. When the supervisor reaches a terminal state (`done`, `failed`, `stopped`), the watch loop stops rescheduling and prints a final summary. A `/clear` + `/gsd-t-resume` transparently re-attaches: the resume command checks for a live `supervisor.pid` and re-starts the watch loop automatically.
297
297
 
298
298
  **Safety rails**: Branch protection (refuses to run on `main`/`master`/`release/*` by default), dirty-tree check (whitelists GSD-T runtime files), per-iteration gutter detection (repeated error patterns, file thrash, no-progress stall), wall-clock and iteration caps, and a blocker sentinel that halts on unrecoverable worker errors.
299
299
 
@@ -405,7 +405,7 @@ copy *.md %USERPROFILE%\.claude\commands\
405
405
  cp *.md ~/.claude/commands/
406
406
  ```
407
407
 
408
- Verify with: `/user:gsd-t-help`
408
+ Verify with: `/gsd-t-help`
409
409
 
410
410
  ---
411
411
 
@@ -52,7 +52,7 @@ The framework has no runtime — it is consumed entirely by Claude Code's slash
52
52
  - **Pre-task experience retrieval (execute, debug)**: Grep Decision Log for `[failure]`/`[learning]` entries matching current domain before spawning subagent — Reflexion pattern without fine-tuning. Writes `experience_retrieval` event.
53
53
  - **Distillation step (complete-milestone Step 2.5)**: Scans `.gsd-t/events/*.jsonl` for patterns seen ≥3 times, proposes CLAUDE.md / constraints.md rule additions, user confirms before write.
54
54
  ### Auto-Route + Auto-Update Hooks (M16 — complete)
55
- - **`scripts/gsd-t-auto-route.js`** (39 lines): UserPromptSubmit hook. Reads JSON from stdin (`{ prompt, cwd, session_id }`). If `.gsd-t/progress.md` does not exist in cwd → exits silently. If prompt starts with `/` → exits silently. If plain text in a GSD-T project → emits `[GSD-T AUTO-ROUTE]` signal to Claude's context, routing the message through `/user:gsd`. Catches all exceptions — never blocks the prompt.
55
+ - **`scripts/gsd-t-auto-route.js`** (39 lines): UserPromptSubmit hook. Reads JSON from stdin (`{ prompt, cwd, session_id }`). If `.gsd-t/progress.md` does not exist in cwd → exits silently. If prompt starts with `/` → exits silently. If plain text in a GSD-T project → emits `[GSD-T AUTO-ROUTE]` signal to Claude's context, routing the message through `/gsd`. Catches all exceptions — never blocks the prompt.
56
56
  - **`scripts/gsd-t-update-check.js`** (79 lines): SessionStart hook. Reads `~/.claude/.gsd-t-version`. Reads/refreshes `~/.claude/.gsd-t-update-check` cache (1h TTL). If newer version available: runs `npm install -g @tekyzinc/gsd-t@{latest}` + `gsd-t update-all` via execSync. Outputs `[GSD-T AUTO-UPDATE]`, `[GSD-T UPDATE]`, or `[GSD-T]` banner. NOTE: No module.exports — untestable as module (TD-081). Version string not validated before execSync (SEC-N28).
57
57
 
58
58
  ### Scan Visual Output (M17 — complete v2.34.10)
@@ -72,9 +72,9 @@ The framework has no runtime — it is consumed entirely by Claude Code's slash
72
72
 
73
73
  ### Headless Mode (M23 — complete)
74
74
  - **doHeadless(args)**: Dispatch function for the `headless` CLI subcommand.
75
- - **doHeadlessExec(command, cmdArgs, flags)**: Wraps `claude -p "/gsd-t-{command}"` via `execFileSync`. Verifies claude CLI availability, enforces timeout, writes log file if `--log` requested. Returns structured JSON if `--json` flag set. (M36 Phase 0: prompt form is `/gsd-t-X`, NOT `/user:gsd-t-X` — non-interactive mode rejects the `/user:` namespace prefix.)
75
+ - **doHeadlessExec(command, cmdArgs, flags)**: Wraps `claude -p "/gsd-t-{command}"` via `execFileSync`. Verifies claude CLI availability, enforces timeout, writes log file if `--log` requested. Returns structured JSON if `--json` flag set. (M36 Phase 0: prompt form is `/gsd-t-X`, NOT `/gsd-t-X` — non-interactive mode rejects the `/` namespace prefix.)
76
76
  - **parseHeadlessFlags(args)**: Extracts `--json`, `--timeout=N`, `--log` from raw args. Returns `{ flags, positional }`.
77
- - **buildHeadlessCmd(command, cmdArgs)**: Builds the bare `/gsd-t-{command}` prompt string. Interactive-mode `/user:` prefix deliberately omitted — see `.gsd-t/M36-spike-findings.md` Spike A.
77
+ - **buildHeadlessCmd(command, cmdArgs)**: Builds the bare `/gsd-t-{command}` prompt string. Interactive-mode `/` prefix deliberately omitted — see `.gsd-t/M36-spike-findings.md` Spike A.
78
78
  - **mapHeadlessExitCode(processExitCode, output)**: Maps process exit code + output text patterns to GSD-T exit codes (0–5).
79
79
  - **headlessLogPath(projectDir, timestamp)**: Generates `.gsd-t/headless-{timestamp}.log` path.
80
80
  - **doHeadlessQuery(type)**: Dispatches to one of 7 query functions. All pure Node.js file reads, no LLM calls, <100ms.
@@ -130,7 +130,7 @@ gsd-t init [name] → templates/ → applyTokens()
130
130
 
131
131
  ### Runtime Command Execution (within Claude Code)
132
132
  ```
133
- User types /user:gsd-t-{command} [args]
133
+ User types /gsd-t-{command} [args]
134
134
  → Claude Code loads ~/.claude/commands/gsd-t-{command}.md
135
135
  → Claude interprets step-by-step instructions
136
136
  → Reads state files → Executes workflow → Pre-Commit Gate → Updates progress.md
@@ -284,7 +284,7 @@ The unattended supervisor is a cross-session relay engine that runs an active GS
284
284
 
285
285
  ```
286
286
  Interactive Claude session
287
- └── /user:gsd-t-unattended (launch command)
287
+ └── /gsd-t-unattended (launch command)
288
288
  ├── Pre-flight safety checks (branch, dirty tree)
289
289
  └── spawn(detached) → Supervisor process (bin/gsd-t-unattended.js)
290
290
  ├── writes .gsd-t/.unattended/supervisor.pid
@@ -296,7 +296,7 @@ Interactive Claude session
296
296
  → worker exits → post-worker safety check → next iter
297
297
 
298
298
  In-session watch loop (every 270s via ScheduleWakeup)
299
- └── /user:gsd-t-unattended-watch
299
+ └── /gsd-t-unattended-watch
300
300
  ├── reads supervisor.pid (kill -0 liveness)
301
301
  ├── reads state.json (status, iter, lastTick)
302
302
  └── reschedules or reports final status
@@ -349,7 +349,7 @@ Closes the M35 parent/child race in `bin/headless-auto-spawn.js`. When the runwa
349
349
 
350
350
  ### Resume Auto-Reattach
351
351
 
352
- `/user:gsd-t-resume` Step 0 checks for a live supervisor before any other resume logic. If `supervisor.pid` exists and `kill -0` succeeds and `state.json.status` is non-terminal, the resume command skips normal resume flow entirely, prints the current watch block, and calls `ScheduleWakeup(270, '/gsd-t-unattended-watch', ...)`. The user transparently re-enters the watch loop without any manual step.
352
+ `/gsd-t-resume` Step 0 checks for a live supervisor before any other resume logic. If `supervisor.pid` exists and `kill -0` succeeds and `state.json.status` is non-terminal, the resume command skips normal resume flow entirely, prints the current watch block, and calls `ScheduleWakeup(270, '/gsd-t-unattended-watch', ...)`. The user transparently re-enters the watch loop without any manual step.
353
353
 
354
354
  ---
355
355
 
@@ -533,7 +533,7 @@ Orchestrator Context Gate — v3.0.0 semantics:
533
533
 
534
534
  **Supporting components** (outside the context-meter dataflow):
535
535
  - `bin/model-selector.js` — declarative rules table mapping phases to haiku/sonnet/opus; consulted at plan time, never at runtime under pressure
536
- - `bin/check-headless-sessions.js` — renders the read-back banner on `/user:gsd-t-resume` and `/user:gsd-t-status` for completed-but-not-yet-surfaced headless sessions
536
+ - `bin/check-headless-sessions.js` — renders the read-back banner on `/gsd-t-resume` and `/gsd-t-status` for completed-but-not-yet-surfaced headless sessions
537
537
  - `bin/event-stream.cjs` (M38) — shared library for JSONL event emission and cursor-based tailing; used by supervisor, watch tick, and dashboard
538
538
 
539
539
  **Installer integration** (`bin/gsd-t.js`):
@@ -20,7 +20,7 @@
20
20
 
21
21
  ## Per-invocation cost (where the regression actually hides)
22
22
 
23
- A typical `/user:gsd-t-execute` invocation loads:
23
+ A typical `/gsd-t-execute` invocation loads:
24
24
 
25
25
  | Item | Tokens | Notes |
26
26
  |------|--------|-------|
@@ -85,7 +85,7 @@ Note: these savings only apply when a command is invoked. If you only ever run `
85
85
  **Current size**: 9,679 tokens (4.8% of window — always loaded)
86
86
  **Target size**: ~4,500 tokens
87
87
  **Method**:
88
- - The entire "Commands Reference" table (51 rows) duplicates `commands/gsd-t-help.md` — DELETE the table, replace with `Run /user:gsd-t-help for the full command list.`
88
+ - The entire "Commands Reference" table (51 rows) duplicates `commands/gsd-t-help.md` — DELETE the table, replace with `Run /gsd-t-help for the full command list.`
89
89
  - The "Update Notices" / "Auto-Init Guard" / "Playwright Readiness Guard" / "QA Agent" / "Design Verification Agent" / "Red Team" sections (~3,000 tokens combined) are duplicated in the relevant command files. Move them to the command files only and replace with one-line summaries here.
90
90
  - The "Pre-Commit Gate" decision tree (~1,500 tokens) is also in project CLAUDE.md — keep one, link from the other
91
91
  - The "Document Ripple Completion Gate" (~1,500 tokens) is duplicated in `gsd-t-doc-ripple.md` — reference only
@@ -123,7 +123,7 @@ Headless mode enables non-interactive GSD-T execution for CI/CD pipelines and ov
123
123
 
124
124
  ### headless exec
125
125
 
126
- Wraps `claude -p "/user:gsd-t-{command} {args}"` for unattended execution.
126
+ Wraps `claude -p "/gsd-t-{command} {args}"` for unattended execution.
127
127
 
128
128
  ```bash
129
129
  gsd-t headless verify --json --timeout=1200 --log
@@ -314,16 +314,16 @@ The unattended supervisor runs an active GSD-T milestone to completion in a deta
314
314
 
315
315
  ```bash
316
316
  # From within an interactive Claude session:
317
- /user:gsd-t-unattended
317
+ /gsd-t-unattended
318
318
 
319
319
  # From the terminal (detached — returns immediately):
320
320
  gsd-t unattended --hours=24 --milestone=M36
321
321
 
322
322
  # Watch current run status (in-session, 270s tick):
323
- /user:gsd-t-unattended-watch
323
+ /gsd-t-unattended-watch
324
324
 
325
325
  # Request a graceful stop:
326
- /user:gsd-t-unattended-stop
326
+ /gsd-t-unattended-stop
327
327
  ```
328
328
 
329
329
  ### CLI Flags
@@ -395,18 +395,18 @@ kill -0 $(cat .gsd-t/.unattended/supervisor.pid) && echo "alive" || echo "stale
395
395
  rm .gsd-t/.unattended/supervisor.pid
396
396
 
397
397
  # Or request a graceful stop:
398
- /user:gsd-t-unattended-stop
398
+ /gsd-t-unattended-stop
399
399
  # (or) touch .gsd-t/.unattended/stop
400
400
  ```
401
401
 
402
402
  **Watch loop stopped firing**
403
- - Re-invoke `/user:gsd-t-resume` from a fresh session
403
+ - Re-invoke `/gsd-t-resume` from a fresh session
404
404
  - Step 0 auto-reattach reads `supervisor.pid` — if the supervisor is still alive, it re-enters the watch loop automatically (no manual steps needed)
405
405
 
406
406
  **Supervisor crashed mid-run**
407
407
  - The watch loop detects crash via `kill -0` failure
408
408
  - Check `.gsd-t/.unattended/run.log` and final `state.json` for diagnostics
409
- - Resume normally with `/user:gsd-t-resume` — the milestone continues from its last checkpoint
409
+ - Resume normally with `/gsd-t-resume` — the milestone continues from its last checkpoint
410
410
 
411
411
  ---
412
412
 
@@ -124,7 +124,7 @@ Between v2.74 and v2.75, GSD-T attempted to cope with context pressure through *
124
124
 
125
125
  M34 gave GSD-T a real measurement of how much context window each session had consumed. M35 used that signal to refuse starting new work that would exceed the 85% threshold, auto-spawning a detached headless process instead so the user never had to manually run `/clear`. Both milestones still had a ceiling: the headless continuation was a single shot — it ran one Claude session, and if the milestone wasn't complete when that session exhausted its context, a human had to intervene again to trigger the next continuation. Long-running milestones (multi-day builds, large waves) still required periodic human attention to keep the relay going.
126
126
 
127
- M36 (v2.77.10) makes the relay automatic and indefinite. The unattended supervisor (`bin/gsd-t-unattended.js`) is a long-lived OS process, fully detached from any Claude Code terminal session, that drives the relay itself: it spawns a fresh `claude -p "/gsd-t-resume"` worker, waits for it to exit, reads the outcome, and immediately spawns the next worker — repeating until the milestone reaches COMPLETED status or a wall-clock cap is hit. Each worker gets a pristine context window. The `/compact` that inevitably fires in a long session is irrelevant because the *next* session has already started fresh. The supervisor IS the orchestrator of runway handoffs. Safety rails (`bin/gsd-t-unattended-safety.js`) prevent infinite-loop scenarios: gutter detection catches stall patterns, blocker sentinels catch unrecoverable errors, and iteration/hour caps ensure the machine doesn't run forever on a broken state. A cross-platform abstraction layer handles macOS sleep-prevention (`caffeinate`), Linux equivalents, and Windows limitations. From the user's perspective: invoke `/user:gsd-t-unattended`, walk away, and receive a native OS notification when the milestone is done — hours or days later.
127
+ M36 (v2.77.10) makes the relay automatic and indefinite. The unattended supervisor (`bin/gsd-t-unattended.js`) is a long-lived OS process, fully detached from any Claude Code terminal session, that drives the relay itself: it spawns a fresh `claude -p "/gsd-t-resume"` worker, waits for it to exit, reads the outcome, and immediately spawns the next worker — repeating until the milestone reaches COMPLETED status or a wall-clock cap is hit. Each worker gets a pristine context window. The `/compact` that inevitably fires in a long session is irrelevant because the *next* session has already started fresh. The supervisor IS the orchestrator of runway handoffs. Safety rails (`bin/gsd-t-unattended-safety.js`) prevent infinite-loop scenarios: gutter detection catches stall patterns, blocker sentinels catch unrecoverable errors, and iteration/hour caps ensure the machine doesn't run forever on a broken state. A cross-platform abstraction layer handles macOS sleep-prevention (`caffeinate`), Linux equivalents, and Windows limitations. From the user's perspective: invoke `/gsd-t-unattended`, walk away, and receive a native OS notification when the milestone is done — hours or days later.
128
128
 
129
129
  The in-session watch loop (270-second `ScheduleWakeup` ticks, chosen to stay inside the 5-minute prompt-cache TTL) closes the feedback loop for users who keep a Claude session open. And the `gsd-t-resume` Step 0 auto-reattach means that even a `/clear` or accidental session close is transparent: the next resume detects the live supervisor and silently re-enters the watch loop without any manual step. Taken together, M34 + M35 + M36 form a complete three-layer system: measure the context accurately, refuse to degrade when it runs low, and relay execution automatically across as many fresh sessions as the work requires.
130
130
 
@@ -89,7 +89,7 @@ that doesn't exist.
89
89
  After indexing is complete, run a full codebase scan in each project to generate the baseline analysis. From within each project directory:
90
90
 
91
91
  ```
92
- /user:gsd-t-scan
92
+ /gsd-t-scan
93
93
  ```
94
94
 
95
95
  Or to scan all projects at once, paste this prompt into Claude Code:
@@ -98,7 +98,7 @@ Or to scan all projects at once, paste this prompt into Claude Code:
98
98
  For each project listed in ~/.claude/.gsd-t-projects that has source code
99
99
  files (.js, .ts, .py, .jsx, .tsx):
100
100
  1. cd into the project directory
101
- 2. Run /user:gsd-t-scan
101
+ 2. Run /gsd-t-scan
102
102
  3. Report: project name, scan status, tech debt items found, test count
103
103
 
104
104
  Use team mode with parallel agents. Skip documentation-only projects