specweave 0.28.14 → 0.28.15
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/dist/src/cli/commands/import-external.d.ts.map +1 -1
- package/dist/src/cli/commands/import-external.js +128 -16
- package/dist/src/cli/commands/import-external.js.map +1 -1
- package/dist/src/cli/commands/init.js +5 -5
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts +3 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +341 -26
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.js +77 -5
- package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
- package/dist/src/cli/helpers/init/smart-reinit.d.ts +2 -0
- package/dist/src/cli/helpers/init/smart-reinit.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/smart-reinit.js +371 -36
- package/dist/src/cli/helpers/init/smart-reinit.js.map +1 -1
- package/dist/src/cli/helpers/init/testing-config.d.ts +5 -2
- package/dist/src/cli/helpers/init/testing-config.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/testing-config.js +322 -31
- package/dist/src/cli/helpers/init/testing-config.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +18 -9
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.d.ts +3 -2
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +12 -6
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/sync/sync-metadata.d.ts.map +1 -1
- package/dist/src/sync/sync-metadata.js +31 -2
- package/dist/src/sync/sync-metadata.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/agents/AGENTS-INDEX.md +0 -9
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +6 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +9 -0
|
@@ -21,10 +21,13 @@ import { formatOrigin } from '../core/types/origin-metadata.js';
|
|
|
21
21
|
* Intelligently allocates Feature IDs with chronological placement
|
|
22
22
|
*/
|
|
23
23
|
export class FSIdAllocator {
|
|
24
|
-
constructor(projectRoot, projectId
|
|
24
|
+
constructor(projectRoot, projectId) {
|
|
25
25
|
this.existingFeatures = new Map();
|
|
26
26
|
this.scanned = false;
|
|
27
27
|
this.projectRoot = projectRoot;
|
|
28
|
+
// projectId can be:
|
|
29
|
+
// - undefined: items go directly to specs/ (no project subfolder)
|
|
30
|
+
// - string: items go to specs/{projectId}/
|
|
28
31
|
this.projectId = projectId;
|
|
29
32
|
this.specsPath = path.join(projectRoot, '.specweave/docs/internal/specs');
|
|
30
33
|
this.archivePath = path.join(projectRoot, '.specweave/docs/_archive/specs');
|
|
@@ -34,17 +37,20 @@ export class FSIdAllocator {
|
|
|
34
37
|
*
|
|
35
38
|
* CRITICAL: Archives are scanned to prevent ID reuse
|
|
36
39
|
*
|
|
37
|
-
* Structure:
|
|
38
|
-
*
|
|
40
|
+
* Structure:
|
|
41
|
+
* - With projectId: specs/{projectId}/FS-XXX/
|
|
42
|
+
* - Without projectId: specs/FS-XXX/
|
|
39
43
|
*/
|
|
40
44
|
async scanExistingIds() {
|
|
41
45
|
this.existingFeatures.clear();
|
|
42
|
-
//
|
|
43
|
-
const projectSpecsPath =
|
|
46
|
+
// Determine scan path based on projectId
|
|
47
|
+
const projectSpecsPath = this.projectId
|
|
48
|
+
? path.join(this.specsPath, this.projectId)
|
|
49
|
+
: this.specsPath;
|
|
44
50
|
if (await fs.pathExists(projectSpecsPath)) {
|
|
45
51
|
await this.scanDirectory(projectSpecsPath, 'active');
|
|
46
52
|
}
|
|
47
|
-
// Scan
|
|
53
|
+
// Scan archive: {specsPath}/_archive/FS-XXX/
|
|
48
54
|
const projectArchivePath = path.join(projectSpecsPath, '_archive');
|
|
49
55
|
if (await fs.pathExists(projectArchivePath)) {
|
|
50
56
|
await this.scanDirectory(projectArchivePath, 'archived');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-id-allocator.js","sourceRoot":"","sources":["../../../src/living-docs/fs-id-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAA6B,MAAM,kCAAkC,CAAC;AAwD3F;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAQxB,YAAY,WAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"fs-id-allocator.js","sourceRoot":"","sources":["../../../src/living-docs/fs-id-allocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-metadata.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B,yBAAyB;IACzB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAE5B,iCAAiC;IACjC,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAE3B,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAalE;
|
|
1
|
+
{"version":3,"file":"sync-metadata.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B,yBAAyB;IACzB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAE5B,iCAAiC;IACjC,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAE3B,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAalE;AAgCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,EACnC,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CA4BN;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAClC,MAAM,GAAG,SAAS,CAGpB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAClC,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAClC,IAAI,CAiBN"}
|
|
@@ -29,6 +29,29 @@ export function loadSyncMetadata(projectRoot) {
|
|
|
29
29
|
throw new Error(`Failed to load sync metadata from ${metadataPath}: ${error.message}`);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Validate that projectRoot is a valid SpecWeave project
|
|
34
|
+
* CRITICAL: Prevents creating .specweave/ in wrong directories
|
|
35
|
+
*
|
|
36
|
+
* @param projectRoot - Directory to validate
|
|
37
|
+
* @throws Error if not a valid SpecWeave project
|
|
38
|
+
*/
|
|
39
|
+
function validateProjectRoot(projectRoot) {
|
|
40
|
+
const specweavePath = path.join(projectRoot, '.specweave');
|
|
41
|
+
// .specweave/ must already exist - we should NEVER create it from sync code
|
|
42
|
+
if (!fs.existsSync(specweavePath)) {
|
|
43
|
+
throw new Error(`SAFETY CHECK FAILED: Cannot write sync metadata to ${projectRoot}\n` +
|
|
44
|
+
`.specweave/ folder does not exist. This is likely a bug - sync code ` +
|
|
45
|
+
`received wrong projectRoot (possibly process.cwd() from wrong directory).\n` +
|
|
46
|
+
`Expected: A directory with existing .specweave/ folder.\n` +
|
|
47
|
+
`Got: ${projectRoot}`);
|
|
48
|
+
}
|
|
49
|
+
// Additional check: must be a directory, not a file
|
|
50
|
+
const stats = fs.statSync(specweavePath);
|
|
51
|
+
if (!stats.isDirectory()) {
|
|
52
|
+
throw new Error(`SAFETY CHECK FAILED: ${specweavePath} exists but is not a directory`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
32
55
|
/**
|
|
33
56
|
* Update sync metadata for a platform
|
|
34
57
|
*
|
|
@@ -37,6 +60,8 @@ export function loadSyncMetadata(projectRoot) {
|
|
|
37
60
|
* @param metadata - Platform-specific metadata to update
|
|
38
61
|
*/
|
|
39
62
|
export function updateSyncMetadata(projectRoot, platform, metadata) {
|
|
63
|
+
// CRITICAL: Validate projectRoot before writing anything
|
|
64
|
+
validateProjectRoot(projectRoot);
|
|
40
65
|
const metadataPath = path.join(projectRoot, SYNC_METADATA_FILE);
|
|
41
66
|
// Load existing metadata
|
|
42
67
|
const existingMetadata = loadSyncMetadata(projectRoot);
|
|
@@ -46,9 +71,11 @@ export function updateSyncMetadata(projectRoot, platform, metadata) {
|
|
|
46
71
|
[platform]: metadata,
|
|
47
72
|
lastUpdated: new Date().toISOString(),
|
|
48
73
|
};
|
|
49
|
-
//
|
|
74
|
+
// Directory already validated to exist, but ensure subdirectory exists
|
|
50
75
|
const metadataDir = path.dirname(metadataPath);
|
|
51
|
-
fs.
|
|
76
|
+
if (!fs.existsSync(metadataDir)) {
|
|
77
|
+
fs.mkdirSync(metadataDir, { recursive: true });
|
|
78
|
+
}
|
|
52
79
|
// Write updated metadata
|
|
53
80
|
try {
|
|
54
81
|
fs.writeFileSync(metadataPath, JSON.stringify(updatedMetadata, null, 2), 'utf-8');
|
|
@@ -86,6 +113,8 @@ export function hasPlatformBeenImported(projectRoot, platform) {
|
|
|
86
113
|
* @param platform - Platform to clear
|
|
87
114
|
*/
|
|
88
115
|
export function clearPlatformMetadata(projectRoot, platform) {
|
|
116
|
+
// CRITICAL: Validate projectRoot before writing anything
|
|
117
|
+
validateProjectRoot(projectRoot);
|
|
89
118
|
const metadataPath = path.join(projectRoot, SYNC_METADATA_FILE);
|
|
90
119
|
const existingMetadata = loadSyncMetadata(projectRoot);
|
|
91
120
|
// Remove platform metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-metadata.js","sourceRoot":"","sources":["../../../src/sync/sync-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AAoCxB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAEhE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,QAAmC,EACnC,QAA8B;IAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAEhE,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,eAAe,GAAiB;QACpC,GAAG,gBAAgB;QACnB,CAAC,QAAQ,CAAC,EAAE,QAAQ;QACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"sync-metadata.js","sourceRoot":"","sources":["../../../src/sync/sync-metadata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "0.28.
|
|
3
|
+
"version": "0.28.15",
|
|
4
4
|
"description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -68,15 +68,6 @@ Task({
|
|
|
68
68
|
|
|
69
69
|
### Code Quality & Standards Agents
|
|
70
70
|
|
|
71
|
-
#### Code Reviewer
|
|
72
|
-
```typescript
|
|
73
|
-
Task({
|
|
74
|
-
subagent_type: "specweave:code-reviewer",
|
|
75
|
-
prompt: "Review recent changes for security and performance issues"
|
|
76
|
-
});
|
|
77
|
-
```
|
|
78
|
-
**Use for**: Modern AI-powered code analysis, security scanning, performance optimization
|
|
79
|
-
|
|
80
71
|
#### Code Standards Detective
|
|
81
72
|
```typescript
|
|
82
73
|
Task({
|
|
@@ -1138,3 +1138,9 @@
|
|
|
1138
1138
|
[Tue Nov 25 13:22:41 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
|
|
1139
1139
|
[Tue Nov 25 13:22:41 EST 2025] [GitHub] 🔗 GitHub sync hook fired
|
|
1140
1140
|
[Tue Nov 25 13:22:41 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
|
|
1141
|
+
[Tue Nov 25 17:51:11 EST 2025] [GitHub] 🔗 GitHub sync hook fired
|
|
1142
|
+
[Tue Nov 25 17:51:11 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
|
|
1143
|
+
[Tue Nov 25 17:51:11 EST 2025] [GitHub] 🔗 GitHub sync hook fired
|
|
1144
|
+
[Tue Nov 25 17:51:11 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
|
|
1145
|
+
[Tue Nov 25 17:51:11 EST 2025] [GitHub] 🔗 GitHub sync hook fired
|
|
1146
|
+
[Tue Nov 25 17:51:11 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
|
|
@@ -1069,3 +1069,12 @@
|
|
|
1069
1069
|
[2025-11-25 13:22:41] 🎯 Post-Increment-Completion Hook Triggered
|
|
1070
1070
|
[2025-11-25 13:22:41] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1071
1071
|
[2025-11-25 13:22:41] Run: npm run build
|
|
1072
|
+
[2025-11-25 17:51:11] 🎯 Post-Increment-Completion Hook Triggered
|
|
1073
|
+
[2025-11-25 17:51:11] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1074
|
+
[2025-11-25 17:51:11] Run: npm run build
|
|
1075
|
+
[2025-11-25 17:51:11] 🎯 Post-Increment-Completion Hook Triggered
|
|
1076
|
+
[2025-11-25 17:51:11] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1077
|
+
[2025-11-25 17:51:11] Run: npm run build
|
|
1078
|
+
[2025-11-25 17:51:12] 🎯 Post-Increment-Completion Hook Triggered
|
|
1079
|
+
[2025-11-25 17:51:12] ⚠️ DORA calculator not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
|
|
1080
|
+
[2025-11-25 17:51:12] Run: npm run build
|