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.
- package/README.md +55 -23
- package/agents/DISTILLATION.md +2 -2
- package/agents/README.md +4 -4
- package/agents/approach-explorer.md +4 -4
- package/agents/executor.md +14 -14
- package/agents/integration-checker.md +2 -2
- package/agents/researcher.md +2 -2
- package/agents/roadmapper.md +6 -6
- package/agents/synthesizer.md +18 -18
- package/agents/verifier.md +2 -2
- package/bin/adapters/agents.mjs +3 -3
- package/bin/adapters/claude.mjs +16 -14
- package/bin/adapters/opencode.mjs +15 -12
- package/bin/gsdd.mjs +16 -13
- package/bin/lib/{models.mjs → config.mjs} +23 -16
- package/bin/lib/control-map.mjs +17 -488
- package/bin/lib/global-install.mjs +16 -3
- package/bin/lib/health-truth.mjs +8 -13
- package/bin/lib/health.mjs +25 -39
- package/bin/lib/init-flow.mjs +44 -38
- package/bin/lib/init-prompts.mjs +3 -3
- package/bin/lib/init-runtime.mjs +17 -33
- package/bin/lib/lifecycle-preflight.mjs +297 -404
- package/bin/lib/lifecycle-state.mjs +2 -1
- package/bin/lib/next.mjs +243 -20
- package/bin/lib/phase.mjs +10 -315
- package/bin/lib/rendering.mjs +64 -44
- package/bin/lib/runtime-freshness.mjs +18 -15
- package/bin/lib/state-dir.mjs +45 -0
- package/bin/lib/templates.mjs +59 -22
- package/bin/lib/work-context.mjs +12 -1
- package/bin/lib/workflows.mjs +0 -1
- package/bin/lib/workspace-root.mjs +11 -6
- package/distilled/DESIGN.md +58 -2
- package/distilled/EVIDENCE-INDEX.md +15 -2
- package/distilled/README.md +23 -33
- package/distilled/SKILL.md +9 -10
- package/distilled/templates/agents.block.md +5 -5
- package/distilled/templates/approach.md +3 -3
- package/distilled/templates/auth-matrix.md +2 -2
- package/distilled/templates/brownfield-change/CHANGE.md +1 -1
- package/distilled/templates/delegates/approach-explorer.md +5 -5
- package/distilled/templates/delegates/mapper-arch.md +3 -3
- package/distilled/templates/delegates/mapper-concerns.md +4 -4
- package/distilled/templates/delegates/mapper-quality.md +3 -3
- package/distilled/templates/delegates/mapper-tech.md +3 -3
- package/distilled/templates/delegates/plan-checker.md +5 -5
- package/distilled/templates/delegates/researcher-architecture.md +3 -3
- package/distilled/templates/delegates/researcher-features.md +3 -3
- package/distilled/templates/delegates/researcher-pitfalls.md +3 -3
- package/distilled/templates/delegates/researcher-stack.md +3 -3
- package/distilled/templates/delegates/researcher-synthesizer.md +7 -7
- package/distilled/templates/research/architecture.md +1 -1
- package/distilled/templates/research/pitfalls.md +1 -1
- package/distilled/templates/research/stack.md +1 -1
- package/distilled/templates/roadmap.md +4 -4
- package/distilled/templates/spec.md +2 -2
- package/distilled/workflows/audit-milestone.md +22 -22
- package/distilled/workflows/complete-milestone.md +35 -35
- package/distilled/workflows/execute.md +29 -29
- package/distilled/workflows/map-codebase.md +30 -30
- package/distilled/workflows/new-milestone.md +18 -18
- package/distilled/workflows/new-project.md +45 -45
- package/distilled/workflows/pause.md +15 -15
- package/distilled/workflows/plan.md +63 -63
- package/distilled/workflows/progress.md +40 -39
- package/distilled/workflows/quick.md +43 -43
- package/distilled/workflows/resume.md +23 -22
- package/distilled/workflows/verify-work.md +7 -7
- package/distilled/workflows/verify.md +20 -20
- package/docs/BROWNFIELD-PROOF.md +1 -1
- package/docs/RUNTIME-SUPPORT.md +16 -16
- package/docs/USER-GUIDE.md +21 -21
- package/docs/claude/context-monitor.md +1 -1
- package/docs/proof/consumer-node-cli/README.md +1 -1
- package/package.json +3 -3
- package/bin/lib/closeout-report.mjs +0 -318
- package/bin/lib/evidence-contract.mjs +0 -325
- package/bin/lib/provenance.mjs +0 -390
- package/bin/lib/session-fingerprint.mjs +0 -223
- package/bin/lib/ui-proof.mjs +0 -1007
- 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. `.
|
|
21
|
-
2. `.
|
|
22
|
-
3. `.
|
|
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 .
|
|
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 `.
|
|
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 `.
|
|
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 `.
|
|
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. `.
|
|
11
|
-
2. `.
|
|
12
|
-
3. `.
|
|
13
|
-
4. `.
|
|
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 `.
|
|
17
|
-
8. `node .
|
|
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 `.
|
|
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 .
|
|
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 .
|
|
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 `.
|
|
38
|
-
- owned writes remain the verification artifact plus any explicit `node .
|
|
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 `.
|
|
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 .
|
|
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 .
|
|
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 .
|
|
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: `.
|
|
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 .
|
|
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 .
|
|
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 .
|
|
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 `.
|
|
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.
|
package/docs/BROWNFIELD-PROOF.md
CHANGED
|
@@ -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 `.
|
|
43
|
+
- consumer `.work/` state
|
|
44
44
|
- a Codex-native checker adapter
|
|
45
45
|
- a compact consumer `AGENTS.md`
|
|
46
46
|
|
package/docs/RUNTIME-SUPPORT.md
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
# Runtime Support Matrix
|
|
2
2
|
|
|
3
|
-
Workspine is a
|
|
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
|
|
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 `.
|
|
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 `.
|
|
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
|
-
###
|
|
15
|
+
### Recorded proof
|
|
16
16
|
|
|
17
|
-
The workflow contract has
|
|
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
|
-
- `.
|
|
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 |
|
|
49
|
-
| OpenCode |
|
|
50
|
-
| Codex CLI |
|
|
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
|
|
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 `.
|
|
76
|
-
- Workflow-internal deterministic helper commands run through `node .
|
|
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
|
-
- `.
|
|
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
|
package/docs/USER-GUIDE.md
CHANGED
|
@@ -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 `.
|
|
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
|
|
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
|
|
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 `.
|
|
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 `.
|
|
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 .
|
|
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 --
|
|
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
|
-
- `.
|
|
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 `.
|
|
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 `.
|
|
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 `.
|
|
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
|
|
370
|
-
- `Codex`: `$gsdd-plan
|
|
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 `.
|
|
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 `.
|
|
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
|
-
.
|
|
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
|
-
.
|
|
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. `.
|
|
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 `.
|
|
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
|
|
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.
|
|
4
|
-
"description": "Workspine —
|
|
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/
|
|
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": {
|