@tekyzinc/gsd-t 3.12.10 → 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 (55) hide show
  1. package/CHANGELOG.md +110 -26
  2. package/README.md +76 -76
  3. package/bin/design-orchestrator.js +1 -1
  4. package/bin/gsd-t-unattended.cjs +56 -2
  5. package/bin/gsd-t-unattended.js +1 -1
  6. package/bin/gsd-t.js +198 -17
  7. package/bin/headless-auto-spawn.cjs +58 -2
  8. package/commands/gsd-t-backlog-promote.md +6 -6
  9. package/commands/gsd-t-complete-milestone.md +7 -7
  10. package/commands/gsd-t-design-audit.md +3 -3
  11. package/commands/gsd-t-design-build.md +1 -1
  12. package/commands/gsd-t-design-decompose.md +4 -4
  13. package/commands/gsd-t-execute.md +1 -1
  14. package/commands/gsd-t-feature.md +3 -3
  15. package/commands/gsd-t-gap-analysis.md +3 -3
  16. package/commands/gsd-t-health.md +3 -3
  17. package/commands/gsd-t-help.md +10 -10
  18. package/commands/gsd-t-impact.md +3 -3
  19. package/commands/gsd-t-init-scan-setup.md +5 -5
  20. package/commands/gsd-t-init.md +4 -4
  21. package/commands/gsd-t-log.md +1 -1
  22. package/commands/gsd-t-milestone.md +2 -2
  23. package/commands/gsd-t-pause.md +2 -2
  24. package/commands/gsd-t-prd.md +2 -2
  25. package/commands/gsd-t-project.md +1 -1
  26. package/commands/gsd-t-resume.md +4 -4
  27. package/commands/gsd-t-scan.md +3 -3
  28. package/commands/gsd-t-setup.md +2 -2
  29. package/commands/gsd-t-test-sync.md +1 -1
  30. package/commands/gsd-t-unattended-watch.md +5 -5
  31. package/commands/gsd-t-unattended.md +9 -9
  32. package/commands/gsd-t-wave.md +4 -4
  33. package/commands/gsd.md +17 -17
  34. package/docs/GSD-T-README.md +68 -68
  35. package/docs/architecture.md +8 -8
  36. package/docs/context-budget-recovery-plan.md +2 -2
  37. package/docs/infrastructure.md +7 -7
  38. package/docs/methodology.md +1 -1
  39. package/docs/neo4j-setup.md +2 -2
  40. package/docs/prd-gsd2-hybrid.md +1 -1
  41. package/docs/prd-harness-evolution.md +1 -1
  42. package/docs/requirements.md +2 -2
  43. package/docs/unattended-config.md +1 -1
  44. package/docs/unattended-windows-caveats.md +1 -1
  45. package/docs/workflows.md +1 -1
  46. package/package.json +1 -1
  47. package/scripts/context-meter/threshold.test.js +2 -2
  48. package/scripts/gsd-t-auto-route.js +1 -1
  49. package/scripts/gsd-t-context-meter.e2e.test.js +1 -1
  50. package/scripts/gsd-t-context-meter.test.js +1 -1
  51. package/scripts/gsd-t-event-writer.js +8 -2
  52. package/scripts/gsd-t-update-check.js +1 -1
  53. package/templates/CLAUDE-global.md +18 -163
  54. package/templates/stacks/_markdown.md +32 -0
  55. package/templates/stacks/design-to-code.md +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,90 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [3.12.13] - 2026-04-17
6
+
7
+ ### Fixed — `/` Prefix Strip Sitewide
8
+
9
+ Claude Code does not namespace local slash commands under `user:`, so every `/gsd-t-*`, `/checkin`, `/branch`, `/Claude-md`, `/global-change` reference produced `Unknown command: /X` errors when the user typed one. This release strips the prefix from every live reference:
10
+
11
+ - **54 command files** in `commands/*.md`
12
+ - **All live docs**: `README.md`, `GSD-T-README.md`, `CHANGELOG.md`, `docs/*.md`, `CLAUDE.md`
13
+ - **All templates**: `templates/CLAUDE-global.md`, `templates/CLAUDE-project.md`, `templates/stacks/*.md`
14
+ - **Scripts and CLI**: `bin/gsd-t.js`, `bin/gsd-t-unattended.js`, `bin/design-orchestrator.js`, `scripts/gsd-t-auto-route.js`, `scripts/gsd-t-update-check.js`
15
+ - **All `.gsd-t/contracts/*.md` and live `.gsd-t/domains/*/scope.md`**
16
+ - **User-global `~/.claude/CLAUDE.md`** (via `sed` in the same pass)
17
+ - Test fixture strings in `test/headless.test.js` preserved — those are regression-test literals asserting `claude -p` rejects the `/` prefix.
18
+ - Historical archives (`.gsd-t/milestones/*`, `.gsd-t/progress-archive/*`, `.gsd-t/continue-here-*`) left untouched as time-capsule records.
19
+
20
+ ### Fixed — `update-all` Now Upgrades the Global CLI Binary
21
+
22
+ v3.12.12's `update-all` propagated command files to `~/.claude/commands/` but never ran `npm install -g @tekyzinc/gsd-t@latest`. Result: the CLI binary stayed stale even after `npm publish`, so new features (like v3.12.12's token-log observability) never activated on user machines that had updated "successfully."
23
+
24
+ `bin/gsd-t.js`:
25
+ - `doUpdateAll()` now calls new `upgradeGlobalBinary()` helper FIRST, which runs `npm install -g @tekyzinc/gsd-t@latest` via `execFileSync({stdio: 'inherit'})`.
26
+ - After upgrade succeeds, the newly-installed on-disk version is compared against the running process's `PKG_VERSION`. If they diverge, `reexecUpdateAll()` hands off to the new binary with `GSDT_POST_UPGRADE=1` to prevent recursion.
27
+ - On upgrade failure (e.g., missing global-npm permissions), logs the error and continues with command-file propagation so the user isn't fully blocked.
28
+ - Upgrade is skipped when `GSDT_POST_UPGRADE=1` is set (re-entry from self-invocation).
29
+
30
+ ### Changed — Global `CLAUDE.md` Size Reduction (−26%)
31
+
32
+ `~/.claude/CLAUDE.md` was 41,131 chars (above Claude Code's 40k auto-warning threshold). Three optimizations trimmed it to 30,272 chars without losing information:
33
+
34
+ 1. **Commands Reference table removed** (~63 lines). The router and `/gsd-t-help` resolve commands dynamically — nothing reads this table at runtime. Replaced with a one-line pointer: *"See `/gsd-t-help` for the complete command list."*
35
+ 2. **Markdown Tables / emoji-padding section extracted** to `templates/stacks/_markdown.md` (32 lines, `_` prefix = universal stack rule, auto-injected by Stack Rules Engine for every subagent spawn). CLAUDE.md now has a one-line pointer at that template.
36
+ 3. **Autonomous Execution Rules subsections tightened** — QA Agent, Design Verification, Red Team, Headless-by-Default Spawn, Unattended Execution each cut from multi-paragraph re-statements to 2–3 lines: rule + enforcement + path to the authoritative contract/protocol file. The contracts (`qa-agent-contract.md`, `headless-default-contract.md`, etc.) and prompts (`red-team-subagent.md`, `design-verify-subagent.md`) remain the source of truth for method specifics.
37
+
38
+ Same edits propagated to `templates/CLAUDE-global.md` so future installs inherit the lean version.
39
+
40
+ ### Changed — Project `CLAUDE.md` Audit
41
+
42
+ Audited `CLAUDE.md` in this repo (the @tekyzinc/gsd-t dev repo itself). Removed a duplicate Destructive Action Guard block (verbatim copy of the global's). Pre-Commit Gate now points at `.gsd-t/contracts/pre-commit-gate.md` (which exists and owns the full checklist) while retaining the 7 repo-specific extensions inline. 7,095 → 6,269 chars (−12%).
43
+
44
+ ### Added — New Stack Rule: `templates/stacks/_markdown.md`
45
+
46
+ Universal (always-injected) stack rule covering markdown-table formatting with emoji. Included in every subagent spawn regardless of detected tech stack, per the Stack Rules Engine's `_`-prefix convention.
47
+
48
+ ### Note — v3.12.12 Supervisor Status
49
+
50
+ The earlier hypothesis that v3.12.12 broke `bin/gsd-t-unattended.cjs` via a missing `require("./debug-ledger.js")` was incorrect. `bin/debug-ledger.js` exists, ships in the package, and has been present since a March commit. The supervisor was running fine on the globally-installed v3.11.11 binary — it simply never picked up v3.12.12's env-var injection because `update-all` never upgraded the binary (see above fix).
51
+
52
+ ## [3.12.12] - 2026-04-17
53
+
54
+ ### Fixed — Token-Log Observability for Headless/Unattended Workers
55
+
56
+ **Background**: M38 headless-by-default left `.gsd-t/token-log.md` blind to all supervisor and headless-exec worker activity. Rows were only written by interactive `T_START/T_END` bash blocks in command files. All event-stream `tool_call` entries from workers had `command: null`, `phase: null`, `trace_id: null`.
57
+
58
+ #### Fix 1: headless worker spawns append to token-log.md
59
+
60
+ Three spawn paths now write rows to `{projectDir}/.gsd-t/token-log.md`:
61
+
62
+ - **`bin/headless-auto-spawn.cjs`** — `installCompletionWatcher` appends a row when the detached child exits (poll-based, graceful — never halts on write failure). Creates the file with the canonical header if it does not exist. Migrates files created before this fix (adds header if missing).
63
+ - **`bin/gsd-t-unattended.cjs`** — supervisor worker loop appends a row after each `_spawnWorker` call completes, recording iteration number, duration, exit code. New `_appendTokenLog` helper follows the same schema as interactive command observability blocks.
64
+ - **`bin/gsd-t.js` `doHeadlessExec`** — `gsd-t headless <command>` invocations append a row synchronously after the `claude -p` process exits.
65
+
66
+ Row format matches the existing token-log schema:
67
+ `| Datetime-start | Datetime-end | Command | Step | Model | Duration(s) | Notes | Domain | Task | Ctx% |`
68
+ Tokens are logged as `unknown` (no API access in worker contexts); duration is wall-clock.
69
+
70
+ #### Fix 2: command/phase propagate to event-stream entries in worker contexts
71
+
72
+ Env-var approach chosen (cleaner, no call-site changes needed):
73
+
74
+ - **`scripts/gsd-t-event-writer.js` `buildEvent`** — reads `GSD_T_COMMAND` and `GSD_T_PHASE` env vars as defaults when `--command`/`--phase` flags are absent. Explicit flags always win.
75
+ - **`bin/headless-auto-spawn.cjs`** — sets `GSD_T_COMMAND={command}` and `GSD_T_PHASE={phase}` on every detached child's env before spawn.
76
+ - **`bin/gsd-t-unattended.cjs` `_spawnWorker`** — sets `GSD_T_COMMAND=gsd-t-resume` and `GSD_T_PHASE={state.phase||execute}` on each `claude -p` worker env.
77
+ - **`bin/gsd-t.js` `doHeadlessExec`** — sets `GSD_T_COMMAND=gsd-t-{command}` on the `execFileSync` env.
78
+
79
+ Result: all `tool_call` events in worker contexts are tagged with the originating command and phase instead of `null`.
80
+
81
+ ## [3.12.11] - 2026-04-17
82
+
83
+ ### Fixed
84
+ - **Installer owns global PostToolUse context-meter hook** — the hook command now targets the globally-installed npm package (`$(npm root -g)/@tekyzinc/gsd-t/scripts/gsd-t-context-meter.js`) instead of `$CLAUDE_PROJECT_DIR/scripts/...`. The old path caused `Cannot find module` errors in every non-GSD-T project and when `CLAUDE_PROJECT_DIR` was unset.
85
+ - **Auto-migration of stale hook entries** — `install`, `update`, `update-all`, and `init` now detect and replace any PostToolUse entry whose command matches the prior `$CLAUDE_PROJECT_DIR`-based pattern, upgrading it in-place to the canonical global form.
86
+ - **Existence guard** — the hook command is wrapped in a `bash -c '[ -f ... ] && node ... || true'` guard so it silently exits 0 when the package is not present (non-GSD-T projects, uninstalled state).
87
+ - **Uninstall removes the hook** — `gsd-t uninstall` now removes any PostToolUse hook containing `gsd-t-context-meter` from `~/.claude/settings.json`, leaving all other hooks intact.
88
+
5
89
  ## [3.12.10] - 2026-04-17
6
90
 
7
91
  ### M38: Headless-by-Default + Meter Reduction
@@ -228,9 +312,9 @@ M36 ships the third pillar of the context/runway/autonomy arc (M34 context meter
228
312
  - **`bin/gsd-t-unattended-safety.js`** — safety rails module. Exports: `checkGitBranch` (protected branch list; configurable), `checkWorktreeCleanliness` (dirty-tree guard with whitelist), `checkIterationCap`, `checkWallClockCap`, `validateState`, `detectBlockerSentinel` (scan run.log tail for unrecoverable/dispatch-failed patterns), `detectGutter` (repeated-error / file-thrash / no-progress stall detection). Each check returns `{ ok, reason?, code? }`.
229
313
  - **`bin/gsd-t-unattended-platform.js`** — platform abstraction. Exports: `spawnSupervisor` (detached spawn with `windowsHide`), `preventSleep` / `releaseSleep` (`caffeinate -i` on darwin; no-op on linux/win32), `sendNotification` (osascript on darwin; `notify-send` on linux; toast via PowerShell on win32 — all graceful no-op on failure), `resolveClaudeBin` (`claude.cmd` on win32; `claude` elsewhere + PATH search), `getPlatform`.
230
314
  - **`bin/handoff-lock.js`** — parent/child race guard for headless-auto-spawn. Writes `.gsd-t/.handoff/{session-id}.lock` before detaching; child removes on first iteration. Prevents the parent from reporting "failed" while the child is still starting. Exports: `acquireLock`, `releaseLock`, `waitForRelease`, `isLocked`.
231
- - **`commands/gsd-t-unattended.md`** — `/user:gsd-t-unattended` launch command. Pre-flights (singleton check, safety rails, active milestone), spawns the supervisor via `bin/gsd-t-unattended-platform.js`, polls for `supervisor.pid` + `status=running` (up to 5s), prints the initial watch block, calls `ScheduleWakeup(270, '/user:gsd-t-unattended-watch')`.
232
- - **`commands/gsd-t-unattended-watch.md`** — `/user:gsd-t-unattended-watch` watch tick. Stateless; reads `supervisor.pid` + `state.json`; renders progress or final summary; reschedules via `ScheduleWakeup(270, ...)` on non-terminal status; stops on terminal status or missing PID file.
233
- - **`commands/gsd-t-unattended-stop.md`** — `/user:gsd-t-unattended-stop` stop command. Touches `.gsd-t/.unattended/stop` sentinel; prints reassurance; returns immediately (no kill, no wait).
315
+ - **`commands/gsd-t-unattended.md`** — `/gsd-t-unattended` launch command. Pre-flights (singleton check, safety rails, active milestone), spawns the supervisor via `bin/gsd-t-unattended-platform.js`, polls for `supervisor.pid` + `status=running` (up to 5s), prints the initial watch block, calls `ScheduleWakeup(270, '/gsd-t-unattended-watch')`.
316
+ - **`commands/gsd-t-unattended-watch.md`** — `/gsd-t-unattended-watch` watch tick. Stateless; reads `supervisor.pid` + `state.json`; renders progress or final summary; reschedules via `ScheduleWakeup(270, ...)` on non-terminal status; stops on terminal status or missing PID file.
317
+ - **`commands/gsd-t-unattended-stop.md`** — `/gsd-t-unattended-stop` stop command. Touches `.gsd-t/.unattended/stop` sentinel; prints reassurance; returns immediately (no kill, no wait).
234
318
  - **`.gsd-t/contracts/unattended-supervisor-contract.md` v1.0.0 ACTIVE** — authoritative interface for state file schema (18 fields), PID file lifecycle, sentinel semantics, exit codes 0–8+124, launch handshake, watch tick decision tree, resume auto-reattach handshake, stop mechanism, notification levels, safety rails hook points, and configuration file schema.
235
319
  - **`docs/unattended-windows-caveats.md`** — known Windows limitations: sleep-prevention not supported (no `caffeinate` equivalent wired; `powercfg /requests` path is v2), `claude.cmd` wrapper adds ~500ms per spawn, Windows Defender may scan each worker spawn, notification via PowerShell toast requires non-interactive shell workaround.
236
320
  - **`.claude/settings.json`** (project-shared) — SessionStart hook registered: `node bin/check-headless-sessions.js . 2>/dev/null || true` surfaces completed headless session banners on session start.
@@ -243,7 +327,7 @@ M36 ships the third pillar of the context/runway/autonomy arc (M34 context meter
243
327
 
244
328
  ### Fixed
245
329
 
246
- - **`bin/gsd-t.js` headless dispatch** (Phase 0 P0, committed prior milestone): `mapHeadlessExitCode` now maps `"Unknown command:"` in worker stdout → exit code 5 (`command-dispatch-failed`). Worker invocation no longer prepends `/user:` to command names, preventing "Unknown command:" failures in non-interactive `claude -p` sessions.
330
+ - **`bin/gsd-t.js` headless dispatch** (Phase 0 P0, committed prior milestone): `mapHeadlessExitCode` now maps `"Unknown command:"` in worker stdout → exit code 5 (`command-dispatch-failed`). Worker invocation no longer prepends `/` to command names, preventing "Unknown command:" failures in non-interactive `claude -p` sessions.
247
331
 
248
332
  ### Tests
249
333
 
@@ -257,7 +341,7 @@ M36 ships the third pillar of the context/runway/autonomy arc (M34 context meter
257
341
 
258
342
  ### Migration
259
343
 
260
- After `npm install @tekyzinc/gsd-t@3.10.10`, run `/user:gsd-t-version-update-all` to propagate v3.10.10 to all registered projects. The new command files, `bin/` modules, and contract are written into each project automatically. No existing `.gsd-t/` state is modified.
344
+ After `npm install @tekyzinc/gsd-t@3.10.10`, run `/gsd-t-version-update-all` to propagate v3.10.10 to all registered projects. The new command files, `bin/` modules, and contract are written into each project automatically. No existing `.gsd-t/` state is modified.
261
345
 
262
346
  ---
263
347
 
@@ -272,7 +356,7 @@ After `npm install @tekyzinc/gsd-t@3.10.10`, run `/user:gsd-t-version-update-all
272
356
  - **`bin/model-selector.js`** — declarative phase→tier mapping (≥13 phase mappings) with complexity-signal escalation (`cross_module_refactor`, `security_boundary`, `data_loss_risk`, `contract_design`) that escalates sonnet→opus at plan time. Each command file carries a `## Model Assignment` block.
273
357
  - **`bin/runway-estimator.js`** — `estimateRunway({command, domain_type, remaining_tasks})` reads `.gsd-t/token-metrics.jsonl` via a three-tier query fallback (exact → command+phase → command) and returns `{can_start, projected_end_pct, confidence, recommendation}`. Confidence grading: high ≥50 records, medium ≥10, low <10 (+1.25× skew).
274
358
  - **`bin/headless-auto-spawn.js`** — detached `child_process.spawn({detached:true, stdio:['ignore', fd, fd]}) + child.unref()`. Writes `.gsd-t/headless-sessions/{session-id}.json`, polls with `process.kill(pid, 0)` (timer `.unref()`-ed), marks `status: completed`, posts a macOS `osascript` notification on exit (graceful no-op on non-darwin).
275
- - **`bin/check-headless-sessions.js`** — scans `.gsd-t/headless-sessions/` for `status === 'completed' && surfaced !== true` and renders the read-back banner on `/user:gsd-t-resume` and `/user:gsd-t-status`. Exports `checkCompletedSessions`, `markSurfaced`, `formatBanner`, `printBannerIfAny`, `computeDurationLabel`.
359
+ - **`bin/check-headless-sessions.js`** — scans `.gsd-t/headless-sessions/` for `status === 'completed' && surfaced !== true` and renders the read-back banner on `/gsd-t-resume` and `/gsd-t-status`. Exports `checkCompletedSessions`, `markSurfaced`, `formatBanner`, `printBannerIfAny`, `computeDurationLabel`.
276
360
  - **`bin/token-telemetry.js`** — per-spawn token bracket writes one frozen 18-field JSONL record per subagent spawn to `.gsd-t/token-metrics.jsonl`. Fields: `timestamp, session_id, command, phase, domain, task_id, model, complexity_signals[], input_tokens, output_tokens, duration_seconds, start_pct, end_pct, halt_type, halt_reason, exit_code, run_type, projection_variance`. `halt_type` values: `clean`, `stop-band`, `runway-refuse`, `native-compact` (defect), `crash`.
277
361
  - **`bin/token-optimizer.js`** — at `complete-milestone`, scans the last 3 milestones and appends recalibration recommendations to `.gsd-t/optimization-backlog.md`. Four detection rules: `demote` (opus phase ≥90% success, ≥3 volume), `escalate` (sonnet phase ≥30% failure rate, ≥5 volume), `runway-tune` (projection vs. actual divergence >15%), `investigate` (per-phase p95 > 2× median, ≥10 volume). Fingerprint-based 5-milestone cooldown on rejected items. Exports `detectRecommendations`, `appendToBacklog`, `readBacklog`, `writeBacklog`, `parseBacklog`, `setRecommendationStatus`, `DETECTION_RULES`, `REJECTION_COOLDOWN_MILESTONES`.
278
362
  - **`bin/advisor-integration.js`** — `/advisor` escalation hook; convention-based fallback if no programmable API.
@@ -281,7 +365,7 @@ After `npm install @tekyzinc/gsd-t@3.10.10`, run `/user:gsd-t-version-update-all
281
365
  - **`.gsd-t/contracts/token-telemetry-contract.md` v1.0.0 ACTIVE** — frozen 18-field per-spawn JSONL schema, `halt_type` enum, `run_type` enum.
282
366
  - **`.gsd-t/contracts/runway-estimator-contract.md` v1.0.0 ACTIVE** — pre-flight projection, three-tier query fallback, confidence grading, refusal + headless handoff contract.
283
367
  - **`.gsd-t/contracts/headless-auto-spawn-contract.md` v1.0.0 ACTIVE** — detached continuation, session file schema, macOS notification channel, read-back banner.
284
- - **`commands/gsd-t-optimization-apply.md`** — promotes a backlog recommendation by ID, auto-routes to `/user:gsd-t-quick` or `/user:gsd-t-backlog-promote` based on recommendation type.
368
+ - **`commands/gsd-t-optimization-apply.md`** — promotes a backlog recommendation by ID, auto-routes to `/gsd-t-quick` or `/gsd-t-backlog-promote` based on recommendation type.
285
369
  - **`commands/gsd-t-optimization-reject.md`** — rejects a recommendation with optional `--reason`, sets 5-milestone cooldown. Reason captured in token-log.md + Decision Log.
286
370
  - **`gsd-t metrics` flags** — `--tokens` (per-command/phase token summary), `--halts` (halt-type breakdown; flags any `native-compact` as defect), `--context-window` (trailing 20-run `end_pct` with runway headroom).
287
371
  - **Test coverage**: `test/headless-auto-spawn.test.js` (16 tests — session file schema, completion watcher, read-back banner, non-darwin degradation, E2E shim smoke), `test/token-optimizer.test.js` (19 tests — each rule triggers/skips, parseBacklog round-trip, cooldown filter, OB-T1+OB-T4 integration roundtrip), plus rewrites of `test/token-budget.test.js` around v3.0.0. **~1011/1011 total tests green through Wave 4**.
@@ -321,7 +405,7 @@ After `npm install @tekyzinc/gsd-t@3.10.10`, run `/user:gsd-t-version-update-all
321
405
 
322
406
  ### Propagation
323
407
 
324
- Run `/user:gsd-t-version-update-all` from any registered GSD-T project to propagate v2.76.10 to all projects. The command files, templates, and `bin/` scripts are rewritten in place; project state in `.gsd-t/` is preserved.
408
+ Run `/gsd-t-version-update-all` from any registered GSD-T project to propagate v2.76.10 to all projects. The command files, templates, and `bin/` scripts are rewritten in place; project state in `.gsd-t/` is preserved.
325
409
 
326
410
  ---
327
411
 
@@ -375,7 +459,7 @@ Run `/user:gsd-t-version-update-all` from any registered GSD-T project to propag
375
459
 
376
460
  ### Propagation
377
461
 
378
- After publishing, run `/user:gsd-t-version-update-all` to propagate M34 (hook, config, installer, rewritten token-budget, command file updates, retirement migration) to every registered GSD-T project in a single sweep.
462
+ After publishing, run `/gsd-t-version-update-all` to propagate M34 (hook, config, installer, rewritten token-budget, command file updates, retirement migration) to every registered GSD-T project in a single sweep.
379
463
 
380
464
  ## [2.74.13] - 2026-04-14
381
465
 
@@ -389,7 +473,7 @@ After publishing, run `/user:gsd-t-version-update-all` to propagate M34 (hook, c
389
473
  - **`bin/gsd-t.js`** — `PROJECT_BIN_TOOLS` now includes `task-counter.cjs`. One-line change at `bin/gsd-t.js:1562`.
390
474
  - **`bin/gsd-t.js`** — `doInit()` now calls `copyBinToolsToProject(projectDir, projectName)` after `initGsdtDir`, so newly-initialized projects ship bin tools immediately.
391
475
 
392
- v2.74.12's entire two-layer fix (task-count gate + extracted prompts) is correct — it just needed one line to actually distribute the counter script. Running `/user:gsd-t-version-update-all` after publishing this version will propagate `task-counter.cjs` to every registered project.
476
+ v2.74.12's entire two-layer fix (task-count gate + extracted prompts) is correct — it just needed one line to actually distribute the counter script. Running `/gsd-t-version-update-all` after publishing this version will propagate `task-counter.cjs` to every registered project.
393
477
 
394
478
  ## [2.74.12] - 2026-04-14
395
479
 
@@ -401,7 +485,7 @@ v2.74.12's entire two-layer fix (task-count gate + extracted prompts) is correct
401
485
 
402
486
  #### Fix 1: Real task-count gate (replaces vaporware env-var check)
403
487
  - **NEW `bin/task-counter.cjs`** — deterministic on-disk task counter. State: `.gsd-t/.task-counter`. Config: `.gsd-t/task-counter-config.json` (default limit: 5). Env override: `GSD_T_TASK_LIMIT`. Commands: `increment <kind>`, `status`, `reset`, `should-stop` (exit code 10 at limit). This is the real signal the old self-check *pretended* to be.
404
- - **`commands/gsd-t-execute.md`** — Step 0 resets the counter; Step 3.5 calls `node bin/task-counter.cjs should-stop` as a gate before every task spawn; Step 5 increments after each task. At limit, the orchestrator checkpoints and STOPs — user runs `/clear` then `/user:gsd-t-resume`.
488
+ - **`commands/gsd-t-execute.md`** — Step 0 resets the counter; Step 3.5 calls `node bin/task-counter.cjs should-stop` as a gate before every task spawn; Step 5 increments after each task. At limit, the orchestrator checkpoints and STOPs — user runs `/clear` then `/gsd-t-resume`.
405
489
  - **`commands/gsd-t-wave.md`** — analogous phase-count gate replaces the broken "Wave Orchestrator Context Self-Check."
406
490
  - **`bin/token-budget.js`** — `getSessionStatus()` rewritten to read the task counter instead of env vars. API surface preserved (threshold/pct/consumed/estimated_remaining) so all dependent commands keep working. Graduated-degradation thresholds (warn/downgrade/conserve/stop) now fire on real signal.
407
491
 
@@ -416,7 +500,7 @@ v2.74.12's entire two-layer fix (task-count gate + extracted prompts) is correct
416
500
  - Test suite (`test/token-budget.test.js`) rewritten around the new counter-based `getSessionStatus()`. 36/36 passing.
417
501
 
418
502
  ### Propagation
419
- After publishing, run `/user:gsd-t-version-update-all` to propagate the fix to every registered GSD-T project. Projects will receive the new `bin/task-counter.cjs` and updated command files in a single sweep.
503
+ After publishing, run `/gsd-t-version-update-all` to propagate the fix to every registered GSD-T project. Projects will receive the new `bin/task-counter.cjs` and updated command files in a single sweep.
420
504
 
421
505
  ## [2.74.11] - 2026-04-13
422
506
 
@@ -610,7 +694,7 @@ Build → Measure → **Automated AI Review** (reviewer → fixer → re-review
610
694
  ## [2.71.15] - 2026-04-08
611
695
 
612
696
  ### Changed (design-build command → orchestrator delegate)
613
- - **`gsd-t-design-build.md` now delegates to the JS orchestrator** — the 388-line prompt-based command is replaced with a thin wrapper that runs `gsd-t design-build`. Both `/user:gsd-t-design-build` and `gsd-t design-build` now end up in the same deterministic pipeline. No more prompt-based gates that get skipped.
697
+ - **`gsd-t-design-build.md` now delegates to the JS orchestrator** — the 388-line prompt-based command is replaced with a thin wrapper that runs `gsd-t design-build`. Both `/gsd-t-design-build` and `gsd-t design-build` now end up in the same deterministic pipeline. No more prompt-based gates that get skipped.
614
698
 
615
699
  ## [2.71.14] - 2026-04-08
616
700
 
@@ -725,12 +809,12 @@ BDS horizontal stacked bar cards required 5 user-prompted fix iterations to get
725
809
  ## [2.69.11] - 2026-04-05
726
810
 
727
811
  ### Changed (gsd-t-design-audit)
728
- - **Auto-fix prompt** — after audit completes, if CRITICAL/HIGH deviations found, automatically prompts `/user:gsd-t-quick` with the audit report as source of truth. Re-runs audit after fixes to verify. Up to 2 fix cycles before stopping.
812
+ - **Auto-fix prompt** — after audit completes, if CRITICAL/HIGH deviations found, automatically prompts `/gsd-t-quick` with the audit report as source of truth. Re-runs audit after fixes to verify. Up to 2 fix cycles before stopping.
729
813
 
730
814
  ## [2.69.10] - 2026-04-05
731
815
 
732
816
  ### Added
733
- - **`/user:gsd-t-design-audit` command** — compare a built screen against a Figma design. Node-level Figma decomposition, per-widget comparison tables (10-30+ rows each), severity-rated deviations (CRITICAL/HIGH/MEDIUM/LOW), fidelity percentage. Writes zero code — report only. Usage: `/user:gsd-t-design-audit {Figma URL} {route}`.
817
+ - **`/gsd-t-design-audit` command** — compare a built screen against a Figma design. Node-level Figma decomposition, per-widget comparison tables (10-30+ rows each), severity-rated deviations (CRITICAL/HIGH/MEDIUM/LOW), fidelity percentage. Writes zero code — report only. Usage: `/gsd-t-design-audit {Figma URL} {route}`.
734
818
 
735
819
  ## [2.68.13] - 2026-04-05
736
820
 
@@ -854,7 +938,7 @@ Post-validation comparison of the built BDS Analytics screen against the origina
854
938
  - **Hierarchical design contracts** — `element` → `widget` → `page` contract hierarchy for design-to-code projects. Element contracts are the single source of truth for visual spec (one contract per visual variant, e.g., `chart-bar-stacked-horizontal` and `chart-bar-stacked-vertical` are separate). Widgets compose elements with layout + data binding. Pages compose widgets with routing + grid layout.
855
939
  - **Precedence rule**: element > widget > page. Widgets and pages SELECT and POSITION elements but cannot override element visual spec. Structural drift becomes impossible.
856
940
  - **New templates**: `templates/element-contract.md`, `templates/widget-contract.md`, `templates/page-contract.md`
857
- - **New command**: `/user:gsd-t-design-decompose` — surveys a design (Figma/image/prototype), classifies elements (reuse count ≥2 or non-trivial spec → promoted to element contract), identifies widgets and pages, writes the full contract hierarchy under `.gsd-t/contracts/design/{elements,widgets,pages}/` plus an `INDEX.md` navigation map.
941
+ - **New command**: `/gsd-t-design-decompose` — surveys a design (Figma/image/prototype), classifies elements (reuse count ≥2 or non-trivial spec → promoted to element contract), identifies widgets and pages, writes the full contract hierarchy under `.gsd-t/contracts/design/{elements,widgets,pages}/` plus an `INDEX.md` navigation map.
858
942
 
859
943
  ### Changed
860
944
  - `design-to-code.md` stack rule adds Section 0 explaining flat vs. hierarchical contract modes and detection at execute-time (presence of `.gsd-t/contracts/design/` triggers hierarchical verification: elements first, then widgets, then pages)
@@ -1218,7 +1302,7 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1218
1302
  ## [2.20.5] - 2026-02-16
1219
1303
 
1220
1304
  ### Added
1221
- - **Next Command Hint**: After each GSD-T phase completes, displays the recommended next command (e.g., `Next → /user:gsd-t-partition`). Full successor mapping for all workflow commands. Skipped during auto-advancing (Level 3 mid-wave)
1305
+ - **Next Command Hint**: After each GSD-T phase completes, displays the recommended next command (e.g., `Next → /gsd-t-partition`). Full successor mapping for all workflow commands. Skipped during auto-advancing (Level 3 mid-wave)
1222
1306
 
1223
1307
  ## [2.20.4] - 2026-02-16
1224
1308
 
@@ -1288,7 +1372,7 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1288
1372
  ## [2.17.0] - 2026-02-16
1289
1373
 
1290
1374
  ### Added
1291
- - `/user:gsd-t-log` command — sync progress.md Decision Log with recent git activity by scanning commits since last logged entry
1375
+ - `/gsd-t-log` command — sync progress.md Decision Log with recent git activity by scanning commits since last logged entry
1292
1376
  - Incremental updates (only new commits) and first-time full reconstruction from git history
1293
1377
  - Total commands: 38 GSD-T + 3 utility = 41
1294
1378
 
@@ -1304,7 +1388,7 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1304
1388
  ## [2.16.4] - 2026-02-16
1305
1389
 
1306
1390
  ### Changed
1307
- - Smart router renamed from `/user:gsd-t` to `/user:gsd` — sorts first in autocomplete, shorter to type
1391
+ - Smart router renamed from `/gsd-t` to `/gsd` — sorts first in autocomplete, shorter to type
1308
1392
  - Pre-Commit Gate now requires timestamped progress.md entry (`YYYY-MM-DD HH:MM`) after every completed task, not just architectural decisions
1309
1393
 
1310
1394
  ## [2.16.3] - 2026-02-16
@@ -1315,7 +1399,7 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1315
1399
  ## [2.16.2] - 2026-02-16
1316
1400
 
1317
1401
  ### Changed
1318
- - Smart router renamed from `/user:gsd-t` to `/user:gsd` (reverted in 2.16.3)
1402
+ - Smart router renamed from `/gsd-t` to `/gsd` (reverted in 2.16.3)
1319
1403
 
1320
1404
  ## [2.16.1] - 2026-02-16
1321
1405
 
@@ -1355,7 +1439,7 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1355
1439
  ## [2.15.0] - 2026-02-13
1356
1440
 
1357
1441
  ### Added
1358
- - `/user:gsd-t-gap-analysis` command — requirements gap analysis against existing codebase
1442
+ - `/gsd-t-gap-analysis` command — requirements gap analysis against existing codebase
1359
1443
  - Parses spec into discrete numbered requirements, scans codebase, classifies each as implemented/partial/incorrect/not-implemented
1360
1444
  - Evidence-based classification with file:line references for each requirement
1361
1445
  - Severity levels: Critical (incorrect), High (partial), Medium (not implemented), Low (deferrable)
@@ -1375,12 +1459,12 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1375
1459
 
1376
1460
  ### Changed
1377
1461
  - Update Notices section in CLAUDE-global template now handles both `[GSD-T UPDATE]` (update available) and `[GSD-T]` (up to date) version banners
1378
- - Update command in notification changed from raw npm command to `/user:gsd-t-version-update-all`
1462
+ - Update command in notification changed from raw npm command to `/gsd-t-version-update-all`
1379
1463
 
1380
1464
  ## [2.14.0] - 2026-02-12
1381
1465
 
1382
1466
  ### Added
1383
- - `/user:gsd-t` smart router command — describe what you need in plain language, auto-routes to the correct GSD-T command
1467
+ - `/gsd-t` smart router command — describe what you need in plain language, auto-routes to the correct GSD-T command
1384
1468
  - Intent classification routes to: quick, feature, project, debug, scan, brainstorm, milestone, wave, status, resume, backlog-add, and more
1385
1469
  - Total commands: 36 GSD-T + 3 utility = 39
1386
1470
 
@@ -1409,15 +1493,15 @@ Post-validation comparison of the built BDS Analytics screen against the origina
1409
1493
  ## [2.13.0] - 2026-02-12
1410
1494
 
1411
1495
  ### Added
1412
- - `/user:gsd-t-init-scan-setup` slash command — full project onboarding combining git setup, init, scan, and setup in one command
1496
+ - `/gsd-t-init-scan-setup` slash command — full project onboarding combining git setup, init, scan, and setup in one command
1413
1497
  - Prompts for GitHub repo URL if not already connected; skips if remote exists
1414
1498
  - Total commands: 35 GSD-T + 3 utility = 38
1415
1499
 
1416
1500
  ## [2.12.0] - 2026-02-12
1417
1501
 
1418
1502
  ### Added
1419
- - `/user:gsd-t-version-update` slash command — update GSD-T to latest version from within Claude Code
1420
- - `/user:gsd-t-version-update-all` slash command — update GSD-T + all registered projects from within Claude Code
1503
+ - `/gsd-t-version-update` slash command — update GSD-T to latest version from within Claude Code
1504
+ - `/gsd-t-version-update-all` slash command — update GSD-T + all registered projects from within Claude Code
1421
1505
  - Total commands: 34 GSD-T + 3 utility = 37
1422
1506
 
1423
1507
  ## [2.11.6] - 2026-02-12
package/README.md CHANGED
@@ -43,34 +43,34 @@ cd my-project
43
43
  claude
44
44
 
45
45
  # 2. Full onboarding (git + init + scan + setup in one)
46
- /user:gsd-t-init-scan-setup
46
+ /gsd-t-init-scan-setup
47
47
 
48
48
  # Or step by step:
49
- /user:gsd-t-init my-project
49
+ /gsd-t-init my-project
50
50
 
51
51
  # 4. Define what you're building
52
- /user:gsd-t-milestone "User Authentication System"
52
+ /gsd-t-milestone "User Authentication System"
53
53
 
54
54
  # 5. Let it rip (auto-advances through all phases)
55
- /user:gsd-t-wave
55
+ /gsd-t-wave
56
56
 
57
57
  # Or go phase by phase for more control:
58
- /user:gsd-t-partition
59
- /user:gsd-t-discuss
60
- /user:gsd-t-plan
61
- /user:gsd-t-impact
62
- /user:gsd-t-execute
63
- /user:gsd-t-test-sync
64
- /user:gsd-t-integrate
65
- /user:gsd-t-verify
66
- /user:gsd-t-complete-milestone
58
+ /gsd-t-partition
59
+ /gsd-t-discuss
60
+ /gsd-t-plan
61
+ /gsd-t-impact
62
+ /gsd-t-execute
63
+ /gsd-t-test-sync
64
+ /gsd-t-integrate
65
+ /gsd-t-verify
66
+ /gsd-t-complete-milestone
67
67
  ```
68
68
 
69
69
  ### Resuming After a Break
70
70
 
71
71
  ```bash
72
72
  claude
73
- /user:gsd-t-resume
73
+ /gsd-t-resume
74
74
  ```
75
75
 
76
76
  GSD-T reads all state files and tells you exactly where you left off.
@@ -126,100 +126,100 @@ This will replace changed command files, back up your CLAUDE.md if customized, a
126
126
 
127
127
  | Command | Purpose | Auto |
128
128
  |---------|---------|------|
129
- | `/user:gsd {request}` | Describe what you need → auto-routes to the right command | Manual |
129
+ | `/gsd {request}` | Describe what you need → auto-routes to the right command | Manual |
130
130
  | _(any plain text)_ | Auto-routed via UserPromptSubmit hook — no leading `/` needed | Auto |
131
131
 
132
132
  ### Help & Onboarding
133
133
 
134
134
  | Command | Purpose | Auto |
135
135
  |---------|---------|------|
136
- | `/user:gsd-t-help` | List all commands with descriptions | Manual |
137
- | `/user:gsd-t-help {cmd}` | Detailed help for specific command | Manual |
138
- | `/user:gsd-t-prompt` | Help formulate your idea before committing | Manual |
139
- | `/user:gsd-t-brainstorm` | Creative exploration and idea generation | Manual |
140
- | `/user:gsd-t-prd` | Generate a GSD-T-optimized Product Requirements Document | Manual |
136
+ | `/gsd-t-help` | List all commands with descriptions | Manual |
137
+ | `/gsd-t-help {cmd}` | Detailed help for specific command | Manual |
138
+ | `/gsd-t-prompt` | Help formulate your idea before committing | Manual |
139
+ | `/gsd-t-brainstorm` | Creative exploration and idea generation | Manual |
140
+ | `/gsd-t-prd` | Generate a GSD-T-optimized Product Requirements Document | Manual |
141
141
 
142
142
  ### Project Initialization
143
143
 
144
144
  | Command | Purpose | Auto |
145
145
  |---------|---------|------|
146
- | `/user:gsd-t-setup` | Generate or restructure project CLAUDE.md | Manual |
147
- | `/user:gsd-t-init` | Initialize GSD-T structure in project | Manual |
148
- | `/user:gsd-t-init-scan-setup` | Full onboarding: git + init + scan + setup in one | Manual |
149
- | `/user:gsd-t-project` | Full project → milestone roadmap | Manual |
150
- | `/user:gsd-t-feature` | Major feature → impact analysis + milestones | Manual |
151
- | `/user:gsd-t-scan` | Deep codebase analysis → techdebt.md | Manual |
152
- | `/user:gsd-t-gap-analysis` | Requirements gap analysis — spec vs. existing code | Manual |
153
- | `/user:gsd-t-promote-debt` | Convert techdebt items to milestones | Manual |
154
- | `/user:gsd-t-populate` | Auto-populate docs from existing codebase | Manual |
155
- | `/user:gsd-t-design-decompose` | Decompose design into element/widget/page contracts | Manual |
146
+ | `/gsd-t-setup` | Generate or restructure project CLAUDE.md | Manual |
147
+ | `/gsd-t-init` | Initialize GSD-T structure in project | Manual |
148
+ | `/gsd-t-init-scan-setup` | Full onboarding: git + init + scan + setup in one | Manual |
149
+ | `/gsd-t-project` | Full project → milestone roadmap | Manual |
150
+ | `/gsd-t-feature` | Major feature → impact analysis + milestones | Manual |
151
+ | `/gsd-t-scan` | Deep codebase analysis → techdebt.md | Manual |
152
+ | `/gsd-t-gap-analysis` | Requirements gap analysis — spec vs. existing code | Manual |
153
+ | `/gsd-t-promote-debt` | Convert techdebt items to milestones | Manual |
154
+ | `/gsd-t-populate` | Auto-populate docs from existing codebase | Manual |
155
+ | `/gsd-t-design-decompose` | Decompose design into element/widget/page contracts | Manual |
156
156
 
157
157
  ### Milestone Workflow
158
158
 
159
159
  | Command | Purpose | Auto |
160
160
  |---------|---------|------|
161
- | `/user:gsd-t-milestone` | Define new milestone | Manual |
162
- | `/user:gsd-t-partition` | Decompose into domains + contracts | In wave |
163
- | `/user:gsd-t-discuss` | Multi-perspective design exploration | In wave |
164
- | `/user:gsd-t-plan` | Create atomic task lists per domain (tasks auto-split to fit one context window) | In wave |
165
- | `/user:gsd-t-impact` | Analyze downstream effects | In wave |
166
- | `/user:gsd-t-execute` | Run tasks — task-level fresh dispatch, worktree isolation, adaptive replanning | In wave |
167
- | `/user:gsd-t-test-sync` | Sync tests with code changes | In wave |
168
- | `/user:gsd-t-qa` | QA agent — test generation, execution, gap reporting | Auto-spawned |
161
+ | `/gsd-t-milestone` | Define new milestone | Manual |
162
+ | `/gsd-t-partition` | Decompose into domains + contracts | In wave |
163
+ | `/gsd-t-discuss` | Multi-perspective design exploration | In wave |
164
+ | `/gsd-t-plan` | Create atomic task lists per domain (tasks auto-split to fit one context window) | In wave |
165
+ | `/gsd-t-impact` | Analyze downstream effects | In wave |
166
+ | `/gsd-t-execute` | Run tasks — task-level fresh dispatch, worktree isolation, adaptive replanning | In wave |
167
+ | `/gsd-t-test-sync` | Sync tests with code changes | In wave |
168
+ | `/gsd-t-qa` | QA agent — test generation, execution, gap reporting | Auto-spawned |
169
169
  | *Red Team* | Adversarial QA — finds bugs the builder missed (inverted incentives) | Auto-spawned |
170
- | `/user:gsd-t-doc-ripple` | Automated document ripple — update downstream docs after code changes | Auto-spawned |
171
- | `/user:gsd-t-integrate` | Wire domains together | In wave |
172
- | `/user:gsd-t-verify` | Run quality gates + goal-backward behavior verification | In wave |
173
- | `/user:gsd-t-complete-milestone` | Archive + git tag (goal-backward gate required) | In wave |
170
+ | `/gsd-t-doc-ripple` | Automated document ripple — update downstream docs after code changes | Auto-spawned |
171
+ | `/gsd-t-integrate` | Wire domains together | In wave |
172
+ | `/gsd-t-verify` | Run quality gates + goal-backward behavior verification | In wave |
173
+ | `/gsd-t-complete-milestone` | Archive + git tag (goal-backward gate required) | In wave |
174
174
 
175
175
  ### Unattended Execution
176
176
 
177
177
  | Command | Purpose | Auto |
178
178
  |---------|---------|------|
179
- | `/user:gsd-t-unattended` | Launch detached supervisor — runs active milestone to completion with zero human intervention | Manual |
180
- | `/user:gsd-t-unattended-watch` | Watch tick — fires every 270s via ScheduleWakeup, reports supervisor status | Auto |
181
- | `/user:gsd-t-unattended-stop` | Touch stop sentinel — supervisor halts after current worker finishes | Manual |
179
+ | `/gsd-t-unattended` | Launch detached supervisor — runs active milestone to completion with zero human intervention | Manual |
180
+ | `/gsd-t-unattended-watch` | Watch tick — fires every 270s via ScheduleWakeup, reports supervisor status | Auto |
181
+ | `/gsd-t-unattended-stop` | Touch stop sentinel — supervisor halts after current worker finishes | Manual |
182
182
 
183
183
  ### Automation & Utilities
184
184
 
185
185
  | Command | Purpose | Auto |
186
186
  |---------|---------|------|
187
- | `/user:gsd-t-wave` | Full cycle, auto-advances all phases | Manual |
188
- | `/user:gsd-t-status` | Cross-domain progress view with token breakdown by domain/task/phase | Manual |
189
- | `/user:gsd-t-resume` | Restore context, continue | Manual |
190
- | `/user:gsd-t-quick` | Fast task with GSD-T guarantees | Manual |
191
- | `/user:gsd-t-visualize` | Launch browser dashboard — SSE server + React Flow agent visualization | Manual |
192
- | `/user:gsd-t-debug` | Systematic debugging with state | Manual |
193
- | `/user:gsd-t-metrics` | View task telemetry, process ELO, signal distribution, domain health, and cross-project comparison (`--cross-project`) | Manual |
194
- | `/user:gsd-t-health` | Validate .gsd-t/ structure, optionally repair | Manual |
195
- | `/user:gsd-t-pause` | Save exact position for reliable resume | Manual |
196
- | `/user:gsd-t-log` | Sync progress Decision Log with recent git activity | Manual |
197
- | `/user:gsd-t-version-update` | Update GSD-T to latest version | Manual |
198
- | `/user:gsd-t-version-update-all` | Update GSD-T + all registered projects | Manual |
199
- | `/user:gsd-t-triage-and-merge` | Auto-review, merge, and publish GitHub branches | Manual |
200
- | `/user:gsd-t-design-audit` | Compare built screen against Figma design — structured deviation report | Manual |
201
- | `/user:gsd-t-design-build` | Build from design contracts with two-terminal review (Term 1 builder) | Manual |
202
- | `/user:gsd-t-design-review` | Independent review agent for design build (Term 2 reviewer) | Auto |
187
+ | `/gsd-t-wave` | Full cycle, auto-advances all phases | Manual |
188
+ | `/gsd-t-status` | Cross-domain progress view with token breakdown by domain/task/phase | Manual |
189
+ | `/gsd-t-resume` | Restore context, continue | Manual |
190
+ | `/gsd-t-quick` | Fast task with GSD-T guarantees | Manual |
191
+ | `/gsd-t-visualize` | Launch browser dashboard — SSE server + React Flow agent visualization | Manual |
192
+ | `/gsd-t-debug` | Systematic debugging with state | Manual |
193
+ | `/gsd-t-metrics` | View task telemetry, process ELO, signal distribution, domain health, and cross-project comparison (`--cross-project`) | Manual |
194
+ | `/gsd-t-health` | Validate .gsd-t/ structure, optionally repair | Manual |
195
+ | `/gsd-t-pause` | Save exact position for reliable resume | Manual |
196
+ | `/gsd-t-log` | Sync progress Decision Log with recent git activity | Manual |
197
+ | `/gsd-t-version-update` | Update GSD-T to latest version | Manual |
198
+ | `/gsd-t-version-update-all` | Update GSD-T + all registered projects | Manual |
199
+ | `/gsd-t-triage-and-merge` | Auto-review, merge, and publish GitHub branches | Manual |
200
+ | `/gsd-t-design-audit` | Compare built screen against Figma design — structured deviation report | Manual |
201
+ | `/gsd-t-design-build` | Build from design contracts with two-terminal review (Term 1 builder) | Manual |
202
+ | `/gsd-t-design-review` | Independent review agent for design build (Term 2 reviewer) | Auto |
203
203
 
204
204
  ### Backlog Management
205
205
 
206
206
  | Command | Purpose | Auto |
207
207
  |---------|---------|------|
208
- | `/user:gsd-t-backlog-add` | Capture item, auto-categorize, append to backlog | Manual |
209
- | `/user:gsd-t-backlog-list` | Filtered, ordered view of backlog items | Manual |
210
- | `/user:gsd-t-backlog-move` | Reorder items by position (priority) | Manual |
211
- | `/user:gsd-t-backlog-edit` | Modify backlog entry fields | Manual |
212
- | `/user:gsd-t-backlog-remove` | Drop item with optional reason | Manual |
213
- | `/user:gsd-t-backlog-promote` | Refine, classify, launch GSD-T workflow | Manual |
214
- | `/user:gsd-t-backlog-settings` | Manage types, apps, categories, defaults | Manual |
208
+ | `/gsd-t-backlog-add` | Capture item, auto-categorize, append to backlog | Manual |
209
+ | `/gsd-t-backlog-list` | Filtered, ordered view of backlog items | Manual |
210
+ | `/gsd-t-backlog-move` | Reorder items by position (priority) | Manual |
211
+ | `/gsd-t-backlog-edit` | Modify backlog entry fields | Manual |
212
+ | `/gsd-t-backlog-remove` | Drop item with optional reason | Manual |
213
+ | `/gsd-t-backlog-promote` | Refine, classify, launch GSD-T workflow | Manual |
214
+ | `/gsd-t-backlog-settings` | Manage types, apps, categories, defaults | Manual |
215
215
 
216
216
  ### Git Helpers
217
217
 
218
218
  | Command | Purpose | Auto |
219
219
  |---------|---------|------|
220
- | `/user:branch` | Create and switch to a new git branch | Manual |
221
- | `/user:checkin` | Auto-bump version, stage, commit, and push | Manual |
222
- | `/user:Claude-md` | Reload CLAUDE.md directives mid-session | Manual |
220
+ | `/branch` | Create and switch to a new git branch | Manual |
221
+ | `/checkin` | Auto-bump version, stage, commit, and push | Manual |
222
+ | `/Claude-md` | Reload CLAUDE.md directives mid-session | Manual |
223
223
  | `/global-change` | Apply file changes across all registered GSD-T projects | Manual |
224
224
 
225
225
  ---
@@ -323,17 +323,17 @@ Run the active milestone to completion over hours or days — no human in the lo
323
323
  gsd-t unattended --hours=24
324
324
 
325
325
  # Or from within Claude Code (starts a 270s watch loop)
326
- /user:gsd-t-unattended
326
+ /gsd-t-unattended
327
327
 
328
328
  # Stop (graceful — supervisor halts after the current worker finishes)
329
- /user:gsd-t-unattended-stop
329
+ /gsd-t-unattended-stop
330
330
  ```
331
331
 
332
332
  **How it works:**
333
333
 
334
334
  - `gsd-t unattended` spawns `bin/gsd-t-unattended.js` as a fully detached OS process. The supervisor runs `claude -p` workers in a relay — one worker per iteration — each in a fresh context window. State is written atomically to `.gsd-t/.unattended/state.json` between iterations.
335
- - `/user:gsd-t-unattended` does the same from inside Claude Code, then calls `ScheduleWakeup(270, '/gsd-t-unattended-watch')` to start an in-session watch loop that ticks every 270 seconds and prints progress.
336
- - If you run `/clear` + `/user:gsd-t-resume` during a live run, the resume command auto-detects the running supervisor and re-attaches the watch loop — no re-launch needed.
335
+ - `/gsd-t-unattended` does the same from inside Claude Code, then calls `ScheduleWakeup(270, '/gsd-t-unattended-watch')` to start an in-session watch loop that ticks every 270 seconds and prints progress.
336
+ - If you run `/clear` + `/gsd-t-resume` during a live run, the resume command auto-detects the running supervisor and re-attaches the watch loop — no re-launch needed.
337
337
  - The supervisor halts automatically when: the milestone reaches COMPLETED status, the `--hours` wall-clock cap expires, `--max-iterations` is reached, safety rails detect a stall or unrecoverable error, or the stop sentinel is touched.
338
338
 
339
339
  **Platform support:** macOS and Linux fully supported (including sleep-prevention via `caffeinate` on macOS). Windows is supported except sleep-prevention. See `docs/unattended-windows-caveats.md` for known Windows limitations.
@@ -439,7 +439,7 @@ copy commands\*.md %USERPROFILE%\.claude\commands\
439
439
  cp commands/*.md ~/.claude/commands/
440
440
  ```
441
441
 
442
- Verify with: `/user:gsd-t-help`
442
+ Verify with: `/gsd-t-help`
443
443
 
444
444
  ---
445
445
 
@@ -31,7 +31,7 @@ function discoverWork(projectDir) {
31
31
  const indexPath = path.join(contractsDir, "INDEX.md");
32
32
 
33
33
  if (!fs.existsSync(indexPath)) {
34
- error("No design contracts found. Run /user:gsd-t-design-decompose first.");
34
+ error("No design contracts found. Run /gsd-t-design-decompose first.");
35
35
  process.exit(1);
36
36
  }
37
37