specweave 0.28.34 → 0.28.42
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/CLAUDE.md +21 -0
- package/README.md +47 -33
- package/bin/specweave.js +2 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +6 -6
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
- package/dist/src/cli/commands/archive.d.ts.map +1 -1
- package/dist/src/cli/commands/archive.js +2 -1
- package/dist/src/cli/commands/archive.js.map +1 -1
- package/dist/src/cli/commands/delete-feature.d.ts.map +1 -1
- package/dist/src/cli/commands/delete-feature.js +5 -4
- package/dist/src/cli/commands/delete-feature.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +33 -0
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/helpers/ado-area-selector.d.ts +49 -0
- package/dist/src/cli/helpers/ado-area-selector.d.ts.map +1 -0
- package/dist/src/cli/helpers/ado-area-selector.js +161 -0
- package/dist/src/cli/helpers/ado-area-selector.js.map +1 -0
- package/dist/src/cli/helpers/init/config-detection.d.ts +5 -1
- package/dist/src/cli/helpers/init/config-detection.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/config-detection.js +50 -17
- package/dist/src/cli/helpers/init/config-detection.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +32 -3
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/repository-setup.d.ts +2 -0
- package/dist/src/cli/helpers/init/repository-setup.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/repository-setup.js +34 -2
- package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
- package/dist/src/cli/helpers/init/types.d.ts +3 -0
- package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts +10 -0
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.js +107 -22
- package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +30 -10
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.d.ts +1 -0
- package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
- package/dist/src/core/feature-deleter/github-service.js +2 -2
- package/dist/src/core/feature-deleter/github-service.js.map +1 -1
- package/dist/src/core/increment/discipline-checker.js +1 -1
- package/dist/src/core/increment/increment-archiver.d.ts +56 -6
- package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +228 -77
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.js +75 -37
- package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
- package/dist/src/core/living-docs/feature-id-manager.d.ts +6 -0
- package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
- package/dist/src/core/living-docs/feature-id-manager.js +54 -8
- package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js +28 -17
- package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.d.ts +2 -111
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +31 -389
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/living-docs/sync-helpers/file-utils.d.ts +30 -0
- package/dist/src/core/living-docs/sync-helpers/file-utils.d.ts.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/file-utils.js +107 -0
- package/dist/src/core/living-docs/sync-helpers/file-utils.js.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/generators.d.ts +19 -0
- package/dist/src/core/living-docs/sync-helpers/generators.d.ts.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/generators.js +146 -0
- package/dist/src/core/living-docs/sync-helpers/generators.js.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/index.d.ts +8 -0
- package/dist/src/core/living-docs/sync-helpers/index.d.ts.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/index.js +11 -0
- package/dist/src/core/living-docs/sync-helpers/index.js.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/parsers.d.ts +19 -0
- package/dist/src/core/living-docs/sync-helpers/parsers.d.ts.map +1 -0
- package/dist/src/core/living-docs/sync-helpers/parsers.js +94 -0
- package/dist/src/core/living-docs/sync-helpers/parsers.js.map +1 -0
- package/dist/src/core/living-docs/types.d.ts +45 -0
- package/dist/src/core/living-docs/types.d.ts.map +1 -1
- package/dist/src/core/types/config.d.ts +1 -1
- package/dist/src/core/types/config.js +2 -2
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/validation/three-file-validator.js +8 -8
- package/dist/src/core/validation/three-file-validator.js.map +1 -1
- package/dist/src/generators/spec/spec-parser.d.ts.map +1 -1
- package/dist/src/generators/spec/spec-parser.js +4 -3
- package/dist/src/generators/spec/spec-parser.js.map +1 -1
- package/dist/src/generators/spec/task-parser.d.ts.map +1 -1
- package/dist/src/generators/spec/task-parser.js +11 -10
- package/dist/src/generators/spec/task-parser.js.map +1 -1
- package/dist/src/importers/ado-importer.d.ts.map +1 -1
- package/dist/src/importers/ado-importer.js +2 -0
- package/dist/src/importers/ado-importer.js.map +1 -1
- package/dist/src/importers/duplicate-detector.d.ts +5 -2
- package/dist/src/importers/duplicate-detector.d.ts.map +1 -1
- package/dist/src/importers/duplicate-detector.js +8 -2
- package/dist/src/importers/duplicate-detector.js.map +1 -1
- package/dist/src/importers/github-importer.d.ts.map +1 -1
- package/dist/src/importers/github-importer.js +24 -1
- package/dist/src/importers/github-importer.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +27 -3
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.d.ts +5 -0
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +35 -6
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/utils/external-resource-validator.d.ts +5 -192
- package/dist/src/utils/external-resource-validator.d.ts.map +1 -1
- package/dist/src/utils/external-resource-validator.js +10 -1162
- package/dist/src/utils/external-resource-validator.js.map +1 -1
- package/dist/src/utils/feature-id-collision.d.ts +70 -0
- package/dist/src/utils/feature-id-collision.d.ts.map +1 -0
- package/dist/src/utils/feature-id-collision.js +142 -0
- package/dist/src/utils/feature-id-collision.js.map +1 -0
- package/dist/src/utils/validators/ado-validator.d.ts +86 -0
- package/dist/src/utils/validators/ado-validator.d.ts.map +1 -0
- package/dist/src/utils/validators/ado-validator.js +528 -0
- package/dist/src/utils/validators/ado-validator.js.map +1 -0
- package/dist/src/utils/validators/index.d.ts +11 -0
- package/dist/src/utils/validators/index.d.ts.map +1 -0
- package/dist/src/utils/validators/index.js +12 -0
- package/dist/src/utils/validators/index.js.map +1 -0
- package/dist/src/utils/validators/jira-validator.d.ts +70 -0
- package/dist/src/utils/validators/jira-validator.d.ts.map +1 -0
- package/dist/src/utils/validators/jira-validator.js +606 -0
- package/dist/src/utils/validators/jira-validator.js.map +1 -0
- package/dist/src/utils/validators/types.d.ts +82 -0
- package/dist/src/utils/validators/types.d.ts.map +1 -0
- package/dist/src/utils/validators/types.js +6 -0
- package/dist/src/utils/validators/types.js.map +1 -0
- package/package.json +3 -3
- package/plugins/specweave/.claude-plugin/plugin.json +7 -62
- package/plugins/specweave/commands/specweave-archive.md +3 -3
- package/plugins/specweave/commands/specweave-increment.md +18 -19
- package/plugins/specweave/hooks/hooks.json +3 -49
- package/plugins/specweave/hooks/hooks.json.bak +72 -0
- package/plugins/specweave/hooks/hooks.json.v1-backup +16 -0
- package/plugins/specweave/hooks/lib/update-status-line.sh +39 -15
- package/plugins/specweave/hooks/post-task-edit.sh +10 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh +27 -8
- package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +44 -0
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +24 -0
- package/plugins/specweave/hooks/v2/handlers/ac-validation-handler.sh +46 -0
- package/plugins/specweave/hooks/v2/handlers/github-sync-handler.sh +54 -0
- package/plugins/specweave/hooks/v2/handlers/living-docs-handler.sh +46 -0
- package/plugins/specweave/hooks/v2/handlers/status-update.sh +50 -0
- package/plugins/specweave/hooks/v2/hooks.json +16 -0
- package/plugins/specweave/hooks/v2/queue/dequeue.sh +30 -0
- package/plugins/specweave/hooks/v2/queue/enqueue.sh +41 -0
- package/plugins/specweave/hooks/v2/queue/processor.sh +72 -0
- package/plugins/specweave/lib/vendor/generators/spec/task-parser.js +11 -10
- package/plugins/specweave/lib/vendor/generators/spec/task-parser.js.map +1 -1
- package/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -1
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +20 -1262
- package/plugins/specweave-github/lib/user-story-issue-builder.js +4 -4
- package/plugins/specweave-github/lib/user-story-issue-builder.ts +6 -6
- package/plugins/specweave-jira/lib/enhanced-jira-sync.js +3 -3
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +30 -1254
- package/src/templates/tasks.md.template +2 -0
- package/plugins/specweave/hooks/docs-changed.sh.backup +0 -79
- package/plugins/specweave/hooks/human-input-required.sh.backup +0 -75
- package/plugins/specweave/hooks/post-first-increment.sh.backup +0 -61
- package/plugins/specweave/hooks/post-increment-change.sh.backup +0 -98
- package/plugins/specweave/hooks/post-increment-completion.sh.backup +0 -231
- package/plugins/specweave/hooks/post-increment-planning.sh.backup +0 -1048
- package/plugins/specweave/hooks/post-increment-status-change.sh.backup +0 -147
- package/plugins/specweave/hooks/post-spec-update.sh.backup +0 -158
- package/plugins/specweave/hooks/post-user-story-complete.sh.backup +0 -179
- package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +0 -83
- package/plugins/specweave/hooks/pre-implementation.sh.backup +0 -67
- package/plugins/specweave/hooks/pre-task-completion.sh.backup +0 -194
- package/plugins/specweave/hooks/pre-tool-use.sh.backup +0 -133
- package/plugins/specweave/hooks/user-prompt-submit.sh.backup +0 -386
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +0 -353
- package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +0 -172
- package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
- package/plugins/specweave-github/hooks/post-task-completion.sh.backup +0 -258
- package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +0 -172
- package/plugins/specweave-release/hooks/post-task-completion.sh.backup +0 -110
|
@@ -23,23 +23,9 @@ import { TaskProjectSpecificGenerator } from './task-project-specific-generator.
|
|
|
23
23
|
import { consoleLogger } from '../../utils/logger.js';
|
|
24
24
|
import { autoDetectProjectIdSync } from '../../utils/project-detection.js';
|
|
25
25
|
import { getGitHubAuthFromProject } from '../../utils/auth-helpers.js';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
await fs.access(filePath);
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
async function readJson(filePath) {
|
|
37
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
38
|
-
return JSON.parse(content);
|
|
39
|
-
}
|
|
40
|
-
async function ensureDir(dirPath) {
|
|
41
|
-
await fs.mkdir(dirPath, { recursive: true });
|
|
42
|
-
}
|
|
26
|
+
import { findNextAvailableInternalIdSync } from '../../utils/feature-id-collision.js';
|
|
27
|
+
// Import extracted helpers
|
|
28
|
+
import { calculateUSStatus, extractUserStories, extractAcceptanceCriteria, generateFeatureFile, generateUserStoryFile, pathExists, readJson, ensureDir, findExistingUserStoryFile, cleanupDuplicateFiles, cleanupTempFiles, } from './sync-helpers/index.js';
|
|
43
29
|
export class LivingDocsSync {
|
|
44
30
|
constructor(projectRoot, options = {}) {
|
|
45
31
|
this.projectRoot = projectRoot;
|
|
@@ -124,8 +110,11 @@ export class LivingDocsSync {
|
|
|
124
110
|
// Extract increment number for auto-generation
|
|
125
111
|
const match = incrementId.match(/^(\d{4})-/);
|
|
126
112
|
if (match) {
|
|
127
|
-
const
|
|
128
|
-
|
|
113
|
+
const baseNum = parseInt(match[1], 10);
|
|
114
|
+
// CRITICAL FIX (2025-11-26): Check for FS-XXXE collision before using FS-XXX
|
|
115
|
+
const specsPath = path.join(this.projectRoot, '.specweave/docs/internal/specs');
|
|
116
|
+
const safeNum = findNextAvailableInternalIdSync(baseNum, specsPath, this.projectId, { logger: this.logger });
|
|
117
|
+
featureId = `FS-${String(safeNum).padStart(3, '0')}`;
|
|
129
118
|
this.logger.warn(`⚠️ Invalid feature ID "${invalidValue}" replaced with auto-generated: ${featureId}`);
|
|
130
119
|
}
|
|
131
120
|
else {
|
|
@@ -150,7 +139,7 @@ export class LivingDocsSync {
|
|
|
150
139
|
const featureFile = path.join(projectPath, 'FEATURE.md');
|
|
151
140
|
if (!options.dryRun) {
|
|
152
141
|
await ensureDir(projectPath);
|
|
153
|
-
const featureContent =
|
|
142
|
+
const featureContent = generateFeatureFile(featureId, parsed, incrementId);
|
|
154
143
|
await fs.writeFile(featureFile, featureContent, 'utf-8');
|
|
155
144
|
result.filesCreated.push(featureFile);
|
|
156
145
|
}
|
|
@@ -160,7 +149,7 @@ export class LivingDocsSync {
|
|
|
160
149
|
// Create user story files
|
|
161
150
|
for (const story of parsed.userStories) {
|
|
162
151
|
// CRITICAL: Find existing file by US-ID first to prevent duplicates
|
|
163
|
-
const existingFile = await
|
|
152
|
+
const existingFile = await findExistingUserStoryFile(projectPath, story.id, this.logger);
|
|
164
153
|
let storyFile;
|
|
165
154
|
if (existingFile) {
|
|
166
155
|
// Reuse existing file (prevent duplicate creation)
|
|
@@ -173,7 +162,7 @@ export class LivingDocsSync {
|
|
|
173
162
|
storyFile = path.join(projectPath, `${story.id.toLowerCase()}-${storySlug}.md`);
|
|
174
163
|
}
|
|
175
164
|
if (!options.dryRun) {
|
|
176
|
-
const storyContent =
|
|
165
|
+
const storyContent = generateUserStoryFile(story, featureId, incrementId, parsed);
|
|
177
166
|
await fs.writeFile(storyFile, storyContent, 'utf-8');
|
|
178
167
|
result.filesCreated.push(storyFile);
|
|
179
168
|
}
|
|
@@ -183,8 +172,8 @@ export class LivingDocsSync {
|
|
|
183
172
|
}
|
|
184
173
|
// Step 5: Clean up duplicates and temp files BEFORE syncing tasks
|
|
185
174
|
if (!options.dryRun) {
|
|
186
|
-
await
|
|
187
|
-
await
|
|
175
|
+
await cleanupDuplicateFiles(projectPath, this.logger);
|
|
176
|
+
await cleanupTempFiles(projectPath, this.logger);
|
|
188
177
|
}
|
|
189
178
|
// Step 6: Sync tasks from increment to user stories
|
|
190
179
|
if (!options.dryRun) {
|
|
@@ -204,7 +193,7 @@ export class LivingDocsSync {
|
|
|
204
193
|
}
|
|
205
194
|
// Step 8: Final cleanup (remove any temp files created during sync)
|
|
206
195
|
if (!options.dryRun) {
|
|
207
|
-
await
|
|
196
|
+
await cleanupTempFiles(projectPath, this.logger);
|
|
208
197
|
}
|
|
209
198
|
// Step 9: Validate consistency (auto-repair if needed)
|
|
210
199
|
if (!options.dryRun) {
|
|
@@ -248,27 +237,30 @@ export class LivingDocsSync {
|
|
|
248
237
|
if (featureId) {
|
|
249
238
|
// Validate format matches increment type
|
|
250
239
|
const isDateFormat = /^FS-\d{2}-\d{2}-\d{2}/.test(featureId);
|
|
251
|
-
const isIncrementFormat = /^FS-\d{3}$/.test(featureId);
|
|
240
|
+
const isIncrementFormat = /^FS-\d{3,}$/.test(featureId);
|
|
252
241
|
if (isBrownfield && isDateFormat) {
|
|
253
242
|
// ✅ Brownfield with correct date format
|
|
254
243
|
return featureId;
|
|
255
244
|
}
|
|
256
245
|
else if (!isBrownfield && isIncrementFormat) {
|
|
257
|
-
// ✅ Greenfield with correct increment format
|
|
246
|
+
// ✅ Greenfield with correct increment format (3+ digits)
|
|
258
247
|
return featureId;
|
|
259
248
|
}
|
|
260
249
|
else {
|
|
261
250
|
// ⚠️ Format mismatch - log warning and auto-generate correct format
|
|
262
251
|
this.logger.warn(`⚠️ Feature ID format mismatch for ${incrementId}:`);
|
|
263
252
|
this.logger.warn(` Found: ${featureId}`);
|
|
264
|
-
this.logger.warn(` Expected: ${isBrownfield ? 'FS-YY-MM-DD-name (brownfield)' : 'FS-XXX (greenfield)'}`);
|
|
253
|
+
this.logger.warn(` Expected: ${isBrownfield ? 'FS-YY-MM-DD-name (brownfield)' : 'FS-XXX (greenfield, 3+ digits)'}`);
|
|
265
254
|
this.logger.warn(` Auto-generating correct format...`);
|
|
266
255
|
// Fall through to auto-generation
|
|
267
256
|
}
|
|
268
257
|
}
|
|
269
258
|
}
|
|
270
259
|
// Auto-generate for greenfield: FS-040, FS-041, etc.
|
|
271
|
-
|
|
260
|
+
// CRITICAL FIX (2025-11-26): Check for FS-XXXE collision before using FS-XXX
|
|
261
|
+
const specsPath = path.join(this.projectRoot, '.specweave/docs/internal/specs');
|
|
262
|
+
const safeNum = findNextAvailableInternalIdSync(num, specsPath, this.projectId, { logger: this.logger });
|
|
263
|
+
const autoGenId = `FS-${String(safeNum).padStart(3, '0')}`;
|
|
272
264
|
this.logger.log(` 📝 Generated feature ID: ${autoGenId}`);
|
|
273
265
|
return autoGenId;
|
|
274
266
|
}
|
|
@@ -361,9 +353,9 @@ export class LivingDocsSync {
|
|
|
361
353
|
overview = overviewMatch[1].trim().split('\n\n')[0];
|
|
362
354
|
}
|
|
363
355
|
// Extract user stories
|
|
364
|
-
const userStories =
|
|
356
|
+
const userStories = extractUserStories(bodyContent);
|
|
365
357
|
// Extract acceptance criteria
|
|
366
|
-
const acceptanceCriteria =
|
|
358
|
+
const acceptanceCriteria = extractAcceptanceCriteria(bodyContent);
|
|
367
359
|
// Calculate status for each user story based on AC completion
|
|
368
360
|
for (const story of userStories) {
|
|
369
361
|
// Use Set to deduplicate AC IDs (spec.md may have duplicates)
|
|
@@ -374,7 +366,7 @@ export class LivingDocsSync {
|
|
|
374
366
|
.filter(ac => ac.userStoryId === story.id && ac.completed)
|
|
375
367
|
.map(ac => ac.id));
|
|
376
368
|
const completedACs = completedACIds.size;
|
|
377
|
-
story.status =
|
|
369
|
+
story.status = calculateUSStatus(totalACs, completedACs);
|
|
378
370
|
}
|
|
379
371
|
return {
|
|
380
372
|
title,
|
|
@@ -387,258 +379,13 @@ export class LivingDocsSync {
|
|
|
387
379
|
frontmatter
|
|
388
380
|
};
|
|
389
381
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
*
|
|
398
|
-
* @param totalACs - Total number of ACs for this US
|
|
399
|
-
* @param completedACs - Number of completed ACs
|
|
400
|
-
* @returns User story status
|
|
401
|
-
*/
|
|
402
|
-
calculateUSStatus(totalACs, completedACs) {
|
|
403
|
-
if (totalACs === 0) {
|
|
404
|
-
return 'not_started'; // No ACs defined yet
|
|
405
|
-
}
|
|
406
|
-
const percentage = (completedACs / totalACs) * 100;
|
|
407
|
-
if (percentage === 0) {
|
|
408
|
-
return 'not_started';
|
|
409
|
-
}
|
|
410
|
-
else if (percentage === 100) {
|
|
411
|
-
return 'completed';
|
|
412
|
-
}
|
|
413
|
-
else {
|
|
414
|
-
return 'in_progress';
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Extract user stories from spec content
|
|
419
|
-
*/
|
|
420
|
-
extractUserStories(content) {
|
|
421
|
-
const stories = [];
|
|
422
|
-
const lines = content.split('\n');
|
|
423
|
-
for (let i = 0; i < lines.length; i++) {
|
|
424
|
-
const headingMatch = lines[i].match(/^###+\s+(US-\d+):\s+(.+)/);
|
|
425
|
-
if (!headingMatch)
|
|
426
|
-
continue;
|
|
427
|
-
const id = headingMatch[1];
|
|
428
|
-
const title = headingMatch[2];
|
|
429
|
-
// Collect all lines until next US heading or end
|
|
430
|
-
const storyLines = [];
|
|
431
|
-
for (let j = i + 1; j < lines.length; j++) {
|
|
432
|
-
if (lines[j].match(/^###+\s+US-\d+:/)) {
|
|
433
|
-
break; // Found next US heading
|
|
434
|
-
}
|
|
435
|
-
storyLines.push(lines[j]);
|
|
436
|
-
}
|
|
437
|
-
const storyContent = storyLines.join('\n');
|
|
438
|
-
// Extract description
|
|
439
|
-
let description = '';
|
|
440
|
-
const descMatch = storyContent.match(/\*\*As a\*\*\s*([^\n]+)\s*\n\*\*I want\*\*\s*([^\n]+)\s*\n\*\*So that\*\*\s*([^\n]+)/i);
|
|
441
|
-
if (descMatch) {
|
|
442
|
-
description = `**As a** ${descMatch[1].trim()}\n**I want** ${descMatch[2].trim()}\n**So that** ${descMatch[3].trim()}`;
|
|
443
|
-
}
|
|
444
|
-
// Extract acceptance criteria IDs
|
|
445
|
-
const acIds = [];
|
|
446
|
-
const acPattern = /AC-US\d+-\d+/g;
|
|
447
|
-
let acMatch;
|
|
448
|
-
while ((acMatch = acPattern.exec(storyContent)) !== null) {
|
|
449
|
-
if (!acIds.includes(acMatch[0])) {
|
|
450
|
-
acIds.push(acMatch[0]);
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
stories.push({
|
|
454
|
-
id,
|
|
455
|
-
title,
|
|
456
|
-
description,
|
|
457
|
-
acceptanceCriteria: acIds,
|
|
458
|
-
// Status will be calculated after we have all ACs extracted
|
|
459
|
-
status: undefined
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
|
-
return stories;
|
|
463
|
-
}
|
|
464
|
-
/**
|
|
465
|
-
* Extract acceptance criteria from spec content
|
|
466
|
-
*/
|
|
467
|
-
extractAcceptanceCriteria(content) {
|
|
468
|
-
const criteria = [];
|
|
469
|
-
// Pattern: - [x] AC-US1-01: Description
|
|
470
|
-
// Supports both plain text and bold formatting: AC-US1-01 or **AC-US1-01**
|
|
471
|
-
const acPattern = /^[-*]\s+\[([ x])\]\s+\*{0,2}(AC-US\d+-\d+)\*{0,2}:\s+(.+?)$/gm;
|
|
472
|
-
let match;
|
|
473
|
-
while ((match = acPattern.exec(content)) !== null) {
|
|
474
|
-
const completed = match[1] === 'x';
|
|
475
|
-
const id = match[2];
|
|
476
|
-
const description = match[3];
|
|
477
|
-
// Extract user story ID (AC-US1-01 → US-001)
|
|
478
|
-
const usMatch = id.match(/AC-US(\d+)-\d+/);
|
|
479
|
-
const userStoryId = usMatch ? `US-${usMatch[1].padStart(3, '0')}` : '';
|
|
480
|
-
criteria.push({
|
|
481
|
-
id,
|
|
482
|
-
userStoryId,
|
|
483
|
-
description,
|
|
484
|
-
completed
|
|
485
|
-
});
|
|
486
|
-
}
|
|
487
|
-
return criteria;
|
|
488
|
-
}
|
|
489
|
-
/**
|
|
490
|
-
* Generate FEATURE.md content
|
|
491
|
-
*/
|
|
492
|
-
generateFeatureFile(featureId, parsed, incrementId) {
|
|
493
|
-
const lines = [];
|
|
494
|
-
// Frontmatter
|
|
495
|
-
lines.push('---');
|
|
496
|
-
lines.push(`id: ${featureId}`);
|
|
497
|
-
lines.push(`title: "${parsed.title}"`);
|
|
498
|
-
lines.push(`type: feature`);
|
|
499
|
-
lines.push(`status: ${parsed.status}`);
|
|
500
|
-
lines.push(`priority: ${parsed.priority}`);
|
|
501
|
-
lines.push(`created: ${parsed.created}`);
|
|
502
|
-
lines.push(`lastUpdated: ${new Date().toISOString().split('T')[0]}`);
|
|
503
|
-
lines.push('---');
|
|
504
|
-
lines.push('');
|
|
505
|
-
// Title
|
|
506
|
-
lines.push(`# ${parsed.title}`);
|
|
507
|
-
lines.push('');
|
|
508
|
-
// Overview
|
|
509
|
-
if (parsed.overview) {
|
|
510
|
-
lines.push('## Overview');
|
|
511
|
-
lines.push('');
|
|
512
|
-
lines.push(parsed.overview);
|
|
513
|
-
lines.push('');
|
|
514
|
-
}
|
|
515
|
-
// Implementation History
|
|
516
|
-
lines.push('## Implementation History');
|
|
517
|
-
lines.push('');
|
|
518
|
-
lines.push('| Increment | Status | Completion Date |');
|
|
519
|
-
lines.push('|-----------|--------|----------------|');
|
|
520
|
-
const statusEmoji = parsed.status === 'completed' ? '✅' : '⏳';
|
|
521
|
-
lines.push(`| [${incrementId}](../../../../increments/${incrementId}/spec.md) | ${statusEmoji} ${parsed.status} | ${parsed.created} |`);
|
|
522
|
-
lines.push('');
|
|
523
|
-
// User Stories
|
|
524
|
-
if (parsed.userStories.length > 0) {
|
|
525
|
-
lines.push('## User Stories');
|
|
526
|
-
lines.push('');
|
|
527
|
-
for (const story of parsed.userStories) {
|
|
528
|
-
const storySlug = story.title.toLowerCase().replace(/[^a-z0-9]+/g, '-');
|
|
529
|
-
const storyFile = `../../specweave/${featureId}/${story.id.toLowerCase()}-${storySlug}.md`;
|
|
530
|
-
lines.push(`- [${story.id}: ${story.title}](${storyFile})`);
|
|
531
|
-
}
|
|
532
|
-
lines.push('');
|
|
533
|
-
}
|
|
534
|
-
return lines.join('\n');
|
|
535
|
-
}
|
|
536
|
-
/**
|
|
537
|
-
* Generate README.md content
|
|
538
|
-
*/
|
|
539
|
-
generateReadmeFile(featureId, parsed, incrementId) {
|
|
540
|
-
const lines = [];
|
|
541
|
-
lines.push('---');
|
|
542
|
-
lines.push(`id: ${featureId}-specweave`);
|
|
543
|
-
lines.push(`title: "${parsed.title} - SpecWeave Implementation"`);
|
|
544
|
-
lines.push(`feature: ${featureId}`);
|
|
545
|
-
lines.push(`project: specweave`);
|
|
546
|
-
lines.push(`type: feature-context`);
|
|
547
|
-
lines.push(`status: ${parsed.status}`);
|
|
548
|
-
lines.push('---');
|
|
549
|
-
lines.push('');
|
|
550
|
-
lines.push(`# ${parsed.title}`);
|
|
551
|
-
lines.push('');
|
|
552
|
-
lines.push(`**Feature**: [${featureId}](./FEATURE.md)`);
|
|
553
|
-
lines.push('');
|
|
554
|
-
if (parsed.overview) {
|
|
555
|
-
lines.push('## Overview');
|
|
556
|
-
lines.push('');
|
|
557
|
-
lines.push(parsed.overview);
|
|
558
|
-
lines.push('');
|
|
559
|
-
}
|
|
560
|
-
lines.push('## User Stories');
|
|
561
|
-
lines.push('');
|
|
562
|
-
lines.push('See user story files in this directory.');
|
|
563
|
-
lines.push('');
|
|
564
|
-
return lines.join('\n');
|
|
565
|
-
}
|
|
566
|
-
/**
|
|
567
|
-
* Generate user story file content
|
|
568
|
-
*/
|
|
569
|
-
generateUserStoryFile(story, featureId, incrementId, parsed) {
|
|
570
|
-
const lines = [];
|
|
571
|
-
// Frontmatter
|
|
572
|
-
lines.push('---');
|
|
573
|
-
lines.push(`id: ${story.id}`);
|
|
574
|
-
lines.push(`feature: ${featureId}`);
|
|
575
|
-
lines.push(`title: "${story.title}"`);
|
|
576
|
-
// Use US-level status (based on AC completion), not increment status
|
|
577
|
-
lines.push(`status: ${story.status || parsed.status}`);
|
|
578
|
-
lines.push(`priority: ${parsed.priority}`);
|
|
579
|
-
lines.push(`created: ${parsed.created}`);
|
|
580
|
-
// Format preservation metadata (T-034A)
|
|
581
|
-
if (story.format_preservation !== undefined) {
|
|
582
|
-
lines.push(`format_preservation: ${story.format_preservation}`);
|
|
583
|
-
}
|
|
584
|
-
if (story.external_title) {
|
|
585
|
-
lines.push(`external_title: "${story.external_title}"`);
|
|
586
|
-
}
|
|
587
|
-
if (story.external_source) {
|
|
588
|
-
lines.push(`external_source: ${story.external_source}`);
|
|
589
|
-
}
|
|
590
|
-
if (story.external_id) {
|
|
591
|
-
lines.push(`external_id: "${story.external_id}"`);
|
|
592
|
-
}
|
|
593
|
-
if (story.external_url) {
|
|
594
|
-
lines.push(`external_url: "${story.external_url}"`);
|
|
595
|
-
}
|
|
596
|
-
if (story.imported_at) {
|
|
597
|
-
lines.push(`imported_at: "${story.imported_at}"`);
|
|
598
|
-
}
|
|
599
|
-
if (story.origin) {
|
|
600
|
-
lines.push(`origin: ${story.origin}`);
|
|
601
|
-
}
|
|
602
|
-
lines.push('---');
|
|
603
|
-
lines.push('');
|
|
604
|
-
// Title
|
|
605
|
-
lines.push(`# ${story.id}: ${story.title}`);
|
|
606
|
-
lines.push('');
|
|
607
|
-
// Feature link
|
|
608
|
-
lines.push(`**Feature**: [${featureId}](./FEATURE.md)`);
|
|
609
|
-
lines.push('');
|
|
610
|
-
// Description
|
|
611
|
-
if (story.description) {
|
|
612
|
-
lines.push(story.description);
|
|
613
|
-
lines.push('');
|
|
614
|
-
}
|
|
615
|
-
lines.push('---');
|
|
616
|
-
lines.push('');
|
|
617
|
-
// Acceptance Criteria
|
|
618
|
-
lines.push('## Acceptance Criteria');
|
|
619
|
-
lines.push('');
|
|
620
|
-
const storyCriteria = parsed.acceptanceCriteria.filter(ac => ac.userStoryId === story.id);
|
|
621
|
-
if (storyCriteria.length > 0) {
|
|
622
|
-
for (const ac of storyCriteria) {
|
|
623
|
-
const checkbox = ac.completed ? '[x]' : '[ ]';
|
|
624
|
-
lines.push(`- ${checkbox} **${ac.id}**: ${ac.description}`);
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
else {
|
|
628
|
-
lines.push('No acceptance criteria defined.');
|
|
629
|
-
}
|
|
630
|
-
lines.push('');
|
|
631
|
-
lines.push('---');
|
|
632
|
-
lines.push('');
|
|
633
|
-
// Implementation
|
|
634
|
-
lines.push('## Implementation');
|
|
635
|
-
lines.push('');
|
|
636
|
-
lines.push(`**Increment**: [${incrementId}](../../../../increments/${incrementId}/spec.md)`);
|
|
637
|
-
lines.push('');
|
|
638
|
-
lines.push('**Tasks**: See increment tasks.md for implementation details.');
|
|
639
|
-
lines.push('');
|
|
640
|
-
return lines.join('\n');
|
|
641
|
-
}
|
|
382
|
+
// NOTE: calculateUSStatus, extractUserStories, extractAcceptanceCriteria,
|
|
383
|
+
// generateFeatureFile, generateReadmeFile, generateUserStoryFile
|
|
384
|
+
// have been moved to ./sync-helpers/ for maintainability
|
|
385
|
+
// extractUserStories, extractAcceptanceCriteria moved to ./sync-helpers/parsers.ts
|
|
386
|
+
// generateFeatureFile moved to ./sync-helpers/generators.ts
|
|
387
|
+
// generateReadmeFile moved to ./sync-helpers/generators.ts
|
|
388
|
+
// generateUserStoryFile moved to ./sync-helpers/generators.ts
|
|
642
389
|
/**
|
|
643
390
|
* Sync tasks from increment to user story files
|
|
644
391
|
*
|
|
@@ -976,111 +723,6 @@ export class LivingDocsSync {
|
|
|
976
723
|
this.logger.log(` ⚠️ ADO sync not yet implemented - skipping`);
|
|
977
724
|
// TODO: Implement ADO sync when specweave-ado plugin is available
|
|
978
725
|
}
|
|
979
|
-
/**
|
|
980
|
-
* Find existing user story file by US-ID
|
|
981
|
-
*
|
|
982
|
-
* Searches for any file matching pattern: us-{id}-*.md
|
|
983
|
-
* Example: US-001 matches us-001-status-line.md or us-001-status-line-priority-p1.md
|
|
984
|
-
*
|
|
985
|
-
* @param projectPath - Path to feature folder (e.g., .specweave/docs/internal/specs/specweave/FS-043)
|
|
986
|
-
* @param userStoryId - User story ID (e.g., "US-001")
|
|
987
|
-
* @returns Filename if found, null otherwise
|
|
988
|
-
*/
|
|
989
|
-
async findExistingUserStoryFile(projectPath, userStoryId) {
|
|
990
|
-
try {
|
|
991
|
-
const files = await fs.readdir(projectPath);
|
|
992
|
-
// Look for file matching: us-001-*.md (case insensitive)
|
|
993
|
-
const usIdLower = userStoryId.toLowerCase(); // us-001
|
|
994
|
-
const matchingFiles = files.filter(f => {
|
|
995
|
-
const match = f.match(/^(us-\d+)-/);
|
|
996
|
-
return match && match[1] === usIdLower;
|
|
997
|
-
});
|
|
998
|
-
if (matchingFiles.length === 0) {
|
|
999
|
-
return null; // No existing file found
|
|
1000
|
-
}
|
|
1001
|
-
if (matchingFiles.length === 1) {
|
|
1002
|
-
return matchingFiles[0]; // Exactly one file found ✅
|
|
1003
|
-
}
|
|
1004
|
-
// Multiple files found - return most recent
|
|
1005
|
-
this.logger.warn(` ⚠️ Found ${matchingFiles.length} files for ${userStoryId}, using most recent`);
|
|
1006
|
-
const fileTimes = await Promise.all(matchingFiles.map(async (f) => ({
|
|
1007
|
-
file: f,
|
|
1008
|
-
mtime: (await fs.stat(path.join(projectPath, f))).mtime.getTime()
|
|
1009
|
-
})));
|
|
1010
|
-
fileTimes.sort((a, b) => b.mtime - a.mtime); // Newest first
|
|
1011
|
-
return fileTimes[0].file;
|
|
1012
|
-
}
|
|
1013
|
-
catch (error) {
|
|
1014
|
-
// Directory doesn't exist yet (first sync)
|
|
1015
|
-
return null;
|
|
1016
|
-
}
|
|
1017
|
-
}
|
|
1018
|
-
/**
|
|
1019
|
-
* Clean up duplicate user story files
|
|
1020
|
-
*
|
|
1021
|
-
* Strategy:
|
|
1022
|
-
* 1. List all user story files in feature folder
|
|
1023
|
-
* 2. Group by user story ID (US-001, US-002, etc.)
|
|
1024
|
-
* 3. If multiple files found for same US:
|
|
1025
|
-
* - Keep the file WITH most recent modification time
|
|
1026
|
-
* - Delete older files
|
|
1027
|
-
* - Log warning
|
|
1028
|
-
*/
|
|
1029
|
-
async cleanupDuplicateFiles(featureId, projectPath) {
|
|
1030
|
-
const files = await fs.readdir(projectPath);
|
|
1031
|
-
// Group files by user story ID
|
|
1032
|
-
const filesByStory = new Map();
|
|
1033
|
-
for (const file of files) {
|
|
1034
|
-
// Match pattern: us-001-*, us-002-*, etc.
|
|
1035
|
-
const match = file.match(/^(us-\d+)-/);
|
|
1036
|
-
if (match) {
|
|
1037
|
-
const storyId = match[1].toUpperCase(); // US-001
|
|
1038
|
-
if (!filesByStory.has(storyId)) {
|
|
1039
|
-
filesByStory.set(storyId, []);
|
|
1040
|
-
}
|
|
1041
|
-
filesByStory.get(storyId).push(file);
|
|
1042
|
-
}
|
|
1043
|
-
}
|
|
1044
|
-
// Check for duplicates
|
|
1045
|
-
for (const [storyId, storyFiles] of filesByStory.entries()) {
|
|
1046
|
-
if (storyFiles.length > 1) {
|
|
1047
|
-
this.logger.warn(` ⚠️ Found ${storyFiles.length} duplicate files for ${storyId}`);
|
|
1048
|
-
// Find the most recent file
|
|
1049
|
-
const fileTimes = await Promise.all(storyFiles.map(async (f) => ({
|
|
1050
|
-
file: f,
|
|
1051
|
-
mtime: (await fs.stat(path.join(projectPath, f))).mtime.getTime()
|
|
1052
|
-
})));
|
|
1053
|
-
fileTimes.sort((a, b) => b.mtime - a.mtime); // Newest first
|
|
1054
|
-
const keepFile = fileTimes[0].file;
|
|
1055
|
-
const deleteFiles = fileTimes.slice(1).map(f => f.file);
|
|
1056
|
-
this.logger.warn(` → Keeping: ${keepFile} (most recent)`);
|
|
1057
|
-
// Delete older files
|
|
1058
|
-
for (const file of deleteFiles) {
|
|
1059
|
-
const filePath = path.join(projectPath, file);
|
|
1060
|
-
await fs.rm(filePath, { force: true, recursive: true });
|
|
1061
|
-
this.logger.warn(` ✅ Deleted: ${file}`);
|
|
1062
|
-
}
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
}
|
|
1066
|
-
/**
|
|
1067
|
-
* Clean up temporary files left behind by sync operations
|
|
1068
|
-
*
|
|
1069
|
-
* Removes:
|
|
1070
|
-
* - .tmp files (temporary update files)
|
|
1071
|
-
* - .backup files (backup files from updates)
|
|
1072
|
-
* - Any other temporary files
|
|
1073
|
-
*/
|
|
1074
|
-
async cleanupTempFiles(projectPath) {
|
|
1075
|
-
const files = await fs.readdir(projectPath);
|
|
1076
|
-
for (const file of files) {
|
|
1077
|
-
if (file.endsWith('.tmp') || file.endsWith('.backup')) {
|
|
1078
|
-
const filePath = path.join(projectPath, file);
|
|
1079
|
-
await fs.rm(filePath, { force: true });
|
|
1080
|
-
this.logger.log(` 🧹 Cleaned up: ${file}`);
|
|
1081
|
-
}
|
|
1082
|
-
}
|
|
1083
|
-
}
|
|
1084
726
|
/**
|
|
1085
727
|
* Validate feature folder consistency
|
|
1086
728
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"living-docs-sync.js","sourceRoot":"","sources":["../../../../src/core/living-docs/living-docs-sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"living-docs-sync.js","sourceRoot":"","sources":["../../../../src/core/living-docs/living-docs-sync.ts"],"names":[],"mappings":"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"}
|