@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.
- package/CHANGELOG.md +110 -26
- package/README.md +76 -76
- package/bin/design-orchestrator.js +1 -1
- package/bin/gsd-t-unattended.cjs +56 -2
- package/bin/gsd-t-unattended.js +1 -1
- package/bin/gsd-t.js +198 -17
- package/bin/headless-auto-spawn.cjs +58 -2
- package/commands/gsd-t-backlog-promote.md +6 -6
- package/commands/gsd-t-complete-milestone.md +7 -7
- package/commands/gsd-t-design-audit.md +3 -3
- package/commands/gsd-t-design-build.md +1 -1
- package/commands/gsd-t-design-decompose.md +4 -4
- package/commands/gsd-t-execute.md +1 -1
- package/commands/gsd-t-feature.md +3 -3
- package/commands/gsd-t-gap-analysis.md +3 -3
- package/commands/gsd-t-health.md +3 -3
- package/commands/gsd-t-help.md +10 -10
- package/commands/gsd-t-impact.md +3 -3
- package/commands/gsd-t-init-scan-setup.md +5 -5
- package/commands/gsd-t-init.md +4 -4
- package/commands/gsd-t-log.md +1 -1
- package/commands/gsd-t-milestone.md +2 -2
- package/commands/gsd-t-pause.md +2 -2
- package/commands/gsd-t-prd.md +2 -2
- package/commands/gsd-t-project.md +1 -1
- package/commands/gsd-t-resume.md +4 -4
- package/commands/gsd-t-scan.md +3 -3
- package/commands/gsd-t-setup.md +2 -2
- package/commands/gsd-t-test-sync.md +1 -1
- package/commands/gsd-t-unattended-watch.md +5 -5
- package/commands/gsd-t-unattended.md +9 -9
- package/commands/gsd-t-wave.md +4 -4
- package/commands/gsd.md +17 -17
- package/docs/GSD-T-README.md +68 -68
- package/docs/architecture.md +8 -8
- package/docs/context-budget-recovery-plan.md +2 -2
- package/docs/infrastructure.md +7 -7
- package/docs/methodology.md +1 -1
- package/docs/neo4j-setup.md +2 -2
- package/docs/prd-gsd2-hybrid.md +1 -1
- package/docs/prd-harness-evolution.md +1 -1
- package/docs/requirements.md +2 -2
- package/docs/unattended-config.md +1 -1
- package/docs/unattended-windows-caveats.md +1 -1
- package/docs/workflows.md +1 -1
- package/package.json +1 -1
- package/scripts/context-meter/threshold.test.js +2 -2
- package/scripts/gsd-t-auto-route.js +1 -1
- package/scripts/gsd-t-context-meter.e2e.test.js +1 -1
- package/scripts/gsd-t-context-meter.test.js +1 -1
- package/scripts/gsd-t-event-writer.js +8 -2
- package/scripts/gsd-t-update-check.js +1 -1
- package/templates/CLAUDE-global.md +18 -163
- package/templates/stacks/_markdown.md +32 -0
- 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`** — `/
|
|
232
|
-
- **`commands/gsd-t-unattended-watch.md`** — `/
|
|
233
|
-
- **`commands/gsd-t-unattended-stop.md`** — `/
|
|
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
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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 `/
|
|
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
|
-
- **`/
|
|
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**: `/
|
|
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 → /
|
|
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
|
-
- `/
|
|
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 `/
|
|
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 `/
|
|
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
|
-
- `/
|
|
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 `/
|
|
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
|
-
- `/
|
|
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
|
-
- `/
|
|
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
|
-
- `/
|
|
1420
|
-
- `/
|
|
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
|
-
/
|
|
46
|
+
/gsd-t-init-scan-setup
|
|
47
47
|
|
|
48
48
|
# Or step by step:
|
|
49
|
-
/
|
|
49
|
+
/gsd-t-init my-project
|
|
50
50
|
|
|
51
51
|
# 4. Define what you're building
|
|
52
|
-
/
|
|
52
|
+
/gsd-t-milestone "User Authentication System"
|
|
53
53
|
|
|
54
54
|
# 5. Let it rip (auto-advances through all phases)
|
|
55
|
-
/
|
|
55
|
+
/gsd-t-wave
|
|
56
56
|
|
|
57
57
|
# Or go phase by phase for more control:
|
|
58
|
-
/
|
|
59
|
-
/
|
|
60
|
-
/
|
|
61
|
-
/
|
|
62
|
-
/
|
|
63
|
-
/
|
|
64
|
-
/
|
|
65
|
-
/
|
|
66
|
-
/
|
|
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
|
-
/
|
|
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
|
-
| `/
|
|
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
|
-
| `/
|
|
137
|
-
| `/
|
|
138
|
-
| `/
|
|
139
|
-
| `/
|
|
140
|
-
| `/
|
|
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
|
-
| `/
|
|
147
|
-
| `/
|
|
148
|
-
| `/
|
|
149
|
-
| `/
|
|
150
|
-
| `/
|
|
151
|
-
| `/
|
|
152
|
-
| `/
|
|
153
|
-
| `/
|
|
154
|
-
| `/
|
|
155
|
-
| `/
|
|
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
|
-
| `/
|
|
162
|
-
| `/
|
|
163
|
-
| `/
|
|
164
|
-
| `/
|
|
165
|
-
| `/
|
|
166
|
-
| `/
|
|
167
|
-
| `/
|
|
168
|
-
| `/
|
|
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
|
-
| `/
|
|
171
|
-
| `/
|
|
172
|
-
| `/
|
|
173
|
-
| `/
|
|
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
|
-
| `/
|
|
180
|
-
| `/
|
|
181
|
-
| `/
|
|
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
|
-
| `/
|
|
188
|
-
| `/
|
|
189
|
-
| `/
|
|
190
|
-
| `/
|
|
191
|
-
| `/
|
|
192
|
-
| `/
|
|
193
|
-
| `/
|
|
194
|
-
| `/
|
|
195
|
-
| `/
|
|
196
|
-
| `/
|
|
197
|
-
| `/
|
|
198
|
-
| `/
|
|
199
|
-
| `/
|
|
200
|
-
| `/
|
|
201
|
-
| `/
|
|
202
|
-
| `/
|
|
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
|
-
| `/
|
|
209
|
-
| `/
|
|
210
|
-
| `/
|
|
211
|
-
| `/
|
|
212
|
-
| `/
|
|
213
|
-
| `/
|
|
214
|
-
| `/
|
|
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
|
-
| `/
|
|
221
|
-
| `/
|
|
222
|
-
| `/
|
|
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
|
-
/
|
|
326
|
+
/gsd-t-unattended
|
|
327
327
|
|
|
328
328
|
# Stop (graceful — supervisor halts after the current worker finishes)
|
|
329
|
-
/
|
|
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
|
-
- `/
|
|
336
|
-
- If you run `/clear` + `/
|
|
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: `/
|
|
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 /
|
|
34
|
+
error("No design contracts found. Run /gsd-t-design-decompose first.");
|
|
35
35
|
process.exit(1);
|
|
36
36
|
}
|
|
37
37
|
|