specweave 0.22.2 → 0.22.3
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 +162 -13
- package/dist/src/cli/commands/repair-status-desync.d.ts +69 -0
- package/dist/src/cli/commands/repair-status-desync.d.ts.map +1 -0
- package/dist/src/cli/commands/repair-status-desync.js +221 -0
- package/dist/src/cli/commands/repair-status-desync.js.map +1 -0
- package/dist/src/cli/commands/validate-status-sync.d.ts +52 -0
- package/dist/src/cli/commands/validate-status-sync.d.ts.map +1 -0
- package/dist/src/cli/commands/validate-status-sync.js +176 -0
- package/dist/src/cli/commands/validate-status-sync.js.map +1 -0
- package/dist/src/cli/update-status-line.d.ts +16 -0
- package/dist/src/cli/update-status-line.d.ts.map +1 -0
- package/dist/src/cli/update-status-line.js +44 -0
- package/dist/src/cli/update-status-line.js.map +1 -0
- package/dist/src/core/increment/completion-validator.d.ts +56 -0
- package/dist/src/core/increment/completion-validator.d.ts.map +1 -0
- package/dist/src/core/increment/completion-validator.js +102 -0
- package/dist/src/core/increment/completion-validator.js.map +1 -0
- package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +10 -0
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/spec-frontmatter-updater.d.ts +78 -0
- package/dist/src/core/increment/spec-frontmatter-updater.d.ts.map +1 -0
- package/dist/src/core/increment/spec-frontmatter-updater.js +152 -0
- package/dist/src/core/increment/spec-frontmatter-updater.js.map +1 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +2 -1
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/status-line/status-line-manager.d.ts +3 -2
- package/dist/src/core/status-line/status-line-manager.d.ts.map +1 -1
- package/dist/src/core/status-line/status-line-manager.js +40 -17
- package/dist/src/core/status-line/status-line-manager.js.map +1 -1
- package/dist/src/core/status-line/status-line-updater.d.ts +67 -0
- package/dist/src/core/status-line/status-line-updater.d.ts.map +1 -0
- package/dist/src/core/status-line/status-line-updater.js +203 -0
- package/dist/src/core/status-line/status-line-updater.js.map +1 -0
- package/dist/src/core/status-line/types.d.ts +19 -5
- package/dist/src/core/status-line/types.d.ts.map +1 -1
- package/dist/src/core/status-line/types.js +3 -3
- package/dist/src/core/status-line/types.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/commands/specweave-done.md +60 -4
- package/plugins/specweave/commands/specweave-reopen.md +29 -2
- package/plugins/specweave/commands/specweave-sync-docs.md +71 -4
- package/plugins/specweave/commands/specweave-update-status.md +151 -0
- package/plugins/specweave/hooks/lib/update-status-line.sh +34 -6
- package/plugins/specweave/hooks/user-prompt-submit.sh +21 -0
- package/plugins/specweave/hooks/validate-increment-completion.sh +113 -0
- package/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -1
- package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +21 -0
- package/plugins/specweave-jira/lib/enhanced-jira-sync.js +3 -3
- package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +0 -3222
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { MetadataManager } from '../../core/increment/metadata-manager.js';
|
|
3
|
+
import { SpecFrontmatterUpdater } from '../../core/increment/spec-frontmatter-updater.js';
|
|
4
|
+
import { IncrementStatus } from '../../core/types/increment-metadata.js';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
/**
|
|
7
|
+
* Severity levels for status desyncs
|
|
8
|
+
*/
|
|
9
|
+
export var DesyncSeverity;
|
|
10
|
+
(function (DesyncSeverity) {
|
|
11
|
+
DesyncSeverity["CRITICAL"] = "CRITICAL";
|
|
12
|
+
DesyncSeverity["HIGH"] = "HIGH";
|
|
13
|
+
DesyncSeverity["MEDIUM"] = "MEDIUM";
|
|
14
|
+
DesyncSeverity["LOW"] = "LOW";
|
|
15
|
+
})(DesyncSeverity || (DesyncSeverity = {}));
|
|
16
|
+
/**
|
|
17
|
+
* Calculate severity of a status desync
|
|
18
|
+
*/
|
|
19
|
+
export function calculateSeverity(metadataStatus, specStatus) {
|
|
20
|
+
// CRITICAL: Status line will show wrong increment (completed marked as active in spec.md)
|
|
21
|
+
if ((metadataStatus === IncrementStatus.COMPLETED ||
|
|
22
|
+
metadataStatus === IncrementStatus.PAUSED ||
|
|
23
|
+
metadataStatus === IncrementStatus.ABANDONED) &&
|
|
24
|
+
specStatus === IncrementStatus.ACTIVE) {
|
|
25
|
+
return {
|
|
26
|
+
severity: DesyncSeverity.CRITICAL,
|
|
27
|
+
impact: 'Status line shows completed/paused/abandoned increment as active. Developers see wrong current work.',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// HIGH: Inverse desync - metadata says active but spec says completed
|
|
31
|
+
if (metadataStatus === IncrementStatus.ACTIVE &&
|
|
32
|
+
(specStatus === IncrementStatus.COMPLETED ||
|
|
33
|
+
specStatus === IncrementStatus.PAUSED ||
|
|
34
|
+
specStatus === IncrementStatus.ABANDONED)) {
|
|
35
|
+
return {
|
|
36
|
+
severity: DesyncSeverity.HIGH,
|
|
37
|
+
impact: 'Active increment appears completed/paused in spec.md. External tools may close issue prematurely.',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// MEDIUM: Paused/completed confusion
|
|
41
|
+
if (metadataStatus === IncrementStatus.PAUSED &&
|
|
42
|
+
(specStatus === IncrementStatus.COMPLETED || specStatus === IncrementStatus.ACTIVE)) {
|
|
43
|
+
return {
|
|
44
|
+
severity: DesyncSeverity.MEDIUM,
|
|
45
|
+
impact: 'Workflow state confusion. Increment may appear in wrong status.',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// LOW: Other combinations (rare, minimal impact)
|
|
49
|
+
return {
|
|
50
|
+
severity: DesyncSeverity.LOW,
|
|
51
|
+
impact: 'Minor status inconsistency. Limited user impact.',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Validate status sync across all increments
|
|
56
|
+
*/
|
|
57
|
+
export async function validateStatusSync() {
|
|
58
|
+
const allIncrements = MetadataManager.getAll();
|
|
59
|
+
const desyncs = [];
|
|
60
|
+
let syncedCount = 0;
|
|
61
|
+
for (const metadata of allIncrements) {
|
|
62
|
+
try {
|
|
63
|
+
const specStatus = await SpecFrontmatterUpdater.readStatus(metadata.id);
|
|
64
|
+
// Skip if spec.md missing or status field missing (graceful degradation)
|
|
65
|
+
if (!specStatus) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// Check for desync
|
|
69
|
+
if (specStatus !== metadata.status) {
|
|
70
|
+
const { severity, impact } = calculateSeverity(metadata.status, specStatus);
|
|
71
|
+
desyncs.push({
|
|
72
|
+
incrementId: metadata.id,
|
|
73
|
+
metadataStatus: metadata.status,
|
|
74
|
+
specStatus: specStatus,
|
|
75
|
+
severity,
|
|
76
|
+
impact,
|
|
77
|
+
fix: `Run: npx specweave repair-status-desync ${metadata.id}`,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
syncedCount++; // Only count as synced if we validated AND they match
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
// Skip increments with read errors (e.g., corrupted spec.md)
|
|
86
|
+
console.warn(`Warning: Could not read spec.md for ${metadata.id}: ${error instanceof Error ? error.message : String(error)}`);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
total: allIncrements.length, // All increments scanned
|
|
92
|
+
synced: syncedCount, // Only increments where spec.md exists AND matches
|
|
93
|
+
desynced: desyncs.length,
|
|
94
|
+
desyncs: desyncs.sort((a, b) => {
|
|
95
|
+
// Sort by severity: CRITICAL > HIGH > MEDIUM > LOW
|
|
96
|
+
const severityOrder = {
|
|
97
|
+
[DesyncSeverity.CRITICAL]: 0,
|
|
98
|
+
[DesyncSeverity.HIGH]: 1,
|
|
99
|
+
[DesyncSeverity.MEDIUM]: 2,
|
|
100
|
+
[DesyncSeverity.LOW]: 3,
|
|
101
|
+
};
|
|
102
|
+
return severityOrder[a.severity] - severityOrder[b.severity];
|
|
103
|
+
}),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Format and print validation report
|
|
108
|
+
*/
|
|
109
|
+
export function formatReport(result) {
|
|
110
|
+
const lines = [];
|
|
111
|
+
lines.push('');
|
|
112
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
113
|
+
lines.push('Status Sync Validation Report');
|
|
114
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
115
|
+
lines.push('');
|
|
116
|
+
lines.push(`Total increments scanned: ${result.total}`);
|
|
117
|
+
lines.push(`Synced (✅): ${result.synced}`);
|
|
118
|
+
lines.push(`Desynced (❌): ${result.desynced}`);
|
|
119
|
+
lines.push('');
|
|
120
|
+
if (result.desynced === 0) {
|
|
121
|
+
lines.push(chalk.green('✅ All increments in sync! No desyncs detected.'));
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
lines.push(chalk.red(`❌ ${result.desynced} desync(s) detected:`));
|
|
125
|
+
lines.push('');
|
|
126
|
+
for (const desync of result.desyncs) {
|
|
127
|
+
const severityColor = desync.severity === DesyncSeverity.CRITICAL
|
|
128
|
+
? chalk.red
|
|
129
|
+
: desync.severity === DesyncSeverity.HIGH
|
|
130
|
+
? chalk.yellow
|
|
131
|
+
: desync.severity === DesyncSeverity.MEDIUM
|
|
132
|
+
? chalk.blue
|
|
133
|
+
: chalk.gray;
|
|
134
|
+
lines.push(`Increment: ${chalk.bold(desync.incrementId)}`);
|
|
135
|
+
lines.push(` Severity: ${severityColor(desync.severity)}`);
|
|
136
|
+
lines.push(` metadata.json: "${desync.metadataStatus}"`);
|
|
137
|
+
lines.push(` spec.md: "${desync.specStatus}"`);
|
|
138
|
+
lines.push(` Impact: ${desync.impact}`);
|
|
139
|
+
lines.push(` Fix: ${chalk.cyan(desync.fix)}`);
|
|
140
|
+
lines.push('');
|
|
141
|
+
}
|
|
142
|
+
lines.push('To repair all desyncs:');
|
|
143
|
+
lines.push(chalk.cyan(' npx specweave repair-status-desync --all'));
|
|
144
|
+
lines.push('');
|
|
145
|
+
lines.push('To preview changes without modifying files:');
|
|
146
|
+
lines.push(chalk.cyan(' npx specweave repair-status-desync --all --dry-run'));
|
|
147
|
+
}
|
|
148
|
+
lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
149
|
+
lines.push('');
|
|
150
|
+
return lines.join('\n');
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Main CLI entry point
|
|
154
|
+
*/
|
|
155
|
+
export async function main() {
|
|
156
|
+
try {
|
|
157
|
+
console.log('🔍 Validating status sync across all increments...\n');
|
|
158
|
+
const result = await validateStatusSync();
|
|
159
|
+
const report = formatReport(result);
|
|
160
|
+
console.log(report);
|
|
161
|
+
// Exit with error code if desyncs found
|
|
162
|
+
if (result.desynced > 0) {
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
console.error(chalk.red('Error during validation:'));
|
|
168
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Run if called directly
|
|
173
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
174
|
+
main();
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=validate-status-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-status-sync.js","sourceRoot":"","sources":["../../../../src/cli/commands/validate-status-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Update Status Line CLI
|
|
4
|
+
*
|
|
5
|
+
* Force-updates status line cache synchronously.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* node dist/src/cli/update-status-line.js
|
|
9
|
+
* node dist/src/cli/update-status-line.js /path/to/project
|
|
10
|
+
*
|
|
11
|
+
* Exit Codes:
|
|
12
|
+
* 0 - Success (cache updated)
|
|
13
|
+
* 1 - Error (cache update failed)
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=update-status-line.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-status-line.d.ts","sourceRoot":"","sources":["../../../src/cli/update-status-line.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Update Status Line CLI
|
|
4
|
+
*
|
|
5
|
+
* Force-updates status line cache synchronously.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* node dist/src/cli/update-status-line.js
|
|
9
|
+
* node dist/src/cli/update-status-line.js /path/to/project
|
|
10
|
+
*
|
|
11
|
+
* Exit Codes:
|
|
12
|
+
* 0 - Success (cache updated)
|
|
13
|
+
* 1 - Error (cache update failed)
|
|
14
|
+
*/
|
|
15
|
+
import { StatusLineUpdater } from '../core/status-line/status-line-updater.js';
|
|
16
|
+
async function main() {
|
|
17
|
+
// Get project root from args or default to cwd
|
|
18
|
+
const projectRoot = process.argv[2] || process.cwd();
|
|
19
|
+
try {
|
|
20
|
+
const updater = new StatusLineUpdater(projectRoot);
|
|
21
|
+
await updater.update();
|
|
22
|
+
// Get updated cache to show user-friendly output
|
|
23
|
+
const cache = await updater.getCurrentCache();
|
|
24
|
+
if (!cache || !cache.current) {
|
|
25
|
+
// No active increments - show default state message
|
|
26
|
+
console.log('ℹ️ No active increments');
|
|
27
|
+
console.log(' Start new work with: /specweave:increment "feature name"');
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Active increment exists - show progress
|
|
31
|
+
console.log('✅ Status line updated');
|
|
32
|
+
console.log(` Current increment: ${cache.current.id} (${cache.current.completed}/${cache.current.total} tasks, ${cache.current.percentage}%)`);
|
|
33
|
+
console.log(` Open increments: ${cache.openCount}`);
|
|
34
|
+
}
|
|
35
|
+
process.exit(0);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// Error output
|
|
39
|
+
console.error('❌ Failed to update status line:', error);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
main();
|
|
44
|
+
//# sourceMappingURL=update-status-line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-status-line.js","sourceRoot":"","sources":["../../../src/cli/update-status-line.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAE/E,KAAK,UAAU,IAAI;IACjB,+CAA+C;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QAEvB,iDAAiD;QACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAE9C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7B,oDAAoD;YACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,WAAW,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;YACjJ,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation result for increment completion
|
|
3
|
+
*/
|
|
4
|
+
export interface ValidationResult {
|
|
5
|
+
isValid: boolean;
|
|
6
|
+
errors: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validates that an increment is ready for completion
|
|
10
|
+
* by checking that all ACs are completed and all tasks are done.
|
|
11
|
+
*
|
|
12
|
+
* This prevents false completion where status is marked "completed"
|
|
13
|
+
* but work is still open.
|
|
14
|
+
*/
|
|
15
|
+
export declare class IncrementCompletionValidator {
|
|
16
|
+
/**
|
|
17
|
+
* Validate that an increment is ready for completion
|
|
18
|
+
*
|
|
19
|
+
* Checks:
|
|
20
|
+
* 1. All acceptance criteria are checked (- [x] **AC-...)
|
|
21
|
+
* 2. All tasks are completed (**Status**: [x] completed)
|
|
22
|
+
* 3. Required files exist (spec.md, tasks.md)
|
|
23
|
+
*
|
|
24
|
+
* @param incrementId - The increment ID to validate
|
|
25
|
+
* @returns ValidationResult with isValid and errors array
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const result = await IncrementCompletionValidator.validateCompletion('0043-spec-md-desync-fix');
|
|
30
|
+
* if (!result.isValid) {
|
|
31
|
+
* console.error('Cannot complete increment:');
|
|
32
|
+
* result.errors.forEach(err => console.error(` - ${err}`));
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
static validateCompletion(incrementId: string): Promise<ValidationResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Count open (unchecked) acceptance criteria in spec.md
|
|
39
|
+
*
|
|
40
|
+
* Searches for pattern: - [ ] **AC-
|
|
41
|
+
*
|
|
42
|
+
* @param incrementId - The increment ID
|
|
43
|
+
* @returns Number of open ACs
|
|
44
|
+
*/
|
|
45
|
+
static countOpenACs(incrementId: string): Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* Count pending tasks in tasks.md
|
|
48
|
+
*
|
|
49
|
+
* Searches for pattern: **Status**: [ ] pending
|
|
50
|
+
*
|
|
51
|
+
* @param incrementId - The increment ID
|
|
52
|
+
* @returns Number of pending tasks
|
|
53
|
+
*/
|
|
54
|
+
static countPendingTasks(incrementId: string): Promise<number>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=completion-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-validator.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/completion-validator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,4BAA4B;IACvC;;;;;;;;;;;;;;;;;;;OAmBG;WACU,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6C/E;;;;;;;OAOG;WACU,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa/D;;;;;;;OAOG;WACU,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAYrE"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as fs from 'fs-extra';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
/**
|
|
4
|
+
* Validates that an increment is ready for completion
|
|
5
|
+
* by checking that all ACs are completed and all tasks are done.
|
|
6
|
+
*
|
|
7
|
+
* This prevents false completion where status is marked "completed"
|
|
8
|
+
* but work is still open.
|
|
9
|
+
*/
|
|
10
|
+
export class IncrementCompletionValidator {
|
|
11
|
+
/**
|
|
12
|
+
* Validate that an increment is ready for completion
|
|
13
|
+
*
|
|
14
|
+
* Checks:
|
|
15
|
+
* 1. All acceptance criteria are checked (- [x] **AC-...)
|
|
16
|
+
* 2. All tasks are completed (**Status**: [x] completed)
|
|
17
|
+
* 3. Required files exist (spec.md, tasks.md)
|
|
18
|
+
*
|
|
19
|
+
* @param incrementId - The increment ID to validate
|
|
20
|
+
* @returns ValidationResult with isValid and errors array
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const result = await IncrementCompletionValidator.validateCompletion('0043-spec-md-desync-fix');
|
|
25
|
+
* if (!result.isValid) {
|
|
26
|
+
* console.error('Cannot complete increment:');
|
|
27
|
+
* result.errors.forEach(err => console.error(` - ${err}`));
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
static async validateCompletion(incrementId) {
|
|
32
|
+
const errors = [];
|
|
33
|
+
const incrementPath = path.join(process.cwd(), '.specweave', 'increments', incrementId);
|
|
34
|
+
// Check that required files exist
|
|
35
|
+
const specPath = path.join(incrementPath, 'spec.md');
|
|
36
|
+
const tasksPath = path.join(incrementPath, 'tasks.md');
|
|
37
|
+
const specExists = await fs.pathExists(specPath);
|
|
38
|
+
const tasksExists = await fs.pathExists(tasksPath);
|
|
39
|
+
if (!specExists) {
|
|
40
|
+
errors.push('spec.md not found');
|
|
41
|
+
}
|
|
42
|
+
if (!tasksExists) {
|
|
43
|
+
errors.push('tasks.md not found');
|
|
44
|
+
}
|
|
45
|
+
// If files don't exist, return early
|
|
46
|
+
if (!specExists || !tasksExists) {
|
|
47
|
+
return {
|
|
48
|
+
isValid: false,
|
|
49
|
+
errors
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Count open acceptance criteria
|
|
53
|
+
const openACs = await this.countOpenACs(incrementId);
|
|
54
|
+
if (openACs > 0) {
|
|
55
|
+
errors.push(`${openACs} acceptance criteria still open`);
|
|
56
|
+
}
|
|
57
|
+
// Count pending tasks
|
|
58
|
+
const pendingTasks = await this.countPendingTasks(incrementId);
|
|
59
|
+
if (pendingTasks > 0) {
|
|
60
|
+
errors.push(`${pendingTasks} tasks still pending`);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
isValid: errors.length === 0,
|
|
64
|
+
errors
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Count open (unchecked) acceptance criteria in spec.md
|
|
69
|
+
*
|
|
70
|
+
* Searches for pattern: - [ ] **AC-
|
|
71
|
+
*
|
|
72
|
+
* @param incrementId - The increment ID
|
|
73
|
+
* @returns Number of open ACs
|
|
74
|
+
*/
|
|
75
|
+
static async countOpenACs(incrementId) {
|
|
76
|
+
const specPath = path.join(process.cwd(), '.specweave', 'increments', incrementId, 'spec.md');
|
|
77
|
+
const content = await fs.readFile(specPath, 'utf-8');
|
|
78
|
+
// Match unchecked ACs: - [ ] **AC-
|
|
79
|
+
// Must be at start of line (^), followed by - [ ], then **AC-
|
|
80
|
+
const openACPattern = /^- \[ \] \*\*AC-/gm;
|
|
81
|
+
const matches = content.match(openACPattern) || [];
|
|
82
|
+
return matches.length;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Count pending tasks in tasks.md
|
|
86
|
+
*
|
|
87
|
+
* Searches for pattern: **Status**: [ ] pending
|
|
88
|
+
*
|
|
89
|
+
* @param incrementId - The increment ID
|
|
90
|
+
* @returns Number of pending tasks
|
|
91
|
+
*/
|
|
92
|
+
static async countPendingTasks(incrementId) {
|
|
93
|
+
const tasksPath = path.join(process.cwd(), '.specweave', 'increments', incrementId, 'tasks.md');
|
|
94
|
+
const content = await fs.readFile(tasksPath, 'utf-8');
|
|
95
|
+
// Match pending tasks: **Status**: [ ] pending
|
|
96
|
+
// Case-insensitive, handles variations in whitespace
|
|
97
|
+
const pendingPattern = /\*\*Status\*\*:\s*\[\s*\]\s*pending/gi;
|
|
98
|
+
const matches = content.match(pendingPattern) || [];
|
|
99
|
+
return matches.length;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=completion-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-validator.js","sourceRoot":"","sources":["../../../../src/core/increment/completion-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,EAKd,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,EAKd,MAAM,gCAAgC,CAAC;AAKxC;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACF,WAAW,EAAE,MAAM;IAAS,KAAK,CAAC,EAAE,KAAK;gBAAjE,OAAO,EAAE,MAAM,EAAS,WAAW,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,KAAK;CAI9E;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAK3C;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IA+CnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAY5C;IAEF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAmClC;;;OAGG;WACU,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BvF;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IA8BpE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAmBxC;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB;IAgEpB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,iBAAiB;IAQ9E;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IAOpD;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,iBAAiB,EAAE;IAyBpC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,EAAE;IAIhE;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE;IA6DvC;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,iBAAiB,EAAE;IAIxC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE;IAIvC;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,iBAAiB,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,iBAAiB,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB,EAAE;IAI1D;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,iBAAiB,EAAE;IAItC;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,iBAAiB,EAAE;IAIlD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB;IAyClE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAwBrD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO;IAIzE;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,MAAM;CAe9E"}
|
|
@@ -9,6 +9,7 @@ import path from 'path';
|
|
|
9
9
|
import { IncrementStatus, IncrementType, createDefaultMetadata, isValidTransition, isStale, shouldAutoAbandon } from '../types/increment-metadata.js';
|
|
10
10
|
import { ActiveIncrementManager } from './active-increment-manager.js';
|
|
11
11
|
import { detectDuplicatesByNumber } from './duplicate-detector.js';
|
|
12
|
+
import { SpecFrontmatterUpdater } from './spec-frontmatter-updater.js';
|
|
12
13
|
/**
|
|
13
14
|
* Error thrown when metadata operations fail
|
|
14
15
|
*/
|
|
@@ -211,6 +212,15 @@ export class MetadataManager {
|
|
|
211
212
|
metadata.abandonedAt = new Date().toISOString();
|
|
212
213
|
}
|
|
213
214
|
this.write(incrementId, metadata);
|
|
215
|
+
// **NEW (T-005)**: Update spec.md frontmatter to keep in sync with metadata.json
|
|
216
|
+
// AC-US2-01: updateStatus() updates both metadata.json AND spec.md frontmatter
|
|
217
|
+
// AC-US2-03: All status transitions update spec.md
|
|
218
|
+
// Fire-and-forget async call (don't block on spec.md update)
|
|
219
|
+
SpecFrontmatterUpdater.updateStatus(incrementId, newStatus).catch((error) => {
|
|
220
|
+
// Log error but don't fail the status update
|
|
221
|
+
// This maintains backward compatibility if spec.md doesn't exist or has issues
|
|
222
|
+
console.warn(`⚠️ Failed to update spec.md for ${incrementId}:`, error);
|
|
223
|
+
});
|
|
214
224
|
// **CRITICAL**: Update active increment state
|
|
215
225
|
const activeManager = new ActiveIncrementManager();
|
|
216
226
|
if (newStatus === IncrementStatus.ACTIVE) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpecFrontmatterUpdater - Update spec.md YAML frontmatter
|
|
3
|
+
*
|
|
4
|
+
* Implements atomic updates to spec.md frontmatter while preserving all other fields.
|
|
5
|
+
* Used to keep spec.md in sync with metadata.json during status transitions.
|
|
6
|
+
*
|
|
7
|
+
* Task: T-001
|
|
8
|
+
* Increment: 0043-spec-md-desync-fix
|
|
9
|
+
* User Stories: US-002
|
|
10
|
+
* Acceptance Criteria: AC-US2-01, AC-US2-04
|
|
11
|
+
*/
|
|
12
|
+
import { IncrementStatus } from '../types/increment-metadata.js';
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown when spec.md frontmatter update fails
|
|
15
|
+
*/
|
|
16
|
+
export declare class SpecUpdateError extends Error {
|
|
17
|
+
incrementId: string;
|
|
18
|
+
originalError?: Error;
|
|
19
|
+
constructor(message: string, incrementId: string, originalError?: Error);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* SpecFrontmatterUpdater - Manages spec.md YAML frontmatter updates
|
|
23
|
+
*
|
|
24
|
+
* Key Features:
|
|
25
|
+
* - Atomic updates (temp file → rename pattern)
|
|
26
|
+
* - Preserves all existing frontmatter fields
|
|
27
|
+
* - Validates status against IncrementStatus enum
|
|
28
|
+
* - Thread-safe writes
|
|
29
|
+
*
|
|
30
|
+
* Usage:
|
|
31
|
+
* ```typescript
|
|
32
|
+
* await SpecFrontmatterUpdater.updateStatus('0001-test', IncrementStatus.COMPLETED);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class SpecFrontmatterUpdater {
|
|
36
|
+
/**
|
|
37
|
+
* Update spec.md YAML frontmatter status field
|
|
38
|
+
*
|
|
39
|
+
* Performs atomic update using temp file → rename pattern to prevent partial writes.
|
|
40
|
+
* Preserves all other frontmatter fields.
|
|
41
|
+
*
|
|
42
|
+
* @param incrementId - Increment ID (e.g., "0001-test-increment")
|
|
43
|
+
* @param status - New status value (must be valid IncrementStatus enum)
|
|
44
|
+
* @throws {SpecUpdateError} If update fails or status invalid
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* await SpecFrontmatterUpdater.updateStatus('0001-test', IncrementStatus.COMPLETED);
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* AC-US2-01: Updates both metadata.json AND spec.md frontmatter
|
|
52
|
+
* AC-US2-03: All status transitions update spec.md
|
|
53
|
+
* AC-US2-04: Status field matches IncrementStatus enum values exactly
|
|
54
|
+
*/
|
|
55
|
+
static updateStatus(incrementId: string, status: IncrementStatus): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Read current status from spec.md frontmatter
|
|
58
|
+
*
|
|
59
|
+
* @param incrementId - Increment ID
|
|
60
|
+
* @returns Current status value or null if missing
|
|
61
|
+
*
|
|
62
|
+
* AC-US2-02: Desync detection reads both files
|
|
63
|
+
* AC-US2-04: Validates status is valid enum value
|
|
64
|
+
*/
|
|
65
|
+
static readStatus(incrementId: string): Promise<IncrementStatus | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Validate spec.md frontmatter status field
|
|
68
|
+
*
|
|
69
|
+
* @param incrementId - Increment ID
|
|
70
|
+
* @returns true if validation passes
|
|
71
|
+
* @throws {SpecUpdateError} If status invalid or missing
|
|
72
|
+
*
|
|
73
|
+
* AC-US2-02: Validation detects desyncs
|
|
74
|
+
* AC-US2-04: Validates status matches IncrementStatus enum
|
|
75
|
+
*/
|
|
76
|
+
static validate(incrementId: string): Promise<boolean>;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=spec-frontmatter-updater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-frontmatter-updater.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/spec-frontmatter-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,WAAW,EAAE,MAAM;IACnB,aAAa,CAAC,EAAE,KAAK;gBAF5B,OAAO,EAAE,MAAM,EACR,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,KAAK;CAM/B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;;;;;;;;;;;OAkBG;WACU,YAAY,CACvB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IA0DhB;;;;;;;;OAQG;WACU,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAiD7E;;;;;;;;;OASG;WACU,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAa7D"}
|