specpilot 1.0.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/LICENSE +21 -0
- package/README.md +430 -0
- package/cli.js +3 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +67 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +72 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +6 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +53 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/migrate.d.ts +8 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +55 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/specify.d.ts +8 -0
- package/dist/commands/specify.d.ts.map +1 -0
- package/dist/commands/specify.js +194 -0
- package/dist/commands/specify.js.map +1 -0
- package/dist/commands/validate.d.ts +7 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +54 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +28 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/projectMigrator.d.ts +25 -0
- package/dist/utils/projectMigrator.d.ts.map +1 -0
- package/dist/utils/projectMigrator.js +227 -0
- package/dist/utils/projectMigrator.js.map +1 -0
- package/dist/utils/specGenerator.d.ts +45 -0
- package/dist/utils/specGenerator.d.ts.map +1 -0
- package/dist/utils/specGenerator.js +1109 -0
- package/dist/utils/specGenerator.js.map +1 -0
- package/dist/utils/specValidator.d.ts +33 -0
- package/dist/utils/specValidator.d.ts.map +1 -0
- package/dist/utils/specValidator.js +425 -0
- package/dist/utils/specValidator.js.map +1 -0
- package/dist/utils/templateEngine.d.ts +22 -0
- package/dist/utils/templateEngine.d.ts.map +1 -0
- package/dist/utils/templateEngine.js +213 -0
- package/dist/utils/templateEngine.js.map +1 -0
- package/dist/utils/templateRegistry.d.ts +14 -0
- package/dist/utils/templateRegistry.d.ts.map +1 -0
- package/dist/utils/templateRegistry.js +101 -0
- package/dist/utils/templateRegistry.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specGenerator.js","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ValidationOptions {
|
|
2
|
+
fix: boolean;
|
|
3
|
+
verbose: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface ValidationResult {
|
|
6
|
+
isValid: boolean;
|
|
7
|
+
errors: string[];
|
|
8
|
+
warnings: string[];
|
|
9
|
+
fixable: string[];
|
|
10
|
+
filesChecked: number;
|
|
11
|
+
mandatesVerified: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class SpecValidator {
|
|
14
|
+
private requiredFiles;
|
|
15
|
+
validate(projectDir: string, options: ValidationOptions): Promise<ValidationResult>;
|
|
16
|
+
autoFix(projectDir: string, fixable: string[]): Promise<string[]>;
|
|
17
|
+
private findSpecsDir;
|
|
18
|
+
private validateProjectYaml;
|
|
19
|
+
private checkMandatesInRules;
|
|
20
|
+
private validateMandates;
|
|
21
|
+
private validateContentQuality;
|
|
22
|
+
private validateArchitectureContent;
|
|
23
|
+
private validateRequirementsContent;
|
|
24
|
+
private validateTasksContent;
|
|
25
|
+
private createMissingFile;
|
|
26
|
+
private addMandatesToProjectYaml;
|
|
27
|
+
private createInitialPromptsEntry;
|
|
28
|
+
private getDefaultProjectYaml;
|
|
29
|
+
private getDefaultPromptsContent;
|
|
30
|
+
private getDefaultArchitecture;
|
|
31
|
+
private getDefaultRequirements;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=specValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specValidator.d.ts","sourceRoot":"","sources":["../../src/utils/specValidator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAUnB;IAEI,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0CnF,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BvE,OAAO,CAAC,YAAY;YAaN,mBAAmB;IA+CjC,OAAO,CAAC,oBAAoB;YAQd,gBAAgB;YAiChB,sBAAsB;YAWtB,2BAA2B;YAwB3B,2BAA2B;YAuB3B,oBAAoB;YAuBpB,iBAAiB;YAwBjB,wBAAwB;YA8BxB,yBAAyB;IAMvC,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,wBAAwB;IAgDhC,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,sBAAsB;CAkB/B"}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SpecValidator = void 0;
|
|
37
|
+
const fs_1 = require("fs");
|
|
38
|
+
const path_1 = require("path");
|
|
39
|
+
const yaml = __importStar(require("js-yaml"));
|
|
40
|
+
class SpecValidator {
|
|
41
|
+
constructor() {
|
|
42
|
+
this.requiredFiles = [
|
|
43
|
+
'project.yaml',
|
|
44
|
+
'architecture.md',
|
|
45
|
+
'requirements.md',
|
|
46
|
+
'api.yaml',
|
|
47
|
+
'tests.md',
|
|
48
|
+
'tasks.md',
|
|
49
|
+
'context.md',
|
|
50
|
+
'prompts.md',
|
|
51
|
+
'docs.md'
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
async validate(projectDir, options) {
|
|
55
|
+
const result = {
|
|
56
|
+
isValid: true,
|
|
57
|
+
errors: [],
|
|
58
|
+
warnings: [],
|
|
59
|
+
fixable: [],
|
|
60
|
+
filesChecked: 0,
|
|
61
|
+
mandatesVerified: 0
|
|
62
|
+
};
|
|
63
|
+
// Find .specs directory
|
|
64
|
+
const specsDir = this.findSpecsDir(projectDir);
|
|
65
|
+
if (!specsDir) {
|
|
66
|
+
result.errors.push('No .specs directory found in project');
|
|
67
|
+
result.isValid = false;
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
// Validate required files exist
|
|
71
|
+
for (const file of this.requiredFiles) {
|
|
72
|
+
const filePath = (0, path_1.join)(specsDir, file);
|
|
73
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
74
|
+
result.errors.push(`Missing required file: ${file}`);
|
|
75
|
+
result.fixable.push(`create-${file}`);
|
|
76
|
+
result.isValid = false;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
result.filesChecked++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Validate project.yaml structure
|
|
83
|
+
await this.validateProjectYaml(specsDir, result);
|
|
84
|
+
// Validate mandate compliance
|
|
85
|
+
await this.validateMandates(specsDir, result);
|
|
86
|
+
// Validate file content quality
|
|
87
|
+
await this.validateContentQuality(specsDir, result, options.verbose);
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
async autoFix(projectDir, fixable) {
|
|
91
|
+
const fixed = [];
|
|
92
|
+
const specsDir = this.findSpecsDir(projectDir);
|
|
93
|
+
if (!specsDir) {
|
|
94
|
+
return fixed;
|
|
95
|
+
}
|
|
96
|
+
for (const fix of fixable) {
|
|
97
|
+
try {
|
|
98
|
+
if (fix.startsWith('create-')) {
|
|
99
|
+
const fileName = fix.replace('create-', '');
|
|
100
|
+
await this.createMissingFile(specsDir, fileName);
|
|
101
|
+
fixed.push(fix);
|
|
102
|
+
}
|
|
103
|
+
else if (fix === 'add-mandates') {
|
|
104
|
+
await this.addMandatesToProjectYaml(specsDir);
|
|
105
|
+
fixed.push(fix);
|
|
106
|
+
}
|
|
107
|
+
else if (fix === 'create-prompts-entry') {
|
|
108
|
+
await this.createInitialPromptsEntry(specsDir);
|
|
109
|
+
fixed.push(fix);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
// Skip fixes that fail
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return fixed;
|
|
118
|
+
}
|
|
119
|
+
findSpecsDir(projectDir) {
|
|
120
|
+
const candidates = ['.specs', '.project-spec', 'specs', 'specifications'];
|
|
121
|
+
for (const candidate of candidates) {
|
|
122
|
+
const fullPath = (0, path_1.join)(projectDir, candidate);
|
|
123
|
+
if ((0, fs_1.existsSync)(fullPath)) {
|
|
124
|
+
return fullPath;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
async validateProjectYaml(specsDir, result) {
|
|
130
|
+
const projectYamlPath = (0, path_1.join)(specsDir, 'project.yaml');
|
|
131
|
+
if (!(0, fs_1.existsSync)(projectYamlPath)) {
|
|
132
|
+
return; // Already handled by file existence check
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
const content = (0, fs_1.readFileSync)(projectYamlPath, 'utf-8');
|
|
136
|
+
const projectData = yaml.load(content);
|
|
137
|
+
if (!projectData) {
|
|
138
|
+
result.errors.push('project.yaml is empty or invalid');
|
|
139
|
+
result.isValid = false;
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
// Check required fields
|
|
143
|
+
const requiredFields = ['name', 'version', 'language'];
|
|
144
|
+
for (const field of requiredFields) {
|
|
145
|
+
if (!projectData[field]) {
|
|
146
|
+
result.errors.push(`project.yaml missing required field: ${field}`);
|
|
147
|
+
result.isValid = false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Check for rules section
|
|
151
|
+
if (!projectData.rules || !Array.isArray(projectData.rules)) {
|
|
152
|
+
result.warnings.push('project.yaml should have a rules section');
|
|
153
|
+
}
|
|
154
|
+
// Validate mandates exist
|
|
155
|
+
const hasMandates = this.checkMandatesInRules(projectData.rules || []);
|
|
156
|
+
if (!hasMandates.hasPromptMandate) {
|
|
157
|
+
result.errors.push('Missing MANDATE for prompt tracking in project.yaml rules');
|
|
158
|
+
result.fixable.push('add-mandates');
|
|
159
|
+
result.isValid = false;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
result.mandatesVerified++;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
result.errors.push(`Failed to parse project.yaml: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
167
|
+
result.isValid = false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
checkMandatesInRules(rules) {
|
|
171
|
+
const promptMandatePattern = /MANDATE.*prompt.*tracking|MANDATE.*prompts\.md/i;
|
|
172
|
+
return {
|
|
173
|
+
hasPromptMandate: rules.some(rule => promptMandatePattern.test(rule))
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
async validateMandates(specsDir, result) {
|
|
177
|
+
// Check if prompts.md exists and has content
|
|
178
|
+
const promptsPath = (0, path_1.join)(specsDir, 'prompts.md');
|
|
179
|
+
if (!(0, fs_1.existsSync)(promptsPath)) {
|
|
180
|
+
result.errors.push('prompts.md is missing - this violates prompt tracking mandate');
|
|
181
|
+
result.isValid = false;
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
try {
|
|
185
|
+
const content = (0, fs_1.readFileSync)(promptsPath, 'utf-8');
|
|
186
|
+
if (content.trim().length < 100) {
|
|
187
|
+
result.warnings.push('prompts.md appears to have minimal content - ensure AI interactions are being tracked');
|
|
188
|
+
}
|
|
189
|
+
// Check for recent updates (basic heuristic)
|
|
190
|
+
if (!content.includes(new Date().getFullYear().toString())) {
|
|
191
|
+
result.warnings.push('prompts.md may not be up to date - ensure recent AI interactions are documented');
|
|
192
|
+
}
|
|
193
|
+
// Check for mandate compliance indicators
|
|
194
|
+
if (content.includes('MANDATE') && content.includes('AI interaction')) {
|
|
195
|
+
result.mandatesVerified++;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
result.errors.push(`Failed to read prompts.md: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
200
|
+
result.isValid = false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async validateContentQuality(specsDir, result, verbose) {
|
|
204
|
+
// Check architecture.md has key sections
|
|
205
|
+
await this.validateArchitectureContent(specsDir, result, verbose);
|
|
206
|
+
// Check requirements.md completeness
|
|
207
|
+
await this.validateRequirementsContent(specsDir, result, verbose);
|
|
208
|
+
// Check tasks.md is being maintained
|
|
209
|
+
await this.validateTasksContent(specsDir, result, verbose);
|
|
210
|
+
}
|
|
211
|
+
async validateArchitectureContent(specsDir, result, verbose) {
|
|
212
|
+
const archPath = (0, path_1.join)(specsDir, 'architecture.md');
|
|
213
|
+
if (!(0, fs_1.existsSync)(archPath))
|
|
214
|
+
return;
|
|
215
|
+
try {
|
|
216
|
+
const content = (0, fs_1.readFileSync)(archPath, 'utf-8');
|
|
217
|
+
const requiredSections = ['Overview', 'Architecture', 'Components', 'Decisions'];
|
|
218
|
+
const missingSections = requiredSections.filter(section => !content.toLowerCase().includes(section.toLowerCase()));
|
|
219
|
+
if (missingSections.length > 0) {
|
|
220
|
+
result.warnings.push(`architecture.md missing sections: ${missingSections.join(', ')}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (verbose) {
|
|
225
|
+
result.warnings.push(`Could not validate architecture.md content: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
async validateRequirementsContent(specsDir, result, verbose) {
|
|
230
|
+
const reqPath = (0, path_1.join)(specsDir, 'requirements.md');
|
|
231
|
+
if (!(0, fs_1.existsSync)(reqPath))
|
|
232
|
+
return;
|
|
233
|
+
try {
|
|
234
|
+
const content = (0, fs_1.readFileSync)(reqPath, 'utf-8');
|
|
235
|
+
if (content.includes('[Placeholder') || content.includes('[To be')) {
|
|
236
|
+
result.warnings.push('requirements.md contains placeholder text that should be updated');
|
|
237
|
+
}
|
|
238
|
+
if (!content.includes('User Stories') && !content.includes('Functional Requirements')) {
|
|
239
|
+
result.warnings.push('requirements.md should include user stories or functional requirements');
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
if (verbose) {
|
|
244
|
+
result.warnings.push(`Could not validate requirements.md content: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
async validateTasksContent(specsDir, result, verbose) {
|
|
249
|
+
const tasksPath = (0, path_1.join)(specsDir, 'tasks.md');
|
|
250
|
+
if (!(0, fs_1.existsSync)(tasksPath))
|
|
251
|
+
return;
|
|
252
|
+
try {
|
|
253
|
+
const content = (0, fs_1.readFileSync)(tasksPath, 'utf-8');
|
|
254
|
+
// Check if tasks are being tracked
|
|
255
|
+
const hasInProgress = content.includes('In Progress') || content.includes('in-progress');
|
|
256
|
+
const hasCompleted = content.includes('Completed') || content.includes('completed');
|
|
257
|
+
if (!hasInProgress && !hasCompleted) {
|
|
258
|
+
result.warnings.push('tasks.md should track task status (In Progress, Completed, etc.)');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
if (verbose) {
|
|
263
|
+
result.warnings.push(`Could not validate tasks.md content: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
async createMissingFile(specsDir, fileName) {
|
|
268
|
+
const filePath = (0, path_1.join)(specsDir, fileName);
|
|
269
|
+
let content = '';
|
|
270
|
+
switch (fileName) {
|
|
271
|
+
case 'project.yaml':
|
|
272
|
+
content = this.getDefaultProjectYaml();
|
|
273
|
+
break;
|
|
274
|
+
case 'prompts.md':
|
|
275
|
+
content = this.getDefaultPromptsContent();
|
|
276
|
+
break;
|
|
277
|
+
case 'architecture.md':
|
|
278
|
+
content = this.getDefaultArchitecture();
|
|
279
|
+
break;
|
|
280
|
+
case 'requirements.md':
|
|
281
|
+
content = this.getDefaultRequirements();
|
|
282
|
+
break;
|
|
283
|
+
default:
|
|
284
|
+
content = `# ${fileName.replace('.md', '').replace('.yaml', '')} File\n\n[Content to be added]`;
|
|
285
|
+
}
|
|
286
|
+
(0, fs_1.writeFileSync)(filePath, content);
|
|
287
|
+
}
|
|
288
|
+
async addMandatesToProjectYaml(specsDir) {
|
|
289
|
+
const projectYamlPath = (0, path_1.join)(specsDir, 'project.yaml');
|
|
290
|
+
try {
|
|
291
|
+
const content = (0, fs_1.readFileSync)(projectYamlPath, 'utf-8');
|
|
292
|
+
const projectData = yaml.load(content);
|
|
293
|
+
if (!projectData.rules) {
|
|
294
|
+
projectData.rules = [];
|
|
295
|
+
}
|
|
296
|
+
const mandates = [
|
|
297
|
+
"MANDATE: Update .specs/prompts.md with ALL AI interactions and development prompts by default",
|
|
298
|
+
"MANDATE: Maintain chronological prompt history for complete development traceability"
|
|
299
|
+
];
|
|
300
|
+
for (const mandate of mandates) {
|
|
301
|
+
if (!projectData.rules.some((rule) => rule.includes('MANDATE') && rule.includes('prompt'))) {
|
|
302
|
+
projectData.rules.push(mandate);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
const updatedContent = yaml.dump(projectData, { lineWidth: 120, indent: 2 });
|
|
306
|
+
(0, fs_1.writeFileSync)(projectYamlPath, updatedContent);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
throw new Error(`Failed to update project.yaml: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
async createInitialPromptsEntry(specsDir) {
|
|
313
|
+
const promptsPath = (0, path_1.join)(specsDir, 'prompts.md');
|
|
314
|
+
const content = this.getDefaultPromptsContent();
|
|
315
|
+
(0, fs_1.writeFileSync)(promptsPath, content);
|
|
316
|
+
}
|
|
317
|
+
getDefaultProjectYaml() {
|
|
318
|
+
return `# Project Configuration
|
|
319
|
+
name: "project-name"
|
|
320
|
+
version: "1.0.0"
|
|
321
|
+
language: "typescript"
|
|
322
|
+
description: "Project description"
|
|
323
|
+
|
|
324
|
+
# Project Rules and AI Context
|
|
325
|
+
rules:
|
|
326
|
+
- "Follow best practices and coding standards"
|
|
327
|
+
- "Write comprehensive tests for all functionality"
|
|
328
|
+
- "Document all public APIs and interfaces"
|
|
329
|
+
- "MANDATE: Update .specs/prompts.md with ALL AI interactions and development prompts by default"
|
|
330
|
+
- "MANDATE: Maintain chronological prompt history for complete development traceability"
|
|
331
|
+
|
|
332
|
+
# Development Context for AI
|
|
333
|
+
ai_context:
|
|
334
|
+
- "This is a specification-driven development project"
|
|
335
|
+
- "All changes should be documented in appropriate .specs/ files"
|
|
336
|
+
- "Follow the established architecture patterns"
|
|
337
|
+
`;
|
|
338
|
+
}
|
|
339
|
+
getDefaultPromptsContent() {
|
|
340
|
+
return `# Development Prompts Log
|
|
341
|
+
|
|
342
|
+
## Overview
|
|
343
|
+
This file contains ALL AI interactions and development prompts, maintaining complete traceability of the development process.
|
|
344
|
+
|
|
345
|
+
**🚨 MANDATE**: This file MUST be updated with every AI interaction during development.
|
|
346
|
+
|
|
347
|
+
## Latest Entries
|
|
348
|
+
|
|
349
|
+
### Project Setup (${new Date().toISOString().split('T')[0]})
|
|
350
|
+
|
|
351
|
+
#### Prompt: Initial Validation
|
|
352
|
+
**Prompt**: "Validate project specifications and fix any issues"
|
|
353
|
+
|
|
354
|
+
**Context**: Running specpilot validation to ensure project compliance
|
|
355
|
+
|
|
356
|
+
**Response**:
|
|
357
|
+
- Validated project structure
|
|
358
|
+
- Ensured mandate compliance
|
|
359
|
+
- Created missing specification files
|
|
360
|
+
|
|
361
|
+
**Files Modified**: Various .specs/ files
|
|
362
|
+
|
|
363
|
+
**Next Actions**: Continue development following specifications
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Template for Future Entries
|
|
368
|
+
|
|
369
|
+
### Session [N]: [Session Title]
|
|
370
|
+
**Date**: [YYYY-MM-DD]
|
|
371
|
+
**Duration**: [Time spent]
|
|
372
|
+
**Participants**: [Team members, AI interactions]
|
|
373
|
+
|
|
374
|
+
#### Prompts and Responses
|
|
375
|
+
|
|
376
|
+
1. **[Prompt Category]**
|
|
377
|
+
- **Prompt**: "[Exact prompt text]"
|
|
378
|
+
- **Context**: "[Why this prompt was needed]"
|
|
379
|
+
- **Response**: "[Summary of AI response]"
|
|
380
|
+
- **Code Generated**: "[File paths and brief description]"
|
|
381
|
+
- **Outcome**: "[Result of the interaction]"
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
*Last updated: ${new Date().toISOString().split('T')[0]}*`;
|
|
385
|
+
}
|
|
386
|
+
getDefaultArchitecture() {
|
|
387
|
+
return `# Project Architecture
|
|
388
|
+
|
|
389
|
+
## Overview
|
|
390
|
+
This document outlines the architecture and design decisions for this project.
|
|
391
|
+
|
|
392
|
+
## Architecture Patterns
|
|
393
|
+
- **Architecture Style**: [To be defined]
|
|
394
|
+
- **Data Flow**: [To be defined]
|
|
395
|
+
|
|
396
|
+
## Core Components
|
|
397
|
+
[To be documented]
|
|
398
|
+
|
|
399
|
+
## Design Decisions
|
|
400
|
+
[To be added as decisions are made]
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
*Last updated: ${new Date().toISOString().split('T')[0]}*`;
|
|
404
|
+
}
|
|
405
|
+
getDefaultRequirements() {
|
|
406
|
+
return `# Project Requirements
|
|
407
|
+
|
|
408
|
+
## Project Overview
|
|
409
|
+
[Project description to be added]
|
|
410
|
+
|
|
411
|
+
## Functional Requirements
|
|
412
|
+
[To be defined]
|
|
413
|
+
|
|
414
|
+
## Non-Functional Requirements
|
|
415
|
+
[To be defined]
|
|
416
|
+
|
|
417
|
+
## User Stories
|
|
418
|
+
[To be added]
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
*Last updated: ${new Date().toISOString().split('T')[0]}*`;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
exports.SpecValidator = SpecValidator;
|
|
425
|
+
//# sourceMappingURL=specValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specValidator.js","sourceRoot":"","sources":["../../src/utils/specValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface TemplateContext {
|
|
2
|
+
projectName: string;
|
|
3
|
+
language: string;
|
|
4
|
+
framework?: string;
|
|
5
|
+
author?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export declare class TemplateEngine {
|
|
10
|
+
private templates;
|
|
11
|
+
constructor();
|
|
12
|
+
private registerHelpers;
|
|
13
|
+
loadTemplate(templatePath: string, name: string): void;
|
|
14
|
+
render(templateName: string, context: TemplateContext): string;
|
|
15
|
+
renderFromString(templateString: string, context: TemplateContext): string;
|
|
16
|
+
getBuiltinTemplate(language: string, framework: string | undefined, fileName: string): string;
|
|
17
|
+
private getBuiltinTemplateContent;
|
|
18
|
+
private getProjectYamlTemplate;
|
|
19
|
+
private getDependencySection;
|
|
20
|
+
private getArchitectureTemplate;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=templateEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateEngine.d.ts","sourceRoot":"","sources":["../../src/utils/templateEngine.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAMvE,OAAO,CAAC,eAAe;IAWvB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAUtD,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM;IAS9D,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM;IAK1E,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK7F,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,uBAAuB;CA8ChC"}
|