gsdd-cli 0.26.0 → 0.28.0

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 (82) hide show
  1. package/README.md +55 -23
  2. package/agents/DISTILLATION.md +2 -2
  3. package/agents/README.md +4 -4
  4. package/agents/approach-explorer.md +4 -4
  5. package/agents/executor.md +14 -14
  6. package/agents/integration-checker.md +2 -2
  7. package/agents/researcher.md +2 -2
  8. package/agents/roadmapper.md +6 -6
  9. package/agents/synthesizer.md +18 -18
  10. package/agents/verifier.md +2 -2
  11. package/bin/adapters/agents.mjs +3 -3
  12. package/bin/adapters/claude.mjs +16 -14
  13. package/bin/adapters/opencode.mjs +15 -12
  14. package/bin/gsdd.mjs +16 -13
  15. package/bin/lib/{models.mjs → config.mjs} +23 -16
  16. package/bin/lib/control-map.mjs +17 -488
  17. package/bin/lib/global-install.mjs +16 -3
  18. package/bin/lib/health-truth.mjs +8 -13
  19. package/bin/lib/health.mjs +25 -39
  20. package/bin/lib/init-flow.mjs +44 -38
  21. package/bin/lib/init-prompts.mjs +3 -3
  22. package/bin/lib/init-runtime.mjs +17 -33
  23. package/bin/lib/lifecycle-preflight.mjs +297 -404
  24. package/bin/lib/lifecycle-state.mjs +2 -1
  25. package/bin/lib/next.mjs +243 -20
  26. package/bin/lib/phase.mjs +10 -315
  27. package/bin/lib/rendering.mjs +64 -44
  28. package/bin/lib/runtime-freshness.mjs +18 -15
  29. package/bin/lib/state-dir.mjs +45 -0
  30. package/bin/lib/templates.mjs +59 -22
  31. package/bin/lib/work-context.mjs +12 -1
  32. package/bin/lib/workflows.mjs +0 -1
  33. package/bin/lib/workspace-root.mjs +11 -6
  34. package/distilled/DESIGN.md +58 -2
  35. package/distilled/EVIDENCE-INDEX.md +15 -2
  36. package/distilled/README.md +23 -33
  37. package/distilled/SKILL.md +9 -10
  38. package/distilled/templates/agents.block.md +5 -5
  39. package/distilled/templates/approach.md +3 -3
  40. package/distilled/templates/auth-matrix.md +2 -2
  41. package/distilled/templates/brownfield-change/CHANGE.md +1 -1
  42. package/distilled/templates/delegates/approach-explorer.md +5 -5
  43. package/distilled/templates/delegates/mapper-arch.md +3 -3
  44. package/distilled/templates/delegates/mapper-concerns.md +4 -4
  45. package/distilled/templates/delegates/mapper-quality.md +3 -3
  46. package/distilled/templates/delegates/mapper-tech.md +3 -3
  47. package/distilled/templates/delegates/plan-checker.md +5 -5
  48. package/distilled/templates/delegates/researcher-architecture.md +3 -3
  49. package/distilled/templates/delegates/researcher-features.md +3 -3
  50. package/distilled/templates/delegates/researcher-pitfalls.md +3 -3
  51. package/distilled/templates/delegates/researcher-stack.md +3 -3
  52. package/distilled/templates/delegates/researcher-synthesizer.md +7 -7
  53. package/distilled/templates/research/architecture.md +1 -1
  54. package/distilled/templates/research/pitfalls.md +1 -1
  55. package/distilled/templates/research/stack.md +1 -1
  56. package/distilled/templates/roadmap.md +4 -4
  57. package/distilled/templates/spec.md +2 -2
  58. package/distilled/workflows/audit-milestone.md +22 -22
  59. package/distilled/workflows/complete-milestone.md +35 -35
  60. package/distilled/workflows/execute.md +29 -29
  61. package/distilled/workflows/map-codebase.md +30 -30
  62. package/distilled/workflows/new-milestone.md +18 -18
  63. package/distilled/workflows/new-project.md +45 -45
  64. package/distilled/workflows/pause.md +15 -15
  65. package/distilled/workflows/plan.md +63 -63
  66. package/distilled/workflows/progress.md +40 -39
  67. package/distilled/workflows/quick.md +43 -43
  68. package/distilled/workflows/resume.md +23 -22
  69. package/distilled/workflows/verify-work.md +7 -7
  70. package/distilled/workflows/verify.md +20 -20
  71. package/docs/BROWNFIELD-PROOF.md +1 -1
  72. package/docs/RUNTIME-SUPPORT.md +16 -16
  73. package/docs/USER-GUIDE.md +21 -21
  74. package/docs/claude/context-monitor.md +1 -1
  75. package/docs/proof/consumer-node-cli/README.md +1 -1
  76. package/package.json +3 -3
  77. package/bin/lib/closeout-report.mjs +0 -318
  78. package/bin/lib/evidence-contract.mjs +0 -325
  79. package/bin/lib/provenance.mjs +0 -390
  80. package/bin/lib/session-fingerprint.mjs +0 -223
  81. package/bin/lib/ui-proof.mjs +0 -1007
  82. package/distilled/workflows/plan-milestone-gaps.md +0 -204
@@ -17,9 +17,9 @@ No Pass/Fail buttons. No severity questions. Just: "Here's what should happen. D
17
17
 
18
18
  <load_context>
19
19
  Read these before any other action:
20
- 1. `.planning/phases/{N}-*/` — all `*-SUMMARY.md` files for the target phase
21
- 2. `.planning/SPEC.md` — requirements and acceptance criteria
22
- 3. `.planning/ROADMAP.md` — phase goal and must-haves
20
+ 1. `.work/phases/{N}-*/` — all `*-SUMMARY.md` files for the target phase
21
+ 2. `.work/SPEC.md` — requirements and acceptance criteria
22
+ 3. `.work/ROADMAP.md` — phase goal and must-haves
23
23
 
24
24
  **$ARGUMENTS:** optional phase number, e.g., `/gsdd-verify-work 4`
25
25
  </load_context>
@@ -29,7 +29,7 @@ Before starting a new session, check for existing UAT state:
29
29
 
30
30
  ```bash
31
31
  # Check for existing UAT files in this phase
32
- ls .planning/phases/{N}-*/*-UAT.md 2>/dev/null || echo "none"
32
+ ls .work/phases/{N}-*/*-UAT.md 2>/dev/null || echo "none"
33
33
  ```
34
34
 
35
35
  **If a UAT.md exists** with `status: testing`, offer to resume:
@@ -69,7 +69,7 @@ Wait for confirmation.
69
69
  </extract_tests>
70
70
 
71
71
  <create_uat_file>
72
- Create `.planning/phases/{N}-{name}/{phase_num}-UAT.md`:
72
+ Create `.work/phases/{N}-{name}/{phase_num}-UAT.md`:
73
73
 
74
74
  ```markdown
75
75
  ---
@@ -241,14 +241,14 @@ Then route to gap closure (see `<completion>`).
241
241
  Report to the user what was tested, then present the next step:
242
242
 
243
243
  ---
244
- **Completed:** UAT — created `.planning/phases/{phase_dir}/{phase_num}-UAT.md`.
244
+ **Completed:** UAT — created `.work/phases/{phase_dir}/{phase_num}-UAT.md`.
245
245
 
246
246
  If no issues:
247
247
  **Next step:** `/gsdd-progress` — route to next phase or milestone audit
248
248
 
249
249
  If issues found:
250
250
  **Next step:** `/gsdd-plan` — plan gap closure using the diagnosed root causes in UAT.md
251
- - Open `.planning/phases/{phase_dir}/{phase_num}-UAT.md` for the plan context
251
+ - Open `.work/phases/{phase_dir}/{phase_num}-UAT.md` for the plan context
252
252
  - Use `--gaps` mode if your runtime supports it
253
253
 
254
254
  Also available:
@@ -7,35 +7,35 @@ You are skeptical by default. You verify claims, not promises.
7
7
 
8
8
  <load_context>
9
9
  Before starting, read these files:
10
- 1. `.planning/ROADMAP.md` - success criteria for the completed phase
11
- 2. `.planning/phases/{plan_id}-PLAN.md` - what was planned
12
- 3. `.planning/phases/{plan_id}-SUMMARY.md` - what execution claims was built
13
- 4. `.planning/SPEC.md` - requirements and constraints for the phase
10
+ 1. `.work/ROADMAP.md` - success criteria for the completed phase
11
+ 2. `.work/phases/{plan_id}-PLAN.md` - what was planned
12
+ 3. `.work/phases/{plan_id}-SUMMARY.md` - what execution claims was built
13
+ 4. `.work/SPEC.md` - requirements and constraints for the phase
14
14
  5. From the SUMMARY.md loaded in step 3, if a `<judgment>` section is present - read `<anti_regression>` rules as additional verification targets: confirm that invariants listed there were not broken by execution. Read `<active_constraints>` to calibrate verification scope.
15
15
  6. The relevant codebase files - the code that was actually built
16
- 7. **Session-boundary fallback:** If the SUMMARY.md loaded in step 3 has no `<judgment>` section, check whether `.planning/.continue-here.bak` exists. If it does, read its `<judgment>` section. Treat `<anti_regression>` rules as additional verification targets and `<active_constraints>` to calibrate verification scope (same usage as step 5). After reading, run `node .planning/bin/gsdd.mjs file-op delete .planning/.continue-here.bak --missing ok` (auto-clean).
17
- 8. `node .planning/bin/gsdd.mjs control-map --json` to reconcile workflow/lifecycle state and checkpoint presence (`.planning/.continue-here.md`) before deciding pass/fail.
16
+ 7. **Session-boundary fallback:** If the SUMMARY.md loaded in step 3 has no `<judgment>` section, check whether `.work/.continue-here.bak` exists. If it does, read its `<judgment>` section. Treat `<anti_regression>` rules as additional verification targets and `<active_constraints>` to calibrate verification scope (same usage as step 5). After reading, run `node .work/bin/gsdd.mjs file-op delete .work/.continue-here.bak --missing ok` (auto-clean).
17
+ 8. `node .work/bin/gsdd.mjs control-map --json` to reconcile workflow/lifecycle state and checkpoint presence (`.work/.continue-here.md`) before deciding pass/fail.
18
18
 
19
19
  Establish your verification basis (must-have sources, requirement scope, previous report status) before beginning code inspection. Do not jump to loose file reading until this basis is explicit.
20
20
 
21
- If a previous `.planning/phases/{phase_dir}/{phase_num}-VERIFICATION.md` exists, read it first and treat this as re-verification.
21
+ If a previous `.work/phases/{phase_dir}/{phase_num}-VERIFICATION.md` exists, read it first and treat this as re-verification.
22
22
  </load_context>
23
23
 
24
24
  <repo_root_helper_contract>
25
- All `node .planning/bin/gsdd.mjs ...` helper commands below assume the current working directory is the repo root. If the runtime launched from a subdirectory, change to the repo root before running them.
25
+ All `node .work/bin/gsdd.mjs ...` helper commands below assume the current working directory is the repo root. If the runtime launched from a subdirectory, change to the repo root before running them.
26
26
  </repo_root_helper_contract>
27
27
 
28
28
  <lifecycle_preflight>
29
29
  Before code inspection or report writing, run:
30
30
 
31
- - `node .planning/bin/gsdd.mjs lifecycle-preflight verify {phase_num} --expects-mutation phase-status`
31
+ - `node .work/bin/gsdd.mjs lifecycle-preflight verify {phase_num} --expects-mutation phase-status`
32
32
 
33
33
  If the preflight result is `blocked`, STOP and report the blocker instead of inferring lifecycle eligibility from prompt-local prose.
34
34
 
35
35
  Treat the preflight as an authorization seam over shared repo truth only:
36
36
  - it may authorize or reject verification
37
- - it does not mutate `.planning/ROADMAP.md` by itself
38
- - owned writes remain the verification artifact plus any explicit `node .planning/bin/gsdd.mjs phase-status` transition that occurs later on `passed`
37
+ - it does not mutate `.work/ROADMAP.md` by itself
38
+ - owned writes remain the verification artifact plus any explicit `node .work/bin/gsdd.mjs phase-status` transition that occurs later on `passed`
39
39
  </lifecycle_preflight>
40
40
 
41
41
  <runtime_contract>
@@ -244,7 +244,7 @@ Recording rules:
244
244
  </git_delivery_collection>
245
245
 
246
246
  <report_format>
247
- Write `.planning/phases/{phase_dir}/{phase_num}-VERIFICATION.md` with structured frontmatter first:
247
+ Write `.work/phases/{phase_dir}/{phase_num}-VERIFICATION.md` with structured frontmatter first:
248
248
  ```markdown
249
249
  ---
250
250
  phase: 01-foundation
@@ -365,12 +365,12 @@ Based on the verification result:
365
365
  ### `passed`
366
366
 
367
367
  - phase is ready to move forward
368
- - write `status: passed` in VERIFICATION.md, then run `node .planning/bin/gsdd.mjs phase-status {phase_num} done`
368
+ - write `status: passed` in VERIFICATION.md, then run `node .work/bin/gsdd.mjs phase-status {phase_num} done`
369
369
  - communicate that the phase goal was verified successfully
370
370
 
371
371
  ### `gaps_found`
372
372
 
373
- - write `status: gaps_found` in VERIFICATION.md and leave ROADMAP.md open (`[-]` or `[ ]`); if it is currently `[x]`, run `node .planning/bin/gsdd.mjs phase-status {phase_num} in_progress`
373
+ - write `status: gaps_found` in VERIFICATION.md and leave ROADMAP.md open (`[-]` or `[ ]`); if it is currently `[x]`, run `node .work/bin/gsdd.mjs phase-status {phase_num} in_progress`
374
374
  - do not run `phase-status {phase_num} done`
375
375
 
376
376
  Present a focused recommendation:
@@ -384,14 +384,14 @@ Present a focused recommendation:
384
384
  - list the exact manual checks
385
385
  - state the expected outcome for each one
386
386
  - do not convert human-needed status into passed until those checks are acknowledged
387
- - write `status: human_needed` in VERIFICATION.md and leave ROADMAP.md open (`[-]` or `[ ]`); if it is currently `[x]`, run `node .planning/bin/gsdd.mjs phase-status {phase_num} in_progress`
387
+ - write `status: human_needed` in VERIFICATION.md and leave ROADMAP.md open (`[-]` or `[ ]`); if it is currently `[x]`, run `node .work/bin/gsdd.mjs phase-status {phase_num} in_progress`
388
388
  - do not run `phase-status {phase_num} done`
389
389
  </next_steps>
390
390
 
391
391
  <persistence>
392
392
  MANDATORY: Write the verification report to disk.
393
393
 
394
- File: `.planning/phases/{phase_dir}/{phase_num}-VERIFICATION.md`
394
+ File: `.work/phases/{phase_dir}/{phase_num}-VERIFICATION.md`
395
395
 
396
396
  This is non-negotiable. Verification output that exists only in chat context will be lost on context compression or session end. The file on disk is the artifact that downstream workflows (audit-milestone, re-verification) consume.
397
397
 
@@ -399,9 +399,9 @@ If you cannot write the file (permissions, path issue), STOP and report the bloc
399
399
 
400
400
  Before any ROADMAP closure step, confirm the required phase `SUMMARY.md` still exists on disk. If `SUMMARY.md` is missing, STOP and report the blocker — do NOT treat verification as terminally successful and do NOT close ROADMAP state from conversation context alone.
401
401
 
402
- After writing VERIFICATION.md, if `status: passed`, run `node .planning/bin/gsdd.mjs phase-status {phase_num} done` to close the phase entry in `.planning/ROADMAP.md`. Verify is the terminal workflow and must close the ROADMAP entry only when it confirms the phase is complete. The helper updates both the overview line and the matching `## Phase Details` `**Status**` line when both exist; if those entries cannot be reconciled, STOP and report the blocker instead of hand-editing.
402
+ After writing VERIFICATION.md, if `status: passed`, run `node .work/bin/gsdd.mjs phase-status {phase_num} done` to close the phase entry in `.work/ROADMAP.md`. Verify is the terminal workflow and must close the ROADMAP entry only when it confirms the phase is complete. The helper updates both the overview line and the matching `## Phase Details` `**Status**` line when both exist; if those entries cannot be reconciled, STOP and report the blocker instead of hand-editing.
403
403
 
404
- If `status: gaps_found` or `status: human_needed`, do not close ROADMAP.md. If ROADMAP currently marks the phase `[x]`, run `node .planning/bin/gsdd.mjs phase-status {phase_num} in_progress` to reopen/reconcile both status locations before reporting the result.
404
+ If `status: gaps_found` or `status: human_needed`, do not close ROADMAP.md. If ROADMAP currently marks the phase `[x]`, run `node .work/bin/gsdd.mjs phase-status {phase_num} in_progress` to reopen/reconcile both status locations before reporting the result.
405
405
  </persistence>
406
406
 
407
407
  <success_criteria>
@@ -420,7 +420,7 @@ Verification is done when all of these are true:
420
420
  - [ ] Verification explicitly reviewed SUMMARY `<handoff>` and `<deltas>` content
421
421
  - [ ] Status is one of `passed`, `gaps_found`, or `human_needed`
422
422
  - [ ] The required phase `SUMMARY.md` still exists before any ROADMAP closure on passed status
423
- - [ ] If status is `passed`, ROADMAP.md phase entry is `[x]` via `node .planning/bin/gsdd.mjs phase-status`
423
+ - [ ] If status is `passed`, ROADMAP.md phase entry is `[x]` via `node .work/bin/gsdd.mjs phase-status`
424
424
  - [ ] If status is `gaps_found` or `human_needed`, ROADMAP.md phase entry is not `[x]`
425
425
  - [ ] The developer was informed of the result and recommended next step
426
426
  - [ ] Related failures grouped by concern, not returned as a flat symptom list
@@ -431,7 +431,7 @@ Verification is done when all of these are true:
431
431
  Report the verification result to the user, then present the next step:
432
432
 
433
433
  ---
434
- **Completed:** Phase verification — created `.planning/phases/{phase_dir}/{phase_num}-VERIFICATION.md`.
434
+ **Completed:** Phase verification — created `.work/phases/{phase_dir}/{phase_num}-VERIFICATION.md`.
435
435
  If status is `passed`: **Next step:** `/gsdd-progress` — route to the next phase or milestone audit.
436
436
  If status is `gaps_found`: **Next step:** `/gsdd-plan` — re-plan to close the identified gaps.
437
437
  If status is `human_needed`: **Next step:** `/gsdd-verify-work`, then rerun `/gsdd-verify` with UAT results.
@@ -40,7 +40,7 @@ The exported proof pack comes from a new non-framework project that used the shi
40
40
  The generated surface included:
41
41
 
42
42
  - portable `.agents/skills/gsdd-*`
43
- - consumer `.planning/` state
43
+ - consumer `.work/` state
44
44
  - a Codex-native checker adapter
45
45
  - a compact consumer `AGENTS.md`
46
46
 
@@ -1,26 +1,26 @@
1
1
  # Runtime Support Matrix
2
2
 
3
- Workspine is a repo-native delivery spine with portable multi-runtime workflow surfaces, but the proof bar is not the same for every runtime today.
3
+ Workspine is a Spec Driven Development framework with portable multi-runtime workflow surfaces, but the proof bar is not the same for every runtime today.
4
4
 
5
5
  This matrix is the release-floor truth surface.
6
6
 
7
- Human repo setup and repair commands in this document use `npx -y gsdd-cli ...` because that works without a global install. If you installed `gsdd-cli` globally, the equivalent bare `gsdd ...` command is fine. For cross-repo personal use, `npx -y gsdd-cli install --global` installs reusable Workspine skills and native runtime surfaces into selected agent homes.
7
+ Human repo setup and repair commands in this document use `npx -y gsdd-cli ...` because that works without a global install. If you installed `gsdd-cli` globally, the equivalent bare `gsdd ...` command is fine. For cross-repo personal use, `npx -y gsdd-cli install --global --auto` installs reusable Workspine skills and native runtime surfaces into detected agent homes.
8
8
 
9
- The install contract is deliberately skills-first: `npx -y gsdd-cli init` always creates `.agents/skills/gsdd-*` and `.planning/bin/gsdd*`; runtime-specific adapters are optional discovery or orchestration helpers layered on top.
9
+ The install contract is deliberately skills-first: `npx -y gsdd-cli init` always creates `.agents/skills/gsdd-*` and `.work/bin/gsdd*`; runtime-specific adapters are optional discovery or orchestration helpers layered on top.
10
10
 
11
- Global install is separate from repo bootstrap. It does not create `.planning/`; it writes selected runtime surfaces under user-level agent homes and records Workspine ownership in per-runtime manifests.
11
+ Global install is separate from repo bootstrap. It does not create `.work/`; it writes selected runtime surfaces under user-level agent homes and records Workspine ownership in per-runtime manifests.
12
12
 
13
13
  ## Support tiers
14
14
 
15
- ### Directly validated
15
+ ### Recorded proof
16
16
 
17
- The workflow contract has direct repo proof for these runtimes:
17
+ The workflow contract has recorded repo proof for these runtimes:
18
18
 
19
19
  - **Claude Code**
20
20
  - **Codex CLI**
21
21
  - **OpenCode**
22
22
 
23
- These are the strongest public runtime claims.
23
+ These are the strongest public runtime claims, but they are not broad parity claims across every related app or extension surface.
24
24
 
25
25
  ### Qualified support
26
26
 
@@ -41,13 +41,13 @@ Any tool that can read the generated markdown workflows can still use the framew
41
41
  Two surfaces matter for users:
42
42
 
43
43
  - `.agents/skills/gsdd-*` is the shared workflow entry surface. Depending on the runtime, users invoke those workflows as `/gsdd-*`, `$gsdd-*`, or by opening the skill markdown directly.
44
- - `.planning/bin/gsdd*` is an internal local helper surface used by workflow-embedded lifecycle mechanics after init. It is not the primary user entry surface.
44
+ - `.work/bin/gsdd*` is an internal local helper surface used by workflow-embedded lifecycle mechanics after init. It is not the primary user entry surface.
45
45
 
46
46
  | Runtime | Current claim | Entry surface | Notes |
47
47
  | --- | --- | --- | --- |
48
- | Claude Code | Directly validated | `.claude/skills/`, `.claude/commands/`, `.claude/agents/` | Native surface has direct lifecycle evidence; installed generated files are freshness-checked locally |
49
- | OpenCode | Directly validated | `.opencode/commands/`, `.opencode/agents/` | Native command and checker path; installed generated files are freshness-checked locally |
50
- | Codex CLI | Directly validated | `.agents/skills/gsdd-*` plus `.codex/agents/gsdd-plan-checker.toml` | Portable skill entry, native checker adapter, direct lifecycle evidence, and generated-surface freshness checks |
48
+ | Claude Code | Recorded proof | `.claude/skills/`, `.claude/commands/`, `.claude/agents/` | Native surface has recorded lifecycle evidence; installed generated files are freshness-checked locally |
49
+ | OpenCode | Recorded proof | `.opencode/commands/`, `.opencode/agents/` | Native command and checker path; installed generated files are freshness-checked locally |
50
+ | Codex CLI | Recorded proof | `.agents/skills/gsdd-*` plus `.codex/agents/gsdd-plan-checker.toml` | Portable skill entry, native checker adapter, recorded lifecycle evidence, and generated-surface freshness checks |
51
51
  | Codex VS Code / app | Fallback only | `.agents/skills/gsdd-*` opened or pasted manually unless discovery is available | Separate product surface from Codex CLI; no equal runtime-proof claim |
52
52
  | Cursor | Qualified support | `.agents/skills/gsdd-*` | Skill/slash path when discovery is available; generated skill files are freshness-checked locally, but the runtime is not claimed as parity-validated |
53
53
  | GitHub Copilot | Qualified support | `.agents/skills/gsdd-*` | Skill/slash path when discovery is available; generated skill files are freshness-checked locally, but the runtime is not claimed as parity-validated |
@@ -55,7 +55,7 @@ Two surfaces matter for users:
55
55
 
56
56
  ## Global install surfaces
57
57
 
58
- `npx -y gsdd-cli install --global` can install personal cross-repo surfaces for these targets:
58
+ `npx -y gsdd-cli install --global --auto` can install personal cross-repo surfaces for detected agent homes. Use `npx -y gsdd-cli install --global --tools <targets>` to override detection explicitly. Supported targets:
59
59
 
60
60
  | Target | Global surfaces |
61
61
  | --- | --- |
@@ -72,17 +72,17 @@ When `OPENCODE_CONFIG_DIR` is set, OpenCode commands and agents are installed un
72
72
 
73
73
  The authored source contract stays in `distilled/workflows/*`. Generated runtime-facing files are trusted only through deterministic rendering:
74
74
 
75
- - `npx -y gsdd-cli health` compares generated surfaces in the current repo-local `.planning/` workspace under `.agents/skills/`, `.planning/bin/`, `.claude/`, `.opencode/`, and `.codex/` against current render output.
76
- - Workflow-internal deterministic helper commands run through `node .planning/bin/gsdd.mjs ...`.
75
+ - `npx -y gsdd-cli health` compares generated surfaces in the current repo-local `.work/` workspace under `.agents/skills/`, `.work/bin/`, `.claude/`, `.opencode/`, and `.codex/` against current render output.
76
+ - Workflow-internal deterministic helper commands run through `node .work/bin/gsdd.mjs ...`.
77
77
  - `npx -y gsdd-cli update` regenerates drifted generated surfaces from the authored workflow and delegate sources.
78
78
  - Bare `gsdd health` and `gsdd update` are equivalent only when `gsdd-cli` is globally installed.
79
79
  - Missing generated surfaces are not treated as drift unless the corresponding runtime surface is actually installed locally.
80
- - Global user-home installs are refreshed by rerunning `npx -y gsdd-cli install --global --tools <targets>`; global runtime probes remain an internal pressure-harness concern, not a public install flag.
80
+ - Global user-home installs are refreshed by rerunning `npx -y gsdd-cli install --global --auto` or explicitly scoped with `npx -y gsdd-cli install --global --tools <targets>`; global runtime probes remain an internal pressure-harness concern, not a public install flag.
81
81
 
82
82
  ## Entry and helper surfaces
83
83
 
84
84
  - `.agents/skills/gsdd-*/SKILL.md` is the compact open-standard workflow entry surface. Agents read these files to know what workflow to run.
85
- - `.planning/bin/gsdd.mjs` is the internal repo-local helper runtime. Generated workflows use `node .planning/bin/gsdd.mjs ...` for deterministic file, lifecycle, and status helpers instead of depending on an ambient global binary.
85
+ - `.work/bin/gsdd.mjs` is the internal repo-local helper runtime. Generated workflows use `node .work/bin/gsdd.mjs ...` for deterministic file, lifecycle, and status helpers instead of depending on an ambient global binary.
86
86
  - Native adapter and governance surfaces are optional ergonomics. They can improve discovery or routing in a specific runtime, but they are not required for the portable workflow contract.
87
87
 
88
88
  ## What stays portable
@@ -1,6 +1,6 @@
1
1
  # Workspine User Guide
2
2
 
3
- A detailed reference for Workspine workflows, troubleshooting, and configuration. Workspine is the public product name; the package, CLI, workflow names, and workspace remain `gsdd-cli`, `gsdd`, `gsdd-*`, and `.planning/` as retained technical contracts. Runtime floor: Node 20+. For quick-start setup and the public proof pack, start with the [README](../README.md). Human install/update commands use `npx -y gsdd-cli ...`; bare `gsdd ...` is shorthand only when the package is globally installed.
3
+ A detailed reference for Workspine workflows, troubleshooting, and configuration. Workspine is the public product name; the package, CLI, workflow names, and workspace remain `gsdd-cli`, `gsdd`, `gsdd-*`, and `.work/` as retained technical contracts. Runtime floor: Node 20+. For quick-start setup and the public proof pack, start with the [README](../README.md). Human install/update commands use `npx -y gsdd-cli ...`; bare `gsdd ...` is shorthand only when the package is globally installed.
4
4
 
5
5
  ---
6
6
 
@@ -13,7 +13,7 @@ For a new project or a broad brownfield effort:
13
13
  3. Review the plan from `gsdd-plan` before starting `gsdd-execute`.
14
14
  4. Run `gsdd-verify` before calling the phase done.
15
15
 
16
- Use `npx -y gsdd-cli init` for repo-local setup. Use `npx -y gsdd-cli install --global` to install reusable Workspine skills and native runtime surfaces into selected agent homes without creating `.planning/` in the current repo.
16
+ Use `npx -y gsdd-cli init` for repo-local setup. Use `npx -y gsdd-cli install --global --auto` to install reusable Workspine skills and native runtime surfaces into detected agent homes without creating `.work/` in the current repo.
17
17
 
18
18
  For a bounded existing-code change, use `gsdd-quick`. For an unfamiliar or risky repo, use `gsdd-map-codebase` before choosing between `gsdd-quick` and `gsdd-new-project`.
19
19
 
@@ -69,7 +69,7 @@ For a bounded existing-code change, use `gsdd-quick`. For an unfamiliar or risky
69
69
  Optional closure and milestone-continuation workflows in the shipped surface:
70
70
 
71
71
  - `gsdd-verify-work` adds conversational UAT when user-facing behavior needs explicit validation.
72
- - `gsdd-plan-milestone-gaps` turns audit findings into gap-closure phases when a milestone is not ready to ship.
72
+ - `gsdd-plan` also handles amend/extend planning when audit findings need gap-closure phases before a milestone is ready to ship.
73
73
  - `gsdd-complete-milestone` archives a shipped milestone, evolves `SPEC.md`, and collapses `ROADMAP.md`.
74
74
  - `gsdd-new-milestone` starts the next milestone after closure.
75
75
 
@@ -177,7 +177,7 @@ The 7 check dimensions: requirement coverage, task completeness, dependency corr
177
177
 
178
178
  ### Install Modes
179
179
 
180
- Use local repo install when the project should own `.planning/`, `.agents/skills`, and optional repo-local runtime adapters:
180
+ Use local repo install when the project should own `.work/`, `.agents/skills`, and optional repo-local runtime adapters:
181
181
 
182
182
  ```bash
183
183
  npx -y gsdd-cli init
@@ -188,9 +188,12 @@ Use global agent install when you want Workspine workflows available across repo
188
188
 
189
189
  ```bash
190
190
  npx -y gsdd-cli install --global
191
+ npx -y gsdd-cli install --global --auto
191
192
  npx -y gsdd-cli install --global --tools claude,opencode,codex,copilot
192
193
  ```
193
194
 
195
+ Use `--auto` for non-interactive global install into detected local agent homes. Use `--tools <targets>` when you want to install a specific target set regardless of detection.
196
+
194
197
  Global install writes Workspine-managed files under selected agent homes and records per-runtime manifests. It does not bootstrap project planning state.
195
198
 
196
199
  ### Workflows (run via generated skills or adapters)
@@ -206,7 +209,6 @@ Global install writes Workspine-managed files under selected agent homes and rec
206
209
  | `gsdd-audit-milestone` | Cross-phase integration, requirements coverage, E2E flows | When all phases are done |
207
210
  | `gsdd-complete-milestone` | Archive a shipped milestone, evolve `SPEC.md`, collapse `ROADMAP.md` | When the audited milestone is ready to ship |
208
211
  | `gsdd-new-milestone` | Start the next milestone with goals, requirements, and roadmap phases | After closing a milestone and starting the next one |
209
- | `gsdd-plan-milestone-gaps` | Turn milestone audit findings into gap-closure phases | When audit findings need planned follow-up before shipment |
210
212
  | `gsdd-quick` | Plan and execute sub-hour work outside the phase cycle | Bug fixes, small features, config changes when the bounded change is already concrete |
211
213
  | `gsdd-pause` | Save session context to checkpoint | Stopping mid-phase |
212
214
  | `gsdd-resume` | Restore context from checkpoint and route to next action | Starting a new session |
@@ -216,11 +218,9 @@ Global install writes Workspine-managed files under selected agent homes and rec
216
218
 
217
219
  | Command | Purpose |
218
220
  |---------|---------|
219
- | `npx -y gsdd-cli init [--tools <platform>]` | Set up `.planning/`, generate skills/adapters |
221
+ | `npx -y gsdd-cli init [--tools <platform>]` | Set up `.work/`, generate skills/adapters |
220
222
  | `npx -y gsdd-cli update [--tools <platform>]` | Regenerate skills/adapters from latest sources |
221
223
  | `npx -y gsdd-cli update --templates` | Refresh role contracts and delegates (warns about user modifications) |
222
- | `npx -y gsdd-cli control-map [--json] [--with-ignored]` | Show computed repo/worktree/planning state, dirty buckets, optional ignored-path scan, local annotations, and safe next interventions |
223
- | `npx -y gsdd-cli closeout-report [--json] [--phase <N>]` | Read-only closeout replay: blockers, warnings, fixes, and next safe action (composed from control-map, health/preflight, verify, and UI-proof signals) |
224
224
  | `npx -y gsdd-cli find-phase [N]` | Show phase info as JSON (for agent consumption) |
225
225
  | `npx -y gsdd-cli verify <N>` | Run artifact checks for phase N |
226
226
  | `npx -y gsdd-cli scaffold phase <N> [name]` | Create a new phase plan file |
@@ -231,7 +231,7 @@ Global install writes Workspine-managed files under selected agent homes and rec
231
231
  | `npx -y gsdd-cli models clear --runtime <rt> --agent <id>` | Remove runtime override |
232
232
  | `npx -y gsdd-cli help` | Show all commands |
233
233
 
234
- If `gsdd-cli` is globally installed, you can use the shorter `gsdd ...` form for the same commands. Generated workflow helper calls do not use the global binary; they run through `node .planning/bin/gsdd.mjs ...` from the repo root.
234
+ If `gsdd-cli` is globally installed, you can use the shorter `gsdd ...` form for the same commands. Generated workflow helper calls do not use the global binary; they run through `node .work/bin/gsdd.mjs ...` from the repo root.
235
235
 
236
236
  Normal user flow:
237
237
 
@@ -239,12 +239,12 @@ Normal user flow:
239
239
  2. Enter workflows through your runtime surface: `/gsdd-*` or `$gsdd-*`.
240
240
  3. Use `npx -y gsdd-cli health` to check repo-local generated surfaces.
241
241
  4. Use `npx -y gsdd-cli update` when repo-local generated surfaces drift or you want the latest shipped output.
242
- 5. For personal global installs, rerun `npx -y gsdd-cli install --global --tools <targets>` to repair or refresh selected agent homes.
242
+ 5. For personal global installs, rerun `npx -y gsdd-cli install --global --auto` to repair or refresh detected agent homes, or use `npx -y gsdd-cli install --global --tools <targets>` to scope the target set explicitly.
243
243
 
244
244
  Surface split:
245
245
 
246
246
  - `.agents/skills/gsdd-*` is the workflow entry surface.
247
- - `.planning/bin/gsdd*` is an internal local helper surface used by workflow-embedded lifecycle mechanics. It is kept available, but it is not the normal first-run user entrypoint.
247
+ - `.work/bin/gsdd*` is an internal local helper surface used by workflow-embedded lifecycle mechanics. It is kept available, but it is not the normal first-run user entrypoint.
248
248
 
249
249
  Advanced/internal helper commands remain available:
250
250
 
@@ -268,7 +268,7 @@ Other CLI commands that remain available outside the first-run path:
268
268
  |------|-----------------|
269
269
  | `claude` | `.claude/skills/`, `.claude/commands/`, `.claude/agents/` |
270
270
  | `opencode` | `.opencode/commands/`, `.opencode/agents/` |
271
- | `codex` | `.codex/agents/gsdd-plan-checker.toml` (`.agents/skills/gsdd-*` and `.planning/bin/gsdd.mjs` are always generated; `$gsdd-plan` stays plan-only until explicit `$gsdd-execute`) |
271
+ | `codex` | `.codex/agents/gsdd-plan-checker.toml` (`.agents/skills/gsdd-*` and `.work/bin/gsdd.mjs` are always generated; `$gsdd-plan` stays plan-only until explicit `$gsdd-execute`) |
272
272
  | `agents` | Bounded fallback block in root `AGENTS.md` |
273
273
  | `all` | All of the above |
274
274
  | *(none)* | Auto-detect installed tools |
@@ -277,7 +277,7 @@ Other CLI commands that remain available outside the first-run path:
277
277
 
278
278
  ## Configuration Reference
279
279
 
280
- `npx -y gsdd-cli init` creates `.planning/config.json` interactively (or with defaults via `--auto`).
280
+ `npx -y gsdd-cli init` creates `.work/config.json` interactively (or with defaults via `--auto`).
281
281
 
282
282
  ### Full config.json Schema
283
283
 
@@ -306,7 +306,7 @@ Other CLI commands that remain available outside the first-run path:
306
306
  |---------|---------|---------|------------------|
307
307
  | `researchDepth` | `fast`, `balanced`, `deep` | `balanced` | Research thoroughness per phase |
308
308
  | `parallelization` | `true`, `false` | `true` | Run independent agents simultaneously |
309
- | `commitDocs` | `true`, `false` | `true` | Track `.planning/` in git |
309
+ | `commitDocs` | `true`, `false` | `true` | Track `.work/` in git |
310
310
  | `modelProfile` | `balanced`, `quality`, `budget` | `balanced` | Portable semantic model tier |
311
311
 
312
312
  ### Workflow Toggles
@@ -366,8 +366,8 @@ Cursor, Copilot, and Gemini can use the installed `.agents/skills/` surfaces whe
366
366
 
367
367
  ### Milestone Continuation
368
368
 
369
- - `Claude/OpenCode`: `/gsdd-plan-milestone-gaps` when audit findings need closure work, or `/gsdd-complete-milestone -> /gsdd-new-milestone` when the milestone is ready to ship
370
- - `Codex`: `$gsdd-plan-milestone-gaps` when audit findings need closure work, or `$gsdd-complete-milestone -> $gsdd-new-milestone` when the milestone is ready to ship
369
+ - `Claude/OpenCode`: `/gsdd-plan` amend/extend mode when audit findings need closure work, or `/gsdd-complete-milestone -> /gsdd-new-milestone` when the milestone is ready to ship
370
+ - `Codex`: `$gsdd-plan` amend/extend mode when audit findings need closure work, or `$gsdd-complete-milestone -> $gsdd-new-milestone` when the milestone is ready to ship
371
371
  - `Cursor / Copilot / Gemini`: use the matching slash commands when skill discovery is available, with the same routing as above
372
372
 
373
373
  ### Existing Codebase
@@ -442,11 +442,11 @@ Do not re-run `gsdd-execute`. Use `gsdd-quick` for targeted fixes, or `gsdd-veri
442
442
  npx -y gsdd-cli update --templates # Refreshes role contracts and delegates
443
443
  ```
444
444
 
445
- If you've modified any templates, the generation manifest detects this and warns you before overwriting. The SHA-256 hash of each generated file is tracked in `.planning/generation-manifest.json`.
445
+ If you've modified any templates, the generation manifest detects this and warns you before overwriting. The SHA-256 hash of each generated file is tracked in `.work/generation-manifest.json`.
446
446
 
447
447
  ### Generated Surfaces Drift Or A Runtime Command Goes Missing
448
448
 
449
- In a repo-local `.planning/` workspace, start with `npx -y gsdd-cli health`. If it reports drift or missing installed generated surfaces, run `npx -y gsdd-cli update` for the whole workspace or `npx -y gsdd-cli update --tools <runtime>` for a specific runtime. For global personal installs, rerun `npx -y gsdd-cli install --global --tools <targets>`.
449
+ In a repo-local `.work/` workspace, start with `npx -y gsdd-cli health`. If it reports drift or missing installed generated surfaces, run `npx -y gsdd-cli update` for the whole workspace or `npx -y gsdd-cli update --tools <runtime>` for a specific runtime. For global personal installs, rerun `npx -y gsdd-cli install --global --auto` or scope it explicitly with `npx -y gsdd-cli install --global --tools <targets>`.
450
450
 
451
451
  That repair path is deterministic for generated files. It does not imply that every runtime has equal native ergonomics or equal validation depth.
452
452
 
@@ -473,7 +473,7 @@ Switch to budget profile: `npx -y gsdd-cli models profile budget` (or `gsdd mode
473
473
  ## Project File Structure
474
474
 
475
475
  ```
476
- .planning/
476
+ .work/
477
477
  SPEC.md # Living specification (goals, constraints, decisions)
478
478
  ROADMAP.md # Phased delivery plan with inline status
479
479
  config.json # Project configuration
@@ -503,7 +503,7 @@ Switch to budget profile: `npx -y gsdd-cli models profile budget` (or `gsdd mode
503
503
 
504
504
  agents/ # 10 canonical role contracts
505
505
  .agents/skills/gsdd-*/ # Portable workflow entrypoints (open standard)
506
- .planning/bin/gsdd.mjs # Internal repo-local helper runtime for deterministic workflow commands (run from repo root)
506
+ .work/bin/gsdd.mjs # Internal repo-local helper runtime for deterministic workflow commands (run from repo root)
507
507
  ```
508
508
 
509
509
  Platform-specific adapters (generated by `npx -y gsdd-cli init`, or `gsdd init` when globally installed):
@@ -521,4 +521,4 @@ Platform-specific adapters (generated by `npx -y gsdd-cli init`, or `gsdd init`
521
521
  AGENTS.md # Optional governance block (useful for agents that consume AGENTS.md)
522
522
  ```
523
523
 
524
- `.agents/skills/` is the workflow entry surface. `.planning/bin/` is the internal helper runtime used by those workflows. Native adapters and governance files are optional ergonomics, not required prompt bulk.
524
+ `.agents/skills/` is the workflow entry surface. `.work/bin/` is the internal helper runtime used by those workflows. Native adapters and governance files are optional ergonomics, not required prompt bulk.
@@ -58,7 +58,7 @@ The bridge file is a simple JSON object:
58
58
 
59
59
  ## Integration with GSDD
60
60
 
61
- GSDD's `gsdd-pause` workflow saves execution state to `.planning/.continue-here.md`. The WARNING message suggests using it. The CRITICAL message instructs immediate state save.
61
+ GSDD's `gsdd-pause` workflow saves execution state to `.work/.continue-here.md`. The WARNING message suggests using it. The CRITICAL message instructs immediate state save.
62
62
 
63
63
  ## Setup
64
64
 
@@ -30,7 +30,7 @@ The proof pack shows one full release-floor loop:
30
30
 
31
31
  - Exported from the Phase 22 launch-proof consumer run.
32
32
  - This is the tracked reader-facing release-floor proof surface.
33
- - The local `.planning/live-proof/consumer-node-cli` tree remains evidence-only source material and is intentionally not the public entry surface.
33
+ - The legacy `.planning/live-proof/consumer-node-cli` tree (still read as old folder source material; new projects use `.work/`) remains evidence-only source material and is intentionally not the public entry surface.
34
34
 
35
35
  ## Why this pack exists
36
36
 
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "gsdd-cli",
3
- "version": "0.26.0",
4
- "description": "Workspine — a repo-native delivery spine for long-horizon AI-assisted work, with directly validated support for Claude Code, Codex CLI, and OpenCode, published as gsdd-cli.",
3
+ "version": "0.28.0",
4
+ "description": "Workspine — plan, execute, and verify AI-assisted work from files in your repo, with proof before done. Published as gsdd-cli.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "gsdd": "bin/gsdd.mjs"
8
8
  },
9
9
  "scripts": {
10
10
  "test": "npm run test:gsdd",
11
- "test:gsdd": "node tests/gsdd.init.test.cjs && node tests/gsdd.models.test.cjs && node tests/gsdd.consumer-ceremony.test.cjs && node tests/gsdd.manifest.test.cjs && node tests/gsdd.plan.adapters.test.cjs && node tests/gsdd.global-install-pressure.test.cjs && node tests/gsdd.audit-milestone.test.cjs && node tests/gsdd.invariants.test.cjs && node tests/gsdd.guards.test.cjs && node tests/gsdd.health.test.cjs && node tests/gsdd.scenarios.test.cjs && node tests/gsdd.cross-runtime.test.cjs && node tests/gsdd.control-map.test.cjs && node tests/gsdd.closeout-report.test.cjs && node tests/gsdd.next.test.cjs && node tests/phase.test.cjs && node tests/session-fingerprint.test.cjs",
11
+ "test:gsdd": "node tests/run-all.cjs --covers=gsdd.next-card.test.cjs",
12
12
  "prepublishOnly": "node -e \"const ok=process.env.GITHUB_ACTIONS==='true'&&process.env.GITHUB_REF_NAME==='main'&&process.env.GITHUB_WORKFLOW==='Release'; if(!ok){console.error('Refusing to publish gsdd-cli outside the GitHub Actions Release workflow on main.'); process.exit(1)}\""
13
13
  },
14
14
  "devDependencies": {