sdd-mcp-server 2.0.3 → 2.2.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.
- package/README.md +65 -33
- package/atomicWrite.js +86 -0
- package/dist/adapters/cli/SDDToolAdapter.js +15 -5
- package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
- package/dist/application/services/ProjectContextService.js +4 -4
- package/dist/application/services/ProjectInitializationService.js +23 -23
- package/dist/application/services/ProjectService.js +2 -2
- package/dist/application/services/QualityGateService.js +4 -4
- package/dist/application/services/SteeringContextLoader.js +2 -2
- package/dist/application/services/SteeringDocumentService.js +4 -4
- package/dist/application/services/TemplateService.js +2 -2
- package/dist/application/services/WorkflowValidationService.js +4 -4
- package/dist/application/services/staticSteering.js +10 -10
- package/dist/cli/install-skills.d.ts +38 -2
- package/dist/cli/install-skills.js +221 -5
- package/dist/cli/install-skills.js.map +1 -1
- package/dist/cli/migrate-kiro.d.ts +2 -0
- package/dist/cli/migrate-kiro.js +91 -0
- package/dist/cli/migrate-kiro.js.map +1 -0
- package/dist/cli/sdd-mcp-cli.d.ts +3 -1
- package/dist/cli/sdd-mcp-cli.js +26 -6
- package/dist/cli/sdd-mcp-cli.js.map +1 -1
- package/dist/index.js +26 -17
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/mcp/ResourceManager.js +2 -2
- package/dist/utils/atomicWrite.d.ts +55 -0
- package/dist/utils/atomicWrite.js +84 -0
- package/dist/utils/atomicWrite.js.map +1 -0
- package/dist/utils/documentGenerator.js +1 -1
- package/dist/utils/specGenerator.js +3 -3
- package/mcp-server.js +5 -4
- package/package.json +3 -1
- package/skills/sdd-commit/SKILL.md +14 -0
- package/skills/sdd-design/SKILL.md +15 -0
- package/skills/sdd-implement/SKILL.md +15 -0
- package/skills/sdd-requirements/SKILL.md +9 -2
- package/skills/sdd-tasks/SKILL.md +14 -0
- package/steering/AGENTS.md +281 -0
- package/steering/commit.md +59 -0
- package/steering/linus-review.md +153 -0
- package/steering/owasp-top10-check.md +49 -0
- package/steering/principles.md +639 -0
- package/steering/tdd-guideline.md +324 -0
package/README.md
CHANGED
|
@@ -6,9 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
A Model Context Protocol (MCP) server implementing Spec-Driven Development (SDD) workflows for AI-agent CLIs and IDEs like Claude Code, Cursor, and others.
|
|
8
8
|
|
|
9
|
+
> 🎯 **v2.2.0 - Unified Installation & Crash Safety**: New `npx sdd-mcp install` command installs both skills (to `.claude/skills/`) AND steering documents (to `.spec/steering/`) in one step! Skills now explicitly reference their relevant steering documents for better guidance. Also includes **atomic file writes** for spec.json crash safety - files are never left in a corrupted state even if the process is interrupted. (Thanks to @Lucas Wang for the atomic writes contribution!)
|
|
10
|
+
|
|
11
|
+
> 🔄 **v2.1.0 - Directory Migration**: The SDD specification directory has been renamed from `.kiro` to `.spec`. Use `npx sdd-mcp migrate-kiro` to migrate existing projects. Legacy `.kiro` directories are still supported for backwards compatibility.
|
|
12
|
+
|
|
9
13
|
> 🔧 **v2.0.3 - CLI Subcommand Support**: `npx sdd-mcp install-skills` now works correctly! Created proper CLI entry point with subcommand support.
|
|
10
14
|
|
|
11
|
-
> 🚀 **v2.0.0 - Hybrid MCP + Agent Skills Architecture**: Restructured for token efficiency! Template/guidance tools (requirements, design, tasks, steering, implement) are now **Claude Code Agent Skills** loaded on-demand. Action-oriented tools remain as MCP tools. ~55% token savings in typical operations.
|
|
15
|
+
> 🚀 **v2.0.0 - Hybrid MCP + Agent Skills Architecture**: Restructured for token efficiency! Template/guidance tools (requirements, design, tasks, steering, implement) are now **Claude Code Agent Skills** loaded on-demand. Action-oriented tools remain as MCP tools. ~55% token savings in typical operations.
|
|
12
16
|
|
|
13
17
|
> 🤖 **v1.8.0 - MCP Tool Standardization**: Updated `AGENTS.md` generation to use standard MCP tool calls (e.g., `sdd-init`) instead of legacy slash commands. Fixed `sdd-steering` to correctly generate `AGENTS.md` with the new format. Ensures consistent tool usage across all AI agents.
|
|
14
18
|
|
|
@@ -159,19 +163,46 @@ SDD now uses a **hybrid architecture** for better token efficiency:
|
|
|
159
163
|
- **MCP Tools**: Action-oriented operations (init, status, approve, quality-check, validate, spec-impl)
|
|
160
164
|
- **Agent Skills**: Template/guidance-heavy operations (requirements, design, tasks, steering, implement, commit)
|
|
161
165
|
|
|
162
|
-
### Installing Agent Skills
|
|
166
|
+
### Installing Agent Skills and Steering Documents
|
|
163
167
|
|
|
164
168
|
```bash
|
|
165
|
-
# Install skills
|
|
169
|
+
# Recommended: Install both skills AND steering documents
|
|
170
|
+
npx sdd-mcp install
|
|
171
|
+
|
|
172
|
+
# Install skills only (to .claude/skills/)
|
|
173
|
+
npx sdd-mcp install --skills
|
|
174
|
+
|
|
175
|
+
# Install steering documents only (to .spec/steering/)
|
|
176
|
+
npx sdd-mcp install --steering
|
|
177
|
+
|
|
178
|
+
# List available skills and steering documents
|
|
179
|
+
npx sdd-mcp install --list
|
|
180
|
+
|
|
181
|
+
# Legacy: Install skills only (same as --skills)
|
|
166
182
|
npx sdd-mcp install-skills
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**What gets installed:**
|
|
186
|
+
- **Skills** (`.claude/skills/`): Workflow guidance for Claude Code - requirements, design, tasks, implement, etc.
|
|
187
|
+
- **Steering** (`.spec/steering/`): Project-wide rules - TDD guidelines, SOLID principles, security checklist, etc.
|
|
188
|
+
|
|
189
|
+
### Migrating from .kiro to .spec (v2.1.0+)
|
|
167
190
|
|
|
168
|
-
|
|
169
|
-
|
|
191
|
+
If you have existing projects using the legacy `.kiro` directory, migrate to the new `.spec` standard:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Preview migration (dry run)
|
|
195
|
+
npx sdd-mcp migrate-kiro --dry-run
|
|
170
196
|
|
|
171
|
-
#
|
|
172
|
-
npx sdd-mcp
|
|
197
|
+
# Perform migration
|
|
198
|
+
npx sdd-mcp migrate-kiro
|
|
199
|
+
|
|
200
|
+
# Migrate a specific project
|
|
201
|
+
npx sdd-mcp migrate-kiro --path ./my-project
|
|
173
202
|
```
|
|
174
203
|
|
|
204
|
+
**Note**: Legacy `.kiro` directories are still supported for backwards compatibility, but new projects will use `.spec`.
|
|
205
|
+
|
|
175
206
|
### Available Skills
|
|
176
207
|
|
|
177
208
|
After installation, use these skills in Claude Code:
|
|
@@ -214,15 +245,15 @@ Once connected to your AI client, you can use these MCP tools:
|
|
|
214
245
|
|
|
215
246
|
## 💡 Basic Workflow
|
|
216
247
|
|
|
217
|
-
1. **Setup: Install Skills & Initialize Project**
|
|
248
|
+
1. **Setup: Install Skills & Steering, Initialize Project**
|
|
218
249
|
```bash
|
|
219
|
-
# Install
|
|
220
|
-
npx sdd-mcp install
|
|
250
|
+
# Install skills and steering documents (recommended)
|
|
251
|
+
npx sdd-mcp install
|
|
221
252
|
|
|
222
253
|
# Initialize project with MCP tool
|
|
223
254
|
Use sdd-init to create a new SDD project
|
|
224
255
|
|
|
225
|
-
# Generate steering documents with Agent Skill
|
|
256
|
+
# Generate project-specific steering documents with Agent Skill
|
|
226
257
|
Use /sdd-steering to generate product.md, tech.md, structure.md
|
|
227
258
|
```
|
|
228
259
|
|
|
@@ -269,35 +300,36 @@ Once connected to your AI client, you can use these MCP tools:
|
|
|
269
300
|
Use sdd-context-load to restore project memory
|
|
270
301
|
```
|
|
271
302
|
|
|
272
|
-
## Latest Updates (v2.0
|
|
303
|
+
## Latest Updates (v2.2.0)
|
|
273
304
|
|
|
274
305
|
**What's New**:
|
|
275
|
-
-
|
|
276
|
-
- ✅ **
|
|
277
|
-
- ✅ **
|
|
278
|
-
|
|
279
|
-
**v2.0.0 Features** (included in this release):
|
|
280
|
-
- 🎯 **Hybrid MCP + Agent Skills Architecture**: Template/guidance tools moved to Claude Code Agent Skills for ~55% token savings
|
|
281
|
-
- ✅ **8 Agent Skills**: simple-task, sdd-requirements, sdd-design, sdd-tasks, sdd-implement, sdd-steering, sdd-steering-custom, sdd-commit
|
|
282
|
-
- ✅ **Skill Installation CLI**: `npx sdd-mcp install-skills` to install skills to `.claude/skills/`
|
|
283
|
-
- ✅ **New MCP Tool**: `sdd-list-skills` to list available skills
|
|
284
|
-
- ✅ **Token Efficiency**: Guidance loaded on-demand instead of always-on steering
|
|
306
|
+
- 🎯 **Unified Installation**: `npx sdd-mcp install` installs both skills AND steering documents
|
|
307
|
+
- ✅ **Skill-Steering References**: Each skill now explicitly references relevant steering documents
|
|
308
|
+
- ✅ **Steering Source Files**: Static steering docs moved to package for consistent installation
|
|
309
|
+
- ✅ **Improved `/sdd-steering` Output**: Clearer distinction between dynamic and static documents
|
|
285
310
|
|
|
286
311
|
**Upgrade Commands**:
|
|
287
312
|
```bash
|
|
288
|
-
# Install
|
|
289
|
-
npx sdd-mcp install
|
|
313
|
+
# Install skills AND steering (recommended)
|
|
314
|
+
npx sdd-mcp install
|
|
315
|
+
|
|
316
|
+
# Install skills only
|
|
317
|
+
npx sdd-mcp install --skills
|
|
290
318
|
|
|
291
|
-
#
|
|
292
|
-
npx sdd-mcp install
|
|
319
|
+
# Install steering only
|
|
320
|
+
npx sdd-mcp install --steering
|
|
321
|
+
|
|
322
|
+
# List available content
|
|
323
|
+
npx sdd-mcp install --list
|
|
293
324
|
|
|
294
325
|
# Show CLI help
|
|
295
326
|
npx sdd-mcp --help
|
|
296
|
-
|
|
297
|
-
# MCP server (for AI client integration)
|
|
298
|
-
npx sdd-mcp-server
|
|
299
327
|
```
|
|
300
328
|
|
|
329
|
+
**Previous Versions (v2.0.x)**:
|
|
330
|
+
- v2.0.3: CLI subcommand support (`npx sdd-mcp install-skills` works)
|
|
331
|
+
- v2.0.0: Hybrid MCP + Agent Skills architecture, ~55% token savings
|
|
332
|
+
|
|
301
333
|
## Previous Versions
|
|
302
334
|
|
|
303
335
|
### v2.0.x
|
|
@@ -528,10 +560,10 @@ For detailed documentation on:
|
|
|
528
560
|
- **🏗️ Architecture Overview**: See [ARCHITECTURE.md](ARCHITECTURE.md) for complete system design, layered architecture, module loading, and Mermaid diagrams
|
|
529
561
|
- **Plugin Development**: See [DEPLOYMENT.md](DEPLOYMENT.md)
|
|
530
562
|
- **Docker Deployment**: See [Dockerfile](Dockerfile) and [docker-compose.yml](docker-compose.yml)
|
|
531
|
-
- **Code Quality Standards**: Review `.
|
|
532
|
-
- **TDD Guidelines**: See `.
|
|
533
|
-
- **Coding Principles**: Review `.
|
|
534
|
-
- **Security Checklist**: Check `.
|
|
563
|
+
- **Code Quality Standards**: Review `.spec/steering/linus-review.md`
|
|
564
|
+
- **TDD Guidelines**: See `.spec/steering/tdd-guideline.md` for complete Test-Driven Development workflow
|
|
565
|
+
- **Coding Principles**: Review `.spec/steering/principles.md` for SOLID, DRY, KISS, YAGNI, SoC, and Modularity guidance
|
|
566
|
+
- **Security Checklist**: Check `.spec/steering/security-check.md` for OWASP Top 10 aligned security practices
|
|
535
567
|
|
|
536
568
|
## 🐛 Support & Issues
|
|
537
569
|
|
package/atomicWrite.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic file write utility
|
|
3
|
+
* 原子性檔案寫入工具
|
|
4
|
+
*
|
|
5
|
+
* Prevents file corruption when write operations are interrupted (crash, kill signal).
|
|
6
|
+
* Uses the temp-file + rename pattern which is atomic on POSIX systems.
|
|
7
|
+
* 防止寫入操作被中斷時(crash、kill signal)造成檔案損壞。
|
|
8
|
+
* 使用 temp-file + rename 模式,在 POSIX 系統上是原子操作。
|
|
9
|
+
*
|
|
10
|
+
* @note Windows Limitation / Windows 限制:
|
|
11
|
+
* On Windows, fs.rename() may fail with EEXIST if target exists.
|
|
12
|
+
* For Windows production use, consider using 'write-file-atomic' package.
|
|
13
|
+
* 在 Windows 上,若目標檔案存在,fs.rename() 可能會失敗。
|
|
14
|
+
* 若需在 Windows 生產環境使用,建議改用 'write-file-atomic' 套件。
|
|
15
|
+
*
|
|
16
|
+
* @module atomicWrite
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import * as fs from "fs/promises";
|
|
20
|
+
import * as path from "path";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Write content to a file atomically.
|
|
24
|
+
*
|
|
25
|
+
* This function writes to a temporary file first, then renames it to the target path.
|
|
26
|
+
* The rename operation is atomic on POSIX systems, ensuring the file is never left
|
|
27
|
+
* in a corrupted state.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} filePath - The target file path
|
|
30
|
+
* @param {string} content - The content to write
|
|
31
|
+
* @param {object} [options] - Optional write options
|
|
32
|
+
* @param {string} [options.encoding='utf8'] - The encoding to use
|
|
33
|
+
* @returns {Promise<void>} Promise that resolves when write is complete
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* await atomicWriteFile('/path/to/spec.json', JSON.stringify(data, null, 2));
|
|
37
|
+
*/
|
|
38
|
+
export async function atomicWriteFile(filePath, content, options = {}) {
|
|
39
|
+
const encoding = options.encoding ?? "utf8";
|
|
40
|
+
const dir = path.dirname(filePath);
|
|
41
|
+
const filename = path.basename(filePath);
|
|
42
|
+
|
|
43
|
+
// Create temp file path with process ID, timestamp, and random suffix for uniqueness
|
|
44
|
+
// Random suffix prevents collisions when multiple writes occur within the same millisecond
|
|
45
|
+
const uniqueSuffix = `${Date.now()}.${Math.random().toString(36).slice(2, 10)}`;
|
|
46
|
+
const tempPath = path.join(dir, `.${filename}.${process.pid}.${uniqueSuffix}.tmp`);
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
// Ensure directory exists
|
|
50
|
+
await fs.mkdir(dir, { recursive: true });
|
|
51
|
+
|
|
52
|
+
// Write to temp file
|
|
53
|
+
await fs.writeFile(tempPath, content, encoding);
|
|
54
|
+
|
|
55
|
+
// Atomic rename (on POSIX systems)
|
|
56
|
+
await fs.rename(tempPath, filePath);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
// Clean up temp file if it exists
|
|
59
|
+
try {
|
|
60
|
+
await fs.unlink(tempPath);
|
|
61
|
+
} catch {
|
|
62
|
+
// Ignore cleanup errors
|
|
63
|
+
}
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Write JSON content to a file atomically.
|
|
70
|
+
*
|
|
71
|
+
* Convenience wrapper that handles JSON serialization with pretty printing.
|
|
72
|
+
*
|
|
73
|
+
* @param {string} filePath - The target file path
|
|
74
|
+
* @param {*} data - The data to serialize and write
|
|
75
|
+
* @param {object} [options] - Optional options
|
|
76
|
+
* @param {number} [options.indent=2] - Number of spaces for indentation
|
|
77
|
+
* @returns {Promise<void>} Promise that resolves when write is complete
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* await atomicWriteJSON('/path/to/spec.json', specData);
|
|
81
|
+
*/
|
|
82
|
+
export async function atomicWriteJSON(filePath, data, options = {}) {
|
|
83
|
+
const indent = options.indent ?? 2;
|
|
84
|
+
const content = JSON.stringify(data, null, indent);
|
|
85
|
+
await atomicWriteFile(filePath, content);
|
|
86
|
+
}
|
|
@@ -427,17 +427,27 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
427
427
|
**Project**: ${packageJson.name || "Unknown"}
|
|
428
428
|
**Mode**: ${updateMode}
|
|
429
429
|
|
|
430
|
-
**
|
|
431
|
-
- \`.
|
|
432
|
-
- \`.
|
|
433
|
-
- \`.
|
|
430
|
+
**Dynamic Documents** (project-specific, generated from analysis):
|
|
431
|
+
- \`.spec/steering/product.md\` - Product overview and business context
|
|
432
|
+
- \`.spec/steering/tech.md\` - Technology stack and development environment
|
|
433
|
+
- \`.spec/steering/structure.md\` - Project organization and architectural decisions
|
|
434
|
+
|
|
435
|
+
**Static Documents** (best practices, installed from package):
|
|
436
|
+
- \`.spec/steering/tdd-guideline.md\` - Test-Driven Development workflow
|
|
437
|
+
- \`.spec/steering/principles.md\` - SOLID, DRY, KISS, YAGNI principles
|
|
438
|
+
- \`.spec/steering/linus-review.md\` - Code quality review standards
|
|
439
|
+
- \`.spec/steering/commit.md\` - Commit message conventions
|
|
440
|
+
- \`.spec/steering/owasp-top10-check.md\` - Security checklist
|
|
434
441
|
|
|
435
442
|
**Analysis**:
|
|
436
443
|
- Technology stack: ${Object.keys({ ...packageJson.dependencies, ...packageJson.devDependencies }).length} dependencies detected
|
|
437
444
|
- Project type: ${packageJson.type || "Unknown"}
|
|
438
445
|
- Existing steering: Updated preserving customizations
|
|
439
446
|
|
|
440
|
-
|
|
447
|
+
**Tip**: For a unified installation of skills and steering documents, run:
|
|
448
|
+
\`npx sdd-mcp install\`
|
|
449
|
+
|
|
450
|
+
This installs both \`.claude/skills/\` (workflow guides) and \`.spec/steering/\` (project rules).`;
|
|
441
451
|
}
|
|
442
452
|
catch (error) {
|
|
443
453
|
this.logger.error("Failed to generate steering documents", error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SDDToolAdapter.js","sourceRoot":"","sources":["../../../src/adapters/cli/SDDToolAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SDDToolAdapter.js","sourceRoot":"","sources":["../../../src/adapters/cli/SDDToolAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -247,7 +247,7 @@ let ProjectContextService = class ProjectContextService {
|
|
|
247
247
|
if (changedFiles.some(f => f.includes('package.json'))) {
|
|
248
248
|
recommendations.push('Dependencies may have changed - refresh dependency analysis');
|
|
249
249
|
}
|
|
250
|
-
if (changedFiles.some(f => f.includes('.
|
|
250
|
+
if (changedFiles.some(f => f.includes('.spec/steering'))) {
|
|
251
251
|
recommendations.push('Steering documents changed - refresh steering context');
|
|
252
252
|
}
|
|
253
253
|
}
|
|
@@ -274,7 +274,7 @@ let ProjectContextService = class ProjectContextService {
|
|
|
274
274
|
options
|
|
275
275
|
});
|
|
276
276
|
try {
|
|
277
|
-
const contextDir = `${context.basePath}/.
|
|
277
|
+
const contextDir = `${context.basePath}/.spec/context`;
|
|
278
278
|
if (!(await this.fileSystem.exists(contextDir))) {
|
|
279
279
|
await this.fileSystem.mkdir(contextDir);
|
|
280
280
|
}
|
|
@@ -320,7 +320,7 @@ let ProjectContextService = class ProjectContextService {
|
|
|
320
320
|
}
|
|
321
321
|
async loadPersistedContext(projectId, projectPath) {
|
|
322
322
|
try {
|
|
323
|
-
const contextFile = `${projectPath}/.
|
|
323
|
+
const contextFile = `${projectPath}/.spec/context/${projectId}.json`;
|
|
324
324
|
if (await this.fileSystem.exists(contextFile)) {
|
|
325
325
|
const content = await this.fileSystem.readFile(contextFile);
|
|
326
326
|
const persistedData = JSON.parse(content);
|
|
@@ -391,7 +391,7 @@ let ProjectContextService = class ProjectContextService {
|
|
|
391
391
|
}
|
|
392
392
|
async loadProjectMetadata(projectPath) {
|
|
393
393
|
// Try to load from spec.json first
|
|
394
|
-
const specJsonPath = `${projectPath}/.
|
|
394
|
+
const specJsonPath = `${projectPath}/.spec/specs`;
|
|
395
395
|
let name = 'Unknown Project';
|
|
396
396
|
let description;
|
|
397
397
|
try {
|
|
@@ -103,15 +103,15 @@ let ProjectInitializationService = class ProjectInitializationService {
|
|
|
103
103
|
const existingProject = await this.projectService.getProjectByPath(projectPath);
|
|
104
104
|
// Check directory structure
|
|
105
105
|
const requiredDirectories = [
|
|
106
|
-
`${projectPath}/.
|
|
107
|
-
`${projectPath}/.
|
|
108
|
-
`${projectPath}/.
|
|
106
|
+
`${projectPath}/.spec`,
|
|
107
|
+
`${projectPath}/.spec/specs`,
|
|
108
|
+
`${projectPath}/.spec/steering`
|
|
109
109
|
];
|
|
110
110
|
const missingDirectories = [];
|
|
111
111
|
const hasValidStructure = await this.checkDirectoryStructure(requiredDirectories, missingDirectories);
|
|
112
112
|
// Check for required files
|
|
113
113
|
const requiredFiles = [
|
|
114
|
-
`${projectPath}/.
|
|
114
|
+
`${projectPath}/.spec/specs/spec.json`
|
|
115
115
|
];
|
|
116
116
|
const missingFiles = [];
|
|
117
117
|
for (const file of requiredFiles) {
|
|
@@ -165,10 +165,10 @@ let ProjectInitializationService = class ProjectInitializationService {
|
|
|
165
165
|
try {
|
|
166
166
|
// Check directory structure
|
|
167
167
|
const requiredDirectories = [
|
|
168
|
-
`${project.path}/.
|
|
169
|
-
`${project.path}/.
|
|
170
|
-
`${project.path}/.
|
|
171
|
-
`${project.path}/.
|
|
168
|
+
`${project.path}/.spec`,
|
|
169
|
+
`${project.path}/.spec/specs`,
|
|
170
|
+
`${project.path}/.spec/specs/${project.name}`,
|
|
171
|
+
`${project.path}/.spec/steering`
|
|
172
172
|
];
|
|
173
173
|
for (const dir of requiredDirectories) {
|
|
174
174
|
if (!(await this.fileSystem.exists(dir))) {
|
|
@@ -176,7 +176,7 @@ let ProjectInitializationService = class ProjectInitializationService {
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
// Check required files
|
|
179
|
-
const specJsonPath = `${project.path}/.
|
|
179
|
+
const specJsonPath = `${project.path}/.spec/specs/${project.name}/spec.json`;
|
|
180
180
|
if (!(await this.fileSystem.exists(specJsonPath))) {
|
|
181
181
|
issues.push(`Missing spec.json file: ${specJsonPath}`);
|
|
182
182
|
}
|
|
@@ -191,9 +191,9 @@ let ProjectInitializationService = class ProjectInitializationService {
|
|
|
191
191
|
}
|
|
192
192
|
// Check for steering files
|
|
193
193
|
const steeringFiles = [
|
|
194
|
-
`${project.path}/.
|
|
195
|
-
`${project.path}/.
|
|
196
|
-
`${project.path}/.
|
|
194
|
+
`${project.path}/.spec/steering/product.md`,
|
|
195
|
+
`${project.path}/.spec/steering/tech.md`,
|
|
196
|
+
`${project.path}/.spec/steering/structure.md`
|
|
197
197
|
];
|
|
198
198
|
let steeringCount = 0;
|
|
199
199
|
for (const file of steeringFiles) {
|
|
@@ -342,9 +342,9 @@ let ProjectInitializationService = class ProjectInitializationService {
|
|
|
342
342
|
}
|
|
343
343
|
async createDirectoryStructure(projectPath) {
|
|
344
344
|
const directories = [
|
|
345
|
-
`${projectPath}/.
|
|
346
|
-
`${projectPath}/.
|
|
347
|
-
`${projectPath}/.
|
|
345
|
+
`${projectPath}/.spec`,
|
|
346
|
+
`${projectPath}/.spec/specs`,
|
|
347
|
+
`${projectPath}/.spec/steering`,
|
|
348
348
|
`${projectPath}/.claude`,
|
|
349
349
|
`${projectPath}/.claude/commands`
|
|
350
350
|
];
|
|
@@ -362,7 +362,7 @@ let ProjectInitializationService = class ProjectInitializationService {
|
|
|
362
362
|
// Generate spec.json
|
|
363
363
|
const specContent = await this.templateService.generateSpecJson(project);
|
|
364
364
|
await this.templateService.writeProjectFile(project, 'spec.json', specContent);
|
|
365
|
-
generatedFiles.push(`${project.path}/.
|
|
365
|
+
generatedFiles.push(`${project.path}/.spec/specs/${project.name}/spec.json`);
|
|
366
366
|
// Generate README template if requested
|
|
367
367
|
if (options.template && options.template !== 'basic') {
|
|
368
368
|
const readmeContent = this.generateReadmeTemplate(project, options);
|
|
@@ -396,9 +396,9 @@ This project follows Spec-Driven Development (SDD) methodology:
|
|
|
396
396
|
|
|
397
397
|
## Getting Started
|
|
398
398
|
|
|
399
|
-
1. Review requirements: \`.
|
|
400
|
-
2. Check design: \`.
|
|
401
|
-
3. Follow tasks: \`.
|
|
399
|
+
1. Review requirements: \`.spec/specs/${project.name}/requirements.md\`
|
|
400
|
+
2. Check design: \`.spec/specs/${project.name}/design.md\`
|
|
401
|
+
3. Follow tasks: \`.spec/specs/${project.name}/tasks.md\`
|
|
402
402
|
|
|
403
403
|
## SDD Commands
|
|
404
404
|
|
|
@@ -432,8 +432,8 @@ ${options.description || 'Product description and objectives to be defined.'}
|
|
|
432
432
|
|
|
433
433
|
Generated on: ${new Date().toISOString()}
|
|
434
434
|
`;
|
|
435
|
-
await this.fileSystem.writeFile(`${project.path}/.
|
|
436
|
-
generatedFiles.push(`${project.path}/.
|
|
435
|
+
await this.fileSystem.writeFile(`${project.path}/.spec/steering/product.md`, productContent);
|
|
436
|
+
generatedFiles.push(`${project.path}/.spec/steering/product.md`);
|
|
437
437
|
// Basic tech steering
|
|
438
438
|
const techContent = `# Technology Steering Document
|
|
439
439
|
|
|
@@ -456,8 +456,8 @@ ${options.technology || 'Technology decisions to be defined.'}
|
|
|
456
456
|
|
|
457
457
|
Generated on: ${new Date().toISOString()}
|
|
458
458
|
`;
|
|
459
|
-
await this.fileSystem.writeFile(`${project.path}/.
|
|
460
|
-
generatedFiles.push(`${project.path}/.
|
|
459
|
+
await this.fileSystem.writeFile(`${project.path}/.spec/steering/tech.md`, techContent);
|
|
460
|
+
generatedFiles.push(`${project.path}/.spec/steering/tech.md`);
|
|
461
461
|
return generatedFiles;
|
|
462
462
|
}
|
|
463
463
|
async checkDirectoryStructure(requiredDirectories, missingDirectories) {
|
|
@@ -136,8 +136,8 @@ let ProjectService = class ProjectService {
|
|
|
136
136
|
}
|
|
137
137
|
async createProjectStructure(basePath) {
|
|
138
138
|
const directories = [
|
|
139
|
-
`${basePath}/.
|
|
140
|
-
`${basePath}/.
|
|
139
|
+
`${basePath}/.spec/specs`,
|
|
140
|
+
`${basePath}/.spec/steering`,
|
|
141
141
|
`${basePath}/.claude/commands`
|
|
142
142
|
];
|
|
143
143
|
for (const dir of directories) {
|
|
@@ -165,9 +165,9 @@ let QualityGateService = class QualityGateService {
|
|
|
165
165
|
}
|
|
166
166
|
// Also check documentation files for requirements/design phases
|
|
167
167
|
const docsFiles = [
|
|
168
|
-
`${project.path}/.
|
|
169
|
-
`${project.path}/.
|
|
170
|
-
`${project.path}/.
|
|
168
|
+
`${project.path}/.spec/specs/${project.name}/requirements.md`,
|
|
169
|
+
`${project.path}/.spec/specs/${project.name}/design.md`,
|
|
170
|
+
`${project.path}/.spec/specs/${project.name}/tasks.md`
|
|
171
171
|
];
|
|
172
172
|
for (const filePath of docsFiles) {
|
|
173
173
|
if (await this.fileSystem.exists(filePath)) {
|
|
@@ -366,7 +366,7 @@ let QualityGateService = class QualityGateService {
|
|
|
366
366
|
}
|
|
367
367
|
async generateQualityReport(project, phase, report) {
|
|
368
368
|
try {
|
|
369
|
-
const reportDir = `${project.path}/.
|
|
369
|
+
const reportDir = `${project.path}/.spec/quality`;
|
|
370
370
|
await this.fileSystem.mkdir(reportDir);
|
|
371
371
|
const reportPath = `${reportDir}/quality-report-${phase.toLowerCase()}-${Date.now()}.json`;
|
|
372
372
|
const reportContent = JSON.stringify(report, null, 2);
|
|
@@ -37,7 +37,7 @@ let SteeringContextLoader = class SteeringContextLoader {
|
|
|
37
37
|
let hasTargetUsers = false;
|
|
38
38
|
let hasTechContext = false;
|
|
39
39
|
// Load product.md with individual error handling
|
|
40
|
-
const productPath = `${projectPath}/.
|
|
40
|
+
const productPath = `${projectPath}/.spec/steering/product.md`;
|
|
41
41
|
if (await this.fileSystem.exists(productPath)) {
|
|
42
42
|
try {
|
|
43
43
|
const content = await this.fileSystem.readFile(productPath);
|
|
@@ -52,7 +52,7 @@ let SteeringContextLoader = class SteeringContextLoader {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
// Load tech.md with individual error handling
|
|
55
|
-
const techPath = `${projectPath}/.
|
|
55
|
+
const techPath = `${projectPath}/.spec/steering/tech.md`;
|
|
56
56
|
if (await this.fileSystem.exists(techPath)) {
|
|
57
57
|
try {
|
|
58
58
|
const content = await this.fileSystem.readFile(techPath);
|
|
@@ -39,7 +39,7 @@ let SteeringDocumentService = class SteeringDocumentService {
|
|
|
39
39
|
projectPath,
|
|
40
40
|
preferences
|
|
41
41
|
});
|
|
42
|
-
const steeringPath = path.join(projectPath, '.
|
|
42
|
+
const steeringPath = path.join(projectPath, '.spec', 'steering');
|
|
43
43
|
const documents = [];
|
|
44
44
|
try {
|
|
45
45
|
if (await this.fileSystem.exists(steeringPath)) {
|
|
@@ -315,7 +315,7 @@ let SteeringDocumentService = class SteeringDocumentService {
|
|
|
315
315
|
}
|
|
316
316
|
// Apply plugin steering documents
|
|
317
317
|
const pluginSteeringContext = {
|
|
318
|
-
projectPath: steeringContext.documents[0]?.path.split('/.
|
|
318
|
+
projectPath: steeringContext.documents[0]?.path.split('/.spec/')[0] || process.cwd(),
|
|
319
319
|
workingDirectory: process.cwd(),
|
|
320
320
|
variables: {},
|
|
321
321
|
metadata: {
|
|
@@ -441,7 +441,7 @@ let SteeringDocumentService = class SteeringDocumentService {
|
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
443
|
// Check for new documents
|
|
444
|
-
const steeringPath = path.join(projectPath, '.
|
|
444
|
+
const steeringPath = path.join(projectPath, '.spec', 'steering');
|
|
445
445
|
if (await this.fileSystem.exists(steeringPath)) {
|
|
446
446
|
const files = await this.fileSystem.readdir(steeringPath);
|
|
447
447
|
const existingPaths = new Set(currentContext.documents.map(d => d.path));
|
|
@@ -490,7 +490,7 @@ let SteeringDocumentService = class SteeringDocumentService {
|
|
|
490
490
|
name: config.name,
|
|
491
491
|
type: config.type
|
|
492
492
|
});
|
|
493
|
-
const steeringPath = path.join(projectPath, '.
|
|
493
|
+
const steeringPath = path.join(projectPath, '.spec', 'steering');
|
|
494
494
|
// Ensure steering directory exists
|
|
495
495
|
if (!(await this.fileSystem.exists(steeringPath))) {
|
|
496
496
|
await this.fileSystem.mkdir(steeringPath);
|
|
@@ -223,7 +223,7 @@ ${tasks.deployment.map((task, index) => `- [ ] ${index + 1}. ${task.title}
|
|
|
223
223
|
}
|
|
224
224
|
async writeProjectFile(project, fileName, content) {
|
|
225
225
|
const correlationId = uuidv4();
|
|
226
|
-
const filePath = `${project.path}/.
|
|
226
|
+
const filePath = `${project.path}/.spec/specs/${project.name}/${fileName}`;
|
|
227
227
|
this.logger.info('Writing project file', {
|
|
228
228
|
correlationId,
|
|
229
229
|
projectId: project.id,
|
|
@@ -319,7 +319,7 @@ ${tasks.deployment.map((task, index) => `- [ ] ${index + 1}. ${task.title}
|
|
|
319
319
|
}
|
|
320
320
|
],
|
|
321
321
|
subdirectories: {
|
|
322
|
-
'.
|
|
322
|
+
'.spec': {
|
|
323
323
|
files: [],
|
|
324
324
|
subdirectories: {
|
|
325
325
|
'steering': {
|