gsdd-cli 0.25.0 → 0.26.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.
@@ -0,0 +1,27 @@
1
+ function defineWorkflow({ mutatesArtifacts = true, ...workflow }) {
2
+ return {
3
+ ...workflow,
4
+ mutatesArtifacts,
5
+ agent: mutatesArtifacts ? 'Code' : 'Plan',
6
+ opencodeType: mutatesArtifacts ? 'edit' : 'plan',
7
+ };
8
+ }
9
+
10
+ export const WORKFLOWS = [
11
+ defineWorkflow({ name: 'gsdd-new-project', workflow: 'new-project.md', description: 'New project - questioning, codebase audit, research, spec, roadmap' }),
12
+ defineWorkflow({ name: 'gsdd-map-codebase', workflow: 'map-codebase.md', description: 'Map or refresh codebase - 4 parallel mappers, staleness check, secrets scan' }),
13
+ defineWorkflow({ name: 'gsdd-plan', workflow: 'plan.md', description: 'Plan a phase - research check, backward planning, task creation' }),
14
+ defineWorkflow({ name: 'gsdd-execute', workflow: 'execute.md', description: 'Execute a phase plan - implement tasks, verify changes, follow repo git conventions' }),
15
+ defineWorkflow({ name: 'gsdd-verify', workflow: 'verify.md', description: 'Verify a completed phase - 3-level checks, anti-pattern scan' }),
16
+ defineWorkflow({ name: 'gsdd-verify-work', workflow: 'verify-work.md', description: 'Conversational UAT testing - validate user-facing behavior with structured gap tracking' }),
17
+ defineWorkflow({ name: 'gsdd-audit-milestone', workflow: 'audit-milestone.md', description: 'Audit a completed milestone - cross-phase integration, requirements coverage, E2E flows' }),
18
+ defineWorkflow({ name: 'gsdd-complete-milestone', workflow: 'complete-milestone.md', description: 'Complete milestone - archive, evolve spec, collapse roadmap' }),
19
+ defineWorkflow({ name: 'gsdd-new-milestone', workflow: 'new-milestone.md', description: 'New milestone - gather goals, define requirements, create roadmap phases' }),
20
+ defineWorkflow({ name: 'gsdd-plan-milestone-gaps', workflow: 'plan-milestone-gaps.md', description: 'Plan gap closure phases from audit results' }),
21
+ defineWorkflow({ name: 'gsdd-quick', workflow: 'quick.md', description: 'Quick task - plan and execute a sub-hour task outside the phase cycle' }),
22
+ defineWorkflow({ name: 'gsdd-pause', workflow: 'pause.md', description: 'Pause work - save session context for seamless resumption' }),
23
+ defineWorkflow({ name: 'gsdd-resume', workflow: 'resume.md', description: 'Resume work - restore context and route to next action' }),
24
+ defineWorkflow({ name: 'gsdd-progress', workflow: 'progress.md', description: 'Check progress - show project status and route to next action', mutatesArtifacts: false }),
25
+ ];
26
+
27
+ export const FRAMEWORK_VERSION = 'v1.4';
@@ -1,9 +1,27 @@
1
1
  # Workspine
2
2
 
3
- A repo-native delivery spine for planning, checking, execution, verification, and handoff of long-horizon AI-assisted work.
3
+ A repo-native delivery spine for the part of AI coding that still needs human judgment: planning, checking, execution, verification, and handoff.
4
4
 
5
5
  Workspine keeps planning, execution, verification, handoff, and progress state in the repo so work survives cold starts, runtime switches, and session loss. The retained package and CLI contracts remain `gsdd-cli` / `gsdd`.
6
6
 
7
+ ## Why It Matters
8
+
9
+ AI coding agents make code cheaper to produce. They do not make architecture, scope control, review, security, or release confidence disappear. In practice, they move more of the work into deciding what should happen, checking whether it happened, and preserving enough context for the next session or runtime to continue safely.
10
+
11
+ Workspine is built for that pressure. It gives serious AI-assisted work one repo-native path:
12
+
13
+ ```
14
+ new-project -> plan -> execute -> verify
15
+ ```
16
+
17
+ The plan is a reviewed contract before implementation starts. Execution is a separate step. Verification records what passed, what failed, and what still needs human judgment.
18
+
19
+ ## When To Use It
20
+
21
+ Use Workspine when a change spans multiple files, sessions, agents, or runtimes; when architecture, data, security, or release confidence matter; or when proof needs to live in the repo instead of only in a chat transcript.
22
+
23
+ Skip the full lifecycle for tiny, obvious edits. Direct prompting in your usual coding agent is cheaper for low-risk work. Workspine is for the work where guessing gets expensive.
24
+
7
25
  ## What This Is
8
26
 
9
27
  Workspine is a small set of workflow sources plus a CLI (`gsdd`) that:
@@ -22,7 +40,7 @@ Launch proof posture:
22
40
  - Directly validated in repo truth: Claude Code, Codex CLI, OpenCode
23
41
  - Qualified support only: Cursor, Copilot, Gemini CLI can use the shared `.agents/skills/` surface plus optional governance when their skill or slash discovery sees it; proof and ergonomics differ from the directly validated runtimes
24
42
  - Codex CLI validation does not automatically cover Codex VS Code or the Codex app; use native discovery there when available, otherwise open or paste `.agents/skills/gsdd-*/SKILL.md`
25
- - Installed generated runtime surfaces are renderer-checked locally through `npx -y gsdd-cli health`, with deterministic repair through `npx -y gsdd-cli update` (bare `gsdd ...` is equivalent only when globally installed)
43
+ - Repo-local generated runtime surfaces are renderer-checked through `npx -y gsdd-cli health`, with deterministic repair through `npx -y gsdd-cli update` (bare `gsdd ...` is equivalent only when globally installed)
26
44
  - Public proof entrypoints: `docs/BROWNFIELD-PROOF.md`, `docs/proof/consumer-node-cli/README.md`, `docs/RUNTIME-SUPPORT.md`, `docs/VERIFICATION-DISCIPLINE.md`
27
45
 
28
46
  ## Quick Start
@@ -34,6 +52,15 @@ npx -y gsdd-cli init
34
52
 
35
53
  In a TTY, `npx -y gsdd-cli init` opens a guided install wizard: choose runtimes first, then decide separately whether repo-wide `AGENTS.md` governance is worth installing. If `gsdd-cli` is globally installed, `gsdd init` is the equivalent shorthand.
36
54
 
55
+ For personal cross-repo availability, run:
56
+
57
+ ```bash
58
+ npx -y gsdd-cli install --global
59
+ npx -y gsdd-cli install --global --tools claude,opencode,codex,copilot
60
+ ```
61
+
62
+ Global install writes selected Workspine skills and native agent surfaces into user-level agent homes. It does not create `.planning/` in the current repo.
63
+
37
64
  Optional adapters:
38
65
  ```bash
39
66
  npx -y gsdd-cli init --tools claude
@@ -78,7 +105,7 @@ Helper command for long-running sessions:
78
105
  ```
79
106
  npx -y gsdd-cli control-map [--json] [--with-ignored] -> computed repo/worktree/planning state plus local annotations
80
107
  npx -y gsdd-cli control-map annotate set|clear -> optional stale-aware local intent maintenance
81
- npx -y gsdd-cli closeout-report [--json] [--phase <N>] -> read-only replay of closeout blockers, warnings, and next safe action
108
+ npx -y gsdd-cli closeout-report [--json] [--phase <N>] -> read-only replay of closeout blockers, warnings, fixes, and next safe action
82
109
  ```
83
110
 
84
111
  ## Brownfield Entry Contract
@@ -6,6 +6,7 @@ Lifecycle: `new-project -> plan -> execute -> verify -> audit-milestone`.
6
6
 
7
7
  Core skills: `gsdd-new-project`, `gsdd-plan`, `gsdd-execute`, `gsdd-verify`, `gsdd-progress`.
8
8
  Planning state: `.planning/`. Portable workflows: `.agents/skills/gsdd-*/SKILL.md`.
9
+ Install/repair: `npx -y gsdd-cli init` creates repo-local skills and planning state; `npx -y gsdd-cli health` verifies repo-local generated surfaces; `npx -y gsdd-cli update` repairs repo-local drift. Global personal skills use `npx -y gsdd-cli install --global` and are repaired by rerunning that install for the selected targets.
9
10
 
10
11
  Invoke: `/gsdd-plan` (Claude, OpenCode; Cursor/Copilot/Gemini when skill discovery is available) · `$gsdd-plan` (Codex CLI, plan-only until `$gsdd-execute`) · open SKILL.md directly elsewhere.
11
12
 
@@ -18,4 +19,3 @@ Rules:
18
19
  6. Git guidance in `.planning/config.json` -> `gitProtocol` is advisory; follow the repo's own conventions first.
19
20
 
20
21
  If `.planning/` is missing, run `npx -y gsdd-cli init` then `gsdd-new-project`; bare `gsdd init` is equivalent only when globally installed.
21
-
@@ -3,4 +3,3 @@
3
3
  <!-- BEGIN GSDD -->
4
4
  {{GSDD_BLOCK}}
5
5
  <!-- END GSDD -->
6
-
@@ -107,4 +107,3 @@ To find the most-imported file in a layer: grep for imports of each candidate fi
107
107
  ---
108
108
 
109
109
  *Architecture analysis: [date]*
110
-
@@ -92,4 +92,3 @@ Ranking heuristic: a concern that blocks 3 change-routing rows ranks above one t
92
92
  ---
93
93
 
94
94
  *Concerns audit: [date]*
95
-
@@ -190,4 +190,3 @@ If no single file exemplifies multiple conventions, list the best per-category f
190
190
  ---
191
191
 
192
192
  *Convention analysis: [date]*
193
-
@@ -93,4 +93,3 @@ Example (good):
93
93
  ---
94
94
 
95
95
  *Stack analysis: [date]*
96
-
@@ -71,4 +71,3 @@ For each v1 requirement in .planning/SPEC.md:
71
71
 
72
72
  If a requirement doesn't map to any phase: add a phase or expand an existing one.
73
73
  If a requirement maps to multiple phases: clarify which phase owns it.
74
-
@@ -107,4 +107,3 @@ When a major milestone completes:
107
107
  1. The SPEC.md "Current State" section reflects the new state
108
108
  2. Completed phases have summaries in `.planning/phases/{N}-SUMMARY.md`
109
109
  3. SPEC.md itself stays lean - don't accumulate history here
110
-
@@ -99,7 +99,7 @@ This is an internal prerequisite of `new-project`, not a user-facing routing req
99
99
 
100
100
  If `.planning/brownfield-change/CHANGE.md` exists, keep it as the current bounded continuity anchor while you do this work. Do not treat its presence as evidence that the user should have used another command instead. The only question is whether they intentionally want to widen that bounded brownfield change into full milestone planning.
101
101
 
102
- Read and follow `.agents/skills/gsdd-map-codebase/SKILL.md` now. Execute its full flow (check existing, spawn mappers, validate, secrets scan). When map-codebase completes, return here and continue from Brownfield Validated Requirements Inference below.
102
+ Read and follow the `gsdd-map-codebase` skill now. Prefer the repo-local `.agents/skills/gsdd-map-codebase/SKILL.md` when it exists; otherwise use the globally installed `gsdd-map-codebase` skill available in the current runtime. Execute its full flow (check existing, spawn mappers, validate, secrets scan). When map-codebase completes, return here and continue from Brownfield Validated Requirements Inference below.
103
103
 
104
104
  ### Brownfield Validated Requirements Inference
105
105
 
@@ -4,7 +4,11 @@ Workspine is a repo-native delivery spine with portable multi-runtime workflow s
4
4
 
5
5
  This matrix is the release-floor truth surface.
6
6
 
7
- Human 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.
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.
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.
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.
8
12
 
9
13
  ## Support tiers
10
14
 
@@ -49,15 +53,31 @@ Two surfaces matter for users:
49
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 |
50
54
  | Gemini CLI | Qualified support | `.agents/skills/gsdd-*` | Skill/slash path when discovery is available; governance is optional, generated skill files are freshness-checked locally, and parity is not claimed |
51
55
 
52
- ## Generated-surface freshness
56
+ ## Global install surfaces
57
+
58
+ `npx -y gsdd-cli install --global` can install personal cross-repo surfaces for these targets:
59
+
60
+ | Target | Global surfaces |
61
+ | --- | --- |
62
+ | Claude Code | `~/.claude/skills`, `~/.claude/commands`, `~/.claude/agents` |
63
+ | OpenCode | `~/.agents/skills`, `~/.config/opencode/commands`, `~/.config/opencode/agents` |
64
+ | Codex CLI | `~/.agents/skills`, `~/.codex/agents` |
65
+ | GitHub Copilot CLI | `~/.agents/skills`, `~/.copilot/agents` |
66
+
67
+ Install availability is not a parity claim. GitHub Copilot CLI can receive global Workspine surfaces, but it remains in the qualified-support tier unless the release-floor proof for Copilot is raised deliberately.
68
+
69
+ When `OPENCODE_CONFIG_DIR` is set, OpenCode commands and agents are installed under that custom config root. Skills remain under the shared agent-compatible global root (`~/.agents/skills`), which OpenCode, Codex CLI, and GitHub Copilot CLI can all discover.
70
+
71
+ ## Repo-Local Generated-Surface Freshness
53
72
 
54
73
  The authored source contract stays in `distilled/workflows/*`. Generated runtime-facing files are trusted only through deterministic rendering:
55
74
 
56
- - `npx -y gsdd-cli health` compares any installed generated surfaces under `.agents/skills/`, `.planning/bin/`, `.claude/`, `.opencode/`, and `.codex/` against current render output.
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.
57
76
  - Workflow-internal deterministic helper commands run through `node .planning/bin/gsdd.mjs ...`.
58
77
  - `npx -y gsdd-cli update` regenerates drifted generated surfaces from the authored workflow and delegate sources.
59
78
  - Bare `gsdd health` and `gsdd update` are equivalent only when `gsdd-cli` is globally installed.
60
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.
61
81
 
62
82
  ## Entry and helper surfaces
63
83
 
@@ -4,8 +4,24 @@ A detailed reference for Workspine workflows, troubleshooting, and configuration
4
4
 
5
5
  ---
6
6
 
7
+ ## Fast Path
8
+
9
+ For a new project or a broad brownfield effort:
10
+
11
+ 1. Run `npx -y gsdd-cli init` from the repo root.
12
+ 2. Start with `gsdd-new-project` unless the change is already small and concrete.
13
+ 3. Review the plan from `gsdd-plan` before starting `gsdd-execute`.
14
+ 4. Run `gsdd-verify` before calling the phase done.
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.
17
+
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
+
20
+ ---
21
+
7
22
  ## Table of Contents
8
23
 
24
+ - [Fast Path](#fast-path)
9
25
  - [Workflow Diagrams](#workflow-diagrams)
10
26
  - [Command Reference](#command-reference)
11
27
  - [Configuration Reference](#configuration-reference)
@@ -159,6 +175,24 @@ The 7 check dimensions: requirement coverage, task completeness, dependency corr
159
175
 
160
176
  ## Command Reference
161
177
 
178
+ ### Install Modes
179
+
180
+ Use local repo install when the project should own `.planning/`, `.agents/skills`, and optional repo-local runtime adapters:
181
+
182
+ ```bash
183
+ npx -y gsdd-cli init
184
+ npx -y gsdd-cli init --auto --tools all
185
+ ```
186
+
187
+ Use global agent install when you want Workspine workflows available across repos from your personal agent home:
188
+
189
+ ```bash
190
+ npx -y gsdd-cli install --global
191
+ npx -y gsdd-cli install --global --tools claude,opencode,codex,copilot
192
+ ```
193
+
194
+ Global install writes Workspine-managed files under selected agent homes and records per-runtime manifests. It does not bootstrap project planning state.
195
+
162
196
  ### Workflows (run via generated skills or adapters)
163
197
 
164
198
  | Workflow | Purpose | When to Use |
@@ -186,6 +220,7 @@ The 7 check dimensions: requirement coverage, task completeness, dependency corr
186
220
  | `npx -y gsdd-cli update [--tools <platform>]` | Regenerate skills/adapters from latest sources |
187
221
  | `npx -y gsdd-cli update --templates` | Refresh role contracts and delegates (warns about user modifications) |
188
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) |
189
224
  | `npx -y gsdd-cli find-phase [N]` | Show phase info as JSON (for agent consumption) |
190
225
  | `npx -y gsdd-cli verify <N>` | Run artifact checks for phase N |
191
226
  | `npx -y gsdd-cli scaffold phase <N> [name]` | Create a new phase plan file |
@@ -200,10 +235,11 @@ If `gsdd-cli` is globally installed, you can use the shorter `gsdd ...` form for
200
235
 
201
236
  Normal user flow:
202
237
 
203
- 1. Run `npx gsdd-cli init`.
238
+ 1. Run `npx -y gsdd-cli init`.
204
239
  2. Enter workflows through your runtime surface: `/gsdd-*` or `$gsdd-*`.
205
- 3. Use `gsdd health` to check installed generated surfaces.
206
- 4. Use `npx gsdd-cli update` when generated surfaces drift or you want the latest shipped output.
240
+ 3. Use `npx -y gsdd-cli health` to check repo-local generated surfaces.
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.
207
243
 
208
244
  Surface split:
209
245
 
@@ -410,7 +446,7 @@ If you've modified any templates, the generation manifest detects this and warns
410
446
 
411
447
  ### Generated Surfaces Drift Or A Runtime Command Goes Missing
412
448
 
413
- Start with `gsdd health`. If it reports drift or missing installed generated surfaces, run `npx gsdd-cli update` for the whole workspace or `npx gsdd-cli update --tools <runtime>` for a specific runtime.
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>`.
414
450
 
415
451
  That repair path is deterministic for generated files. It does not imply that every runtime has equal native ergonomics or equal validation depth.
416
452
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  Workspine is not just a set of prompts. Its core delivery claim depends on explicit checking and verification loops that survive across runtimes.
4
4
 
5
+ AI output is cheap enough that the scarce part is often proof: whether the change fits the codebase, whether the right behavior is wired in, and whether the remaining risk is visible to a human reviewer. Workspine treats that proof as part of the workflow, not as an optional cleanup note.
6
+
5
7
  ## The delivery contract
6
8
 
7
9
  The durable loop is:
@@ -46,7 +48,7 @@ See `docs/BROWNFIELD-PROOF.md` for the reader-facing narrative and `docs/proof/c
46
48
 
47
49
  ## What this note does and does not claim
48
50
 
49
- This note explains the release-floor discipline that Workspine can prove publicly today.
51
+ This note explains the release-floor discipline that Workspine can prove publicly in this release.
50
52
 
51
53
  It does **not** claim:
52
54
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsdd-cli",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
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.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -8,7 +8,7 @@
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.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/phase.test.cjs && node tests/session-fingerprint.test.cjs",
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",
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": {