sdd-mcp-server 1.1.21 → 1.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 +67 -30
- package/dist/adapters/cli/SDDToolAdapter.d.ts +22 -1
- package/dist/adapters/cli/SDDToolAdapter.js +399 -17
- package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
- package/dist/application/services/TemplateService.d.ts +17 -0
- package/dist/application/services/TemplateService.js +367 -24
- package/dist/application/services/TemplateService.js.map +1 -1
- package/dist/index.js +1210 -13
- package/dist/index.js.map +1 -1
- package/mcp-server.js +1501 -0
- package/package.json +3 -3
- package/minimal-working-server.js +0 -66
|
@@ -17,18 +17,24 @@ import { ProjectService } from '../../application/services/ProjectService.js';
|
|
|
17
17
|
import { WorkflowService } from '../../application/services/WorkflowService.js';
|
|
18
18
|
import { TemplateService } from '../../application/services/TemplateService.js';
|
|
19
19
|
import { QualityService } from '../../application/services/QualityService.js';
|
|
20
|
+
import { SteeringDocumentService } from '../../application/services/SteeringDocumentService.js';
|
|
21
|
+
import { CodebaseAnalysisService } from '../../application/services/CodebaseAnalysisService.js';
|
|
20
22
|
import { WorkflowPhase } from '../../domain/types.js';
|
|
21
23
|
let SDDToolAdapter = class SDDToolAdapter {
|
|
22
24
|
projectService;
|
|
23
25
|
workflowService;
|
|
24
26
|
templateService;
|
|
25
27
|
qualityService;
|
|
28
|
+
steeringService;
|
|
29
|
+
codebaseAnalysisService;
|
|
26
30
|
logger;
|
|
27
|
-
constructor(projectService, workflowService, templateService, qualityService, logger) {
|
|
31
|
+
constructor(projectService, workflowService, templateService, qualityService, steeringService, codebaseAnalysisService, logger) {
|
|
28
32
|
this.projectService = projectService;
|
|
29
33
|
this.workflowService = workflowService;
|
|
30
34
|
this.templateService = templateService;
|
|
31
35
|
this.qualityService = qualityService;
|
|
36
|
+
this.steeringService = steeringService;
|
|
37
|
+
this.codebaseAnalysisService = codebaseAnalysisService;
|
|
32
38
|
this.logger = logger;
|
|
33
39
|
}
|
|
34
40
|
getSDDTools() {
|
|
@@ -37,15 +43,13 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
37
43
|
name: 'sdd-init',
|
|
38
44
|
tool: {
|
|
39
45
|
name: 'sdd-init',
|
|
40
|
-
description: 'Initialize a new SDD project
|
|
46
|
+
description: 'Initialize a new SDD project from description',
|
|
41
47
|
inputSchema: {
|
|
42
48
|
type: 'object',
|
|
43
49
|
properties: {
|
|
44
|
-
|
|
45
|
-
path: { type: 'string', description: 'Project path' },
|
|
46
|
-
language: { type: 'string', enum: ['en', 'ja', 'zh-TW'], default: 'en' }
|
|
50
|
+
description: { type: 'string', description: 'Detailed project description' }
|
|
47
51
|
},
|
|
48
|
-
required: ['
|
|
52
|
+
required: ['description']
|
|
49
53
|
}
|
|
50
54
|
},
|
|
51
55
|
handler: this.handleProjectInit.bind(this)
|
|
@@ -69,13 +73,13 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
69
73
|
name: 'sdd-requirements',
|
|
70
74
|
tool: {
|
|
71
75
|
name: 'sdd-requirements',
|
|
72
|
-
description: 'Generate requirements
|
|
76
|
+
description: 'Generate requirements doc',
|
|
73
77
|
inputSchema: {
|
|
74
78
|
type: 'object',
|
|
75
79
|
properties: {
|
|
76
|
-
|
|
80
|
+
featureName: { type: 'string', description: 'Feature name' }
|
|
77
81
|
},
|
|
78
|
-
required: ['
|
|
82
|
+
required: ['featureName']
|
|
79
83
|
}
|
|
80
84
|
},
|
|
81
85
|
handler: this.handleRequirements.bind(this)
|
|
@@ -84,13 +88,13 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
84
88
|
name: 'sdd-design',
|
|
85
89
|
tool: {
|
|
86
90
|
name: 'sdd-design',
|
|
87
|
-
description: '
|
|
91
|
+
description: 'Create design specifications',
|
|
88
92
|
inputSchema: {
|
|
89
93
|
type: 'object',
|
|
90
94
|
properties: {
|
|
91
|
-
|
|
95
|
+
featureName: { type: 'string', description: 'Feature name' }
|
|
92
96
|
},
|
|
93
|
-
required: ['
|
|
97
|
+
required: ['featureName']
|
|
94
98
|
}
|
|
95
99
|
},
|
|
96
100
|
handler: this.handleDesign.bind(this)
|
|
@@ -99,13 +103,13 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
99
103
|
name: 'sdd-tasks',
|
|
100
104
|
tool: {
|
|
101
105
|
name: 'sdd-tasks',
|
|
102
|
-
description: 'Generate
|
|
106
|
+
description: 'Generate task breakdown',
|
|
103
107
|
inputSchema: {
|
|
104
108
|
type: 'object',
|
|
105
109
|
properties: {
|
|
106
|
-
|
|
110
|
+
featureName: { type: 'string', description: 'Feature name' }
|
|
107
111
|
},
|
|
108
|
-
required: ['
|
|
112
|
+
required: ['featureName']
|
|
109
113
|
}
|
|
110
114
|
},
|
|
111
115
|
handler: this.handleTasks.bind(this)
|
|
@@ -125,6 +129,38 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
125
129
|
}
|
|
126
130
|
},
|
|
127
131
|
handler: this.handleQualityCheck.bind(this)
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: 'sdd-steering',
|
|
135
|
+
tool: {
|
|
136
|
+
name: 'sdd-steering',
|
|
137
|
+
description: 'Create/update steering documents with project-specific analysis',
|
|
138
|
+
inputSchema: {
|
|
139
|
+
type: 'object',
|
|
140
|
+
properties: {
|
|
141
|
+
updateMode: { type: 'string', enum: ['create', 'update'], description: 'Whether to create new or update existing documents' }
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
handler: this.handleSteering.bind(this)
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: 'sdd-steering-custom',
|
|
149
|
+
tool: {
|
|
150
|
+
name: 'sdd-steering-custom',
|
|
151
|
+
description: 'Create custom steering documents for specialized contexts',
|
|
152
|
+
inputSchema: {
|
|
153
|
+
type: 'object',
|
|
154
|
+
properties: {
|
|
155
|
+
fileName: { type: 'string', description: 'Filename for the custom steering document' },
|
|
156
|
+
topic: { type: 'string', description: 'Topic/purpose of the custom steering document' },
|
|
157
|
+
inclusionMode: { type: 'string', enum: ['always', 'conditional', 'manual'], description: 'How this steering document should be included' },
|
|
158
|
+
filePattern: { type: 'string', description: 'File pattern for conditional inclusion' }
|
|
159
|
+
},
|
|
160
|
+
required: ['fileName', 'topic', 'inclusionMode']
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
handler: this.handleSteeringCustom.bind(this)
|
|
128
164
|
}
|
|
129
165
|
];
|
|
130
166
|
}
|
|
@@ -256,6 +292,348 @@ let SDDToolAdapter = class SDDToolAdapter {
|
|
|
256
292
|
});
|
|
257
293
|
return this.qualityService.formatQualityReport(report);
|
|
258
294
|
}
|
|
295
|
+
async handleSteering(args) {
|
|
296
|
+
const { updateMode = 'update' } = args;
|
|
297
|
+
const projectPath = process.cwd();
|
|
298
|
+
try {
|
|
299
|
+
// Analyze the project
|
|
300
|
+
const analysis = await this.codebaseAnalysisService.analyzeCodebase(projectPath);
|
|
301
|
+
// Generate steering documents based on project analysis
|
|
302
|
+
const productContent = await this.generateProductSteering(analysis);
|
|
303
|
+
const techContent = await this.generateTechSteering(analysis);
|
|
304
|
+
const structureContent = await this.generateStructureSteering(analysis);
|
|
305
|
+
// Create steering documents
|
|
306
|
+
await this.steeringService.createSteeringDocument(projectPath, {
|
|
307
|
+
name: 'product.md',
|
|
308
|
+
type: 'PRODUCT',
|
|
309
|
+
mode: 'ALWAYS',
|
|
310
|
+
content: productContent
|
|
311
|
+
});
|
|
312
|
+
await this.steeringService.createSteeringDocument(projectPath, {
|
|
313
|
+
name: 'tech.md',
|
|
314
|
+
type: 'TECHNICAL',
|
|
315
|
+
mode: 'ALWAYS',
|
|
316
|
+
content: techContent
|
|
317
|
+
});
|
|
318
|
+
await this.steeringService.createSteeringDocument(projectPath, {
|
|
319
|
+
name: 'structure.md',
|
|
320
|
+
type: 'STRUCTURE',
|
|
321
|
+
mode: 'ALWAYS',
|
|
322
|
+
content: structureContent
|
|
323
|
+
});
|
|
324
|
+
// Get project info from package.json
|
|
325
|
+
let packageJson = {};
|
|
326
|
+
try {
|
|
327
|
+
const fs = await import('fs');
|
|
328
|
+
const path = await import('path');
|
|
329
|
+
const packagePath = path.join(projectPath, 'package.json');
|
|
330
|
+
if (fs.existsSync(packagePath)) {
|
|
331
|
+
const packageContent = fs.readFileSync(packagePath, 'utf8');
|
|
332
|
+
packageJson = JSON.parse(packageContent);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
// Ignore errors
|
|
337
|
+
}
|
|
338
|
+
return `## Steering Documents Updated
|
|
339
|
+
|
|
340
|
+
**Project**: ${packageJson.name || 'Unknown'}
|
|
341
|
+
**Mode**: ${updateMode}
|
|
342
|
+
|
|
343
|
+
**Updated Files**:
|
|
344
|
+
- \`.kiro/steering/product.md\` - Product overview and business context
|
|
345
|
+
- \`.kiro/steering/tech.md\` - Technology stack and development environment
|
|
346
|
+
- \`.kiro/steering/structure.md\` - Project organization and architectural decisions
|
|
347
|
+
|
|
348
|
+
**Analysis**:
|
|
349
|
+
- Technology stack: ${Object.keys({ ...packageJson.dependencies, ...packageJson.devDependencies }).length} dependencies detected
|
|
350
|
+
- Project type: ${packageJson.type || 'Unknown'}
|
|
351
|
+
- Existing steering: Updated preserving customizations
|
|
352
|
+
|
|
353
|
+
These steering documents provide consistent project context for all AI interactions and spec-driven development workflows.`;
|
|
354
|
+
}
|
|
355
|
+
catch (error) {
|
|
356
|
+
this.logger.error('Failed to generate steering documents', error);
|
|
357
|
+
throw new Error(`Failed to generate steering documents: ${error.message}`);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
async handleSteeringCustom(args) {
|
|
361
|
+
const { fileName, topic, inclusionMode, filePattern } = args;
|
|
362
|
+
const projectPath = process.cwd();
|
|
363
|
+
if (typeof fileName !== 'string' || typeof topic !== 'string' || typeof inclusionMode !== 'string') {
|
|
364
|
+
throw new Error('Invalid arguments: fileName, topic, and inclusionMode must be strings');
|
|
365
|
+
}
|
|
366
|
+
const content = `# ${topic}
|
|
367
|
+
|
|
368
|
+
## Purpose
|
|
369
|
+
Define the purpose and scope of this steering document.
|
|
370
|
+
|
|
371
|
+
## Guidelines
|
|
372
|
+
- Guideline 1
|
|
373
|
+
- Guideline 2
|
|
374
|
+
|
|
375
|
+
## Usage
|
|
376
|
+
Describe when and how this steering document should be applied.
|
|
377
|
+
|
|
378
|
+
## Inclusion Mode
|
|
379
|
+
Mode: ${inclusionMode}${filePattern ? `
|
|
380
|
+
Pattern: ${filePattern}` : ''}
|
|
381
|
+
|
|
382
|
+
Generated on: ${new Date().toISOString()}
|
|
383
|
+
`;
|
|
384
|
+
await this.steeringService.createSteeringDocument(projectPath, {
|
|
385
|
+
name: fileName,
|
|
386
|
+
type: 'CUSTOM',
|
|
387
|
+
mode: inclusionMode.toUpperCase(),
|
|
388
|
+
patterns: filePattern ? [filePattern] : [],
|
|
389
|
+
content
|
|
390
|
+
});
|
|
391
|
+
return `Custom steering document "${fileName}" created successfully with ${inclusionMode} inclusion mode.`;
|
|
392
|
+
}
|
|
393
|
+
async generateProductSteering(analysis) {
|
|
394
|
+
// Try to read package.json for project info
|
|
395
|
+
let packageJson = {};
|
|
396
|
+
try {
|
|
397
|
+
const fs = await import('fs');
|
|
398
|
+
const path = await import('path');
|
|
399
|
+
const packagePath = path.join(process.cwd(), 'package.json');
|
|
400
|
+
if (fs.existsSync(packagePath)) {
|
|
401
|
+
const packageContent = fs.readFileSync(packagePath, 'utf8');
|
|
402
|
+
packageJson = JSON.parse(packageContent);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
// Ignore errors
|
|
407
|
+
}
|
|
408
|
+
return `# Product Overview
|
|
409
|
+
|
|
410
|
+
## Product Description
|
|
411
|
+
${packageJson.description || 'No description available'}
|
|
412
|
+
|
|
413
|
+
## Core Features
|
|
414
|
+
${this.extractFeatures(packageJson, analysis).map((feature) => `- ${feature}`).join('\n')}
|
|
415
|
+
|
|
416
|
+
## Target Use Case
|
|
417
|
+
${this.generateTargetUseCase(packageJson)}
|
|
418
|
+
|
|
419
|
+
## Key Value Proposition
|
|
420
|
+
${this.generateValueProposition(packageJson, analysis)}
|
|
421
|
+
|
|
422
|
+
## Target Users
|
|
423
|
+
${this.generateTargetUsers(packageJson)}`;
|
|
424
|
+
}
|
|
425
|
+
async generateTechSteering(analysis) {
|
|
426
|
+
// Try to read package.json for project info
|
|
427
|
+
let packageJson = {};
|
|
428
|
+
try {
|
|
429
|
+
const fs = await import('fs');
|
|
430
|
+
const path = await import('path');
|
|
431
|
+
const packagePath = path.join(process.cwd(), 'package.json');
|
|
432
|
+
if (fs.existsSync(packagePath)) {
|
|
433
|
+
const packageContent = fs.readFileSync(packagePath, 'utf8');
|
|
434
|
+
packageJson = JSON.parse(packageContent);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
// Ignore errors
|
|
439
|
+
}
|
|
440
|
+
return `# Technology Overview
|
|
441
|
+
|
|
442
|
+
## Technology Stack
|
|
443
|
+
${this.generateTechStack(packageJson, analysis)}
|
|
444
|
+
|
|
445
|
+
## Development Environment
|
|
446
|
+
- Node.js: ${packageJson.engines?.node || 'Unknown'}
|
|
447
|
+
- Package Manager: npm
|
|
448
|
+
|
|
449
|
+
## Key Dependencies
|
|
450
|
+
${this.generateDependencyList(packageJson)}
|
|
451
|
+
|
|
452
|
+
## Architecture Patterns
|
|
453
|
+
${this.generateArchitecturePatterns(analysis)}
|
|
454
|
+
|
|
455
|
+
## Quality Standards
|
|
456
|
+
${this.generateQualityStandards(packageJson)}`;
|
|
457
|
+
}
|
|
458
|
+
async generateStructureSteering(analysis) {
|
|
459
|
+
return `# Project Structure
|
|
460
|
+
|
|
461
|
+
## Directory Organization
|
|
462
|
+
${this.generateDirectoryStructure(analysis)}
|
|
463
|
+
|
|
464
|
+
## File Naming Conventions
|
|
465
|
+
${this.generateNamingConventions(analysis)}
|
|
466
|
+
|
|
467
|
+
## Module Organization
|
|
468
|
+
${this.generateModuleOrganization(analysis)}
|
|
469
|
+
|
|
470
|
+
## Development Workflow
|
|
471
|
+
${this.generateWorkflow(analysis)}`;
|
|
472
|
+
}
|
|
473
|
+
extractFeatures(packageJson, analysis) {
|
|
474
|
+
const features = [];
|
|
475
|
+
// Extract features from scripts
|
|
476
|
+
if (packageJson.scripts) {
|
|
477
|
+
if (packageJson.scripts.test)
|
|
478
|
+
features.push('Testing framework');
|
|
479
|
+
if (packageJson.scripts.build)
|
|
480
|
+
features.push('Build system');
|
|
481
|
+
if (packageJson.scripts.dev || packageJson.scripts.start)
|
|
482
|
+
features.push('Development server');
|
|
483
|
+
if (packageJson.scripts.lint)
|
|
484
|
+
features.push('Code linting');
|
|
485
|
+
if (packageJson.scripts.typecheck)
|
|
486
|
+
features.push('Type checking');
|
|
487
|
+
}
|
|
488
|
+
// Extract features from dependencies
|
|
489
|
+
const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
490
|
+
if (deps?.express || deps?.fastify || deps?.koa)
|
|
491
|
+
features.push('Web server');
|
|
492
|
+
if (deps?.react || deps?.vue || deps?.angular)
|
|
493
|
+
features.push('Frontend framework');
|
|
494
|
+
if (deps?.typescript)
|
|
495
|
+
features.push('TypeScript support');
|
|
496
|
+
if (deps?.jest || deps?.mocha || deps?.vitest)
|
|
497
|
+
features.push('Unit testing');
|
|
498
|
+
if (deps?.eslint)
|
|
499
|
+
features.push('Code quality enforcement');
|
|
500
|
+
return features.length > 0 ? features : ['Core functionality to be defined'];
|
|
501
|
+
}
|
|
502
|
+
generateTargetUseCase(packageJson) {
|
|
503
|
+
if (packageJson.keywords) {
|
|
504
|
+
return `This product is designed for ${packageJson.keywords.join(', ')} use cases.`;
|
|
505
|
+
}
|
|
506
|
+
return 'Target use cases to be defined based on project requirements.';
|
|
507
|
+
}
|
|
508
|
+
generateValueProposition(packageJson, analysis) {
|
|
509
|
+
const features = this.extractFeatures(packageJson, analysis);
|
|
510
|
+
return features.map(feature => `- **${feature}**: Enhanced development experience`).join('\n');
|
|
511
|
+
}
|
|
512
|
+
generateTargetUsers(packageJson) {
|
|
513
|
+
if (packageJson.keywords?.includes('cli')) {
|
|
514
|
+
return '- Command-line tool users\n- Developers and system administrators';
|
|
515
|
+
}
|
|
516
|
+
if (packageJson.keywords?.includes('api')) {
|
|
517
|
+
return '- API consumers\n- Third-party integrators';
|
|
518
|
+
}
|
|
519
|
+
return '- Primary user persona\n- Secondary user persona';
|
|
520
|
+
}
|
|
521
|
+
generateTechStack(packageJson, analysis) {
|
|
522
|
+
const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
|
|
523
|
+
const stack = [];
|
|
524
|
+
if (deps?.typescript)
|
|
525
|
+
stack.push('TypeScript');
|
|
526
|
+
if (deps?.node || packageJson.engines?.node)
|
|
527
|
+
stack.push('Node.js');
|
|
528
|
+
if (deps?.express)
|
|
529
|
+
stack.push('Express.js');
|
|
530
|
+
if (deps?.react)
|
|
531
|
+
stack.push('React');
|
|
532
|
+
if (deps?.vue)
|
|
533
|
+
stack.push('Vue.js');
|
|
534
|
+
return stack.length > 0 ? stack.join(', ') : 'Technology stack to be defined';
|
|
535
|
+
}
|
|
536
|
+
generateDependencyList(packageJson) {
|
|
537
|
+
const production = Object.keys(packageJson.dependencies || {});
|
|
538
|
+
const development = Object.keys(packageJson.devDependencies || {});
|
|
539
|
+
let list = '';
|
|
540
|
+
if (production.length > 0) {
|
|
541
|
+
list += '### Production Dependencies\n';
|
|
542
|
+
list += production.slice(0, 10).map((dep) => `- ${dep}`).join('\n');
|
|
543
|
+
}
|
|
544
|
+
if (development.length > 0) {
|
|
545
|
+
list += '\n### Development Dependencies\n';
|
|
546
|
+
list += development.slice(0, 10).map((dep) => `- ${dep}`).join('\n');
|
|
547
|
+
}
|
|
548
|
+
return list || 'Dependencies to be analyzed';
|
|
549
|
+
}
|
|
550
|
+
generateArchitecturePatterns(analysis) {
|
|
551
|
+
const patterns = [];
|
|
552
|
+
// Try to analyze directory structure from filesystem
|
|
553
|
+
try {
|
|
554
|
+
const fs = require('fs');
|
|
555
|
+
const projectPath = process.cwd();
|
|
556
|
+
const items = fs.readdirSync(projectPath, { withFileTypes: true });
|
|
557
|
+
const directories = items
|
|
558
|
+
.filter((item) => item.isDirectory())
|
|
559
|
+
.map((item) => item.name);
|
|
560
|
+
if (directories.includes('src'))
|
|
561
|
+
patterns.push('Source code organization');
|
|
562
|
+
if (directories.includes('test') || directories.includes('__tests__'))
|
|
563
|
+
patterns.push('Test-driven development');
|
|
564
|
+
if (directories.includes('dist') || directories.includes('build'))
|
|
565
|
+
patterns.push('Build artifact separation');
|
|
566
|
+
}
|
|
567
|
+
catch (error) {
|
|
568
|
+
// Ignore filesystem errors
|
|
569
|
+
}
|
|
570
|
+
return patterns.length > 0 ? patterns.map(p => `- ${p}`).join('\n') : '- Patterns to be defined';
|
|
571
|
+
}
|
|
572
|
+
generateQualityStandards(packageJson) {
|
|
573
|
+
const standards = [];
|
|
574
|
+
if (packageJson.scripts?.lint)
|
|
575
|
+
standards.push('Code linting with ESLint');
|
|
576
|
+
if (packageJson.scripts?.typecheck)
|
|
577
|
+
standards.push('Type checking with TypeScript');
|
|
578
|
+
if (packageJson.scripts?.test)
|
|
579
|
+
standards.push('Unit testing required');
|
|
580
|
+
return standards.length > 0 ? standards.map(s => `- ${s}`).join('\n') : '- Quality standards to be defined';
|
|
581
|
+
}
|
|
582
|
+
generateDirectoryStructure(analysis) {
|
|
583
|
+
// Try to get directory structure from filesystem
|
|
584
|
+
try {
|
|
585
|
+
const fs = require('fs');
|
|
586
|
+
const projectPath = process.cwd();
|
|
587
|
+
const items = fs.readdirSync(projectPath, { withFileTypes: true });
|
|
588
|
+
const directories = items
|
|
589
|
+
.filter((item) => item.isDirectory() && !item.name.startsWith('.') && item.name !== 'node_modules')
|
|
590
|
+
.map((item) => `- ${item.name}/`)
|
|
591
|
+
.join('\n');
|
|
592
|
+
return directories || 'Directory structure to be analyzed';
|
|
593
|
+
}
|
|
594
|
+
catch (error) {
|
|
595
|
+
return 'Directory structure to be analyzed';
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
generateNamingConventions(analysis) {
|
|
599
|
+
return `- Use kebab-case for file names
|
|
600
|
+
- Use PascalCase for class names
|
|
601
|
+
- Use camelCase for variable names
|
|
602
|
+
- Use UPPER_SNAKE_CASE for constants`;
|
|
603
|
+
}
|
|
604
|
+
generateModuleOrganization(analysis) {
|
|
605
|
+
return `- Group related functionality in modules
|
|
606
|
+
- Use barrel exports (index.ts files)
|
|
607
|
+
- Separate business logic from infrastructure
|
|
608
|
+
- Keep dependencies flowing inward`;
|
|
609
|
+
}
|
|
610
|
+
generateWorkflow(analysis) {
|
|
611
|
+
// Try to read package.json for scripts
|
|
612
|
+
let packageJson = {};
|
|
613
|
+
try {
|
|
614
|
+
const fs = require('fs');
|
|
615
|
+
const path = require('path');
|
|
616
|
+
const packagePath = path.join(process.cwd(), 'package.json');
|
|
617
|
+
if (fs.existsSync(packagePath)) {
|
|
618
|
+
const packageContent = fs.readFileSync(packagePath, 'utf8');
|
|
619
|
+
packageJson = JSON.parse(packageContent);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
catch (error) {
|
|
623
|
+
// Ignore errors
|
|
624
|
+
}
|
|
625
|
+
const scripts = packageJson.scripts || {};
|
|
626
|
+
let workflow = '## Development Commands\n';
|
|
627
|
+
if (scripts.dev)
|
|
628
|
+
workflow += `- \`npm run dev\` - Start development server\n`;
|
|
629
|
+
if (scripts.build)
|
|
630
|
+
workflow += `- \`npm run build\` - Build for production\n`;
|
|
631
|
+
if (scripts.test)
|
|
632
|
+
workflow += `- \`npm run test\` - Run tests\n`;
|
|
633
|
+
if (scripts.lint)
|
|
634
|
+
workflow += `- \`npm run lint\` - Check code quality\n`;
|
|
635
|
+
return workflow;
|
|
636
|
+
}
|
|
259
637
|
};
|
|
260
638
|
SDDToolAdapter = __decorate([
|
|
261
639
|
injectable(),
|
|
@@ -263,11 +641,15 @@ SDDToolAdapter = __decorate([
|
|
|
263
641
|
__param(1, inject(TYPES.WorkflowService)),
|
|
264
642
|
__param(2, inject(TYPES.TemplateService)),
|
|
265
643
|
__param(3, inject(TYPES.QualityService)),
|
|
266
|
-
__param(4, inject(TYPES.
|
|
644
|
+
__param(4, inject(TYPES.SteeringDocumentService)),
|
|
645
|
+
__param(5, inject(TYPES.CodebaseAnalysisService)),
|
|
646
|
+
__param(6, inject(TYPES.LoggerPort)),
|
|
267
647
|
__metadata("design:paramtypes", [ProjectService,
|
|
268
648
|
WorkflowService,
|
|
269
649
|
TemplateService,
|
|
270
|
-
QualityService,
|
|
650
|
+
QualityService,
|
|
651
|
+
SteeringDocumentService,
|
|
652
|
+
CodebaseAnalysisService, Object])
|
|
271
653
|
], SDDToolAdapter);
|
|
272
654
|
export { SDDToolAdapter };
|
|
273
655
|
//# sourceMappingURL=SDDToolAdapter.js.map
|
|
@@ -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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"}
|
|
@@ -44,4 +44,21 @@ export declare class TemplateService {
|
|
|
44
44
|
registerTemplatePartial(name: string, template: string): Promise<void>;
|
|
45
45
|
clearTemplateCache(): void;
|
|
46
46
|
private registerCustomHelpers;
|
|
47
|
+
private getPackageJsonAnalysis;
|
|
48
|
+
private analyzeProjectStructure;
|
|
49
|
+
private generateCoreObjective;
|
|
50
|
+
private generateAcceptanceCriteria;
|
|
51
|
+
private generateTechRequirements;
|
|
52
|
+
private generateQualityRequirements;
|
|
53
|
+
private generateArchitectureDescription;
|
|
54
|
+
private generateComponentDescriptions;
|
|
55
|
+
private generateDataModels;
|
|
56
|
+
private generateDetailedTechStack;
|
|
57
|
+
private generateDesignPatterns;
|
|
58
|
+
private generateDependencyAnalysis;
|
|
59
|
+
private generateAPIInterfaces;
|
|
60
|
+
private generateModuleInterfaces;
|
|
61
|
+
private generateEnvVarSpecs;
|
|
62
|
+
private generateBuildConfig;
|
|
63
|
+
private generateImplementationTasks;
|
|
47
64
|
}
|