gsdd-cli 0.18.5 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +610 -608
  3. package/agents/DISTILLATION.md +421 -421
  4. package/agents/README.md +62 -62
  5. package/agents/approach-explorer.md +370 -361
  6. package/agents/debugger.md +82 -82
  7. package/agents/executor.md +473 -394
  8. package/agents/integration-checker.md +318 -318
  9. package/agents/mapper.md +103 -103
  10. package/agents/planner.md +342 -313
  11. package/agents/researcher.md +84 -84
  12. package/agents/roadmapper.md +296 -296
  13. package/agents/synthesizer.md +236 -236
  14. package/agents/verifier.md +337 -337
  15. package/bin/adapters/agents.mjs +34 -34
  16. package/bin/adapters/claude.mjs +193 -191
  17. package/bin/adapters/codex.mjs +85 -85
  18. package/bin/adapters/index.mjs +20 -20
  19. package/bin/adapters/opencode.mjs +280 -278
  20. package/bin/gsdd.mjs +123 -116
  21. package/bin/lib/cli-utils.mjs +28 -28
  22. package/bin/lib/evidence-contract.mjs +325 -112
  23. package/bin/lib/file-ops.mjs +186 -144
  24. package/bin/lib/health-truth.mjs +196 -178
  25. package/bin/lib/health.mjs +246 -226
  26. package/bin/lib/init-flow.mjs +247 -231
  27. package/bin/lib/init-prompts.mjs +248 -247
  28. package/bin/lib/init-runtime.mjs +193 -190
  29. package/bin/lib/init.mjs +17 -17
  30. package/bin/lib/lifecycle-preflight.mjs +760 -326
  31. package/bin/lib/lifecycle-state.mjs +356 -267
  32. package/bin/lib/manifest.mjs +116 -114
  33. package/bin/lib/models.mjs +411 -411
  34. package/bin/lib/phase.mjs +365 -358
  35. package/bin/lib/plan-constants.mjs +35 -30
  36. package/bin/lib/provenance.mjs +109 -106
  37. package/bin/lib/rendering.mjs +119 -83
  38. package/bin/lib/runtime-freshness.mjs +214 -214
  39. package/bin/lib/session-fingerprint.mjs +91 -14
  40. package/bin/lib/templates.mjs +225 -224
  41. package/bin/lib/workspace-root.mjs +2 -1
  42. package/distilled/DESIGN.md +2461 -2323
  43. package/distilled/EVIDENCE-INDEX.md +418 -392
  44. package/distilled/README.md +196 -193
  45. package/distilled/SKILL.md +86 -85
  46. package/distilled/templates/agents.block.md +21 -21
  47. package/distilled/templates/agents.md +6 -6
  48. package/distilled/templates/approach.md +272 -232
  49. package/distilled/templates/auth-matrix.md +78 -78
  50. package/distilled/templates/brownfield-change/CHANGE.md +99 -0
  51. package/distilled/templates/brownfield-change/HANDOFF.md +38 -0
  52. package/distilled/templates/brownfield-change/VERIFICATION.md +56 -0
  53. package/distilled/templates/codebase/architecture.md +110 -110
  54. package/distilled/templates/codebase/concerns.md +95 -95
  55. package/distilled/templates/codebase/conventions.md +193 -193
  56. package/distilled/templates/codebase/stack.md +96 -96
  57. package/distilled/templates/delegates/approach-explorer.md +28 -25
  58. package/distilled/templates/delegates/mapper-arch.md +26 -26
  59. package/distilled/templates/delegates/mapper-concerns.md +27 -27
  60. package/distilled/templates/delegates/mapper-quality.md +28 -28
  61. package/distilled/templates/delegates/mapper-tech.md +25 -25
  62. package/distilled/templates/delegates/plan-checker.md +78 -68
  63. package/distilled/templates/delegates/researcher-architecture.md +30 -30
  64. package/distilled/templates/delegates/researcher-features.md +30 -30
  65. package/distilled/templates/delegates/researcher-pitfalls.md +30 -30
  66. package/distilled/templates/delegates/researcher-stack.md +30 -30
  67. package/distilled/templates/delegates/researcher-synthesizer.md +31 -31
  68. package/distilled/templates/research/architecture.md +57 -57
  69. package/distilled/templates/research/features.md +23 -23
  70. package/distilled/templates/research/pitfalls.md +46 -46
  71. package/distilled/templates/research/stack.md +45 -45
  72. package/distilled/templates/research/summary.md +67 -67
  73. package/distilled/templates/roadmap.md +74 -62
  74. package/distilled/templates/spec.md +110 -110
  75. package/distilled/workflows/audit-milestone.md +303 -271
  76. package/distilled/workflows/complete-milestone.md +349 -332
  77. package/distilled/workflows/execute.md +457 -450
  78. package/distilled/workflows/map-codebase.md +253 -253
  79. package/distilled/workflows/new-milestone.md +242 -238
  80. package/distilled/workflows/new-project.md +398 -398
  81. package/distilled/workflows/pause.md +160 -156
  82. package/distilled/workflows/plan-milestone-gaps.md +183 -183
  83. package/distilled/workflows/plan.md +454 -448
  84. package/distilled/workflows/progress.md +227 -223
  85. package/distilled/workflows/quick.md +351 -347
  86. package/distilled/workflows/resume.md +220 -212
  87. package/distilled/workflows/verify-work.md +260 -260
  88. package/distilled/workflows/verify.md +431 -429
  89. package/docs/BROWNFIELD-PROOF.md +95 -95
  90. package/docs/RUNTIME-SUPPORT.md +80 -69
  91. package/docs/USER-GUIDE.md +394 -386
  92. package/docs/VERIFICATION-DISCIPLINE.md +59 -59
  93. package/docs/claude/context-monitor.md +98 -98
  94. package/docs/proof/consumer-node-cli/README.md +37 -37
  95. package/docs/proof/consumer-node-cli/ROADMAP.md +14 -14
  96. package/docs/proof/consumer-node-cli/SPEC.md +17 -17
  97. package/docs/proof/consumer-node-cli/brief.md +9 -9
  98. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-PLAN.md +34 -34
  99. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-SUMMARY.md +10 -10
  100. package/docs/proof/consumer-node-cli/phases/01-foundation/01-VERIFICATION.md +30 -30
  101. package/package.json +62 -61
@@ -1,152 +1,153 @@
1
- const RUNTIME_OPTIONS = [
2
- {
3
- id: 'claude',
4
- label: 'Claude Code',
5
- description: 'Directly validated native skills, commands, and agents with local freshness checks',
6
- kind: 'native',
7
- },
8
- {
9
- id: 'opencode',
10
- label: 'OpenCode',
11
- description: 'Directly validated native slash commands and agents with local freshness checks',
12
- kind: 'native',
13
- },
14
- {
15
- id: 'codex',
16
- label: 'Codex CLI',
17
- description: 'Directly validated portable skills plus native checker agents with local freshness checks',
18
- kind: 'native',
19
- },
20
- {
21
- id: 'cursor',
22
- label: 'Cursor',
23
- description: 'Qualified support via skills-native slash commands from .agents/skills/ with the same local freshness checks',
24
- kind: 'skills_native',
25
- },
26
- {
27
- id: 'copilot',
28
- label: 'GitHub Copilot',
29
- description: 'Qualified support via skills-native slash commands from .agents/skills/ with the same local freshness checks',
30
- kind: 'skills_native',
31
- },
32
- {
33
- id: 'gemini',
34
- label: 'Gemini CLI',
35
- description: 'Qualified support via skills-native slash commands from .agents/skills/ with the same local freshness checks',
36
- kind: 'skills_native',
37
- },
38
- ];
39
-
40
- export const INIT_VERSION = 'v1.1';
41
-
42
- export function normalizeRequestedTools(requestedTools) {
43
- const selectedRuntimes = [];
44
- const adapterTargets = [];
45
- const addRuntime = (runtime) => {
46
- if (!selectedRuntimes.includes(runtime)) selectedRuntimes.push(runtime);
47
- };
48
- const addAdapter = (adapter) => {
49
- if (!adapterTargets.includes(adapter)) adapterTargets.push(adapter);
50
- };
51
-
52
- for (const tool of requestedTools) {
53
- if (tool === 'claude' || tool === 'opencode' || tool === 'codex') {
54
- addRuntime(tool);
55
- addAdapter(tool);
56
- continue;
57
- }
58
- if (tool === 'cursor' || tool === 'copilot' || tool === 'gemini') {
59
- addRuntime(tool);
60
- addAdapter(tool);
61
- continue;
62
- }
63
- if (tool === 'agents') {
64
- addAdapter('agents');
65
- }
66
- }
67
-
68
- return { selectedRuntimes, adapterTargets };
69
- }
70
-
71
- export function detectPlatforms(adapters) {
72
- return Object.values(adapters)
73
- .filter((adapter, index, arr) => arr.findIndex((other) => other.id === adapter.id) === index)
74
- .filter((adapter) => adapter.detect())
75
- .map((adapter) => adapter.name);
76
- }
77
-
78
- export function buildRuntimeChoices(adapters) {
79
- const detected = new Set(detectPlatforms(adapters));
80
- return RUNTIME_OPTIONS.map((option) => ({
81
- ...option,
82
- detected: detected.has(option.id),
83
- selected: detected.has(option.id),
84
- }));
85
- }
86
-
87
- export function resolveAdapters(adapters, platformNames) {
88
- const seen = new Set();
89
- const resolved = [];
90
-
91
- for (const platformName of platformNames) {
92
- const adapter = adapters[platformName];
93
- if (!adapter || seen.has(adapter.id)) continue;
94
- seen.add(adapter.id);
95
- resolved.push(adapter);
96
- }
97
-
98
- return resolved;
99
- }
100
-
101
- export function getAdaptersToUpdate(adapters, platformNames) {
102
- const requested = new Set(platformNames);
103
- const seen = new Set();
104
- const installed = [];
105
-
106
- for (const [platformName, adapter] of Object.entries(adapters)) {
107
- if (seen.has(adapter.id)) continue;
108
- if (!requested.has(platformName) && !adapter.isInstalled()) continue;
109
- seen.add(adapter.id);
110
- installed.push(adapter);
111
- }
112
-
113
- return installed;
114
- }
115
-
116
- export async function resolveInteractiveInitSession({ ctx, promptApi, parsedTools, isAuto }) {
117
- if (parsedTools.length > 0) {
118
- return {
119
- ...normalizeRequestedTools(parsedTools),
120
- config: null,
121
- };
122
- }
123
-
124
- if (isAuto) {
125
- return { selectedRuntimes: [], adapterTargets: [], config: null };
126
- }
127
-
128
- if (!process.stdin.isTTY) {
129
- return {
130
- selectedRuntimes: detectPlatforms(ctx.adapters),
131
- adapterTargets: detectPlatforms(ctx.adapters),
132
- config: null,
133
- };
134
- }
135
-
136
- return promptApi.runInitWizard({ cwd: ctx.cwd, adapters: ctx.adapters });
137
- }
138
-
139
- export function resolveWizardAdapterTargets(selectedRuntimes, installGovernance) {
140
- const adapterTargets = [];
141
- for (const runtime of selectedRuntimes) {
142
- if (runtime === 'claude' || runtime === 'opencode' || runtime === 'codex') {
143
- adapterTargets.push(runtime);
144
- }
145
- }
146
- if (installGovernance) adapterTargets.push('agents');
147
- return adapterTargets;
148
- }
149
-
1
+ const RUNTIME_OPTIONS = [
2
+ {
3
+ id: 'claude',
4
+ label: 'Claude Code',
5
+ description: 'Directly validated native skills, commands, and agents with local freshness checks',
6
+ kind: 'native',
7
+ },
8
+ {
9
+ id: 'opencode',
10
+ label: 'OpenCode',
11
+ description: 'Directly validated native slash commands and agents with local freshness checks',
12
+ kind: 'native',
13
+ },
14
+ {
15
+ id: 'codex',
16
+ label: 'Codex CLI',
17
+ description: 'Directly validated portable skills plus native checker agents with local freshness checks',
18
+ kind: 'native',
19
+ },
20
+ {
21
+ id: 'cursor',
22
+ label: 'Cursor',
23
+ description: 'Qualified support via skills-native slash commands from .agents/skills/ with the same local freshness checks',
24
+ kind: 'skills_native',
25
+ },
26
+ {
27
+ id: 'copilot',
28
+ label: 'GitHub Copilot',
29
+ description: 'Qualified support via skills-native slash commands from .agents/skills/ with the same local freshness checks',
30
+ kind: 'skills_native',
31
+ },
32
+ {
33
+ id: 'gemini',
34
+ label: 'Gemini CLI',
35
+ description: 'Qualified support via skills-native slash commands from .agents/skills/ with the same local freshness checks',
36
+ kind: 'skills_native',
37
+ },
38
+ ];
39
+
40
+ export const INIT_VERSION = 'v1.1';
41
+
42
+ export function normalizeRequestedTools(requestedTools) {
43
+ const selectedRuntimes = [];
44
+ const adapterTargets = [];
45
+ const addRuntime = (runtime) => {
46
+ if (!selectedRuntimes.includes(runtime)) selectedRuntimes.push(runtime);
47
+ };
48
+ const addAdapter = (adapter) => {
49
+ if (!adapterTargets.includes(adapter)) adapterTargets.push(adapter);
50
+ };
51
+
52
+ for (const tool of requestedTools) {
53
+ if (tool === 'claude' || tool === 'opencode' || tool === 'codex') {
54
+ addRuntime(tool);
55
+ addAdapter(tool);
56
+ continue;
57
+ }
58
+ if (tool === 'cursor' || tool === 'copilot' || tool === 'gemini') {
59
+ addRuntime(tool);
60
+ addAdapter(tool);
61
+ continue;
62
+ }
63
+ if (tool === 'agents') {
64
+ addAdapter('agents');
65
+ }
66
+ }
67
+
68
+ return { selectedRuntimes, adapterTargets };
69
+ }
70
+
71
+ export function detectPlatforms(adapters = {}) {
72
+ return Object.values(adapters)
73
+ .filter((adapter, index, arr) => arr.findIndex((other) => other.id === adapter.id) === index)
74
+ .filter((adapter) => adapter.detect())
75
+ .map((adapter) => adapter.name);
76
+ }
77
+
78
+ export function buildRuntimeChoices(adapters = {}) {
79
+ const detected = new Set(detectPlatforms(adapters));
80
+ return RUNTIME_OPTIONS.map((option) => ({
81
+ ...option,
82
+ detected: detected.has(option.id),
83
+ selected: detected.has(option.id),
84
+ }));
85
+ }
86
+
87
+ export function resolveAdapters(adapters, platformNames) {
88
+ const seen = new Set();
89
+ const resolved = [];
90
+
91
+ for (const platformName of platformNames) {
92
+ const adapter = adapters[platformName];
93
+ if (!adapter || seen.has(adapter.id)) continue;
94
+ seen.add(adapter.id);
95
+ resolved.push(adapter);
96
+ }
97
+
98
+ return resolved;
99
+ }
100
+
101
+ export function getAdaptersToUpdate(adapters, platformNames) {
102
+ const requested = new Set(platformNames);
103
+ const seen = new Set();
104
+ const installed = [];
105
+
106
+ for (const [platformName, adapter] of Object.entries(adapters)) {
107
+ if (seen.has(adapter.id)) continue;
108
+ if (!requested.has(platformName) && !adapter.isInstalled()) continue;
109
+ seen.add(adapter.id);
110
+ installed.push(adapter);
111
+ }
112
+
113
+ return installed;
114
+ }
115
+
116
+ export async function resolveInteractiveInitSession({ ctx, promptApi, parsedTools, isAuto }) {
117
+ if (parsedTools.length > 0) {
118
+ return {
119
+ ...normalizeRequestedTools(parsedTools),
120
+ config: null,
121
+ };
122
+ }
123
+
124
+ if (isAuto) {
125
+ return { selectedRuntimes: [], adapterTargets: [], config: null };
126
+ }
127
+
128
+ if (!process.stdin.isTTY) {
129
+ const detected = detectPlatforms(ctx.adapters);
130
+ return {
131
+ selectedRuntimes: detected,
132
+ adapterTargets: detected,
133
+ config: null,
134
+ };
135
+ }
136
+
137
+ return promptApi.runInitWizard({ cwd: ctx.cwd, adapters: ctx.adapters });
138
+ }
139
+
140
+ export function resolveWizardAdapterTargets(selectedRuntimes, installGovernance) {
141
+ const adapterTargets = [];
142
+ for (const runtime of selectedRuntimes) {
143
+ if (runtime === 'claude' || runtime === 'opencode' || runtime === 'codex') {
144
+ adapterTargets.push(runtime);
145
+ }
146
+ }
147
+ if (installGovernance) adapterTargets.push('agents');
148
+ return adapterTargets;
149
+ }
150
+
150
151
  export function getPostInitRoutingLines(selectedRuntimes) {
151
152
  const lines = [];
152
153
  if (selectedRuntimes.includes('claude')) lines.push(' Claude Code: /gsdd-new-project | /gsdd-quick | /gsdd-map-codebase');
@@ -158,23 +159,23 @@ export function getPostInitRoutingLines(selectedRuntimes) {
158
159
  lines.push(' Any tool: open .agents/skills/gsdd-new-project/SKILL.md, gsdd-quick/SKILL.md, or gsdd-map-codebase/SKILL.md');
159
160
  return lines;
160
161
  }
161
-
162
- export function getHelpText() {
163
- return `
162
+
163
+ export function getHelpText() {
164
+ return `
164
165
  gsdd - Workspine CLI
165
166
  Repo-native delivery spine for long-horizon AI-assisted work across coding runtimes.
166
-
167
- Usage: gsdd <command> [args]
168
-
167
+
168
+ Usage: gsdd <command> [args]
169
+
169
170
  Commands:
170
171
  init [--tools <platform>] [--auto] [--brief <file>]
171
172
  Launch guided install wizard in TTYs, or use --tools for manual/headless setup
172
173
  --auto: non-interactive mode with smart defaults (requires --tools)
173
174
  --brief <file>: copy project brief to .planning/PROJECT_BRIEF.md
174
- update [--tools <platform>] [--templates] [--dry]
175
- Regenerate adapters from latest framework sources
176
- --templates: also refresh .planning/templates/ and roles
177
- --dry: preview changes without writing files
175
+ update [--tools <platform>] [--templates] [--dry]
176
+ Regenerate adapters from latest framework sources
177
+ --templates: also refresh .planning/templates/ and roles
178
+ --dry: preview changes without writing files
178
179
  health [--json] Check workspace integrity (healthy/degraded/broken)
179
180
  models [subcommand] Inspect or update model profile / runtime overrides
180
181
  find-phase [N] Show phase info as JSON (for agent consumption)
@@ -185,51 +186,52 @@ Commands:
185
186
  phase-status <N> <status> Update ROADMAP.md phase status ([ ] / [-] / [x])
186
187
  lifecycle-preflight <surface> [phase]
187
188
  Inspect deterministic lifecycle gate results for a workflow surface
189
+ session-fingerprint write Rebaseline planning-state drift after reviewing changed planning files
188
190
  help Show this summary
189
-
190
- Platforms (for --tools):
191
- claude Generate Claude Code skills (.claude/skills/gsdd-*), commands (.claude/commands/gsdd-*.md), and native agents (.claude/agents/gsdd-*.md)
192
- opencode Generate OpenCode local slash commands (.opencode/commands/gsdd-*.md) + native agents (.opencode/agents/gsdd-*.md)
193
- codex Generate Codex CLI native plan-checker agent (.codex/agents/gsdd-plan-checker.toml)
194
- agents Generate/Update root AGENTS.md (bounded GSDD block)
195
- cursor Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
196
- copilot Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
197
- gemini Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
198
- all Generate all adapters (Claude, OpenCode, Codex, AGENTS.md, Cursor, Copilot, Gemini)
199
-
191
+
192
+ Platforms (for --tools):
193
+ claude Generate Claude Code skills (.claude/skills/gsdd-*), commands (.claude/commands/gsdd-*.md), and native agents (.claude/agents/gsdd-*.md)
194
+ opencode Generate OpenCode local slash commands (.opencode/commands/gsdd-*.md) + native agents (.opencode/agents/gsdd-*.md)
195
+ codex Generate Codex CLI native plan-checker agent (.codex/agents/gsdd-plan-checker.toml)
196
+ agents Generate/Update root AGENTS.md (bounded GSDD block)
197
+ cursor Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
198
+ copilot Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
199
+ gemini Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
200
+ all Generate all adapters (Claude, OpenCode, Codex, AGENTS.md, Cursor, Copilot, Gemini)
201
+
200
202
  Notes:
201
203
  - init always generates open-standard skills at .agents/skills/gsdd-*; this is the shared workflow entry surface
202
204
  - init also generates a local .planning/bin/gsdd* helper surface for workflow-embedded lifecycle helpers; it is internal/advanced, not the normal first-run user entrypoint
203
205
  - Workspine is the public product name; the retained package, command, workflow, and workspace contracts stay gsdd-cli, gsdd, gsdd-*, and .planning/
204
- - running plain \`gsdd init\` in a terminal opens the guided runtime-selection wizard
206
+ - running \`npx -y gsdd-cli init\` in a terminal opens the guided runtime-selection wizard; bare \`gsdd init\` is equivalent only when globally installed
205
207
  - the wizard lets you pick runtimes first, then separately decide whether repo-wide AGENTS.md governance is worth installing
206
- - \`gsdd health\` compares any installed generated runtime surfaces against current render output and points back to \`gsdd update\` when they drift
208
+ - \`npx -y gsdd-cli health\` compares any installed generated runtime surfaces against current render output and points back to \`npx -y gsdd-cli update\` when they drift
207
209
  - directly validated launch surfaces in this repo are Claude Code, OpenCode, and Codex CLI
208
210
  - Cursor, Copilot, and Gemini are qualified support through the shared .agents/skills/ surface plus optional governance
209
211
  - --tools remains the advanced/manual path and preserves legacy runtime aliases for backward compatibility
210
212
  - --tools codex generates .codex/agents/gsdd-plan-checker.toml (portable skill is the entry surface; $gsdd-plan is plan-only until explicit $gsdd-execute)
211
213
  - root AGENTS.md is only written on init when explicitly requested via --tools agents, --tools all, or the wizard governance opt-in
212
- - normal user path: npx gsdd-cli init -> run /gsdd-* or $gsdd-* -> gsdd health -> npx gsdd-cli update when repair or refresh is needed
214
+ - normal user path: npx -y gsdd-cli init -> run /gsdd-* or $gsdd-* -> npx -y gsdd-cli health -> npx -y gsdd-cli update when repair or refresh is needed
213
215
  - post-init, choose your starting lane honestly: new-project for greenfield or fuzzy/milestone work, quick for a concrete bounded change, map-codebase first when the repo needs deeper orientation
214
216
 
215
217
  Examples:
216
- npx gsdd-cli init
217
- npx gsdd-cli init --tools claude
218
- npx gsdd-cli init --tools cursor
219
- npx gsdd-cli init --auto --tools claude --brief project-idea.md
220
- npx gsdd-cli init --auto --tools all
221
- npx gsdd-cli models show
222
- npx gsdd-cli models profile quality
223
- npx gsdd-cli models agent-profile --agent plan-checker --profile quality
224
- npx gsdd-cli models set --runtime opencode --agent plan-checker --model anthropic/claude-opus-4-6
225
- npx gsdd-cli models clear --runtime opencode --agent plan-checker
226
- npx gsdd-cli init --tools agents
227
- npx gsdd-cli init --tools all
228
- npx gsdd-cli update
229
- npx gsdd-cli find-phase
230
- npx gsdd-cli verify 1
231
- npx gsdd-cli scaffold phase 4 Payments
232
-
218
+ npx -y gsdd-cli init
219
+ npx -y gsdd-cli init --tools claude
220
+ npx -y gsdd-cli init --tools cursor
221
+ npx -y gsdd-cli init --auto --tools claude --brief project-idea.md
222
+ npx -y gsdd-cli init --auto --tools all
223
+ npx -y gsdd-cli models show
224
+ npx -y gsdd-cli models profile quality
225
+ npx -y gsdd-cli models agent-profile --agent plan-checker --profile quality
226
+ npx -y gsdd-cli models set --runtime opencode --agent plan-checker --model anthropic/claude-opus-4-6
227
+ npx -y gsdd-cli models clear --runtime opencode --agent plan-checker
228
+ npx -y gsdd-cli init --tools agents
229
+ npx -y gsdd-cli init --tools all
230
+ npx -y gsdd-cli update
231
+ npx -y gsdd-cli find-phase
232
+ npx -y gsdd-cli verify 1
233
+ npx -y gsdd-cli scaffold phase 4 Payments
234
+
233
235
  Workflows (run via skills/adapters generated by init, not direct CLI):
234
236
  gsdd-new-project Full initializer: questioning, brownfield audit, research, spec, roadmap
235
237
  gsdd-map-codebase Map or refresh brownfield codebase context before choosing or refreshing a work lane
@@ -253,6 +255,7 @@ Starting lanes after init:
253
255
 
254
256
  Advanced/internal helpers (kept available, but not the primary first-run user story):
255
257
  lifecycle-preflight Inspect deterministic lifecycle gate results for a workflow surface
258
+ session-fingerprint Rebaseline the local planning-state fingerprint after review
256
259
  phase-status Update ROADMAP.md phase status through the local helper surface
257
260
  file-op Deterministic workspace-confined file copy/delete/text mutation
258
261
  `;
package/bin/lib/init.mjs CHANGED
@@ -1,20 +1,20 @@
1
- // init.mjs - thin public facade for init/update commands and prompt helpers
2
-
3
- import { createCmdInit, createCmdUpdate } from './init-flow.mjs';
4
- import { createInitPromptApi, promptChoiceList } from './init-prompts.mjs';
5
- import { buildRuntimeChoices, detectPlatforms, getHelpText, normalizeRequestedTools } from './init-runtime.mjs';
6
-
1
+ // init.mjs - thin public facade for init/update commands and prompt helpers
2
+
3
+ import { createCmdInit, createCmdUpdate } from './init-flow.mjs';
4
+ import { createInitPromptApi, promptChoiceList } from './init-prompts.mjs';
5
+ import { buildRuntimeChoices, detectPlatforms, getHelpText, normalizeRequestedTools } from './init-runtime.mjs';
6
+
7
7
  function cmdHelp() {
8
8
  console.log(getHelpText().trimEnd());
9
9
  }
10
-
11
- export {
12
- buildRuntimeChoices,
13
- cmdHelp,
14
- createCmdInit,
15
- createCmdUpdate,
16
- createInitPromptApi,
17
- detectPlatforms,
18
- normalizeRequestedTools,
19
- promptChoiceList,
20
- };
10
+
11
+ export {
12
+ buildRuntimeChoices,
13
+ cmdHelp,
14
+ createCmdInit,
15
+ createCmdUpdate,
16
+ createInitPromptApi,
17
+ detectPlatforms,
18
+ normalizeRequestedTools,
19
+ promptChoiceList,
20
+ };