@specsafe/cli 0.3.0 → 0.3.2

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Generate configuration for a specific tool
3
- * @param tool - The tool name (cursor, continue, aider, zed)
3
+ * @param tool - The tool name (cursor, continue, aider, zed, claude-code, crush)
4
4
  * @param projectDir - The project directory path
5
5
  */
6
6
  export declare function generateToolConfig(tool: string, projectDir?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"generateToolConfig.d.ts","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"AAsGA;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9F;AAwDD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCxE"}
1
+ {"version":3,"file":"generateToolConfig.d.ts","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"AAsGA;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9F;AA8PD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCxE"}
@@ -96,7 +96,7 @@ const zedSettingsContent = {
96
96
  };
97
97
  /**
98
98
  * Generate configuration for a specific tool
99
- * @param tool - The tool name (cursor, continue, aider, zed)
99
+ * @param tool - The tool name (cursor, continue, aider, zed, claude-code, crush)
100
100
  * @param projectDir - The project directory path
101
101
  */
102
102
  export async function generateToolConfig(tool, projectDir = '.') {
@@ -113,6 +113,12 @@ export async function generateToolConfig(tool, projectDir = '.') {
113
113
  case 'zed':
114
114
  await generateZedConfig(projectDir);
115
115
  break;
116
+ case 'claude-code':
117
+ await generateClaudeCodeConfig(projectDir);
118
+ break;
119
+ case 'crush':
120
+ await generateCrushConfig(projectDir);
121
+ break;
116
122
  default:
117
123
  throw new Error(`Unknown tool: ${tool}`);
118
124
  }
@@ -157,6 +163,193 @@ async function generateZedConfig(projectDir) {
157
163
  }
158
164
  await writeFile(configPath, JSON.stringify(zedSettingsContent, null, 2));
159
165
  }
166
+ // Skill content for Claude Code slash commands
167
+ const claudeSkillSpecsafeContent = `---
168
+ name: specsafe
169
+ description: Show SpecSafe project status and workflow guidance
170
+ ---
171
+
172
+ You are in a SpecSafe project using spec-driven development.
173
+
174
+ Read PROJECT_STATE.md and provide:
175
+ 1. Summary of active specs and their current stages
176
+ 2. Which specs need attention
177
+ 3. Recommended next actions based on the project state
178
+ 4. Brief reminder of the SDD workflow (SPEC → TEST → CODE → QA → COMPLETE)
179
+ `;
180
+ const claudeSkillSpecContent = `---
181
+ name: spec
182
+ description: Show details for a specific spec by ID
183
+ argument-hint: "[spec-id]"
184
+ ---
185
+
186
+ Read the spec file from specs/active/$ARGUMENTS.md and show:
187
+ - Requirements
188
+ - Scenarios/acceptance criteria
189
+ - Current stage
190
+ - Implementation files referenced
191
+
192
+ If no argument provided, list available specs.
193
+ `;
194
+ const claudeSkillValidateContent = `---
195
+ name: validate
196
+ description: Validate current implementation against active spec
197
+ ---
198
+
199
+ Check if the current code changes satisfy the requirements in the active spec.
200
+ Point out any gaps or issues that need to be addressed before completing.
201
+ `;
202
+ async function generateClaudeCodeConfig(projectDir) {
203
+ // Create CLAUDE.md project context file
204
+ const configPath = `${projectDir}/CLAUDE.md`;
205
+ if (!existsSync(configPath)) {
206
+ const claudeContent = `# SpecSafe Project — Claude Code Configuration
207
+
208
+ You are working on a SpecSafe project using spec-driven development (SDD).
209
+
210
+ ## Project Context
211
+
212
+ **PROJECT_STATE.md** — Always read this file first. It contains:
213
+ - Active specs and their current stages
214
+ - Which spec is being worked on
215
+ - Overall project status
216
+
217
+ **Specs directory** — \`specs/active/*.md\` contains detailed spec files with:
218
+ - Requirements (must be satisfied)
219
+ - Scenarios (acceptance criteria)
220
+ - Current stage (SPEC → TEST → CODE → QA → COMPLETE)
221
+
222
+ ## Spec-Driven Development Workflow
223
+
224
+ 1. **SPEC stage**: Spec defines WHAT to build (requirements, scenarios)
225
+ 2. **TEST stage**: Tests define HOW to verify (generated by SpecSafe)
226
+ 3. **CODE stage**: Implementation satisfies the tests
227
+ 4. **QA stage**: Validate against scenarios, edge cases
228
+ 5. **COMPLETE**: Feature done, spec archived
229
+
230
+ ## Critical Rules
231
+
232
+ ✅ **ALWAYS** read PROJECT_STATE.md before making changes
233
+ ✅ **ALWAYS** ensure implementation satisfies tests
234
+ ✅ **ALWAYS** use \`specsafe\` CLI commands to advance stages
235
+ ✅ **ALWAYS** reference spec ID in commit messages
236
+
237
+ ❌ **NEVER** modify PROJECT_STATE.md directly (use CLI)
238
+ ❌ **NEVER** skip tests to implement faster
239
+ ❌ **NEVER** modify specs without updating state
240
+
241
+ ## SpecSafe CLI Reference
242
+
243
+ - \`specsafe status\` — Show current project status
244
+ - \`specsafe spec <id>\` — View spec details, move to SPEC stage
245
+ - \`specsafe test <id>\` — Generate tests, move to TEST stage
246
+ - \`specsafe code <id>\` — Start implementation, move to CODE stage
247
+ - \`specsafe qa <id>\` — Run QA validation, move to QA stage
248
+ - \`specsafe complete <id>\` — Complete spec, move to COMPLETE stage
249
+
250
+ ## Claude Code Skills
251
+
252
+ This project includes Claude Code skills for slash commands:
253
+ - \`/specsafe\` — Show project status and workflow guidance
254
+ - \`/spec <id>\` — Show details for a specific spec
255
+ - \`/validate\` — Validate implementation against active spec
256
+ `;
257
+ await writeFile(configPath, claudeContent);
258
+ console.log(chalk.green('✓ Created CLAUDE.md'));
259
+ }
260
+ else {
261
+ console.log(chalk.yellow('⚠ CLAUDE.md already exists, skipping'));
262
+ }
263
+ // Create .claude/skills/ directory with SKILL.md files for slash commands
264
+ const skillsDir = `${projectDir}/.claude/skills`;
265
+ if (!existsSync(skillsDir)) {
266
+ await mkdir(skillsDir, { recursive: true });
267
+ }
268
+ // Create specsafe skill
269
+ const specsafeSkillDir = `${skillsDir}/specsafe`;
270
+ const specsafeSkillPath = `${specsafeSkillDir}/SKILL.md`;
271
+ if (!existsSync(specsafeSkillPath)) {
272
+ if (!existsSync(specsafeSkillDir)) {
273
+ await mkdir(specsafeSkillDir, { recursive: true });
274
+ }
275
+ await writeFile(specsafeSkillPath, claudeSkillSpecsafeContent);
276
+ console.log(chalk.green('✓ Created .claude/skills/specsafe/SKILL.md'));
277
+ }
278
+ else {
279
+ console.log(chalk.yellow('⚠ .claude/skills/specsafe/SKILL.md already exists, skipping'));
280
+ }
281
+ // Create spec skill
282
+ const specSkillDir = `${skillsDir}/spec`;
283
+ const specSkillPath = `${specSkillDir}/SKILL.md`;
284
+ if (!existsSync(specSkillPath)) {
285
+ if (!existsSync(specSkillDir)) {
286
+ await mkdir(specSkillDir, { recursive: true });
287
+ }
288
+ await writeFile(specSkillPath, claudeSkillSpecContent);
289
+ console.log(chalk.green('✓ Created .claude/skills/spec/SKILL.md'));
290
+ }
291
+ else {
292
+ console.log(chalk.yellow('⚠ .claude/skills/spec/SKILL.md already exists, skipping'));
293
+ }
294
+ // Create validate skill
295
+ const validateSkillDir = `${skillsDir}/validate`;
296
+ const validateSkillPath = `${validateSkillDir}/SKILL.md`;
297
+ if (!existsSync(validateSkillPath)) {
298
+ if (!existsSync(validateSkillDir)) {
299
+ await mkdir(validateSkillDir, { recursive: true });
300
+ }
301
+ await writeFile(validateSkillPath, claudeSkillValidateContent);
302
+ console.log(chalk.green('✓ Created .claude/skills/validate/SKILL.md'));
303
+ }
304
+ else {
305
+ console.log(chalk.yellow('⚠ .claude/skills/validate/SKILL.md already exists, skipping'));
306
+ }
307
+ }
308
+ async function generateCrushConfig(projectDir) {
309
+ const configPath = `${projectDir}/CRUSH.md`;
310
+ if (existsSync(configPath)) {
311
+ console.log(chalk.yellow('⚠ CRUSH.md already exists, skipping'));
312
+ return;
313
+ }
314
+ const crushContent = `# SpecSafe Project — Crush Configuration
315
+
316
+ You are working on a SpecSafe project using spec-driven development (SDD).
317
+
318
+ ## Project Context
319
+
320
+ **PROJECT_STATE.md** — Always read this file first. It contains:
321
+ - Active specs and their current stages
322
+ - Which spec is being worked on
323
+ - Overall project status
324
+
325
+ **Specs directory** — \`specs/active/*.md\` contains detailed spec files with:
326
+ - Requirements (must be satisfied)
327
+ - Scenarios (acceptance criteria)
328
+ - Current stage (SPEC → TEST → CODE → QA → COMPLETE)
329
+
330
+ ## Spec-Driven Development Workflow
331
+
332
+ 1. **SPEC stage**: Spec defines WHAT to build
333
+ 2. **TEST stage**: Tests define HOW to verify
334
+ 3. **CODE stage**: Implementation satisfies tests
335
+ 4. **QA stage**: Validate against scenarios
336
+ 5. **COMPLETE**: Feature done
337
+
338
+ ## Rules
339
+
340
+ - Always check PROJECT_STATE.md before changes
341
+ - Use SpecSafe CLI to advance stages
342
+ - Never modify PROJECT_STATE.md directly
343
+ - Tests define requirements — don't skip them
344
+ - Reference spec IDs in commits
345
+
346
+ ## CLI Commands
347
+
348
+ - \`specsafe status\` — Project status
349
+ - \`specsafe spec|test|code|qa|complete <id>\` — Stage transitions
350
+ `;
351
+ await writeFile(configPath, crushContent);
352
+ }
160
353
  /**
161
354
  * Generate git hooks configuration
162
355
  * @param projectDir - The project directory path
@@ -1 +1 @@
1
- {"version":3,"file":"generateToolConfig.js","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateToolConfig.js","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AAEH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAC;AAEF,MAAM,qBAAqB,GAAG;IAC5B,cAAc,EAAE;QACd;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,8BAA8B;YAC3C,MAAM,EAAE,2GAA2G;SACpH;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,kCAAkC;YAC/C,MAAM,EAAE,iHAAiH;SAC1H;KACF;IACD,gBAAgB,EAAE;QAChB;YACE,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;aACzB;SACF;KACF;CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;CAoB1B,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,SAAS,EAAE;QACT,aAAa,EAAE;YACb,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,0BAA0B;SAClC;QACD,OAAO,EAAE,GAAG;KACb;IACD,eAAe,EAAE;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,kBAAkB,CAAC;SAC3B;KACF;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,aAAqB,GAAG;IAC7E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,UAAU;YACb,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,OAAO;YACV,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM;QACR,KAAK,KAAK;YACR,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,OAAO;YACV,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IACpD,MAAM,UAAU,GAAG,GAAG,UAAU,eAAe,CAAC;IAEhD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,UAAkB;IACtD,MAAM,SAAS,GAAG,GAAG,UAAU,YAAY,CAAC;IAC5C,MAAM,UAAU,GAAG,GAAG,SAAS,cAAc,CAAC;IAE9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,GAAG,UAAU,kBAAkB,CAAC;IAEnD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,SAAS,GAAG,GAAG,UAAU,OAAO,CAAC;IACvC,MAAM,UAAU,GAAG,GAAG,SAAS,gBAAgB,CAAC;IAEhD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,+CAA+C;AAC/C,MAAM,0BAA0B,GAAG;;;;;;;;;;;;CAYlC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;CAa9B,CAAC;AAEF,MAAM,0BAA0B,GAAG;;;;;;;CAOlC,CAAC;AAEF,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IACxD,wCAAwC;IACxC,MAAM,UAAU,GAAG,GAAG,UAAU,YAAY,CAAC;IAE7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDzB,CAAC;QAEE,MAAM,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,0EAA0E;IAC1E,MAAM,SAAS,GAAG,GAAG,UAAU,iBAAiB,CAAC;IAEjD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,GAAG,SAAS,WAAW,CAAC;IACjD,MAAM,iBAAiB,GAAG,GAAG,gBAAgB,WAAW,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,oBAAoB;IACpB,MAAM,YAAY,GAAG,GAAG,SAAS,OAAO,CAAC;IACzC,MAAM,aAAa,GAAG,GAAG,YAAY,WAAW,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,GAAG,SAAS,WAAW,CAAC;IACjD,MAAM,iBAAiB,GAAG,GAAG,gBAAgB,WAAW,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,GAAG,UAAU,WAAW,CAAC;IAE5C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtB,CAAC;IAEA,MAAM,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,MAAM,QAAQ,GAAG,GAAG,UAAU,YAAY,CAAC;IAC3C,MAAM,aAAa,GAAG,GAAG,QAAQ,aAAa,CAAC;IAE/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;CAe1B,CAAC;IAEA,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,MAAM,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAEjD,iFAAiF;IACjF,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specsafe/cli",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "CLI for SpecSafe TDD framework",
5
5
  "type": "module",
6
6
  "engines": {
@@ -24,8 +24,8 @@
24
24
  "commander": "^11.0.0",
25
25
  "chalk": "^5.3.0",
26
26
  "ora": "^7.0.0",
27
- "@specsafe/core": "0.3.0",
28
- "@specsafe/test-gen": "0.3.0"
27
+ "@specsafe/core": "0.3.2",
28
+ "@specsafe/test-gen": "0.3.2"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.0.0",