gsdd-cli 0.27.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 +53 -22
- 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/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 +11 -30
- package/bin/lib/lifecycle-preflight.mjs +97 -410
- 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 +13 -13
- package/docs/USER-GUIDE.md +17 -20
- 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
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 |
|
|
@@ -72,8 +72,8 @@ 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.
|
|
@@ -82,7 +82,7 @@ The authored source contract stays in `distilled/workflows/*`. Generated runtime
|
|
|
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 --auto` to install reusable Workspine skills and native runtime surfaces into detected agent homes without creating `.
|
|
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
|
|
@@ -209,7 +209,6 @@ Global install writes Workspine-managed files under selected agent homes and rec
|
|
|
209
209
|
| `gsdd-audit-milestone` | Cross-phase integration, requirements coverage, E2E flows | When all phases are done |
|
|
210
210
|
| `gsdd-complete-milestone` | Archive a shipped milestone, evolve `SPEC.md`, collapse `ROADMAP.md` | When the audited milestone is ready to ship |
|
|
211
211
|
| `gsdd-new-milestone` | Start the next milestone with goals, requirements, and roadmap phases | After closing a milestone and starting the next one |
|
|
212
|
-
| `gsdd-plan-milestone-gaps` | Turn milestone audit findings into gap-closure phases | When audit findings need planned follow-up before shipment |
|
|
213
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 |
|
|
214
213
|
| `gsdd-pause` | Save session context to checkpoint | Stopping mid-phase |
|
|
215
214
|
| `gsdd-resume` | Restore context from checkpoint and route to next action | Starting a new session |
|
|
@@ -219,11 +218,9 @@ Global install writes Workspine-managed files under selected agent homes and rec
|
|
|
219
218
|
|
|
220
219
|
| Command | Purpose |
|
|
221
220
|
|---------|---------|
|
|
222
|
-
| `npx -y gsdd-cli init [--tools <platform>]` | Set up `.
|
|
221
|
+
| `npx -y gsdd-cli init [--tools <platform>]` | Set up `.work/`, generate skills/adapters |
|
|
223
222
|
| `npx -y gsdd-cli update [--tools <platform>]` | Regenerate skills/adapters from latest sources |
|
|
224
223
|
| `npx -y gsdd-cli update --templates` | Refresh role contracts and delegates (warns about user modifications) |
|
|
225
|
-
| `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 |
|
|
226
|
-
| `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) |
|
|
227
224
|
| `npx -y gsdd-cli find-phase [N]` | Show phase info as JSON (for agent consumption) |
|
|
228
225
|
| `npx -y gsdd-cli verify <N>` | Run artifact checks for phase N |
|
|
229
226
|
| `npx -y gsdd-cli scaffold phase <N> [name]` | Create a new phase plan file |
|
|
@@ -234,7 +231,7 @@ Global install writes Workspine-managed files under selected agent homes and rec
|
|
|
234
231
|
| `npx -y gsdd-cli models clear --runtime <rt> --agent <id>` | Remove runtime override |
|
|
235
232
|
| `npx -y gsdd-cli help` | Show all commands |
|
|
236
233
|
|
|
237
|
-
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.
|
|
238
235
|
|
|
239
236
|
Normal user flow:
|
|
240
237
|
|
|
@@ -247,7 +244,7 @@ Normal user flow:
|
|
|
247
244
|
Surface split:
|
|
248
245
|
|
|
249
246
|
- `.agents/skills/gsdd-*` is the workflow entry surface.
|
|
250
|
-
- `.
|
|
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.
|
|
251
248
|
|
|
252
249
|
Advanced/internal helper commands remain available:
|
|
253
250
|
|
|
@@ -271,7 +268,7 @@ Other CLI commands that remain available outside the first-run path:
|
|
|
271
268
|
|------|-----------------|
|
|
272
269
|
| `claude` | `.claude/skills/`, `.claude/commands/`, `.claude/agents/` |
|
|
273
270
|
| `opencode` | `.opencode/commands/`, `.opencode/agents/` |
|
|
274
|
-
| `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`) |
|
|
275
272
|
| `agents` | Bounded fallback block in root `AGENTS.md` |
|
|
276
273
|
| `all` | All of the above |
|
|
277
274
|
| *(none)* | Auto-detect installed tools |
|
|
@@ -280,7 +277,7 @@ Other CLI commands that remain available outside the first-run path:
|
|
|
280
277
|
|
|
281
278
|
## Configuration Reference
|
|
282
279
|
|
|
283
|
-
`npx -y gsdd-cli init` creates `.
|
|
280
|
+
`npx -y gsdd-cli init` creates `.work/config.json` interactively (or with defaults via `--auto`).
|
|
284
281
|
|
|
285
282
|
### Full config.json Schema
|
|
286
283
|
|
|
@@ -309,7 +306,7 @@ Other CLI commands that remain available outside the first-run path:
|
|
|
309
306
|
|---------|---------|---------|------------------|
|
|
310
307
|
| `researchDepth` | `fast`, `balanced`, `deep` | `balanced` | Research thoroughness per phase |
|
|
311
308
|
| `parallelization` | `true`, `false` | `true` | Run independent agents simultaneously |
|
|
312
|
-
| `commitDocs` | `true`, `false` | `true` | Track `.
|
|
309
|
+
| `commitDocs` | `true`, `false` | `true` | Track `.work/` in git |
|
|
313
310
|
| `modelProfile` | `balanced`, `quality`, `budget` | `balanced` | Portable semantic model tier |
|
|
314
311
|
|
|
315
312
|
### Workflow Toggles
|
|
@@ -369,8 +366,8 @@ Cursor, Copilot, and Gemini can use the installed `.agents/skills/` surfaces whe
|
|
|
369
366
|
|
|
370
367
|
### Milestone Continuation
|
|
371
368
|
|
|
372
|
-
- `Claude/OpenCode`: `/gsdd-plan
|
|
373
|
-
- `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
|
|
374
371
|
- `Cursor / Copilot / Gemini`: use the matching slash commands when skill discovery is available, with the same routing as above
|
|
375
372
|
|
|
376
373
|
### Existing Codebase
|
|
@@ -445,11 +442,11 @@ Do not re-run `gsdd-execute`. Use `gsdd-quick` for targeted fixes, or `gsdd-veri
|
|
|
445
442
|
npx -y gsdd-cli update --templates # Refreshes role contracts and delegates
|
|
446
443
|
```
|
|
447
444
|
|
|
448
|
-
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`.
|
|
449
446
|
|
|
450
447
|
### Generated Surfaces Drift Or A Runtime Command Goes Missing
|
|
451
448
|
|
|
452
|
-
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>`.
|
|
453
450
|
|
|
454
451
|
That repair path is deterministic for generated files. It does not imply that every runtime has equal native ergonomics or equal validation depth.
|
|
455
452
|
|
|
@@ -476,7 +473,7 @@ Switch to budget profile: `npx -y gsdd-cli models profile budget` (or `gsdd mode
|
|
|
476
473
|
## Project File Structure
|
|
477
474
|
|
|
478
475
|
```
|
|
479
|
-
.
|
|
476
|
+
.work/
|
|
480
477
|
SPEC.md # Living specification (goals, constraints, decisions)
|
|
481
478
|
ROADMAP.md # Phased delivery plan with inline status
|
|
482
479
|
config.json # Project configuration
|
|
@@ -506,7 +503,7 @@ Switch to budget profile: `npx -y gsdd-cli models profile budget` (or `gsdd mode
|
|
|
506
503
|
|
|
507
504
|
agents/ # 10 canonical role contracts
|
|
508
505
|
.agents/skills/gsdd-*/ # Portable workflow entrypoints (open standard)
|
|
509
|
-
.
|
|
506
|
+
.work/bin/gsdd.mjs # Internal repo-local helper runtime for deterministic workflow commands (run from repo root)
|
|
510
507
|
```
|
|
511
508
|
|
|
512
509
|
Platform-specific adapters (generated by `npx -y gsdd-cli init`, or `gsdd init` when globally installed):
|
|
@@ -524,4 +521,4 @@ Platform-specific adapters (generated by `npx -y gsdd-cli init`, or `gsdd init`
|
|
|
524
521
|
AGENTS.md # Optional governance block (useful for agents that consume AGENTS.md)
|
|
525
522
|
```
|
|
526
523
|
|
|
527
|
-
`.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": {
|