specweave 0.17.13 → 0.17.16
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 +456 -0
- package/README.md +38 -1
- package/dist/src/cli/commands/cicd-monitor.d.ts +11 -0
- package/dist/src/cli/commands/cicd-monitor.d.ts.map +1 -0
- package/dist/src/cli/commands/cicd-monitor.js +154 -0
- package/dist/src/cli/commands/cicd-monitor.js.map +1 -0
- package/dist/src/cli/commands/validate-parent-repo.d.ts +8 -0
- package/dist/src/cli/commands/validate-parent-repo.d.ts.map +1 -0
- package/dist/src/cli/commands/validate-parent-repo.js +15 -0
- package/dist/src/cli/commands/validate-parent-repo.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/types.d.ts +5 -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/cicd/config-loader.d.ts +21 -0
- package/dist/src/core/cicd/config-loader.d.ts.map +1 -0
- package/dist/src/core/cicd/config-loader.js +190 -0
- package/dist/src/core/cicd/config-loader.js.map +1 -0
- package/dist/src/core/cicd/index.d.ts +12 -0
- package/dist/src/core/cicd/index.d.ts.map +1 -0
- package/dist/src/core/cicd/index.js +18 -0
- package/dist/src/core/cicd/index.js.map +1 -0
- package/dist/src/core/cicd/monitor-service.d.ts +92 -0
- package/dist/src/core/cicd/monitor-service.d.ts.map +1 -0
- package/dist/src/core/cicd/monitor-service.js +132 -0
- package/dist/src/core/cicd/monitor-service.js.map +1 -0
- package/dist/src/core/cicd/notifier.d.ts +102 -0
- package/dist/src/core/cicd/notifier.d.ts.map +1 -0
- package/dist/src/core/cicd/notifier.js +184 -0
- package/dist/src/core/cicd/notifier.js.map +1 -0
- package/dist/src/core/cicd/parent-repo-validator.d.ts +42 -0
- package/dist/src/core/cicd/parent-repo-validator.d.ts.map +1 -0
- package/dist/src/core/cicd/parent-repo-validator.js +201 -0
- package/dist/src/core/cicd/parent-repo-validator.js.map +1 -0
- package/dist/src/core/cicd/state-manager.d.ts +79 -0
- package/dist/src/core/cicd/state-manager.d.ts.map +1 -0
- package/dist/src/core/cicd/state-manager.js +197 -0
- package/dist/src/core/cicd/state-manager.js.map +1 -0
- package/dist/src/core/cicd/types.d.ts +119 -0
- package/dist/src/core/cicd/types.d.ts.map +1 -0
- package/dist/src/core/cicd/types.js +18 -0
- package/dist/src/core/cicd/types.js.map +1 -0
- package/dist/src/core/cicd/workflow-monitor.d.ts +98 -0
- package/dist/src/core/cicd/workflow-monitor.d.ts.map +1 -0
- package/dist/src/core/cicd/workflow-monitor.js +215 -0
- package/dist/src/core/cicd/workflow-monitor.js.map +1 -0
- package/dist/src/core/spec-content-sync.d.ts.map +1 -1
- package/dist/src/core/spec-content-sync.js +14 -6
- package/dist/src/core/spec-content-sync.js.map +1 -1
- package/dist/src/utils/plugin-validator.d.ts +9 -0
- package/dist/src/utils/plugin-validator.d.ts.map +1 -1
- package/dist/src/utils/plugin-validator.js +86 -19
- package/dist/src/utils/plugin-validator.js.map +1 -1
- package/package.json +2 -2
- package/plugins/specweave/agents/pm/AGENT.md +170 -2
- package/plugins/specweave/hooks/post-increment-planning.sh +89 -26
- package/plugins/specweave/hooks/user-prompt-submit.sh +4 -4
- package/plugins/specweave/skills/increment-planner/SKILL.md +15 -10
- package/plugins/specweave/skills/plugin-validator/SKILL.md +16 -13
- package/plugins/specweave-ado/lib/ado-project-detector.js +32 -5
- package/plugins/specweave-ado/lib/ado-project-detector.ts +44 -5
- package/src/templates/AGENTS.md.template +55 -1
- package/src/templates/CLAUDE.md.template +51 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-content-sync.d.ts","sourceRoot":"","sources":["../../../src/core/spec-content-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,UAAU,EAAE,cAAc,CAAC;IAE3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"spec-content-sync.d.ts","sourceRoot":"","sources":["../../../src/core/spec-content-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,UAAU,EAAE,cAAc,CAAC;IAE3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqHpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,WAAW,EACtB,eAAe,EAAE;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,GACA;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAuBA;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAgClE;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBxB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,EACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,IAAI,GAClB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
|
|
@@ -41,10 +41,20 @@ export async function parseSpecContent(specPath) {
|
|
|
41
41
|
};
|
|
42
42
|
const identifier = detectSpecIdentifier(specContentInput);
|
|
43
43
|
// Extract description (text between title and first ## heading)
|
|
44
|
-
|
|
44
|
+
// Match content between the main heading and the first ## heading or ** pattern
|
|
45
|
+
const descMatch = content.match(/^#[^\n]+\n\n(.+?)(?=\n##|\n\*\*[A-Z])/ms);
|
|
45
46
|
const description = descMatch ? descMatch[1].trim() : '';
|
|
46
47
|
// Extract metadata from frontmatter or body
|
|
47
48
|
const metadata = {};
|
|
49
|
+
// Priority from frontmatter first, then body
|
|
50
|
+
if (frontmatter.priority) {
|
|
51
|
+
metadata.priority = frontmatter.priority;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const priorityMatch = content.match(/\*\*Priority\*\*:\s*(P\d)/);
|
|
55
|
+
if (priorityMatch)
|
|
56
|
+
metadata.priority = priorityMatch[1];
|
|
57
|
+
}
|
|
48
58
|
// GitHub Project
|
|
49
59
|
const githubMatch = content.match(/\*\*GitHub Project\*\*:\s*(.+)/);
|
|
50
60
|
if (githubMatch)
|
|
@@ -57,10 +67,6 @@ export async function parseSpecContent(specPath) {
|
|
|
57
67
|
const adoMatch = content.match(/\*\*ADO Feature\*\*:\s*(.+)/);
|
|
58
68
|
if (adoMatch)
|
|
59
69
|
metadata.adoFeature = adoMatch[1].trim();
|
|
60
|
-
// Priority
|
|
61
|
-
const priorityMatch = content.match(/\*\*Priority\*\*:\s*(P\d)/);
|
|
62
|
-
if (priorityMatch)
|
|
63
|
-
metadata.priority = priorityMatch[1];
|
|
64
70
|
// Parse user stories
|
|
65
71
|
const userStories = [];
|
|
66
72
|
// Match user story patterns: **US-001**: Title
|
|
@@ -71,7 +77,9 @@ export async function parseSpecContent(specPath) {
|
|
|
71
77
|
const usId = `US-${usNumber}`;
|
|
72
78
|
const usTitle = usMatch[2].trim();
|
|
73
79
|
// Find acceptance criteria for this user story
|
|
74
|
-
|
|
80
|
+
// Support both AC-US001-01 and AC-US1-01 formats
|
|
81
|
+
const usNumberPattern = usNumber.replace(/^0+/, ''); // Remove leading zeros
|
|
82
|
+
const acRegex = new RegExp(`- \\[([ x])\\] \\*\\*AC-US0*${usNumberPattern}-(\\d+)\\*\\*:\\s*([^(]+)(?:\\(([^)]+)\\))?`, 'g');
|
|
75
83
|
const acceptanceCriteria = [];
|
|
76
84
|
const acMatches = [...content.matchAll(acRegex)];
|
|
77
85
|
for (const acMatch of acMatches) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-content-sync.js","sourceRoot":"","sources":["../../../src/core/spec-content-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAmC,MAAM,+BAA+B,CAAC;AA+CtG;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAE9C,gCAAgC;QAChC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAEjF,yCAAyC;QACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;QAE7D,4BAA4B;QAC5B,wDAAwD;QACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC;YAClE,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAC;QAEd,6BAA6B;QAC7B,MAAM,gBAAgB,GAAqB;YACzC,OAAO;YACP,WAAW;YACX,KAAK;YACL,OAAO;YACP,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,MAAM,UAAU,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAE1D,gEAAgE;QAChE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"spec-content-sync.js","sourceRoot":"","sources":["../../../src/core/spec-content-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,6 +101,9 @@ export declare class PluginValidator {
|
|
|
101
101
|
/**
|
|
102
102
|
* Check if a specific plugin is installed
|
|
103
103
|
*
|
|
104
|
+
* FIXED: Read from Claude's installed_plugins.json instead of non-existent CLI command.
|
|
105
|
+
* The 'claude plugin list' command doesn't exist in CLI (only in interactive UI).
|
|
106
|
+
*
|
|
104
107
|
* @param pluginName - Name of plugin to check
|
|
105
108
|
* @returns Plugin installation info
|
|
106
109
|
*/
|
|
@@ -128,6 +131,12 @@ export declare class PluginValidator {
|
|
|
128
131
|
* @returns Installation result
|
|
129
132
|
*/
|
|
130
133
|
installPlugin(pluginName: string): Promise<InstallResult>;
|
|
134
|
+
/**
|
|
135
|
+
* Load SpecWeave config file
|
|
136
|
+
*
|
|
137
|
+
* @returns Config object or null if not found
|
|
138
|
+
*/
|
|
139
|
+
private loadConfig;
|
|
131
140
|
/**
|
|
132
141
|
* Get cached validation result
|
|
133
142
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-validator.d.ts","sourceRoot":"","sources":["../../../src/utils/plugin-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,2BAA2B;IAC3B,SAAS,EAAE;QACT,UAAU,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,+BAA+B;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wBAAwB;IACxB,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,OAAO,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAgCD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAsHpD,CAAC;AAqBF;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAkB;;IAUjC;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-validator.d.ts","sourceRoot":"","sources":["../../../src/utils/plugin-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,2BAA2B;IAC3B,SAAS,EAAE;QACT,UAAU,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,+BAA+B;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,wBAAwB;IACxB,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,OAAO,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAgCD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAsHpD,CAAC;AAqBF;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAkB;;IAUjC;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2K1E;;;;OAIG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IA4C1C;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC;QAC/B,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAIF;;;;;;;;OAQG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiEpD;;;;;OAKG;IACH,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAoBpD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC;IAqClD;;;;;OAKG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6C/D;;;;OAIG;YACW,UAAU;IAiBxB;;;;OAIG;YACW,mBAAmB;IAsBjC;;;;OAIG;YACW,mBAAmB;IAmBjC;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAMD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAI7D"}
|
|
@@ -175,6 +175,23 @@ export class PluginValidator {
|
|
|
175
175
|
*/
|
|
176
176
|
async validate(options = {}) {
|
|
177
177
|
this.verbose = options.verbose ?? false;
|
|
178
|
+
// ✅ FIX 4: Check if validation is disabled in config
|
|
179
|
+
const config = await this.loadConfig();
|
|
180
|
+
if (config?.pluginValidation?.enabled === false) {
|
|
181
|
+
this.log('Plugin validation disabled in config - skipping');
|
|
182
|
+
return {
|
|
183
|
+
valid: true,
|
|
184
|
+
timestamp: Date.now(),
|
|
185
|
+
missing: { marketplace: false, corePlugin: false, contextPlugins: [] },
|
|
186
|
+
installed: {
|
|
187
|
+
corePlugin: true,
|
|
188
|
+
corePluginVersion: 'skipped',
|
|
189
|
+
contextPlugins: [],
|
|
190
|
+
},
|
|
191
|
+
recommendations: [],
|
|
192
|
+
errors: [],
|
|
193
|
+
};
|
|
194
|
+
}
|
|
178
195
|
// Check cache first (unless verbose mode)
|
|
179
196
|
if (!options.verbose && !options.dryRun) {
|
|
180
197
|
const cached = await this.getCachedValidation();
|
|
@@ -234,6 +251,13 @@ export class PluginValidator {
|
|
|
234
251
|
const installResult = await this.installPlugin('specweave');
|
|
235
252
|
if (!installResult.success) {
|
|
236
253
|
result.errors.push(`Failed to install core plugin: ${installResult.error}`);
|
|
254
|
+
// ✅ FIX 2: Graceful degradation - warn but don't block
|
|
255
|
+
// If installation fails but plugin might exist (detection issue),
|
|
256
|
+
// mark as warning instead of blocking error
|
|
257
|
+
this.log('⚠️ Plugin installation/detection failed, but proceeding with validation...');
|
|
258
|
+
result.installed.corePlugin = true; // Mark as installed to allow workflow
|
|
259
|
+
result.installed.corePluginVersion = 'unknown';
|
|
260
|
+
result.errors.push('Warning: Could not verify plugin installation. If you see plugin-related errors, try running: /plugin install specweave');
|
|
237
261
|
}
|
|
238
262
|
else {
|
|
239
263
|
result.missing.corePlugin = false;
|
|
@@ -241,6 +265,12 @@ export class PluginValidator {
|
|
|
241
265
|
this.log('Core plugin installed successfully');
|
|
242
266
|
}
|
|
243
267
|
}
|
|
268
|
+
else {
|
|
269
|
+
// ✅ FIX 2: If auto-install not requested, warn but allow workflow
|
|
270
|
+
// (user might have plugins installed but detection failed)
|
|
271
|
+
this.log('⚠️ Core plugin not detected, but validation not blocking workflow');
|
|
272
|
+
this.log('⚠️ If you encounter errors, run: /plugin install specweave');
|
|
273
|
+
}
|
|
244
274
|
}
|
|
245
275
|
else {
|
|
246
276
|
result.installed.corePlugin = true;
|
|
@@ -346,36 +376,53 @@ export class PluginValidator {
|
|
|
346
376
|
/**
|
|
347
377
|
* Check if a specific plugin is installed
|
|
348
378
|
*
|
|
379
|
+
* FIXED: Read from Claude's installed_plugins.json instead of non-existent CLI command.
|
|
380
|
+
* The 'claude plugin list' command doesn't exist in CLI (only in interactive UI).
|
|
381
|
+
*
|
|
349
382
|
* @param pluginName - Name of plugin to check
|
|
350
383
|
* @returns Plugin installation info
|
|
351
384
|
*/
|
|
352
385
|
async checkPlugin(pluginName) {
|
|
353
386
|
try {
|
|
354
|
-
//
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
if (
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
387
|
+
// ✅ CORRECT - Read Claude's plugin registry
|
|
388
|
+
const pluginRegistryPath = path.join(os.homedir(), '.claude', 'plugins', 'installed_plugins.json');
|
|
389
|
+
// Check if registry exists
|
|
390
|
+
if (!(await fs.pathExists(pluginRegistryPath))) {
|
|
391
|
+
this.log('Plugin registry not found at ~/.claude/plugins/installed_plugins.json');
|
|
392
|
+
// Fallback: Check for development mode
|
|
393
|
+
const isDevMode = await fs.pathExists(path.join(process.cwd(), 'plugins', pluginName));
|
|
394
|
+
if (isDevMode) {
|
|
395
|
+
this.log(`Development mode detected for ${pluginName}`);
|
|
396
|
+
return { installed: true, version: 'dev' };
|
|
397
|
+
}
|
|
398
|
+
return { installed: false };
|
|
363
399
|
}
|
|
364
|
-
|
|
400
|
+
// Read registry
|
|
401
|
+
const registry = await fs.readJson(pluginRegistryPath);
|
|
402
|
+
// Check for plugin (format: "pluginName@marketplace")
|
|
403
|
+
// e.g., "specweave@specweave", "specweave-github@specweave"
|
|
404
|
+
const pluginKey = Object.keys(registry.plugins || {}).find((key) => key.startsWith(`${pluginName}@`));
|
|
405
|
+
if (pluginKey) {
|
|
406
|
+
const pluginInfo = registry.plugins[pluginKey];
|
|
407
|
+
this.log(`Plugin ${pluginName} found (version: ${pluginInfo.version})`);
|
|
408
|
+
return { installed: true, version: pluginInfo.version };
|
|
409
|
+
}
|
|
410
|
+
this.log(`Plugin ${pluginName} not found in registry`);
|
|
365
411
|
return { installed: false };
|
|
366
412
|
}
|
|
367
413
|
catch (error) {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
414
|
+
this.log(`Error checking plugin ${pluginName}: ${error.message}`);
|
|
415
|
+
// Fallback: Try development mode detection
|
|
416
|
+
try {
|
|
417
|
+
const isDevMode = await fs.pathExists(path.join(process.cwd(), 'plugins', pluginName));
|
|
418
|
+
if (isDevMode) {
|
|
419
|
+
this.log(`Development mode detected for ${pluginName} (after error)`);
|
|
420
|
+
return { installed: true, version: 'dev' };
|
|
421
|
+
}
|
|
372
422
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
this.log('Claude CLI not available');
|
|
376
|
-
throw new Error('Claude CLI not available. Please ensure Claude Code is installed.');
|
|
423
|
+
catch {
|
|
424
|
+
// Ignore fallback errors
|
|
377
425
|
}
|
|
378
|
-
this.log(`Error checking plugin ${pluginName}: ${error.message}`);
|
|
379
426
|
return { installed: false };
|
|
380
427
|
}
|
|
381
428
|
}
|
|
@@ -479,6 +526,26 @@ export class PluginValidator {
|
|
|
479
526
|
};
|
|
480
527
|
}
|
|
481
528
|
}
|
|
529
|
+
/**
|
|
530
|
+
* Load SpecWeave config file
|
|
531
|
+
*
|
|
532
|
+
* @returns Config object or null if not found
|
|
533
|
+
*/
|
|
534
|
+
async loadConfig() {
|
|
535
|
+
try {
|
|
536
|
+
const configPath = path.join(process.cwd(), '.specweave', 'config.json');
|
|
537
|
+
if (!(await fs.pathExists(configPath))) {
|
|
538
|
+
this.log('Config file not found at .specweave/config.json');
|
|
539
|
+
return null;
|
|
540
|
+
}
|
|
541
|
+
const config = await fs.readJson(configPath);
|
|
542
|
+
return config;
|
|
543
|
+
}
|
|
544
|
+
catch (error) {
|
|
545
|
+
this.log(`Error loading config: ${error.message}`);
|
|
546
|
+
return null;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
482
549
|
/**
|
|
483
550
|
* Get cached validation result
|
|
484
551
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-validator.js","sourceRoot":"","sources":["../../../src/utils/plugin-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-validator.js","sourceRoot":"","sources":["../../../src/utils/plugin-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.16",
|
|
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",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"test": "npm run test:smoke",
|
|
24
24
|
"benchmark": "ts-node tests/performance/run-all-benchmarks.ts",
|
|
25
25
|
"validate:plugins": "node scripts/validate-plugin-manifests.cjs",
|
|
26
|
-
"metrics:dora": "node dist/metrics/dora-calculator.js",
|
|
26
|
+
"metrics:dora": "node dist/src/metrics/dora-calculator.js",
|
|
27
27
|
"generate:diagrams": "bash scripts/generate-diagram-svgs.sh",
|
|
28
28
|
"docs:dev": "cd docs-site && npm start",
|
|
29
29
|
"docs:build": "cd docs-site && npm run build",
|
|
@@ -386,7 +386,27 @@ The PM Agent acts as your AI Product Manager, helping you:
|
|
|
386
386
|
|
|
387
387
|
### Output 1: Spec (Living Docs - Source of Truth, Permanent) ✅
|
|
388
388
|
|
|
389
|
-
|
|
389
|
+
**⚠️ CRITICAL: Multi-Project Path Detection**
|
|
390
|
+
|
|
391
|
+
1. **Check if multi-project mode enabled**:
|
|
392
|
+
- Read `.specweave/config.json`
|
|
393
|
+
- Look for `multiProject.enabled: true`
|
|
394
|
+
|
|
395
|
+
2. **Determine project ID** (one of these methods):
|
|
396
|
+
- **From increment name**: `0001-backend-auth` → project: `backend`
|
|
397
|
+
- **From tech stack**: React/TypeScript → `frontend`, ASP.NET/C# → `backend`
|
|
398
|
+
- **From config**: `multiProject.activeProject` field
|
|
399
|
+
- **Fallback**: Use `default` project
|
|
400
|
+
|
|
401
|
+
3. **Use CORRECT flattened path** (v0.16.11+):
|
|
402
|
+
- ✅ **CORRECT**: `.specweave/docs/internal/specs/{project-id}/spec-{number}-{name}.md`
|
|
403
|
+
- ❌ **WRONG**: `.specweave/docs/internal/projects/{project-id}/specs/...` (OLD nested structure)
|
|
404
|
+
|
|
405
|
+
**Examples**:
|
|
406
|
+
- Single project: `.specweave/docs/internal/specs/default/spec-0001-inventory-tracker.md`
|
|
407
|
+
- Backend project: `.specweave/docs/internal/specs/backend/spec-0002-api-auth.md`
|
|
408
|
+
- Frontend project: `.specweave/docs/internal/specs/frontend/spec-0003-dark-mode.md`
|
|
409
|
+
- Parent repo: `.specweave/docs/internal/specs/_parent/spec-0004-system-architecture.md`
|
|
390
410
|
|
|
391
411
|
**CRITICAL**: Specs are **FILES**, not directories! The spec file itself contains all content.
|
|
392
412
|
|
|
@@ -598,7 +618,7 @@ High-level business context: [Strategy Overview](../../docs/internal/strategy/{m
|
|
|
598
618
|
```markdown
|
|
599
619
|
# Feature: [Name]
|
|
600
620
|
|
|
601
|
-
**Complete Requirements**: See [SPEC-{number}-{name}](../../docs/internal/specs/spec-{number}-{name}.md)
|
|
621
|
+
**Complete Requirements**: See [SPEC-{number}-{name}](../../docs/internal/specs/{project-id}/spec-{number}-{name}.md)
|
|
602
622
|
|
|
603
623
|
**Quick Summary**:
|
|
604
624
|
- US-001: View current weather
|
|
@@ -608,6 +628,8 @@ High-level business context: [Strategy Overview](../../docs/internal/strategy/{m
|
|
|
608
628
|
(Minimal overview for context)
|
|
609
629
|
```
|
|
610
630
|
|
|
631
|
+
**Note**: Replace `{project-id}` with actual project (e.g., `default`, `backend`, `frontend`, `_parent`)
|
|
632
|
+
|
|
611
633
|
**Key Points**:
|
|
612
634
|
- This is TEMPORARY (may be deleted after increment completes)
|
|
613
635
|
- Spec spec.md is the PERMANENT source of truth
|
|
@@ -1012,6 +1034,152 @@ measurement_plan:
|
|
|
1012
1034
|
- "A/B test: 50% of users get feature, measure delta"
|
|
1013
1035
|
```
|
|
1014
1036
|
|
|
1037
|
+
## ✅ Post-Creation Validation (CRITICAL - v0.14.0+)
|
|
1038
|
+
|
|
1039
|
+
**MANDATORY STEP**: After creating increment files, ALWAYS validate metadata.json exists.
|
|
1040
|
+
|
|
1041
|
+
### Why This Matters
|
|
1042
|
+
|
|
1043
|
+
Without metadata.json:
|
|
1044
|
+
- ❌ Status line shows nothing (no active increment tracking)
|
|
1045
|
+
- ❌ WIP limits don't work (can't count active increments)
|
|
1046
|
+
- ❌ External sync breaks (no GitHub/JIRA/ADO links)
|
|
1047
|
+
- ❌ `/specweave:status`, `/pause`, `/resume` commands fail
|
|
1048
|
+
|
|
1049
|
+
### Validation Workflow
|
|
1050
|
+
|
|
1051
|
+
**STEP: Validate Increment Creation** (Run after creating spec.md, plan.md, tasks.md)
|
|
1052
|
+
|
|
1053
|
+
```typescript
|
|
1054
|
+
// After Write tool creates all files:
|
|
1055
|
+
// 1. spec.md created ✅
|
|
1056
|
+
// 2. plan.md created ✅
|
|
1057
|
+
// 3. tasks.md created ✅
|
|
1058
|
+
|
|
1059
|
+
// STEP: Validate metadata.json exists
|
|
1060
|
+
const incrementPath = `.specweave/increments/${incrementId}`;
|
|
1061
|
+
const metadataPath = `${incrementPath}/metadata.json`;
|
|
1062
|
+
|
|
1063
|
+
// Check if metadata.json exists
|
|
1064
|
+
if (!fs.existsSync(metadataPath)) {
|
|
1065
|
+
console.warn(`⚠️ Warning: metadata.json not found for ${incrementId}`);
|
|
1066
|
+
console.warn(` This indicates the post-increment-planning hook may have failed.`);
|
|
1067
|
+
console.warn(` Creating minimal metadata as fallback...`);
|
|
1068
|
+
|
|
1069
|
+
// Create minimal metadata
|
|
1070
|
+
const metadata = {
|
|
1071
|
+
id: incrementId,
|
|
1072
|
+
status: "active",
|
|
1073
|
+
type: "feature", // or derive from spec.md frontmatter
|
|
1074
|
+
created: new Date().toISOString(),
|
|
1075
|
+
lastActivity: new Date().toISOString()
|
|
1076
|
+
};
|
|
1077
|
+
|
|
1078
|
+
fs.writeFileSync(metadataPath, JSON.stringify(metadata, null, 2), 'utf-8');
|
|
1079
|
+
console.log(` ✅ Created minimal metadata.json`);
|
|
1080
|
+
console.log(` ⚠️ Note: No GitHub issue linked.`);
|
|
1081
|
+
console.log(` 💡 Run /specweave-github:create-issue ${incrementId} to create one manually.`);
|
|
1082
|
+
} else {
|
|
1083
|
+
console.log(`✅ Increment validation passed - metadata.json exists`);
|
|
1084
|
+
|
|
1085
|
+
// Read metadata to check if GitHub issue was created
|
|
1086
|
+
const metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf-8'));
|
|
1087
|
+
|
|
1088
|
+
if (metadata.github && metadata.github.issue) {
|
|
1089
|
+
console.log(` ✅ GitHub issue #${metadata.github.issue} linked`);
|
|
1090
|
+
console.log(` 🔗 ${metadata.github.url}`);
|
|
1091
|
+
} else {
|
|
1092
|
+
console.log(` ℹ️ No GitHub issue linked (autoCreateIssue may be disabled)`);
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
```
|
|
1096
|
+
|
|
1097
|
+
### Implementation Guide
|
|
1098
|
+
|
|
1099
|
+
**Add this validation as the FINAL STEP** in your increment creation workflow:
|
|
1100
|
+
|
|
1101
|
+
1. ✅ Create spec.md (via Write tool)
|
|
1102
|
+
2. ✅ Create plan.md (via Write tool)
|
|
1103
|
+
3. ✅ Create tasks.md (via Write tool or test-aware-planner agent)
|
|
1104
|
+
4. ✅ **NEW**: Validate metadata.json exists (via Read tool + conditional Write)
|
|
1105
|
+
|
|
1106
|
+
**Example workflow**:
|
|
1107
|
+
|
|
1108
|
+
```markdown
|
|
1109
|
+
User: /specweave:increment "Add user authentication"
|
|
1110
|
+
|
|
1111
|
+
PM Agent workflow:
|
|
1112
|
+
1. Validate no incomplete increments ✅
|
|
1113
|
+
2. Research & gather requirements ✅
|
|
1114
|
+
3. Generate spec.md ✅ (Write tool)
|
|
1115
|
+
4. Invoke Architect for plan.md ✅ (Task tool)
|
|
1116
|
+
5. Invoke test-aware-planner for tasks.md ✅ (Task tool)
|
|
1117
|
+
6. **NEW**: Validate metadata.json exists ✅ (Read tool + fallback Write)
|
|
1118
|
+
- Hook should have created it automatically
|
|
1119
|
+
- If missing → create minimal metadata
|
|
1120
|
+
- Warn user if GitHub issue not created
|
|
1121
|
+
7. Report completion to user ✅
|
|
1122
|
+
```
|
|
1123
|
+
|
|
1124
|
+
### Error Handling
|
|
1125
|
+
|
|
1126
|
+
**Scenario 1: Hook failed (no GitHub CLI)**
|
|
1127
|
+
```
|
|
1128
|
+
⚠️ Warning: metadata.json not found for 0023-release-management
|
|
1129
|
+
This indicates the post-increment-planning hook may have failed.
|
|
1130
|
+
Creating minimal metadata as fallback...
|
|
1131
|
+
✅ Created minimal metadata.json
|
|
1132
|
+
⚠️ Note: No GitHub issue linked.
|
|
1133
|
+
💡 Run /specweave-github:create-issue 0023-release-management to create one manually.
|
|
1134
|
+
```
|
|
1135
|
+
|
|
1136
|
+
**Scenario 2: Hook succeeded**
|
|
1137
|
+
```
|
|
1138
|
+
✅ Increment validation passed - metadata.json exists
|
|
1139
|
+
✅ GitHub issue #45 linked
|
|
1140
|
+
🔗 https://github.com/anton-abyzov/specweave/issues/45
|
|
1141
|
+
```
|
|
1142
|
+
|
|
1143
|
+
**Scenario 3: Hook succeeded, but no GitHub integration**
|
|
1144
|
+
```
|
|
1145
|
+
✅ Increment validation passed - metadata.json exists
|
|
1146
|
+
ℹ️ No GitHub issue linked (autoCreateIssue may be disabled)
|
|
1147
|
+
```
|
|
1148
|
+
|
|
1149
|
+
### Benefits
|
|
1150
|
+
|
|
1151
|
+
- ✅ **100% metadata.json coverage** (no silent failures)
|
|
1152
|
+
- ✅ **Immediate feedback** (user knows if GitHub issue failed)
|
|
1153
|
+
- ✅ **Graceful degradation** (creates minimal metadata as fallback)
|
|
1154
|
+
- ✅ **Clear next steps** (tells user how to fix if needed)
|
|
1155
|
+
|
|
1156
|
+
### Testing
|
|
1157
|
+
|
|
1158
|
+
**Test Case 1: Normal flow (hook succeeds)**
|
|
1159
|
+
```bash
|
|
1160
|
+
/specweave:increment "Test feature"
|
|
1161
|
+
# Expected: metadata.json created by hook
|
|
1162
|
+
# Validation: Passes with GitHub issue link
|
|
1163
|
+
```
|
|
1164
|
+
|
|
1165
|
+
**Test Case 2: Hook fails (no gh CLI)**
|
|
1166
|
+
```bash
|
|
1167
|
+
# Remove gh CLI: brew uninstall gh
|
|
1168
|
+
/specweave:increment "Test feature"
|
|
1169
|
+
# Expected: metadata.json NOT created by hook
|
|
1170
|
+
# Validation: Creates minimal metadata, warns user
|
|
1171
|
+
```
|
|
1172
|
+
|
|
1173
|
+
**Test Case 3: GitHub disabled**
|
|
1174
|
+
```bash
|
|
1175
|
+
# Set autoCreateIssue: false in config
|
|
1176
|
+
/specweave:increment "Test feature"
|
|
1177
|
+
# Expected: metadata.json created by hook (no GitHub section)
|
|
1178
|
+
# Validation: Passes with info message
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
---
|
|
1182
|
+
|
|
1015
1183
|
## Integration with Other Agents
|
|
1016
1184
|
|
|
1017
1185
|
### Works With
|