gsdd-cli 0.18.5 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +609 -608
  3. package/agents/DISTILLATION.md +421 -421
  4. package/agents/README.md +62 -62
  5. package/agents/approach-explorer.md +361 -361
  6. package/agents/debugger.md +82 -82
  7. package/agents/executor.md +394 -394
  8. package/agents/integration-checker.md +318 -318
  9. package/agents/mapper.md +103 -103
  10. package/agents/planner.md +313 -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 +191 -191
  17. package/bin/adapters/codex.mjs +85 -85
  18. package/bin/adapters/index.mjs +20 -20
  19. package/bin/adapters/opencode.mjs +278 -278
  20. package/bin/gsdd.mjs +123 -116
  21. package/bin/lib/cli-utils.mjs +28 -28
  22. package/bin/lib/evidence-contract.mjs +112 -112
  23. package/bin/lib/file-ops.mjs +186 -144
  24. package/bin/lib/health-truth.mjs +181 -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 +191 -190
  29. package/bin/lib/init.mjs +17 -17
  30. package/bin/lib/lifecycle-preflight.mjs +347 -325
  31. package/bin/lib/lifecycle-state.mjs +351 -267
  32. package/bin/lib/manifest.mjs +116 -114
  33. package/bin/lib/models.mjs +411 -411
  34. package/bin/lib/phase.mjs +360 -358
  35. package/bin/lib/plan-constants.mjs +30 -30
  36. package/bin/lib/provenance.mjs +109 -106
  37. package/bin/lib/rendering.mjs +115 -83
  38. package/bin/lib/runtime-freshness.mjs +214 -214
  39. package/bin/lib/templates.mjs +225 -224
  40. package/bin/lib/workspace-root.mjs +2 -1
  41. package/distilled/DESIGN.md +2333 -2323
  42. package/distilled/EVIDENCE-INDEX.md +394 -392
  43. package/distilled/README.md +196 -193
  44. package/distilled/SKILL.md +86 -85
  45. package/distilled/templates/agents.block.md +21 -21
  46. package/distilled/templates/agents.md +6 -6
  47. package/distilled/templates/approach.md +232 -232
  48. package/distilled/templates/auth-matrix.md +78 -78
  49. package/distilled/templates/brownfield-change/CHANGE.md +99 -0
  50. package/distilled/templates/brownfield-change/HANDOFF.md +38 -0
  51. package/distilled/templates/brownfield-change/VERIFICATION.md +56 -0
  52. package/distilled/templates/codebase/architecture.md +110 -110
  53. package/distilled/templates/codebase/concerns.md +95 -95
  54. package/distilled/templates/codebase/conventions.md +193 -193
  55. package/distilled/templates/codebase/stack.md +96 -96
  56. package/distilled/templates/delegates/approach-explorer.md +25 -25
  57. package/distilled/templates/delegates/mapper-arch.md +26 -26
  58. package/distilled/templates/delegates/mapper-concerns.md +27 -27
  59. package/distilled/templates/delegates/mapper-quality.md +28 -28
  60. package/distilled/templates/delegates/mapper-tech.md +25 -25
  61. package/distilled/templates/delegates/plan-checker.md +68 -68
  62. package/distilled/templates/delegates/researcher-architecture.md +30 -30
  63. package/distilled/templates/delegates/researcher-features.md +30 -30
  64. package/distilled/templates/delegates/researcher-pitfalls.md +30 -30
  65. package/distilled/templates/delegates/researcher-stack.md +30 -30
  66. package/distilled/templates/delegates/researcher-synthesizer.md +31 -31
  67. package/distilled/templates/research/architecture.md +57 -57
  68. package/distilled/templates/research/features.md +23 -23
  69. package/distilled/templates/research/pitfalls.md +46 -46
  70. package/distilled/templates/research/stack.md +45 -45
  71. package/distilled/templates/research/summary.md +67 -67
  72. package/distilled/templates/roadmap.md +74 -62
  73. package/distilled/templates/spec.md +110 -110
  74. package/distilled/workflows/audit-milestone.md +275 -271
  75. package/distilled/workflows/complete-milestone.md +336 -332
  76. package/distilled/workflows/execute.md +454 -449
  77. package/distilled/workflows/map-codebase.md +253 -253
  78. package/distilled/workflows/new-milestone.md +242 -238
  79. package/distilled/workflows/new-project.md +398 -398
  80. package/distilled/workflows/pause.md +160 -156
  81. package/distilled/workflows/plan-milestone-gaps.md +183 -183
  82. package/distilled/workflows/plan.md +451 -447
  83. package/distilled/workflows/progress.md +227 -223
  84. package/distilled/workflows/quick.md +351 -347
  85. package/distilled/workflows/resume.md +220 -212
  86. package/distilled/workflows/verify-work.md +260 -260
  87. package/distilled/workflows/verify.md +431 -429
  88. package/docs/BROWNFIELD-PROOF.md +95 -95
  89. package/docs/RUNTIME-SUPPORT.md +80 -69
  90. package/docs/USER-GUIDE.md +394 -386
  91. package/docs/VERIFICATION-DISCIPLINE.md +59 -59
  92. package/docs/claude/context-monitor.md +98 -98
  93. package/docs/proof/consumer-node-cli/README.md +37 -37
  94. package/docs/proof/consumer-node-cli/ROADMAP.md +14 -14
  95. package/docs/proof/consumer-node-cli/SPEC.md +17 -17
  96. package/docs/proof/consumer-node-cli/brief.md +9 -9
  97. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-PLAN.md +34 -34
  98. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-SUMMARY.md +10 -10
  99. package/docs/proof/consumer-node-cli/phases/01-foundation/01-VERIFICATION.md +30 -30
  100. 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)
@@ -186,50 +187,50 @@ Commands:
186
187
  lifecycle-preflight <surface> [phase]
187
188
  Inspect deterministic lifecycle gate results for a workflow surface
188
189
  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
-
190
+
191
+ Platforms (for --tools):
192
+ claude Generate Claude Code skills (.claude/skills/gsdd-*), commands (.claude/commands/gsdd-*.md), and native agents (.claude/agents/gsdd-*.md)
193
+ opencode Generate OpenCode local slash commands (.opencode/commands/gsdd-*.md) + native agents (.opencode/agents/gsdd-*.md)
194
+ codex Generate Codex CLI native plan-checker agent (.codex/agents/gsdd-plan-checker.toml)
195
+ agents Generate/Update root AGENTS.md (bounded GSDD block)
196
+ cursor Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
197
+ copilot Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
198
+ gemini Generate root AGENTS.md governance block; workflows are already discovered natively from .agents/skills/ (legacy alias kept for backward compatibility)
199
+ all Generate all adapters (Claude, OpenCode, Codex, AGENTS.md, Cursor, Copilot, Gemini)
200
+
200
201
  Notes:
201
202
  - init always generates open-standard skills at .agents/skills/gsdd-*; this is the shared workflow entry surface
202
203
  - 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
204
  - 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
205
+ - 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
206
  - 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
207
+ - \`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
208
  - directly validated launch surfaces in this repo are Claude Code, OpenCode, and Codex CLI
208
209
  - Cursor, Copilot, and Gemini are qualified support through the shared .agents/skills/ surface plus optional governance
209
210
  - --tools remains the advanced/manual path and preserves legacy runtime aliases for backward compatibility
210
211
  - --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
212
  - 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
213
+ - 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
214
  - 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
215
 
215
216
  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
-
217
+ npx -y gsdd-cli init
218
+ npx -y gsdd-cli init --tools claude
219
+ npx -y gsdd-cli init --tools cursor
220
+ npx -y gsdd-cli init --auto --tools claude --brief project-idea.md
221
+ npx -y gsdd-cli init --auto --tools all
222
+ npx -y gsdd-cli models show
223
+ npx -y gsdd-cli models profile quality
224
+ npx -y gsdd-cli models agent-profile --agent plan-checker --profile quality
225
+ npx -y gsdd-cli models set --runtime opencode --agent plan-checker --model anthropic/claude-opus-4-6
226
+ npx -y gsdd-cli models clear --runtime opencode --agent plan-checker
227
+ npx -y gsdd-cli init --tools agents
228
+ npx -y gsdd-cli init --tools all
229
+ npx -y gsdd-cli update
230
+ npx -y gsdd-cli find-phase
231
+ npx -y gsdd-cli verify 1
232
+ npx -y gsdd-cli scaffold phase 4 Payments
233
+
233
234
  Workflows (run via skills/adapters generated by init, not direct CLI):
234
235
  gsdd-new-project Full initializer: questioning, brownfield audit, research, spec, roadmap
235
236
  gsdd-map-codebase Map or refresh brownfield codebase context before choosing or refreshing a work lane
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
+ };