@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,
|
|
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":"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;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;;;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"}
|
|
1
|
+
{"version":3,"file":"generateToolConfig.js","sourceRoot":"","sources":["../../src/utils/generateToolConfig.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@specsafe/cli",
|
|
3
|
-
"version": "0.3.
|
|
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.
|
|
28
|
-
"@specsafe/test-gen": "0.3.
|
|
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",
|