sdd-mcp-server 1.3.11 → 1.4.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 +29 -4
- package/dist/index.js +41 -161
- package/dist/index.js.map +1 -1
- package/dist/utils/specGenerator.d.ts +3 -0
- package/dist/utils/specGenerator.js +259 -0
- package/dist/utils/specGenerator.js.map +1 -0
- package/mcp-server.js +44 -35
- package/package.json +2 -1
- package/specGenerator.js +263 -0
package/README.md
CHANGED
|
@@ -69,10 +69,11 @@ docker-compose up -d
|
|
|
69
69
|
### Claude Code
|
|
70
70
|
Add to your MCP settings using the command line:
|
|
71
71
|
```bash
|
|
72
|
-
#
|
|
73
|
-
|
|
72
|
+
# Option 1: Use npx (no installation required)
|
|
73
|
+
claude mcp add sdd -s local -- npx -y sdd-mcp-server@latest
|
|
74
74
|
|
|
75
|
-
#
|
|
75
|
+
# Option 2: Install globally first
|
|
76
|
+
npm install -g sdd-mcp-server@latest
|
|
76
77
|
claude mcp add sdd "sdd-mcp-server" -s local
|
|
77
78
|
|
|
78
79
|
# Verify connection
|
|
@@ -98,9 +99,20 @@ Manual configuration in `~/.claude.json`:
|
|
|
98
99
|
}
|
|
99
100
|
```
|
|
100
101
|
|
|
101
|
-
### Cursor IDE
|
|
102
|
+
### Cursor IDE
|
|
102
103
|
Add to your MCP configuration:
|
|
103
104
|
```json
|
|
105
|
+
{
|
|
106
|
+
"sdd-server": {
|
|
107
|
+
"command": "npx",
|
|
108
|
+
"args": ["-y", "sdd-mcp-server@latest"],
|
|
109
|
+
"env": {}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Or with global installation:
|
|
115
|
+
```json
|
|
104
116
|
{
|
|
105
117
|
"sdd-server": {
|
|
106
118
|
"command": "sdd-mcp-server",
|
|
@@ -113,6 +125,11 @@ Add to your MCP configuration:
|
|
|
113
125
|
### Other MCP Clients
|
|
114
126
|
Any MCP-compatible client can connect using stdio transport:
|
|
115
127
|
```bash
|
|
128
|
+
# Use npx (no installation required)
|
|
129
|
+
npx -y sdd-mcp-server@latest
|
|
130
|
+
|
|
131
|
+
# Or install globally first
|
|
132
|
+
npm install -g sdd-mcp-server@latest
|
|
116
133
|
sdd-mcp-server
|
|
117
134
|
```
|
|
118
135
|
|
|
@@ -318,6 +335,14 @@ claude mcp add sdd "$(pwd)/local-mcp-server.js" -s local
|
|
|
318
335
|
sudo npm install -g sdd-mcp-server
|
|
319
336
|
```
|
|
320
337
|
|
|
338
|
+
**Issue: "sdd-steering generates template content instead of analyzed content"**
|
|
339
|
+
|
|
340
|
+
If `sdd-steering` only generates template content, prompt your AI agent to analyze the actual codebase:
|
|
341
|
+
```
|
|
342
|
+
"Please update product.md / structure.md / tech.md based on codebase."
|
|
343
|
+
```
|
|
344
|
+
This will trigger the AI to analyze your actual project structure, dependencies, and technology stack to generate meaningful, project-specific content instead of generic templates.
|
|
345
|
+
|
|
321
346
|
## 📖 Advanced Documentation
|
|
322
347
|
|
|
323
348
|
For detailed documentation on:
|
package/dist/index.js
CHANGED
|
@@ -811,8 +811,17 @@ async function handleRequirementsSimplified(args) {
|
|
|
811
811
|
projectDescription = descMatch[1].trim();
|
|
812
812
|
}
|
|
813
813
|
}
|
|
814
|
-
// Generate
|
|
815
|
-
|
|
814
|
+
// Generate analysis-backed requirements; fallback to template on error
|
|
815
|
+
let requirementsContent;
|
|
816
|
+
try {
|
|
817
|
+
const { generateRequirementsDocument } = await import('./utils/specGenerator.js');
|
|
818
|
+
requirementsContent = await generateRequirementsDocument(process.cwd(), featureName);
|
|
819
|
+
}
|
|
820
|
+
catch (genErr) {
|
|
821
|
+
requirementsContent = `# Requirements Document
|
|
822
|
+
|
|
823
|
+
<!-- Warning: Analysis-backed generation failed. Using fallback template. -->
|
|
824
|
+
<!-- Error: ${genErr.message} -->
|
|
816
825
|
|
|
817
826
|
## Introduction
|
|
818
827
|
${generateIntroductionFromDescription(projectDescription)}
|
|
@@ -841,6 +850,7 @@ ${generateEARSRequirements(projectDescription).map((req, index) => `${index + 1}
|
|
|
841
850
|
2. WHERE help is needed THE system SHALL provide clear documentation and guidance
|
|
842
851
|
3. IF I make mistakes THEN the system SHALL provide helpful error messages and recovery options
|
|
843
852
|
`;
|
|
853
|
+
}
|
|
844
854
|
// Update spec.json with phase information
|
|
845
855
|
const specDir = path.join(process.cwd(), '.kiro', 'specs', featureName);
|
|
846
856
|
const updatedSpec = {
|
|
@@ -912,106 +922,31 @@ async function handleDesignSimplified(args) {
|
|
|
912
922
|
projectDescription = descMatch[1].trim();
|
|
913
923
|
}
|
|
914
924
|
}
|
|
915
|
-
// Generate design
|
|
916
|
-
|
|
925
|
+
// Generate analysis-backed design
|
|
926
|
+
let designContent;
|
|
927
|
+
try {
|
|
928
|
+
const { generateDesignDocument } = await import('./utils/specGenerator.js');
|
|
929
|
+
designContent = await generateDesignDocument(process.cwd(), featureName);
|
|
930
|
+
}
|
|
931
|
+
catch (genErr) {
|
|
932
|
+
// Fallback to previous template on error with warning header
|
|
933
|
+
designContent = `# Technical Design Document
|
|
934
|
+
|
|
935
|
+
<!-- Warning: Analysis-backed generation failed. Using fallback template. -->
|
|
936
|
+
<!-- Error: ${genErr.message} -->
|
|
917
937
|
|
|
918
938
|
## Overview
|
|
919
939
|
This design document specifies the technical implementation approach for ${spec.feature_name}.
|
|
920
940
|
|
|
921
941
|
**Purpose**: ${projectDescription}
|
|
922
942
|
|
|
923
|
-
**Goals**:
|
|
924
|
-
- Deliver a robust and maintainable solution
|
|
925
|
-
- Ensure scalability and performance
|
|
926
|
-
- Follow established architectural patterns
|
|
927
|
-
|
|
928
|
-
## Architecture
|
|
929
|
-
|
|
930
|
-
### High-Level Architecture
|
|
931
|
-
The system follows a modular architecture with clear separation of concerns:
|
|
932
|
-
|
|
933
|
-
- **Input Layer**: Handles user input validation and processing
|
|
934
|
-
- **Core Logic**: Implements business logic and rules
|
|
935
|
-
- **Output Layer**: Manages results presentation and formatting
|
|
936
|
-
- **Error Handling**: Provides comprehensive error management
|
|
937
|
-
|
|
938
943
|
### System Flow
|
|
939
|
-
1.
|
|
940
|
-
2.
|
|
941
|
-
3.
|
|
942
|
-
4.
|
|
943
|
-
|
|
944
|
-
## Components and Interfaces
|
|
945
|
-
|
|
946
|
-
### Core Components
|
|
947
|
-
|
|
948
|
-
#### Input Processor
|
|
949
|
-
- **Responsibility**: Input validation and sanitization
|
|
950
|
-
- **Interface**:
|
|
951
|
-
- \`validateInput(data: InputData): ValidationResult\`
|
|
952
|
-
- \`sanitizeInput(data: InputData): CleanData\`
|
|
953
|
-
|
|
954
|
-
#### Business Logic Engine
|
|
955
|
-
- **Responsibility**: Core functionality implementation
|
|
956
|
-
- **Interface**:
|
|
957
|
-
- \`processRequest(input: CleanData): ProcessingResult\`
|
|
958
|
-
- \`handleBusinessRules(data: CleanData): RuleResult\`
|
|
959
|
-
|
|
960
|
-
#### Output Formatter
|
|
961
|
-
- **Responsibility**: Result formatting and presentation
|
|
962
|
-
- **Interface**:
|
|
963
|
-
- \`formatResult(result: ProcessingResult): FormattedOutput\`
|
|
964
|
-
- \`handleError(error: Error): ErrorResponse\`
|
|
965
|
-
|
|
966
|
-
## Data Models
|
|
967
|
-
|
|
968
|
-
### Input Data Model
|
|
969
|
-
\`\`\`typescript
|
|
970
|
-
interface InputData {
|
|
971
|
-
// Input structure based on requirements
|
|
972
|
-
payload: unknown;
|
|
973
|
-
metadata: Record<string, unknown>;
|
|
974
|
-
}
|
|
975
|
-
\`\`\`
|
|
976
|
-
|
|
977
|
-
### Processing Result Model
|
|
978
|
-
\`\`\`typescript
|
|
979
|
-
interface ProcessingResult {
|
|
980
|
-
success: boolean;
|
|
981
|
-
data: unknown;
|
|
982
|
-
metadata: ResultMetadata;
|
|
983
|
-
}
|
|
984
|
-
\`\`\`
|
|
985
|
-
|
|
986
|
-
## Error Handling
|
|
987
|
-
|
|
988
|
-
### Error Categories
|
|
989
|
-
- **Validation Errors**: Invalid input format or content
|
|
990
|
-
- **Processing Errors**: Failures during business logic execution
|
|
991
|
-
- **System Errors**: Infrastructure or dependency failures
|
|
992
|
-
|
|
993
|
-
### Error Response Strategy
|
|
994
|
-
- Clear error messages for user-facing issues
|
|
995
|
-
- Detailed logging for system debugging
|
|
996
|
-
- Graceful degradation where possible
|
|
997
|
-
|
|
998
|
-
## Testing Strategy
|
|
999
|
-
|
|
1000
|
-
### Unit Tests
|
|
1001
|
-
- Input validation functions
|
|
1002
|
-
- Business logic components
|
|
1003
|
-
- Output formatting utilities
|
|
1004
|
-
|
|
1005
|
-
### Integration Tests
|
|
1006
|
-
- End-to-end workflow validation
|
|
1007
|
-
- Error handling scenarios
|
|
1008
|
-
- Performance under load
|
|
1009
|
-
|
|
1010
|
-
### Quality Assurance
|
|
1011
|
-
- Code coverage requirements
|
|
1012
|
-
- Performance benchmarks
|
|
1013
|
-
- Security validation
|
|
944
|
+
1. Input Processing
|
|
945
|
+
2. Business Logic
|
|
946
|
+
3. Result Generation
|
|
947
|
+
4. Error Management
|
|
1014
948
|
`;
|
|
949
|
+
}
|
|
1015
950
|
// Update spec.json with phase information
|
|
1016
951
|
const specDir = path.join(process.cwd(), '.kiro', 'specs', featureName);
|
|
1017
952
|
const updatedSpec = {
|
|
@@ -1076,80 +1011,25 @@ async function handleTasksSimplified(args) {
|
|
|
1076
1011
|
if (!spec.approvals?.design?.generated) {
|
|
1077
1012
|
throw new Error(`Design must be generated before tasks. Run sdd-design ${featureName} first.`);
|
|
1078
1013
|
}
|
|
1079
|
-
// Generate
|
|
1080
|
-
|
|
1014
|
+
// Generate analysis-backed tasks
|
|
1015
|
+
let tasksContent;
|
|
1016
|
+
try {
|
|
1017
|
+
const { generateTasksDocument } = await import('./utils/specGenerator.js');
|
|
1018
|
+
tasksContent = await generateTasksDocument(process.cwd(), featureName);
|
|
1019
|
+
}
|
|
1020
|
+
catch (genErr) {
|
|
1021
|
+
tasksContent = `# Implementation Plan
|
|
1081
1022
|
|
|
1082
|
-
-
|
|
1083
|
-
|
|
1084
|
-
- Create directory structure as per design
|
|
1085
|
-
- Set up build configuration and tooling
|
|
1086
|
-
- Initialize version control and documentation
|
|
1087
|
-
- _Requirements: All requirements need foundational setup_
|
|
1088
|
-
|
|
1089
|
-
- [ ] 1.2 Implement core infrastructure components
|
|
1090
|
-
- Set up error handling framework
|
|
1091
|
-
- Create logging and monitoring utilities
|
|
1092
|
-
- Establish configuration management
|
|
1093
|
-
- _Requirements: System quality requirements_
|
|
1023
|
+
<!-- Warning: Analysis-backed generation failed. Using fallback template. -->
|
|
1024
|
+
<!-- Error: ${genErr.message} -->
|
|
1094
1025
|
|
|
1026
|
+
- [ ] 1. Set up project foundation and infrastructure
|
|
1095
1027
|
- [ ] 2. Implement core functionality
|
|
1096
|
-
- [ ] 2.1 Develop input processing components
|
|
1097
|
-
- Build input validation system
|
|
1098
|
-
- Implement data sanitization logic
|
|
1099
|
-
- Create input parsing utilities
|
|
1100
|
-
- _Requirements: 1.1, 1.2_
|
|
1101
|
-
|
|
1102
|
-
- [ ] 2.2 Build business logic engine
|
|
1103
|
-
- Implement core processing algorithms
|
|
1104
|
-
- Create business rule validation
|
|
1105
|
-
- Develop result generation logic
|
|
1106
|
-
- _Requirements: 1.1, 1.3_
|
|
1107
|
-
|
|
1108
|
-
- [ ] 2.3 Create output formatting system
|
|
1109
|
-
- Build result formatting utilities
|
|
1110
|
-
- Implement response generation
|
|
1111
|
-
- Create output validation
|
|
1112
|
-
- _Requirements: 1.2, 1.3_
|
|
1113
|
-
|
|
1114
1028
|
- [ ] 3. Implement error handling and validation
|
|
1115
|
-
- [ ] 3.1 Build comprehensive error management
|
|
1116
|
-
- Create error classification system
|
|
1117
|
-
- Implement error recovery mechanisms
|
|
1118
|
-
- Build error logging and reporting
|
|
1119
|
-
- _Requirements: 2.1, 2.2_
|
|
1120
|
-
|
|
1121
|
-
- [ ] 3.2 Add input/output validation
|
|
1122
|
-
- Implement schema validation
|
|
1123
|
-
- Create boundary condition checks
|
|
1124
|
-
- Add security validation layers
|
|
1125
|
-
- _Requirements: 2.1, 3.1_
|
|
1126
|
-
|
|
1127
1029
|
- [ ] 4. Develop testing and quality assurance
|
|
1128
|
-
- [ ] 4.1 Create unit test suite
|
|
1129
|
-
- Test input processing components
|
|
1130
|
-
- Test business logic functions
|
|
1131
|
-
- Test output formatting utilities
|
|
1132
|
-
- _Requirements: All functional requirements_
|
|
1133
|
-
|
|
1134
|
-
- [ ] 4.2 Build integration test framework
|
|
1135
|
-
- Test end-to-end workflows
|
|
1136
|
-
- Test error handling scenarios
|
|
1137
|
-
- Test performance benchmarks
|
|
1138
|
-
- _Requirements: 2.1, 2.2, 2.3_
|
|
1139
|
-
|
|
1140
1030
|
- [ ] 5. Finalize implementation and deployment
|
|
1141
|
-
- [ ] 5.1 Integrate all components
|
|
1142
|
-
- Wire together all system components
|
|
1143
|
-
- Implement final error handling
|
|
1144
|
-
- Add performance optimizations
|
|
1145
|
-
- _Requirements: All requirements integration_
|
|
1146
|
-
|
|
1147
|
-
- [ ] 5.2 Prepare for deployment
|
|
1148
|
-
- Create deployment configuration
|
|
1149
|
-
- Add production monitoring
|
|
1150
|
-
- Finalize documentation
|
|
1151
|
-
- _Requirements: System quality and deployment_
|
|
1152
1031
|
`;
|
|
1032
|
+
}
|
|
1153
1033
|
// Update spec.json with phase information
|
|
1154
1034
|
const specDir = path.join(process.cwd(), '.kiro', 'specs', featureName);
|
|
1155
1035
|
const updatedSpec = {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function generateRequirementsDocument(projectPath: string, featureName: string): Promise<string>;
|
|
2
|
+
export declare function generateDesignDocument(projectPath: string, featureName: string): Promise<string>;
|
|
3
|
+
export declare function generateTasksDocument(projectPath: string, featureName: string): Promise<string>;
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { analyzeProject } from './documentGenerator.js';
|
|
2
|
+
export async function generateRequirementsDocument(projectPath, featureName) {
|
|
3
|
+
const analysis = await analyzeProject(projectPath);
|
|
4
|
+
const desc = analysis.description || 'Feature requirements specification';
|
|
5
|
+
const obj = generateCoreObjective(analysis);
|
|
6
|
+
const acceptance = generateAcceptanceCriteria(analysis)
|
|
7
|
+
.map((c, i) => `${i + 1}. ${c}`)
|
|
8
|
+
.join('\n');
|
|
9
|
+
return `# Requirements Document
|
|
10
|
+
|
|
11
|
+
## Introduction
|
|
12
|
+
${featureName} - Requirements derived from codebase analysis.
|
|
13
|
+
|
|
14
|
+
**Project**: ${analysis.name}
|
|
15
|
+
**Description**: ${desc}
|
|
16
|
+
|
|
17
|
+
Generated on: ${new Date().toISOString()}
|
|
18
|
+
|
|
19
|
+
## Functional Requirements
|
|
20
|
+
|
|
21
|
+
### FR-1: Core Functionality
|
|
22
|
+
**Objective:** ${obj}
|
|
23
|
+
|
|
24
|
+
#### Acceptance Criteria
|
|
25
|
+
${acceptance}
|
|
26
|
+
|
|
27
|
+
### FR-2: Technology Integration
|
|
28
|
+
**Objective:** Integrate with the detected technology stack
|
|
29
|
+
|
|
30
|
+
#### Acceptance Criteria
|
|
31
|
+
${generateTechRequirements(analysis).map((r, i) => `${i + 1}. ${r}`).join('\n')}
|
|
32
|
+
|
|
33
|
+
### FR-3: Quality Standards
|
|
34
|
+
**Objective:** Meet quality, testing, and review standards
|
|
35
|
+
|
|
36
|
+
#### Acceptance Criteria
|
|
37
|
+
${generateQualityRequirements(analysis).map((r, i) => `${i + 1}. ${r}`).join('\n')}
|
|
38
|
+
|
|
39
|
+
## Non-Functional Requirements
|
|
40
|
+
|
|
41
|
+
### NFR-1: Performance
|
|
42
|
+
- System SHALL respond within acceptable time limits
|
|
43
|
+
- Memory usage SHALL remain within reasonable bounds
|
|
44
|
+
|
|
45
|
+
### NFR-2: Reliability
|
|
46
|
+
- System SHALL handle errors gracefully
|
|
47
|
+
- System SHALL maintain data integrity
|
|
48
|
+
|
|
49
|
+
### NFR-3: Maintainability
|
|
50
|
+
- Code SHALL follow established conventions
|
|
51
|
+
- System SHALL be well-documented
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
export async function generateDesignDocument(projectPath, featureName) {
|
|
55
|
+
const analysis = await analyzeProject(projectPath);
|
|
56
|
+
const arch = describeArchitecture(analysis);
|
|
57
|
+
const components = generateComponentList(analysis).map(c => `- **${c.name}**: ${c.description}`).join('\n');
|
|
58
|
+
const dataModels = generateDataModels(analysis).map(m => `- **${m}**: Data structure definition`).join('\n');
|
|
59
|
+
const techStack = generateDetailedTechStack(analysis);
|
|
60
|
+
return `# Technical Design Document
|
|
61
|
+
|
|
62
|
+
## Project: ${featureName}
|
|
63
|
+
|
|
64
|
+
**Project Name:** ${analysis.name}
|
|
65
|
+
**Architecture:** ${analysis.architecture}
|
|
66
|
+
**Language:** ${analysis.language}
|
|
67
|
+
|
|
68
|
+
Generated on: ${new Date().toISOString()}
|
|
69
|
+
|
|
70
|
+
## Architecture Overview
|
|
71
|
+
|
|
72
|
+
### System Architecture
|
|
73
|
+
${arch}
|
|
74
|
+
|
|
75
|
+
### Key Components
|
|
76
|
+
${components}
|
|
77
|
+
|
|
78
|
+
### Data Models
|
|
79
|
+
${dataModels}
|
|
80
|
+
|
|
81
|
+
## Implementation Details
|
|
82
|
+
|
|
83
|
+
### Technology Stack
|
|
84
|
+
${techStack}
|
|
85
|
+
|
|
86
|
+
### Dependencies
|
|
87
|
+
${generateDependencySummary(analysis)}
|
|
88
|
+
|
|
89
|
+
## Interface Specifications
|
|
90
|
+
|
|
91
|
+
### Module Interfaces
|
|
92
|
+
${generateModuleInterfaces(analysis)}
|
|
93
|
+
|
|
94
|
+
## Configuration
|
|
95
|
+
|
|
96
|
+
### Environment Variables
|
|
97
|
+
${generateEnvVars(analysis)}
|
|
98
|
+
|
|
99
|
+
### Build Configuration
|
|
100
|
+
${generateBuildConfig(analysis)}
|
|
101
|
+
`;
|
|
102
|
+
}
|
|
103
|
+
export async function generateTasksDocument(projectPath, featureName) {
|
|
104
|
+
const analysis = await analyzeProject(projectPath);
|
|
105
|
+
const tasks = generateImplementationTasks(analysis);
|
|
106
|
+
const section = (title, list) => list.map((task, idx) => `- [ ] ${idx + 1}. ${task.title}
|
|
107
|
+
${task.subtasks.map(s => ` - ${s}`).join('\n')}
|
|
108
|
+
- _Requirements: ${task.requirements}_`).join('\n\n');
|
|
109
|
+
return `# Implementation Plan
|
|
110
|
+
|
|
111
|
+
## Project: ${featureName}
|
|
112
|
+
|
|
113
|
+
**Project Name:** ${analysis.name}
|
|
114
|
+
**Detected Stack:** ${[analysis.language, analysis.framework || '', analysis.buildTool || ''].filter(Boolean).join(' / ')}
|
|
115
|
+
|
|
116
|
+
Generated on: ${new Date().toISOString()}
|
|
117
|
+
|
|
118
|
+
## Development Phase Tasks
|
|
119
|
+
|
|
120
|
+
${section('Development', tasks.development)}
|
|
121
|
+
|
|
122
|
+
## Integration Phase Tasks
|
|
123
|
+
|
|
124
|
+
${section('Integration', tasks.integration)}
|
|
125
|
+
|
|
126
|
+
## Quality & Testing Tasks
|
|
127
|
+
|
|
128
|
+
${section('Quality', tasks.quality)}
|
|
129
|
+
`;
|
|
130
|
+
}
|
|
131
|
+
// Helpers derived from TemplateService, reduced and dependency-free
|
|
132
|
+
function generateCoreObjective(analysis) {
|
|
133
|
+
if (analysis.dependencies?.includes('@modelcontextprotocol/sdk'))
|
|
134
|
+
return 'Provide MCP tools for spec-driven development workflows';
|
|
135
|
+
if (analysis.framework === 'Express.js')
|
|
136
|
+
return 'Expose REST endpoints and middleware for business logic';
|
|
137
|
+
if (analysis.framework === 'React')
|
|
138
|
+
return 'Render interactive UI components with state management';
|
|
139
|
+
return 'Deliver feature-aligned functionality integrated with existing architecture';
|
|
140
|
+
}
|
|
141
|
+
function generateAcceptanceCriteria(analysis) {
|
|
142
|
+
const criteria = [
|
|
143
|
+
'WHEN invoked THEN it SHALL execute without runtime errors',
|
|
144
|
+
'IF input is invalid THEN it SHALL return meaningful errors',
|
|
145
|
+
'WHILE under typical load IT SHALL meet performance targets'
|
|
146
|
+
];
|
|
147
|
+
if (analysis.testFramework)
|
|
148
|
+
criteria.push('WHERE tests exist THEY SHALL pass with adequate coverage');
|
|
149
|
+
if (analysis.language === 'typescript')
|
|
150
|
+
criteria.push('WHEN type-checking THEN no TypeScript errors SHALL occur');
|
|
151
|
+
return criteria;
|
|
152
|
+
}
|
|
153
|
+
function generateTechRequirements(analysis) {
|
|
154
|
+
const out = ['Integrate with existing build and run scripts'];
|
|
155
|
+
if (analysis.dependencies?.includes('@modelcontextprotocol/sdk'))
|
|
156
|
+
out.push('Expose MCP-compliant tools over stdio');
|
|
157
|
+
if (analysis.buildTool)
|
|
158
|
+
out.push(`Provide build artifacts using ${analysis.buildTool}`);
|
|
159
|
+
return out;
|
|
160
|
+
}
|
|
161
|
+
function generateQualityRequirements(analysis) {
|
|
162
|
+
const out = ['Follow project coding conventions', 'Apply error handling and logging'];
|
|
163
|
+
if (analysis.testFramework)
|
|
164
|
+
out.push(`Include ${analysis.testFramework} tests for new code`);
|
|
165
|
+
return out;
|
|
166
|
+
}
|
|
167
|
+
function describeArchitecture(analysis) {
|
|
168
|
+
if (analysis.architecture === 'Domain-Driven Design (DDD)')
|
|
169
|
+
return 'Layered DDD: Domain, Application, Infrastructure, Presentation';
|
|
170
|
+
if (analysis.architecture.includes('API'))
|
|
171
|
+
return 'REST API with routing, middleware, services, and data access layers';
|
|
172
|
+
if (analysis.framework === 'MCP SDK')
|
|
173
|
+
return 'MCP server exposing development tools via stdio protocol';
|
|
174
|
+
return analysis.architecture || 'Modular architecture with clear separation of concerns';
|
|
175
|
+
}
|
|
176
|
+
function generateComponentList(analysis) {
|
|
177
|
+
const comps = [];
|
|
178
|
+
if (analysis.framework === 'MCP SDK') {
|
|
179
|
+
comps.push({ name: 'MCPServer', description: 'Handles stdio transport and tool registry' });
|
|
180
|
+
comps.push({ name: 'ToolHandlers', description: 'Implement SDD tools (init, requirements, design, tasks, etc.)' });
|
|
181
|
+
}
|
|
182
|
+
if (analysis.architecture.includes('API')) {
|
|
183
|
+
comps.push({ name: 'Controllers', description: 'HTTP route handlers' });
|
|
184
|
+
comps.push({ name: 'Services', description: 'Business logic orchestration' });
|
|
185
|
+
}
|
|
186
|
+
if (comps.length === 0)
|
|
187
|
+
comps.push({ name: 'CoreModule', description: 'Primary feature implementation module' });
|
|
188
|
+
return comps;
|
|
189
|
+
}
|
|
190
|
+
function generateDataModels(analysis) {
|
|
191
|
+
if (analysis.framework === 'MCP SDK')
|
|
192
|
+
return ['Tool', 'Request', 'Response'];
|
|
193
|
+
if (analysis.architecture.includes('API'))
|
|
194
|
+
return ['RequestDTO', 'ResponseDTO'];
|
|
195
|
+
return ['Entity', 'ValueObject'];
|
|
196
|
+
}
|
|
197
|
+
function generateDetailedTechStack(analysis) {
|
|
198
|
+
const parts = [];
|
|
199
|
+
parts.push(`- Runtime: ${analysis.language === 'typescript' ? 'Node.js (TypeScript)' : 'Node.js (JavaScript)'}`);
|
|
200
|
+
if (analysis.framework)
|
|
201
|
+
parts.push(`- Framework: ${analysis.framework}`);
|
|
202
|
+
if (analysis.buildTool)
|
|
203
|
+
parts.push(`- Build: ${analysis.buildTool}`);
|
|
204
|
+
if (analysis.testFramework)
|
|
205
|
+
parts.push(`- Testing: ${analysis.testFramework}`);
|
|
206
|
+
return parts.join('\n');
|
|
207
|
+
}
|
|
208
|
+
function generateDependencySummary(analysis) {
|
|
209
|
+
const deps = (analysis.dependencies || []).slice(0, 10).map((d) => `- ${d}`).join('\n');
|
|
210
|
+
const dev = (analysis.devDependencies || []).slice(0, 10).map((d) => `- ${d}`).join('\n');
|
|
211
|
+
return `#### Production\n${deps || '- (none)'}\n\n#### Development\n${dev || '- (none)'}`;
|
|
212
|
+
}
|
|
213
|
+
function generateModuleInterfaces(analysis) {
|
|
214
|
+
if (analysis.framework === 'MCP SDK') {
|
|
215
|
+
return `- registerTool(name: string, handler: (args) => Promise<unknown>)\n- connect(transport): Promise<void>`;
|
|
216
|
+
}
|
|
217
|
+
if (analysis.architecture.includes('API')) {
|
|
218
|
+
return `- handle(request): Response\n- service.process(input): Result`;
|
|
219
|
+
}
|
|
220
|
+
return `- execute(input): Output`;
|
|
221
|
+
}
|
|
222
|
+
function generateEnvVars(analysis) {
|
|
223
|
+
const envs = ['NODE_ENV', 'LOG_LEVEL'];
|
|
224
|
+
if (analysis.framework === 'MCP SDK')
|
|
225
|
+
envs.push('MCP_MODE');
|
|
226
|
+
return envs.map(e => `- ${e}`).join('\n');
|
|
227
|
+
}
|
|
228
|
+
function generateBuildConfig(analysis) {
|
|
229
|
+
if (analysis.buildTool)
|
|
230
|
+
return `Use ${analysis.buildTool} to emit production artifacts`;
|
|
231
|
+
return 'Use npm scripts (build/test/lint) defined in package.json';
|
|
232
|
+
}
|
|
233
|
+
function generateImplementationTasks(analysis) {
|
|
234
|
+
const dev = [
|
|
235
|
+
{ title: 'Set up project scaffolding', subtasks: ['Initialize directories', 'Configure scripts'], requirements: 'FR-1' },
|
|
236
|
+
{ title: 'Implement core feature logic', subtasks: ['Add modules', 'Wire integrations'], requirements: 'FR-1' }
|
|
237
|
+
];
|
|
238
|
+
const integ = [
|
|
239
|
+
{ title: 'Integrate with stack', subtasks: ['Validate build', 'Run dev server'], requirements: 'FR-2' }
|
|
240
|
+
];
|
|
241
|
+
const quality = [
|
|
242
|
+
{ title: 'Add tests and quality checks', subtasks: ['Unit tests', 'Lint/typecheck', 'Quality review'], requirements: 'FR-3' }
|
|
243
|
+
];
|
|
244
|
+
// Tailor tasks if MCP or API
|
|
245
|
+
if (analysis.framework === 'MCP SDK') {
|
|
246
|
+
dev.unshift({ title: 'Expose MCP tools', subtasks: ['Register tools', 'Handle stdio transport'], requirements: 'FR-2' });
|
|
247
|
+
}
|
|
248
|
+
if (analysis.architecture.includes('API')) {
|
|
249
|
+
dev.unshift({ title: 'Add HTTP endpoints', subtasks: ['Define routes', 'Implement handlers'], requirements: 'FR-1' });
|
|
250
|
+
}
|
|
251
|
+
if (analysis.testFramework) {
|
|
252
|
+
quality[0].subtasks.unshift(`Set up ${analysis.testFramework}`);
|
|
253
|
+
}
|
|
254
|
+
if (analysis.language === 'typescript') {
|
|
255
|
+
quality[0].subtasks.push('Ensure type safety (tsc)');
|
|
256
|
+
}
|
|
257
|
+
return { development: dev, integration: integ, quality };
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=specGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specGenerator.js","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":"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"}
|
package/mcp-server.js
CHANGED
|
@@ -11,6 +11,26 @@ import {
|
|
|
11
11
|
generateStructureDocument
|
|
12
12
|
} from './documentGenerator.js';
|
|
13
13
|
|
|
14
|
+
// Best-effort dynamic loader for spec generators (requirements/design/tasks)
|
|
15
|
+
async function loadSpecGenerator() {
|
|
16
|
+
const tried = [];
|
|
17
|
+
const attempts = [
|
|
18
|
+
'./specGenerator.js', // root-level JS (dev/runtime)
|
|
19
|
+
'./dist/utils/specGenerator.js', // compiled TS output
|
|
20
|
+
'./utils/specGenerator.js' // TS runtime (when transpiled on-the-fly)
|
|
21
|
+
];
|
|
22
|
+
for (const p of attempts) {
|
|
23
|
+
try {
|
|
24
|
+
// eslint-disable-next-line no-await-in-loop
|
|
25
|
+
const mod = await import(p);
|
|
26
|
+
return { mod, path: p };
|
|
27
|
+
} catch (e) {
|
|
28
|
+
tried.push(`${p}: ${(e && e.message) || e}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
throw new Error(`Unable to load specGenerator from known paths. Tried: \n- ${tried.join('\n- ')}`);
|
|
32
|
+
}
|
|
33
|
+
|
|
14
34
|
// Resolve version dynamically from package.json when possible
|
|
15
35
|
async function resolveVersion() {
|
|
16
36
|
try {
|
|
@@ -172,39 +192,14 @@ server.registerTool("sdd-requirements", {
|
|
|
172
192
|
const specContent = await fs.readFile(specPath, 'utf8');
|
|
173
193
|
const spec = JSON.parse(specContent);
|
|
174
194
|
|
|
175
|
-
// Generate requirements
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
Please analyze the current project structure and the feature description above to generate comprehensive requirements. Consider:
|
|
185
|
-
|
|
186
|
-
1. **Project Analysis**: Examine the codebase structure, existing files, dependencies, and architecture patterns
|
|
187
|
-
2. **Feature Scope**: Based on the feature description, identify what needs to be built
|
|
188
|
-
3. **User Stories**: Create user stories that capture the value this feature provides
|
|
189
|
-
4. **Technical Requirements**: Identify technical constraints and integration points
|
|
190
|
-
5. **Acceptance Criteria**: Use EARS format (WHEN/IF/WHILE/WHERE) for testable criteria
|
|
191
|
-
|
|
192
|
-
## Requirements Generation Guidelines
|
|
193
|
-
|
|
194
|
-
Generate requirements that:
|
|
195
|
-
- Are specific to this actual project (not generic)
|
|
196
|
-
- Consider the existing codebase architecture
|
|
197
|
-
- Include functional and non-functional requirements
|
|
198
|
-
- Use EARS format for acceptance criteria
|
|
199
|
-
- Are testable and measurable
|
|
200
|
-
- Consider integration with existing features
|
|
201
|
-
|
|
202
|
-
## Current Project Information
|
|
203
|
-
- Project Path: ${process.cwd()}
|
|
204
|
-
- Feature Name: ${spec.feature_name}
|
|
205
|
-
- Initialization Date: ${spec.created_at}
|
|
206
|
-
|
|
207
|
-
**Note**: This template will be replaced by AI-generated requirements specific to your project and feature description.`;
|
|
195
|
+
// Generate requirements using specGenerator with fallback
|
|
196
|
+
let requirementsContent;
|
|
197
|
+
try {
|
|
198
|
+
const { mod } = await loadSpecGenerator();
|
|
199
|
+
requirementsContent = await mod.generateRequirementsDocument(currentPath, featureName);
|
|
200
|
+
} catch (e) {
|
|
201
|
+
requirementsContent = `# Requirements Document\n\n<!-- Warning: Analysis-backed generation failed. Using fallback template. -->\n<!-- Error: ${e && e.message ? e.message : String(e)} -->\n\n## Project Context\n**Feature**: ${spec.feature_name}\n**Description**: ${spec.description || 'Feature to be implemented'}\n`;
|
|
202
|
+
}
|
|
208
203
|
|
|
209
204
|
await fs.writeFile(path.join(featurePath, 'requirements.md'), requirementsContent);
|
|
210
205
|
|
|
@@ -266,8 +261,14 @@ server.registerTool("sdd-design", {
|
|
|
266
261
|
requirementsContext = 'Requirements document not available';
|
|
267
262
|
}
|
|
268
263
|
|
|
269
|
-
// Generate design
|
|
270
|
-
|
|
264
|
+
// Generate design using specGenerator with fallback
|
|
265
|
+
let designContent;
|
|
266
|
+
try {
|
|
267
|
+
const { mod } = await loadSpecGenerator();
|
|
268
|
+
designContent = await mod.generateDesignDocument(currentPath, featureName);
|
|
269
|
+
} catch (e) {
|
|
270
|
+
designContent = `# Technical Design Document\n\n<!-- Warning: Analysis-backed generation failed. Using fallback template. -->\n<!-- Error: ${e && e.message ? e.message : String(e)} -->\n\n## Project Context\n**Feature**: ${spec.feature_name}\n**Phase**: ${spec.phase}`;
|
|
271
|
+
}
|
|
271
272
|
|
|
272
273
|
await fs.writeFile(path.join(featurePath, 'design.md'), designContent);
|
|
273
274
|
|
|
@@ -384,6 +385,14 @@ ${designContext.substring(0, 1000)}${designContext.length > 1000 ? '...\n[Design
|
|
|
384
385
|
- Created: ${spec.created_at}
|
|
385
386
|
|
|
386
387
|
**Note**: This template will be replaced by AI-generated implementation tasks specific to your project requirements and design.`;
|
|
388
|
+
|
|
389
|
+
// Try to replace template with analysis-backed tasks
|
|
390
|
+
try {
|
|
391
|
+
const { mod } = await loadSpecGenerator();
|
|
392
|
+
tasksContent = await mod.generateTasksDocument(currentPath, featureName);
|
|
393
|
+
} catch (e) {
|
|
394
|
+
// Keep template; include debug info in file header already
|
|
395
|
+
}
|
|
387
396
|
|
|
388
397
|
await fs.writeFile(path.join(featurePath, 'tasks.md'), tasksContent);
|
|
389
398
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sdd-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "MCP server for spec-driven development workflows across AI-agent CLIs and IDEs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"dist/**/*",
|
|
13
13
|
"mcp-server.js",
|
|
14
14
|
"documentGenerator.js",
|
|
15
|
+
"specGenerator.js",
|
|
15
16
|
"README.md",
|
|
16
17
|
"LICENSE",
|
|
17
18
|
"package.json"
|
package/specGenerator.js
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { analyzeProject } from './documentGenerator.js';
|
|
2
|
+
|
|
3
|
+
export async function generateRequirementsDocument(projectPath, featureName) {
|
|
4
|
+
const analysis = await analyzeProject(projectPath);
|
|
5
|
+
const desc = analysis.description || 'Feature requirements specification';
|
|
6
|
+
const obj = generateCoreObjective(analysis);
|
|
7
|
+
const acceptance = generateAcceptanceCriteria(analysis)
|
|
8
|
+
.map((c, i) => `${i + 1}. ${c}`)
|
|
9
|
+
.join('\n');
|
|
10
|
+
|
|
11
|
+
return `# Requirements Document
|
|
12
|
+
|
|
13
|
+
## Introduction
|
|
14
|
+
${featureName} - Requirements derived from codebase analysis.
|
|
15
|
+
|
|
16
|
+
**Project**: ${analysis.name}
|
|
17
|
+
**Description**: ${desc}
|
|
18
|
+
|
|
19
|
+
Generated on: ${new Date().toISOString()}
|
|
20
|
+
|
|
21
|
+
## Functional Requirements
|
|
22
|
+
|
|
23
|
+
### FR-1: Core Functionality
|
|
24
|
+
**Objective:** ${obj}
|
|
25
|
+
|
|
26
|
+
#### Acceptance Criteria
|
|
27
|
+
${acceptance}
|
|
28
|
+
|
|
29
|
+
### FR-2: Technology Integration
|
|
30
|
+
**Objective:** Integrate with the detected technology stack
|
|
31
|
+
|
|
32
|
+
#### Acceptance Criteria
|
|
33
|
+
${generateTechRequirements(analysis).map((r, i) => `${i + 1}. ${r}`).join('\n')}
|
|
34
|
+
|
|
35
|
+
### FR-3: Quality Standards
|
|
36
|
+
**Objective:** Meet quality, testing, and review standards
|
|
37
|
+
|
|
38
|
+
#### Acceptance Criteria
|
|
39
|
+
${generateQualityRequirements(analysis).map((r, i) => `${i + 1}. ${r}`).join('\n')}
|
|
40
|
+
|
|
41
|
+
## Non-Functional Requirements
|
|
42
|
+
|
|
43
|
+
### NFR-1: Performance
|
|
44
|
+
- System SHALL respond within acceptable time limits
|
|
45
|
+
- Memory usage SHALL remain within reasonable bounds
|
|
46
|
+
|
|
47
|
+
### NFR-2: Reliability
|
|
48
|
+
- System SHALL handle errors gracefully
|
|
49
|
+
- System SHALL maintain data integrity
|
|
50
|
+
|
|
51
|
+
### NFR-3: Maintainability
|
|
52
|
+
- Code SHALL follow established conventions
|
|
53
|
+
- System SHALL be well-documented
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export async function generateDesignDocument(projectPath, featureName) {
|
|
58
|
+
const analysis = await analyzeProject(projectPath);
|
|
59
|
+
const arch = describeArchitecture(analysis);
|
|
60
|
+
const components = generateComponentList(analysis).map(c => `- **${c.name}**: ${c.description}`).join('\n');
|
|
61
|
+
const dataModels = generateDataModels(analysis).map(m => `- **${m}**: Data structure definition`).join('\n');
|
|
62
|
+
const techStack = generateDetailedTechStack(analysis);
|
|
63
|
+
|
|
64
|
+
return `# Technical Design Document
|
|
65
|
+
|
|
66
|
+
## Project: ${featureName}
|
|
67
|
+
|
|
68
|
+
**Project Name:** ${analysis.name}
|
|
69
|
+
**Architecture:** ${analysis.architecture}
|
|
70
|
+
**Language:** ${analysis.language}
|
|
71
|
+
|
|
72
|
+
Generated on: ${new Date().toISOString()}
|
|
73
|
+
|
|
74
|
+
## Architecture Overview
|
|
75
|
+
|
|
76
|
+
### System Architecture
|
|
77
|
+
${arch}
|
|
78
|
+
|
|
79
|
+
### Key Components
|
|
80
|
+
${components}
|
|
81
|
+
|
|
82
|
+
### Data Models
|
|
83
|
+
${dataModels}
|
|
84
|
+
|
|
85
|
+
## Implementation Details
|
|
86
|
+
|
|
87
|
+
### Technology Stack
|
|
88
|
+
${techStack}
|
|
89
|
+
|
|
90
|
+
### Dependencies
|
|
91
|
+
${generateDependencySummary(analysis)}
|
|
92
|
+
|
|
93
|
+
## Interface Specifications
|
|
94
|
+
|
|
95
|
+
### Module Interfaces
|
|
96
|
+
${generateModuleInterfaces(analysis)}
|
|
97
|
+
|
|
98
|
+
## Configuration
|
|
99
|
+
|
|
100
|
+
### Environment Variables
|
|
101
|
+
${generateEnvVars(analysis)}
|
|
102
|
+
|
|
103
|
+
### Build Configuration
|
|
104
|
+
${generateBuildConfig(analysis)}
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export async function generateTasksDocument(projectPath, featureName) {
|
|
109
|
+
const analysis = await analyzeProject(projectPath);
|
|
110
|
+
const tasks = generateImplementationTasks(analysis);
|
|
111
|
+
|
|
112
|
+
const section = (title, list) =>
|
|
113
|
+
list.map((task, idx) => `- [ ] ${idx + 1}. ${task.title}
|
|
114
|
+
${task.subtasks.map(s => ` - ${s}`).join('\n')}
|
|
115
|
+
- _Requirements: ${task.requirements}_`).join('\n\n');
|
|
116
|
+
|
|
117
|
+
return `# Implementation Plan
|
|
118
|
+
|
|
119
|
+
## Project: ${featureName}
|
|
120
|
+
|
|
121
|
+
**Project Name:** ${analysis.name}
|
|
122
|
+
**Detected Stack:** ${[analysis.language, analysis.framework || '', analysis.buildTool || ''].filter(Boolean).join(' / ')}
|
|
123
|
+
|
|
124
|
+
Generated on: ${new Date().toISOString()}
|
|
125
|
+
|
|
126
|
+
## Development Phase Tasks
|
|
127
|
+
|
|
128
|
+
${section('Development', tasks.development)}
|
|
129
|
+
|
|
130
|
+
## Integration Phase Tasks
|
|
131
|
+
|
|
132
|
+
${section('Integration', tasks.integration)}
|
|
133
|
+
|
|
134
|
+
## Quality & Testing Tasks
|
|
135
|
+
|
|
136
|
+
${section('Quality', tasks.quality)}
|
|
137
|
+
`;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Helper functions
|
|
141
|
+
function generateCoreObjective(analysis) {
|
|
142
|
+
if (analysis.dependencies?.includes('@modelcontextprotocol/sdk')) return 'Provide MCP tools for spec-driven development workflows';
|
|
143
|
+
if (analysis.framework === 'Express.js') return 'Expose REST endpoints and middleware for business logic';
|
|
144
|
+
if (analysis.framework === 'React') return 'Render interactive UI components with state management';
|
|
145
|
+
return 'Deliver feature-aligned functionality integrated with existing architecture';
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function generateAcceptanceCriteria(analysis) {
|
|
149
|
+
const criteria = [
|
|
150
|
+
'WHEN invoked THEN it SHALL execute without runtime errors',
|
|
151
|
+
'IF input is invalid THEN it SHALL return meaningful errors',
|
|
152
|
+
'WHILE under typical load IT SHALL meet performance targets'
|
|
153
|
+
];
|
|
154
|
+
if (analysis.testFramework) criteria.push('WHERE tests exist THEY SHALL pass with adequate coverage');
|
|
155
|
+
if (analysis.language === 'typescript') criteria.push('WHEN type-checking THEN no TypeScript errors SHALL occur');
|
|
156
|
+
return criteria;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function generateTechRequirements(analysis) {
|
|
160
|
+
const out = ['Integrate with existing build and run scripts'];
|
|
161
|
+
if (analysis.dependencies?.includes('@modelcontextprotocol/sdk')) out.push('Expose MCP-compliant tools over stdio');
|
|
162
|
+
if (analysis.buildTool) out.push(`Provide build artifacts using ${analysis.buildTool}`);
|
|
163
|
+
return out;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function generateQualityRequirements(analysis) {
|
|
167
|
+
const out = ['Follow project coding conventions', 'Apply error handling and logging'];
|
|
168
|
+
if (analysis.testFramework) out.push(`Include ${analysis.testFramework} tests for new code`);
|
|
169
|
+
return out;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function describeArchitecture(analysis) {
|
|
173
|
+
if (analysis.architecture === 'Domain-Driven Design (DDD)') return 'Layered DDD: Domain, Application, Infrastructure, Presentation';
|
|
174
|
+
if (analysis.architecture.includes('API')) return 'REST API with routing, middleware, services, and data access layers';
|
|
175
|
+
if (analysis.framework === 'MCP SDK') return 'MCP server exposing development tools via stdio protocol';
|
|
176
|
+
return analysis.architecture || 'Modular architecture with clear separation of concerns';
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function generateComponentList(analysis) {
|
|
180
|
+
const comps = [];
|
|
181
|
+
if (analysis.framework === 'MCP SDK') {
|
|
182
|
+
comps.push({ name: 'MCPServer', description: 'Handles stdio transport and tool registry' });
|
|
183
|
+
comps.push({ name: 'ToolHandlers', description: 'Implement SDD tools (init, requirements, design, tasks, etc.)' });
|
|
184
|
+
}
|
|
185
|
+
if (analysis.architecture.includes('API')) {
|
|
186
|
+
comps.push({ name: 'Controllers', description: 'HTTP route handlers' });
|
|
187
|
+
comps.push({ name: 'Services', description: 'Business logic orchestration' });
|
|
188
|
+
}
|
|
189
|
+
if (comps.length === 0) comps.push({ name: 'CoreModule', description: 'Primary feature implementation module' });
|
|
190
|
+
return comps;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function generateDataModels(analysis) {
|
|
194
|
+
if (analysis.framework === 'MCP SDK') return ['Tool', 'Request', 'Response'];
|
|
195
|
+
if (analysis.architecture.includes('API')) return ['RequestDTO', 'ResponseDTO'];
|
|
196
|
+
return ['Entity', 'ValueObject'];
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function generateDetailedTechStack(analysis) {
|
|
200
|
+
const parts = [];
|
|
201
|
+
parts.push(`- Runtime: ${analysis.language === 'typescript' ? 'Node.js (TypeScript)' : 'Node.js (JavaScript)'}`);
|
|
202
|
+
if (analysis.framework) parts.push(`- Framework: ${analysis.framework}`);
|
|
203
|
+
if (analysis.buildTool) parts.push(`- Build: ${analysis.buildTool}`);
|
|
204
|
+
if (analysis.testFramework) parts.push(`- Testing: ${analysis.testFramework}`);
|
|
205
|
+
return parts.join('\n');
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function generateDependencySummary(analysis) {
|
|
209
|
+
const deps = (analysis.dependencies || []).slice(0, 10).map(d => `- ${d}`).join('\n');
|
|
210
|
+
const dev = (analysis.devDependencies || []).slice(0, 10).map(d => `- ${d}`).join('\n');
|
|
211
|
+
return `#### Production\n${deps || '- (none)'}\n\n#### Development\n${dev || '- (none)'}`;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function generateModuleInterfaces(analysis) {
|
|
215
|
+
if (analysis.framework === 'MCP SDK') {
|
|
216
|
+
return `- registerTool(name: string, handler: (args) => Promise<unknown>)\n- connect(transport): Promise<void>`;
|
|
217
|
+
}
|
|
218
|
+
if (analysis.architecture.includes('API')) {
|
|
219
|
+
return `- handle(request): Response\n- service.process(input): Result`;
|
|
220
|
+
}
|
|
221
|
+
return `- execute(input): Output`;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function generateEnvVars(analysis) {
|
|
225
|
+
const envs = ['NODE_ENV', 'LOG_LEVEL'];
|
|
226
|
+
if (analysis.framework === 'MCP SDK') envs.push('MCP_MODE');
|
|
227
|
+
return envs.map(e => `- ${e}`).join('\n');
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function generateBuildConfig(analysis) {
|
|
231
|
+
if (analysis.buildTool) return `Use ${analysis.buildTool} to emit production artifacts`;
|
|
232
|
+
return 'Use npm scripts (build/test/lint) defined in package.json';
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
function generateImplementationTasks(analysis) {
|
|
236
|
+
const dev = [
|
|
237
|
+
{ title: 'Set up project scaffolding', subtasks: ['Initialize directories', 'Configure scripts'], requirements: 'FR-1' },
|
|
238
|
+
{ title: 'Implement core feature logic', subtasks: ['Add modules', 'Wire integrations'], requirements: 'FR-1' }
|
|
239
|
+
];
|
|
240
|
+
const integ = [
|
|
241
|
+
{ title: 'Integrate with stack', subtasks: ['Validate build', 'Run dev server'], requirements: 'FR-2' }
|
|
242
|
+
];
|
|
243
|
+
const quality = [
|
|
244
|
+
{ title: 'Add tests and quality checks', subtasks: ['Unit tests', 'Lint/typecheck', 'Quality review'], requirements: 'FR-3' }
|
|
245
|
+
];
|
|
246
|
+
|
|
247
|
+
if (analysis.framework === 'MCP SDK') {
|
|
248
|
+
dev.unshift({ title: 'Expose MCP tools', subtasks: ['Register tools', 'Handle stdio transport'], requirements: 'FR-2' });
|
|
249
|
+
}
|
|
250
|
+
if (analysis.architecture.includes('API')) {
|
|
251
|
+
dev.unshift({ title: 'Add HTTP endpoints', subtasks: ['Define routes', 'Implement handlers'], requirements: 'FR-1' });
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if (analysis.testFramework) {
|
|
255
|
+
quality[0].subtasks.unshift(`Set up ${analysis.testFramework}`);
|
|
256
|
+
}
|
|
257
|
+
if (analysis.language === 'typescript') {
|
|
258
|
+
quality[0].subtasks.push('Ensure type safety (tsc)');
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return { development: dev, integration: integ, quality };
|
|
262
|
+
}
|
|
263
|
+
|