specweave 1.0.353 → 1.0.355
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/plugins/specweave-github/lib/github-ac-comment-poster.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-ac-comment-poster.js +16 -10
- package/dist/plugins/specweave-github/lib/github-ac-comment-poster.js.map +1 -1
- package/dist/src/core/ac-progress-sync.d.ts.map +1 -1
- package/dist/src/core/ac-progress-sync.js +4 -1
- package/dist/src/core/ac-progress-sync.js.map +1 -1
- package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts +10 -0
- package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts.map +1 -1
- package/dist/src/core/hooks/LifecycleHookDispatcher.js +85 -1
- package/dist/src/core/hooks/LifecycleHookDispatcher.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/commands/docs-updater.md +1 -1
- package/plugins/specweave/skills/docs-updater/SKILL.md +84 -0
- package/plugins/specweave/skills/done/SKILL.md +12 -0
- package/plugins/specweave/skills/increment/SKILL.md +16 -23
- package/plugins/specweave/skills/team-lead/SKILL.md +71 -18
- package/plugins/specweave/skills/team-lead/agents/backend.md +4 -5
- package/plugins/specweave/skills/team-lead/agents/database.md +5 -6
- package/plugins/specweave/skills/team-lead/agents/frontend.md +4 -5
- package/plugins/specweave/skills/team-lead/agents/security.md +4 -5
- package/plugins/specweave/skills/team-lead/agents/testing.md +3 -4
- package/plugins/specweave-github/lib/github-ac-comment-poster.js +16 -13
- package/plugins/specweave-github/lib/github-ac-comment-poster.ts +23 -15
- package/src/templates/AGENTS.md.template +9 -2
- package/src/templates/CLAUDE.md.template +17 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-ac-comment-poster.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-comment-poster.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAaD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"github-ac-comment-poster.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-comment-poster.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAaD;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAqE5B"}
|
|
@@ -47,16 +47,22 @@ export async function postACProgressComments(incrementId, affectedUSIds, specPat
|
|
|
47
47
|
continue;
|
|
48
48
|
}
|
|
49
49
|
const acStates = parseACStatesForUS(content, usId);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
50
|
+
// Skip progress comment when all ACs are complete — the auto-closer will
|
|
51
|
+
// post its own "All acceptance criteria completed" comment instead,
|
|
52
|
+
// preventing duplicate comments on the same issue.
|
|
53
|
+
const allComplete = acStates.length > 0 && acStates.every(ac => ac.completed);
|
|
54
|
+
if (!allComplete) {
|
|
55
|
+
const commentBody = buildProgressCommentForUS(incrementId, usId, acStates);
|
|
56
|
+
const execResult = await execFileNoThrow('gh', ['issue', 'comment', String(link.issueNumber), '--body', commentBody, '-R', repoSlug], env ? { env } : {});
|
|
57
|
+
if (execResult.success) {
|
|
58
|
+
result.posted.push({ usId, issueNumber: link.issueNumber });
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result.errors.push({
|
|
62
|
+
usId,
|
|
63
|
+
error: execResult.stderr || 'Unknown error posting comment',
|
|
64
|
+
});
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
67
|
// Patch AC checkboxes directly in the issue body using the known issue number
|
|
62
68
|
if (acStates.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-ac-comment-poster.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-comment-poster.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAwBxE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,aAAuB,EACvB,QAAgB,EAChB,OAA2B;IAE3B,MAAM,MAAM,GAAsB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;YACtB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpE,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,yBAAyB,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"github-ac-comment-poster.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/github-ac-comment-poster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-progress-sync.d.ts","sourceRoot":"","sources":["../../../src/core/ac-progress-sync.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ac-progress-sync.d.ts","sourceRoot":"","sources":["../../../src/core/ac-progress-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -204,7 +204,10 @@ export async function syncACProgressToProviders(incrementId, affectedUSIds, spec
|
|
|
204
204
|
const providerResult = await syncFn(incrementId, affectedUSIds, ctx, config);
|
|
205
205
|
result[provider] = providerResult;
|
|
206
206
|
// Record circuit breaker outcome based on provider errors
|
|
207
|
-
|
|
207
|
+
// A successful sync can have posted (comments), closed (issues), or both.
|
|
208
|
+
// Only record failure when there were errors AND nothing succeeded.
|
|
209
|
+
const anySuccess = providerResult.posted.length > 0 || providerResult.closed.length > 0;
|
|
210
|
+
if (providerResult.errors.length > 0 && !anySuccess) {
|
|
208
211
|
breaker.recordFailure();
|
|
209
212
|
}
|
|
210
213
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-progress-sync.js","sourceRoot":"","sources":["../../../src/core/ac-progress-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAgB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAiDzE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,WAAW;IAClB,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAmB,EAAE,MAAsB;IACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAC7D,OAAO,gBAAgB,SAAS,IAAI,KAAK,OAAO,WAAW,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,aAAa,CAAC,QAAmB;IACxC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC;AAaD;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,WAAmB,EACnB,aAAuB,EACvB,GAAsB,EACtB,MAA4B;IAE5B,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC7C,gEAAgE,CACjE,CAAC;IACF,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CACpD,6DAA6D,CAC9D,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE;QAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;KAC5B,CAAC;IAEF,yBAAyB;IACzB,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAChD,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAClD,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,oCAAoC;IACpC,MAAM,WAAW,GAAG,MAAM,6BAA6B,CACrD,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAClD,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,WAAmB,EACnB,aAAuB,EACvB,GAAsB,EACtB,MAA4B;IAE5B,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CACrC,sDAAsD,CACvD,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,cAAc,CACjC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,EACzB,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EACxB,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,EAC3B,MAAM,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAC9B,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;IAEhE,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC1D,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEjD,8CAA8C;YAC9C,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnF,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,WAAmB,EACnB,aAAuB,EACvB,GAAsB,EACtB,MAA4B;IAE5B,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CACpC,oDAAoD,CACrD,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAChC,+CAA+C,CAChD,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,MAAM,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE,EAC9B,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,EACzB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CACtB,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;QAC9B,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE;QAC5C,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE;QAClC,mBAAmB,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;KAC3C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;IAE9D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAE3D,gDAAgD;YAChD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,aAAa,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACjE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,YAAY,GAAyC;IACzD,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,iBAAiB;CACvB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,eAAe,GAA6C;IAChE,MAAM,EAAE,IAAI,kBAAkB,EAAE;IAChC,IAAI,EAAE,IAAI,kBAAkB,EAAE;IAC9B,GAAG,EAAE,IAAI,kBAAkB,EAAE;CAC9B,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAmB,EACnB,aAAuB,EACvB,QAAgB,EAChB,MAA4B;IAE5B,MAAM,MAAM,GAAyB,EAAE,CAAC;IAExC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6BAA6B;IAC7B,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAElE,gCAAgC;IAChC,MAAM,SAAS,GAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,OAAO;YAAE,SAAS;QAEvC,gDAAgD;QAChD,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;YAClC,0DAA0D;YAC1D,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3E,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,sEAAsE;YACtE,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;YACrC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,SAAS;gBACnC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,QAAgB,EAChB,MAA4B;IAE5B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,yBAAyB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,kBAAkB,CAAC;IACnC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAmB,EAAE,CAAC;QACtE,eAAe,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,aAAuB;IAEvB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,QAAQ;QACR,WAAW,EAAE,OAAO;QACpB,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,OAAe,EAAE,IAAY;IACvD,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,oDAAoD;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5D,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,kCAAkC,KAAK,6BAA6B,EACpE,GAAG,CACJ,CAAC;IAEF,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,QAAQ,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YAC/B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAC5B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ac-progress-sync.js","sourceRoot":"","sources":["../../../src/core/ac-progress-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,16 @@ export declare class LifecycleHookDispatcher {
|
|
|
66
66
|
* Read hooks configuration from config.json
|
|
67
67
|
*/
|
|
68
68
|
private static readHooksConfig;
|
|
69
|
+
/**
|
|
70
|
+
* Update cross-references in existing living docs after feature specs are created.
|
|
71
|
+
*
|
|
72
|
+
* Lightweight post-sync step that:
|
|
73
|
+
* 1. Updates specs/{project}/README.md with links to the new FS-XXX folder
|
|
74
|
+
* 2. Logs verification of FEATURE.md existence
|
|
75
|
+
*
|
|
76
|
+
* This runs automatically so the link update doesn't depend on the AI skill step.
|
|
77
|
+
*/
|
|
78
|
+
private static updateDocsLinks;
|
|
69
79
|
/**
|
|
70
80
|
* Log error without propagating
|
|
71
81
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifecycleHookDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/LifecycleHookDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC;;;;;OAKG;WACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;OAMG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;;;;OAQG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"LifecycleHookDispatcher.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/LifecycleHookDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC;;;;;OAKG;WACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;OAMG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;;;;OAQG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAsG/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAUzB;;OAEG;mBACkB,eAAe;IAQpC;;;;;;;;OAQG;mBACkB,eAAe;IA6EpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;CAOxB"}
|
|
@@ -131,8 +131,23 @@ export class LifecycleHookDispatcher {
|
|
|
131
131
|
try {
|
|
132
132
|
const { LivingDocsSync } = await import('../living-docs/living-docs-sync.js');
|
|
133
133
|
const sync = new LivingDocsSync(projectRoot);
|
|
134
|
-
await sync.syncIncrement(incrementId);
|
|
134
|
+
const syncResult = await sync.syncIncrement(incrementId);
|
|
135
135
|
result.syncSuccess.push('Living docs synced');
|
|
136
|
+
// STEP 1b: Update cross-references in existing docs after feature specs are created.
|
|
137
|
+
// This ensures FEATURE-CATALOG, module docs, and specs README contain links
|
|
138
|
+
// to the newly created feature spec files. Without this, the link update is
|
|
139
|
+
// deferred to the AI skill step (sw:docs-updater) which may not always run.
|
|
140
|
+
if (syncResult.success && syncResult.featureId) {
|
|
141
|
+
try {
|
|
142
|
+
await LifecycleHookDispatcher.updateDocsLinks(projectRoot, syncResult.featureId, sync.getProjectId());
|
|
143
|
+
result.syncSuccess.push('Docs links updated');
|
|
144
|
+
}
|
|
145
|
+
catch (linkError) {
|
|
146
|
+
const linkMsg = linkError instanceof Error ? linkError.message : String(linkError);
|
|
147
|
+
result.syncErrors.push(`Docs link update failed: ${linkMsg}`);
|
|
148
|
+
LifecycleHookDispatcher.logError('onIncrementDone:docsLinks', linkError);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
136
151
|
}
|
|
137
152
|
catch (error) {
|
|
138
153
|
const msg = error instanceof Error ? error.message : String(error);
|
|
@@ -207,6 +222,75 @@ export class LifecycleHookDispatcher {
|
|
|
207
222
|
const config = await configManager.read();
|
|
208
223
|
return config.hooks;
|
|
209
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Update cross-references in existing living docs after feature specs are created.
|
|
227
|
+
*
|
|
228
|
+
* Lightweight post-sync step that:
|
|
229
|
+
* 1. Updates specs/{project}/README.md with links to the new FS-XXX folder
|
|
230
|
+
* 2. Logs verification of FEATURE.md existence
|
|
231
|
+
*
|
|
232
|
+
* This runs automatically so the link update doesn't depend on the AI skill step.
|
|
233
|
+
*/
|
|
234
|
+
static async updateDocsLinks(projectRoot, featureId, projectId) {
|
|
235
|
+
const { existsSync, promises: fs } = await import('fs');
|
|
236
|
+
const path = await import('path');
|
|
237
|
+
const specsDir = path.join(projectRoot, '.specweave/docs/internal/specs', projectId);
|
|
238
|
+
const featureDir = path.join(specsDir, featureId);
|
|
239
|
+
const featureFile = path.join(featureDir, 'FEATURE.md');
|
|
240
|
+
// Verify feature spec was actually created
|
|
241
|
+
if (!existsSync(featureFile)) {
|
|
242
|
+
process.stderr.write(`[LifecycleHookDispatcher.updateDocsLinks] Feature spec missing: ${featureFile}\n`);
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// Read feature title from FEATURE.md first line (# Title)
|
|
246
|
+
let featureTitle = featureId;
|
|
247
|
+
try {
|
|
248
|
+
const content = await fs.readFile(featureFile, 'utf-8');
|
|
249
|
+
const titleMatch = content.match(/^#\s+(.+)/m);
|
|
250
|
+
if (titleMatch) {
|
|
251
|
+
featureTitle = titleMatch[1].replace(/\s*\(FS-\d+\)/, '').trim();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// Use featureId as fallback title
|
|
256
|
+
}
|
|
257
|
+
// Update specs/{project}/README.md with link to the new feature
|
|
258
|
+
const readmePath = path.join(specsDir, 'README.md');
|
|
259
|
+
if (existsSync(readmePath)) {
|
|
260
|
+
try {
|
|
261
|
+
let readme = await fs.readFile(readmePath, 'utf-8');
|
|
262
|
+
const featureLink = `- [${featureId}: ${featureTitle}](${featureId}/FEATURE.md)`;
|
|
263
|
+
// Check if this feature is already linked
|
|
264
|
+
if (!readme.includes(`${featureId}/FEATURE.md`)) {
|
|
265
|
+
// Find or create the feature list section
|
|
266
|
+
if (readme.includes('## Active Features')) {
|
|
267
|
+
// Append to existing section
|
|
268
|
+
readme = readme.replace(/(## Active Features\n(?:[\s\S]*?))((?:\n## |\n---|\Z))/, `$1${featureLink}\n$2`);
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
// Add section before the footer or at end
|
|
272
|
+
const footerIdx = readme.lastIndexOf('\n---\n');
|
|
273
|
+
const section = `\n## Active Features\n\n${featureLink}\n`;
|
|
274
|
+
if (footerIdx !== -1) {
|
|
275
|
+
readme =
|
|
276
|
+
readme.substring(0, footerIdx) +
|
|
277
|
+
section +
|
|
278
|
+
readme.substring(footerIdx);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
readme += section;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
await fs.writeFile(readmePath, readme, 'utf-8');
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
catch (readmeError) {
|
|
288
|
+
// Non-fatal: README update is best-effort
|
|
289
|
+
const msg = readmeError instanceof Error ? readmeError.message : String(readmeError);
|
|
290
|
+
process.stderr.write(`[LifecycleHookDispatcher.updateDocsLinks] README update warning: ${msg}\n`);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
210
294
|
/**
|
|
211
295
|
* Log error without propagating
|
|
212
296
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifecycleHookDispatcher.js","sourceRoot":"","sources":["../../../../src/core/hooks/LifecycleHookDispatcher.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LifecycleHookDispatcher.js","sourceRoot":"","sources":["../../../../src/core/hooks/LifecycleHookDispatcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.355",
|
|
4
4
|
"description": "Spec-driven development framework for AI coding agents. Works with Claude Code, Codex, Antigravity, Cursor, Copilot & more. 100+ skills, 49 CLI commands, verified skill certification, autonomous execution, and living documentation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Living documentation updater that syncs implementation progress to product docs.
|
|
2
|
+
description: "DEPRECATED: Use /sw:docs-updater skill instead. Living documentation updater that syncs implementation progress to product docs."
|
|
3
3
|
user-invocable: false
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Living documentation updater that syncs implementation progress to product docs. Use when updating docs after task completion, changing DRAFT status to published, or ensuring documentation reflects current implementation state.
|
|
3
|
+
argument-hint: "[increment-id]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Updater
|
|
7
|
+
|
|
8
|
+
## Project Overrides
|
|
9
|
+
|
|
10
|
+
!`s="docs-updater"; for d in .specweave/skill-memories .claude/skill-memories "$HOME/.claude/skill-memories"; do p="$d/$s.md"; [ -f "$p" ] && awk '/^## Learnings$/{ok=1;next}/^## /{ok=0}ok' "$p" && break; done 2>/dev/null; true`
|
|
11
|
+
|
|
12
|
+
Updates living documentation (.specweave/docs/) based on implementation progress after task completion or increment closure.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- After closing an increment to ensure docs reflect reality (called by `/sw:done` Step 10b)
|
|
17
|
+
- Task specifies documentation updates in tasks.md
|
|
18
|
+
- Feature implementation is complete
|
|
19
|
+
- User says "update documentation" or "update docs links"
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
### Step 1: Detect Context
|
|
24
|
+
|
|
25
|
+
1. If increment ID is provided, load `spec.md`, `tasks.md`, and `metadata.json`
|
|
26
|
+
2. Detect project ID from config: `.specweave/config.json` → `project.name`
|
|
27
|
+
3. Locate living docs: `.specweave/docs/internal/`
|
|
28
|
+
|
|
29
|
+
### Step 2: Verify Feature Specs Exist
|
|
30
|
+
|
|
31
|
+
1. Check `.specweave/docs/internal/specs/{project}/` for FS-XXX folders
|
|
32
|
+
2. For each folder, verify `FEATURE.md` and `us-*.md` files exist
|
|
33
|
+
3. If NO feature specs found and increment exists:
|
|
34
|
+
- Run: `specweave sync-living-docs <increment-id>` to create them
|
|
35
|
+
- Verify again after sync
|
|
36
|
+
4. Report: "Found N feature specs in {project}/"
|
|
37
|
+
|
|
38
|
+
### Step 3: Update Cross-References in Existing Docs
|
|
39
|
+
|
|
40
|
+
Scan `.specweave/docs/internal/` for docs that should reference the feature specs:
|
|
41
|
+
|
|
42
|
+
1. **FEATURE-CATALOG.md** (in `enterprise/`): Add entries for spec-based features with links to `specs/{project}/FS-XXX/FEATURE.md`
|
|
43
|
+
2. **FEATURE-TO-CODE.md** (in `relationships/`): Add mappings from spec features to code features
|
|
44
|
+
3. **Module docs** (in `modules/`): Add "Related Specs" links where modules correspond to feature areas
|
|
45
|
+
4. **Project specs README** (`specs/{project}/README.md`): Update feature listing with links to each FS-XXX
|
|
46
|
+
|
|
47
|
+
For each doc update:
|
|
48
|
+
- Read existing content
|
|
49
|
+
- Add or update `## Related Specs` or `## Feature Specs` section
|
|
50
|
+
- Use relative markdown links: `[FS-001](../specs/{project}/FS-001/FEATURE.md)`
|
|
51
|
+
- Preserve existing content, only add/update the cross-reference sections
|
|
52
|
+
|
|
53
|
+
### Step 4: Update Status Markers
|
|
54
|
+
|
|
55
|
+
1. Scan docs for `[DRAFT]` markers on sections that correspond to completed ACs
|
|
56
|
+
2. Change `[DRAFT]` → `[COMPLETE]` for sections matching completed acceptance criteria
|
|
57
|
+
3. Report: "Updated N status markers from DRAFT to COMPLETE"
|
|
58
|
+
|
|
59
|
+
### Step 5: Verify Bidirectional Links
|
|
60
|
+
|
|
61
|
+
Validate that links work in both directions:
|
|
62
|
+
|
|
63
|
+
1. **Increment → Feature Spec**: spec.md references should resolve to `specs/{project}/FS-XXX/`
|
|
64
|
+
2. **Feature Spec → Living Docs**: FEATURE.md links to modules, architecture, etc.
|
|
65
|
+
3. **Living Docs → Feature Spec**: Module docs, catalogs link back to specs
|
|
66
|
+
4. Report broken links with suggested fixes
|
|
67
|
+
|
|
68
|
+
### Step 6: Summary Report
|
|
69
|
+
|
|
70
|
+
Display results:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Docs Update Summary:
|
|
74
|
+
- Feature specs verified: N
|
|
75
|
+
- Cross-references updated: M files
|
|
76
|
+
- Status markers updated: K (DRAFT → COMPLETE)
|
|
77
|
+
- Broken links found: L (see details above)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Integration Points
|
|
81
|
+
|
|
82
|
+
- **Called by**: `/sw:done` (Step 10b), task completion hooks, spec-generator
|
|
83
|
+
- **Updates**: `.specweave/docs/**/*.md`
|
|
84
|
+
- **Reads**: `tasks.md`, `spec.md`, implementation code, feature specs
|
|
@@ -149,6 +149,18 @@ If any operation failed, display: "Run `/sw:progress-sync` to retry failed sync
|
|
|
149
149
|
|
|
150
150
|
Execute: `Skill({ skill: "sw:sync-docs" })` with the increment ID. Do NOT just mention it -- actually invoke it. This serves as a verification pass to confirm living docs are up to date after closure.
|
|
151
151
|
|
|
152
|
+
### Step 10b: Update Links in Docs (MANDATORY)
|
|
153
|
+
|
|
154
|
+
After living docs sync, update cross-references and bidirectional links so existing docs reference the newly created feature specs.
|
|
155
|
+
|
|
156
|
+
Execute: `Skill({ skill: "sw:docs-updater" })` — this verifies and repairs links between living docs, feature specs, and increment references. Do NOT skip this step. The docs-updater:
|
|
157
|
+
1. Reads the feature spec files created by Step 10
|
|
158
|
+
2. Updates existing docs (FEATURE-CATALOG, module docs, etc.) with links to the new specs
|
|
159
|
+
3. Verifies bidirectional links between increment → feature spec → living docs
|
|
160
|
+
4. Changes `[DRAFT]` → `[COMPLETE]` on doc sections matching completed ACs
|
|
161
|
+
|
|
162
|
+
If `sw:docs-updater` is unavailable, manually verify that `.specweave/docs/internal/specs/{project}/FS-XXX/` contains `FEATURE.md` and `us-*.md` files. If missing, re-run Step 10.
|
|
163
|
+
|
|
152
164
|
### Step 11: Post-Closure Quality Assessment
|
|
153
165
|
|
|
154
166
|
Runs ONLY if closure succeeded. Invoke: `/sw:qa ${incrementId}`
|
|
@@ -259,31 +259,31 @@ Create files in order: metadata.json FIRST, then spec.md, plan.md, tasks.md.
|
|
|
259
259
|
|
|
260
260
|
## Critical Rules
|
|
261
261
|
|
|
262
|
-
1. **NEVER write spec.md/plan.md/tasks.md directly** — ALWAYS delegate via
|
|
262
|
+
1. **NEVER write spec.md/plan.md/tasks.md directly** — ALWAYS delegate via Skill() calls to plugin agents
|
|
263
263
|
2. **Project field is MANDATORY** — Every US MUST have `**Project**:` field
|
|
264
264
|
3. **Use Template Creator CLI** (REQUIRED): `specweave create-increment --id "XXXX-name" --title "Title" --description "Desc" --project "my-app"`
|
|
265
|
-
4. **Agent delegation is the ONLY way** to produce spec.md/plan.md/tasks.md —
|
|
265
|
+
4. **Agent delegation is the ONLY way** to produce spec.md/plan.md/tasks.md — invoke `sw:agents:sw-pm`, `sw:agents:sw-architect`, `sw:agents:sw-planner` via Skill() calls
|
|
266
266
|
5. **Increment naming** — Format: `####-descriptive-kebab-case`
|
|
267
267
|
6. **Multi-repo** — In umbrella projects with `repositories/` folder, create increments in EACH repo's `.specweave/`, not the umbrella root
|
|
268
268
|
|
|
269
269
|
## CRITICAL: Mandatory Agent Delegation
|
|
270
270
|
|
|
271
271
|
**This skill MUST NOT write spec.md, plan.md, or tasks.md directly.**
|
|
272
|
-
Delegate to
|
|
272
|
+
Delegate to plugin agents via Skill() calls.
|
|
273
273
|
|
|
274
|
-
**You MUST invoke these agents:**
|
|
274
|
+
**You MUST invoke these plugin agents:**
|
|
275
275
|
|
|
276
|
-
| File | Agent | Invocation |
|
|
277
|
-
|
|
278
|
-
| spec.md | sw-pm | `
|
|
279
|
-
| plan.md | sw-architect | `
|
|
280
|
-
| tasks.md | sw-planner | `
|
|
276
|
+
| File | Agent Skill | Invocation |
|
|
277
|
+
|------|-------------|------------|
|
|
278
|
+
| spec.md | sw:agents:sw-pm | `Skill({ skill: "sw:agents:sw-pm", args: "Write spec for increment XXXX-name: <description>. Increment path: <path>" })` |
|
|
279
|
+
| plan.md | sw:agents:sw-architect | `Skill({ skill: "sw:agents:sw-architect", args: "Design architecture for increment XXXX-name. Read spec.md at <path>/spec.md" })` |
|
|
280
|
+
| tasks.md | sw:agents:sw-planner | `Skill({ skill: "sw:agents:sw-planner", args: "Generate tasks for increment XXXX-name. Read spec.md at <path>/spec.md and plan.md at <path>/plan.md" })` |
|
|
281
281
|
|
|
282
282
|
**DO NOT:**
|
|
283
283
|
- Write user stories, architecture, or tasks inline
|
|
284
284
|
- Copy/paste spec content into Write() calls
|
|
285
285
|
- "Summarize" what an agent would produce
|
|
286
|
-
- Skip any of the 3
|
|
286
|
+
- Skip any of the 3 Skill() calls
|
|
287
287
|
|
|
288
288
|
## Step 3a: Deep Interview Mode (if enabled)
|
|
289
289
|
|
|
@@ -293,7 +293,7 @@ interview state file can reference the real increment ID.
|
|
|
293
293
|
**If deep interview is enabled, delegate to PM agent:**
|
|
294
294
|
|
|
295
295
|
```typescript
|
|
296
|
-
|
|
296
|
+
Skill({ skill: "sw:agents:sw-pm", args: "Deep interview for increment XXXX-name: <user description>. Increment path: <path>" })
|
|
297
297
|
```
|
|
298
298
|
|
|
299
299
|
The PM agent will:
|
|
@@ -305,30 +305,23 @@ The PM agent will:
|
|
|
305
305
|
**After PM agent returns**, read the interview state file to confirm all categories are covered
|
|
306
306
|
before proceeding to spec.md creation (especially when `enforcement: "strict"`).
|
|
307
307
|
|
|
308
|
-
## Step 4: Delegation (MANDATORY - Agent Based)
|
|
308
|
+
## Step 4: Delegation (MANDATORY - Plugin Agent Based)
|
|
309
309
|
|
|
310
|
-
**After increment folder + metadata.json are created, you MUST invoke all 3 agents sequentially.**
|
|
311
|
-
|
|
312
|
-
Resolve the plugin root path first:
|
|
313
|
-
```bash
|
|
314
|
-
PLUGIN_ROOT=$(find . -path "*/plugins/specweave/agents/sw-pm.md" -type f 2>/dev/null | head -1 | sed 's|/agents/sw-pm.md||')
|
|
315
|
-
# Fallback: check node_modules
|
|
316
|
-
[ -z "$PLUGIN_ROOT" ] && PLUGIN_ROOT=$(find node_modules -path "*/plugins/specweave/agents/sw-pm.md" -type f 2>/dev/null | head -1 | sed 's|/agents/sw-pm.md||')
|
|
317
|
-
```
|
|
310
|
+
**After increment folder + metadata.json are created, you MUST invoke all 3 plugin agents sequentially.**
|
|
318
311
|
|
|
319
312
|
### 4a. Invoke PM Agent for spec.md (REQUIRED)
|
|
320
313
|
```typescript
|
|
321
|
-
|
|
314
|
+
Skill({ skill: "sw:agents:sw-pm", args: "Write spec for increment XXXX-name: <user's feature description>. Increment path: .specweave/increments/XXXX-name/" })
|
|
322
315
|
```
|
|
323
316
|
|
|
324
317
|
### 4b. Invoke Architect Agent for plan.md (REQUIRED)
|
|
325
318
|
```typescript
|
|
326
|
-
|
|
319
|
+
Skill({ skill: "sw:agents:sw-architect", args: "Design architecture for increment XXXX-name. Read spec.md at .specweave/increments/XXXX-name/spec.md. ADR directory: .specweave/docs/internal/architecture/adr/" })
|
|
327
320
|
```
|
|
328
321
|
|
|
329
322
|
### 4c. Invoke Planner Agent for tasks.md (REQUIRED)
|
|
330
323
|
```typescript
|
|
331
|
-
|
|
324
|
+
Skill({ skill: "sw:agents:sw-planner", args: "Generate tasks for increment XXXX-name. Read spec.md at .specweave/increments/XXXX-name/spec.md and plan.md at .specweave/increments/XXXX-name/plan.md" })
|
|
332
325
|
```
|
|
333
326
|
|
|
334
327
|
**Order matters**: PM first (spec.md) -> Architect second (plan.md) -> Planner last (tasks.md).
|
|
@@ -316,6 +316,24 @@ Plan review MUST NOT block other agents. Review plans as they arrive — agents
|
|
|
316
316
|
|
|
317
317
|
For very large features, the team lead MAY split work into multiple increments per domain for better tracking and independent closure. Decide this during initial analysis (Step 1), before spawning agents.
|
|
318
318
|
|
|
319
|
+
### Task Cap Per Agent (CRITICAL — Context Overflow Prevention)
|
|
320
|
+
|
|
321
|
+
**Maximum 15 tasks per agent.** Agents with more tasks accumulate too much context in auto-mode, leading to extended thinking loops and stuck agents.
|
|
322
|
+
|
|
323
|
+
When distributing tasks from the master spec:
|
|
324
|
+
1. Count tasks per domain
|
|
325
|
+
2. If a domain has >15 tasks: **split into 2 agents** (e.g., `jira-agent-a`, `jira-agent-b`) with non-overlapping task ranges
|
|
326
|
+
3. If splitting isn't natural, group tasks into phases and create 2 increments per domain
|
|
327
|
+
|
|
328
|
+
```
|
|
329
|
+
Domain tasks analysis:
|
|
330
|
+
Frontend: 12 tasks -> 1 agent (OK)
|
|
331
|
+
Backend: 8 tasks -> 1 agent (OK)
|
|
332
|
+
JIRA: 23 tasks -> SPLIT into 2 agents (tasks 1-12, tasks 13-23)
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
**Why**: Each auto-mode iteration adds context (spec reads, edits, test outputs). At 20+ tasks, accumulated context causes the model to enter extended thinking (30+ min) and effectively hang. The 15-task cap keeps agents within a safe context budget.
|
|
336
|
+
|
|
319
337
|
---
|
|
320
338
|
|
|
321
339
|
## 4. Agent Spawn Prompt Templates
|
|
@@ -494,36 +512,38 @@ Task({
|
|
|
494
512
|
|
|
495
513
|
## 8. Quality Gates
|
|
496
514
|
|
|
497
|
-
|
|
515
|
+
Quality gates are split: agents handle tests, team-lead handles closure (grill, done, judge-llm). This prevents context overflow in agents from loading 4+ additional skill definitions during closure.
|
|
498
516
|
|
|
499
|
-
### Per-Agent Quality Gate
|
|
517
|
+
### Per-Agent Quality Gate (Lightweight)
|
|
500
518
|
|
|
501
519
|
```
|
|
502
520
|
Agent Workflow:
|
|
503
|
-
1. Execute all assigned tasks
|
|
521
|
+
1. Execute all assigned tasks via /sw:auto --simple
|
|
504
522
|
2. Run all tests for owned code (unit + integration + E2E)
|
|
505
523
|
3. Run linter/type-check for owned code
|
|
506
|
-
4.
|
|
507
|
-
5.
|
|
508
|
-
6.
|
|
509
|
-
7.
|
|
510
|
-
8. Signal COMPLETION via SendMessage
|
|
524
|
+
4. If tests fail -> fix issues and repeat from step 2
|
|
525
|
+
5. Do NOT signal completion until all tests pass
|
|
526
|
+
6. Signal COMPLETION via SendMessage (include task count, test results summary)
|
|
527
|
+
7. Do NOT run /sw:grill or /sw:done — team-lead handles closure centrally
|
|
511
528
|
```
|
|
512
529
|
|
|
513
|
-
|
|
530
|
+
**Why agents don't run /sw:done**: The /sw:done skill invokes 4 sub-skills (grill, judge-llm, sync-docs, qa), each loading a full SKILL.md. After 15+ tasks of auto-mode context, this pushes agents into extended thinking (30+ min hangs). Centralizing closure on the team-lead (which has a cleaner context) avoids this.
|
|
514
531
|
|
|
515
|
-
|
|
532
|
+
### Orchestrator Quality Gate (Centralized Closure)
|
|
533
|
+
|
|
534
|
+
After all agents complete, the team-lead runs closure **centrally** for each increment:
|
|
516
535
|
|
|
517
536
|
```
|
|
518
537
|
Orchestrator Final Check:
|
|
519
538
|
1. All agents signaled COMPLETION
|
|
520
539
|
2. No unresolved BLOCKING_ISSUE messages
|
|
521
540
|
3. Run full test suite (all domains combined)
|
|
522
|
-
4.
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
541
|
+
4. For EACH increment in dependency order:
|
|
542
|
+
a. Run /sw:grill on the increment
|
|
543
|
+
b. Run /sw:done --auto <id>
|
|
544
|
+
c. If /sw:done fails, report the failure and continue with remaining increments
|
|
545
|
+
5. If all pass -> /sw:team-merge
|
|
546
|
+
6. If failures -> identify owning agent, send fix request via SendMessage
|
|
527
547
|
```
|
|
528
548
|
|
|
529
549
|
### Grill Checklist per Domain
|
|
@@ -539,6 +559,36 @@ Orchestrator Final Check:
|
|
|
539
559
|
|
|
540
560
|
---
|
|
541
561
|
|
|
562
|
+
## 8b. Agent Timeout and Stuck Detection
|
|
563
|
+
|
|
564
|
+
Agents can get stuck in extended thinking if their context overflows. The team-lead MUST monitor for stuck agents.
|
|
565
|
+
|
|
566
|
+
### Timeout Rules
|
|
567
|
+
|
|
568
|
+
| Condition | Action |
|
|
569
|
+
|-----------|--------|
|
|
570
|
+
| Agent idle >20 min after last message | Send `STATUS_CHECK` message to agent |
|
|
571
|
+
| No response to STATUS_CHECK within 5 min | Declare agent stuck |
|
|
572
|
+
| Agent stuck | Log warning, proceed with other agents, handle stuck agent's increment manually in team-merge |
|
|
573
|
+
| All agents stuck | STOP team, report to user |
|
|
574
|
+
|
|
575
|
+
### Stuck Agent Recovery
|
|
576
|
+
|
|
577
|
+
When an agent is declared stuck:
|
|
578
|
+
1. Do NOT wait for it — proceed with closure of other agents' increments
|
|
579
|
+
2. Note the stuck agent's increment ID and last known task progress
|
|
580
|
+
3. During /sw:team-merge, the stuck agent's increment is left open for manual completion
|
|
581
|
+
4. Send shutdown_request to the stuck agent to free resources
|
|
582
|
+
|
|
583
|
+
### Preventing Stuck Agents
|
|
584
|
+
|
|
585
|
+
- Enforce the 15-task cap (Section 3b)
|
|
586
|
+
- Agents use `--simple` flag in auto-mode (reduces context per iteration)
|
|
587
|
+
- Agents do NOT run /sw:done (team-lead handles closure centrally)
|
|
588
|
+
- If an agent's task count exceeds 15 despite the cap, the team-lead should split it before spawning
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
542
592
|
## 9. Workflow Summary
|
|
543
593
|
|
|
544
594
|
```
|
|
@@ -556,9 +606,10 @@ Orchestrator Final Check:
|
|
|
556
606
|
│ │ └── Wait for CONTRACT_READY after approval
|
|
557
607
|
│ └── Phase 2: Spawn backend + frontend + testing
|
|
558
608
|
│ └── Receive PLAN_READY, review & approve via SendMessage
|
|
559
|
-
├── Step 5: Monitor progress via SendMessage
|
|
560
|
-
├── Step 6:
|
|
561
|
-
|
|
609
|
+
├── Step 5: Monitor progress via SendMessage (timeout: 20min idle → STATUS_CHECK)
|
|
610
|
+
├── Step 6: Agents signal COMPLETION (tests pass, no /sw:grill or /sw:done on agents)
|
|
611
|
+
├── Step 7: Team-lead runs /sw:grill + /sw:done --auto per increment (centralized closure)
|
|
612
|
+
└── Step 8: Merge and close (/sw:team-merge)
|
|
562
613
|
```
|
|
563
614
|
|
|
564
615
|
**IMPORTANT**: The intended entry point is: `/sw:increment` → `/sw:do` (detects 3+ domains) → `/sw:team-lead`.
|
|
@@ -596,6 +647,8 @@ To execute, run without --dry-run.
|
|
|
596
647
|
| **Agent stuck on trust folder** | Agent spawned without `bypassPermissions` | ALWAYS use `mode: "bypassPermissions"` — NEVER `mode: "plan"`. Trust prompts require interactive input agents cannot provide |
|
|
597
648
|
| **Agents editing same files** | Overlapping file ownership patterns | Review ownership map; reassign conflicting files to a single owner; use `--dry-run` to validate before launch |
|
|
598
649
|
| **Token cost too high** | Too many agents or overly large prompts | Reduce `--max-agents`; use `--domains` to limit scope; split feature into smaller increments |
|
|
650
|
+
| **Agent stuck in extended thinking** | Too many tasks (>15) causing context overflow | Enforce 15-task cap per agent; split large domains into 2 agents; agents use `--simple` mode |
|
|
651
|
+
| **Agent hung on /sw:done** | Closure loads 4+ skill definitions into already-full context | Agents should NOT run /sw:done — team-lead handles closure centrally |
|
|
599
652
|
| **Contract agent takes too long** | Large schema or complex type system | Set a timeout in the agent prompt; if stuck >15 min, check agent output and consider splitting the contract work |
|
|
600
653
|
| **Phase 2 starts before Phase 1 finishes** | CONTRACT_READY not received yet | Ensure upstream agents send CONTRACT_READY via SendMessage before team-lead spawns downstream |
|
|
601
654
|
| **Agent fails mid-task** | Build error, test failure, or dependency issue | Send message to agent to fix; restart the agent with `/sw:auto` on its increment |
|
|
@@ -42,13 +42,12 @@ WORKFLOW:
|
|
|
42
42
|
content: "PLAN_READY: [increment path]. [summary of planned tasks and files].",
|
|
43
43
|
summary: "Backend plan ready for review" })
|
|
44
44
|
9. WAIT for "PLAN_APPROVED" message. If "PLAN_REJECTED", revise and re-submit.
|
|
45
|
-
10. Execute tasks autonomously:
|
|
45
|
+
10. Execute tasks autonomously: /sw:auto --simple (minimal context mode to prevent context overflow)
|
|
46
46
|
11. Generate or update OpenAPI spec if API routes change
|
|
47
47
|
12. Run all tests for owned code (unit + integration): npm test
|
|
48
|
-
13.
|
|
49
|
-
14.
|
|
50
|
-
15.
|
|
51
|
-
16. Signal completion via SendMessage to team-lead
|
|
48
|
+
13. Do NOT signal completion until all tests pass
|
|
49
|
+
14. Signal COMPLETION via SendMessage to team-lead with summary of tasks done and test results
|
|
50
|
+
15. Do NOT run /sw:done or /sw:grill yourself — team-lead handles closure centrally
|
|
52
51
|
|
|
53
52
|
RULES:
|
|
54
53
|
- WRITE only to files you own (listed above)
|
|
@@ -33,13 +33,12 @@ WORKFLOW:
|
|
|
33
33
|
8. WAIT for "PLAN_APPROVED" message. If "PLAN_REJECTED", revise and re-submit.
|
|
34
34
|
9. Generate Prisma migration: npx prisma migrate dev --name <migration-name>
|
|
35
35
|
10. Write seed data if needed
|
|
36
|
-
11. Execute tasks autonomously:
|
|
36
|
+
11. Execute tasks autonomously: /sw:auto --simple (minimal context mode to prevent context overflow)
|
|
37
37
|
12. Run all tests for owned code (migration, seed): npm test
|
|
38
|
-
13.
|
|
39
|
-
14.
|
|
40
|
-
15. Signal
|
|
41
|
-
16.
|
|
42
|
-
17. Signal completion via SendMessage to team-lead
|
|
38
|
+
13. Do NOT signal completion until all tests pass
|
|
39
|
+
14. Signal CONTRACT_READY with schema details via SendMessage to team-lead
|
|
40
|
+
15. Signal COMPLETION via SendMessage to team-lead with summary of tasks done and test results
|
|
41
|
+
16. Do NOT run /sw:done or /sw:grill yourself — team-lead handles closure centrally
|
|
43
42
|
|
|
44
43
|
RULES:
|
|
45
44
|
- WRITE only to files you own (listed above)
|
|
@@ -44,12 +44,11 @@ WORKFLOW:
|
|
|
44
44
|
content: "PLAN_READY: [increment path]. [summary of planned tasks and files].",
|
|
45
45
|
summary: "Frontend plan ready for review" })
|
|
46
46
|
9. WAIT for "PLAN_APPROVED" message. If "PLAN_REJECTED", revise and re-submit.
|
|
47
|
-
10. Execute tasks autonomously:
|
|
47
|
+
10. Execute tasks autonomously: /sw:auto --simple (minimal context mode to prevent context overflow)
|
|
48
48
|
11. Run all tests for owned code (unit + integration): npm test
|
|
49
|
-
12.
|
|
50
|
-
13.
|
|
51
|
-
14.
|
|
52
|
-
15. Signal completion via SendMessage to team-lead
|
|
49
|
+
12. Do NOT signal completion until all tests pass
|
|
50
|
+
13. Signal COMPLETION via SendMessage to team-lead with summary of tasks done and test results
|
|
51
|
+
14. Do NOT run /sw:done or /sw:grill yourself — team-lead handles closure centrally
|
|
53
52
|
|
|
54
53
|
RULES:
|
|
55
54
|
- WRITE only to files you own (listed above)
|
|
@@ -34,13 +34,12 @@ WORKFLOW:
|
|
|
34
34
|
8. WAIT for "PLAN_APPROVED" message. If "PLAN_REJECTED", revise and re-submit.
|
|
35
35
|
9. Implement auth/authz middleware if needed
|
|
36
36
|
10. Add input validation and sanitization
|
|
37
|
-
11. Execute tasks autonomously:
|
|
37
|
+
11. Execute tasks autonomously: /sw:auto --simple (minimal context mode to prevent context overflow)
|
|
38
38
|
12. Run all tests for owned code (security tests): npm test
|
|
39
39
|
13. Run security audit tools (npm audit, dependency check)
|
|
40
|
-
14.
|
|
41
|
-
15.
|
|
42
|
-
16.
|
|
43
|
-
17. Signal completion with security findings summary via SendMessage to team-lead
|
|
40
|
+
14. Do NOT signal completion until all tests pass
|
|
41
|
+
15. Signal COMPLETION via SendMessage to team-lead with summary of tasks done, test results, and security findings
|
|
42
|
+
16. Do NOT run /sw:done or /sw:grill yourself — team-lead handles closure centrally
|
|
44
43
|
|
|
45
44
|
RULES:
|
|
46
45
|
- WRITE only to files you own (listed above)
|
|
@@ -40,12 +40,11 @@ WORKFLOW:
|
|
|
40
40
|
9. Write unit tests for new services/components
|
|
41
41
|
10. Write integration tests for API endpoints
|
|
42
42
|
11. Write E2E tests for user journeys
|
|
43
|
-
12. Execute tasks autonomously:
|
|
43
|
+
12. Execute tasks autonomously: /sw:auto --simple (minimal context mode to prevent context overflow)
|
|
44
44
|
13. Run all tests (unit + integration + E2E): npm test && npx playwright test
|
|
45
45
|
14. Do NOT signal completion until all tests pass -- if tests fail, fix and repeat
|
|
46
|
-
15.
|
|
47
|
-
16.
|
|
48
|
-
17. Signal completion via SendMessage to team-lead
|
|
46
|
+
15. Signal COMPLETION via SendMessage to team-lead with summary of tasks done and test results
|
|
47
|
+
16. Do NOT run /sw:done or /sw:grill yourself — team-lead handles closure centrally
|
|
49
48
|
|
|
50
49
|
RULES:
|
|
51
50
|
- WRITE only to test files (listed above)
|
|
@@ -26,19 +26,22 @@ async function postACProgressComments(incrementId, affectedUSIds, specPath, opti
|
|
|
26
26
|
continue;
|
|
27
27
|
}
|
|
28
28
|
const acStates = parseACStatesForUS(content, usId);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
const allComplete = acStates.length > 0 && acStates.every((ac) => ac.completed);
|
|
30
|
+
if (!allComplete) {
|
|
31
|
+
const commentBody = buildProgressCommentForUS(incrementId, usId, acStates);
|
|
32
|
+
const execResult = await execFileNoThrow(
|
|
33
|
+
"gh",
|
|
34
|
+
["issue", "comment", String(link.issueNumber), "--body", commentBody, "-R", repoSlug],
|
|
35
|
+
env ? { env } : {}
|
|
36
|
+
);
|
|
37
|
+
if (execResult.success) {
|
|
38
|
+
result.posted.push({ usId, issueNumber: link.issueNumber });
|
|
39
|
+
} else {
|
|
40
|
+
result.errors.push({
|
|
41
|
+
usId,
|
|
42
|
+
error: execResult.stderr || "Unknown error posting comment"
|
|
43
|
+
});
|
|
44
|
+
}
|
|
42
45
|
}
|
|
43
46
|
if (acStates.length > 0) {
|
|
44
47
|
try {
|
|
@@ -80,21 +80,29 @@ export async function postACProgressComments(
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
const acStates = parseACStatesForUS(content, usId);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
83
|
+
|
|
84
|
+
// Skip progress comment when all ACs are complete — the auto-closer will
|
|
85
|
+
// post its own "All acceptance criteria completed" comment instead,
|
|
86
|
+
// preventing duplicate comments on the same issue.
|
|
87
|
+
const allComplete = acStates.length > 0 && acStates.every(ac => ac.completed);
|
|
88
|
+
|
|
89
|
+
if (!allComplete) {
|
|
90
|
+
const commentBody = buildProgressCommentForUS(incrementId, usId, acStates);
|
|
91
|
+
|
|
92
|
+
const execResult = await execFileNoThrow(
|
|
93
|
+
'gh',
|
|
94
|
+
['issue', 'comment', String(link.issueNumber), '--body', commentBody, '-R', repoSlug],
|
|
95
|
+
env ? { env } : {},
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
if (execResult.success) {
|
|
99
|
+
result.posted.push({ usId, issueNumber: link.issueNumber });
|
|
100
|
+
} else {
|
|
101
|
+
result.errors.push({
|
|
102
|
+
usId,
|
|
103
|
+
error: execResult.stderr || 'Unknown error posting comment',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
98
106
|
}
|
|
99
107
|
|
|
100
108
|
// Patch AC checkboxes directly in the issue body using the known issue number
|
|
@@ -38,13 +38,17 @@
|
|
|
38
38
|
<!-- SECTION:orchestration required -->
|
|
39
39
|
## Workflow Orchestration
|
|
40
40
|
|
|
41
|
-
### 1. Plan Before Code
|
|
41
|
+
### 1. Plan Before Code (MANDATORY)
|
|
42
42
|
|
|
43
|
-
BEFORE implementing ANY
|
|
43
|
+
BEFORE implementing ANY task — create an increment FIRST:
|
|
44
44
|
1. Create increment: spec.md (WHAT/WHY) + plan.md (HOW) + tasks.md (checklist)
|
|
45
45
|
2. Get user approval before implementing
|
|
46
46
|
3. If something goes sideways → STOP and re-plan
|
|
47
47
|
|
|
48
|
+
**No exceptions for "simple" tasks** — "simple", "quick", "basic" still require an increment. The only exception: user explicitly says "don't create an increment."
|
|
49
|
+
|
|
50
|
+
**Setup/config actions are NOT implementation** — "connect github", "setup sync", "import issues" → use the matching setup command directly, not the increment workflow.
|
|
51
|
+
|
|
48
52
|
See **Task Format** and **User Story Format** sections for templates.
|
|
49
53
|
|
|
50
54
|
### 2. Verify Before Done
|
|
@@ -84,6 +88,7 @@ Good: npm run build → node script.js → Success
|
|
|
84
88
|
- Avoid over-engineering and premature optimization
|
|
85
89
|
- One function = one responsibility
|
|
86
90
|
- If you can delete code and tests still pass, delete it
|
|
91
|
+
- **Match tooling to complexity** — simple tasks (calculator, todo) need 0 domain plugins and vanilla code. Don't load heavyweight frameworks, design systems, or i18n for trivial features
|
|
87
92
|
|
|
88
93
|
### No Laziness
|
|
89
94
|
- Don't leave TODO comments for "later"
|
|
@@ -139,6 +144,8 @@ Good: npm run build → node script.js → Success
|
|
|
139
144
|
| `/sw-github:sync 0001` | Sync increment to GitHub issue |
|
|
140
145
|
| `/sw-jira:sync 0001` | Sync to Jira |
|
|
141
146
|
| `/sw-ado:sync 0001` | Sync to Azure DevOps |
|
|
147
|
+
| `/sw:sync-setup` | Connect GitHub/Jira/ADO integration |
|
|
148
|
+
| `/sw:import` | Import issues from external tools |
|
|
142
149
|
<!-- /SECTION -->
|
|
143
150
|
|
|
144
151
|
---
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
|---|---|
|
|
10
10
|
| **"RESTART REQUIRED"** | ALL tools blocked → STOP, wait for restart |
|
|
11
11
|
| **"SKILL FIRST"** | Call shown skill FIRST → chain domain skills → implement |
|
|
12
|
+
|
|
13
|
+
**"SKILL FIRST" is mandatory** — "simple", "quick", "basic" are NOT opt-out phrases. The ONLY exception: user explicitly says "don't create an increment" or similar. Perceived simplicity never overrides hook instructions.
|
|
14
|
+
|
|
15
|
+
**Setup actions are NOT implementation** — "connect github", "setup sync", "import issues" → route to the matching setup skill (`sw:sync-setup`, `sw:import`, `sw:progress-sync`), NOT `/sw:increment`.
|
|
12
16
|
<!-- /SECTION -->
|
|
13
17
|
|
|
14
18
|
<!-- SECTION:header required -->
|
|
@@ -28,6 +32,12 @@
|
|
|
28
32
|
2. **Implementation**: Invoke domain skill per tech (React → `frontend:architect`, .NET → `backend:dotnet`, Stripe → `payments:payment-core`, etc.)
|
|
29
33
|
3. **Closure**: `sw:grill` runs automatically via `/sw:done`
|
|
30
34
|
|
|
35
|
+
**Complexity gate** — before chaining domain skills:
|
|
36
|
+
1. **Tech stack specified?** → Chain ONLY the matching skill. If unspecified, ASK or default to minimal (vanilla JS/HTML, simple Express)
|
|
37
|
+
2. **Complexity triage** → Simple (calculator, todo) = 0 domain plugins. Medium (auth, dashboard) = 1-2. Complex (SaaS) = full chain
|
|
38
|
+
3. **Sanity check** → Would a senior engineer use this tool for this task? If obviously not, don't invoke it
|
|
39
|
+
4. **Never** load all available plugins for a domain — pick ONE per domain based on the actual tech stack
|
|
40
|
+
|
|
31
41
|
If auto-activation fails, invoke explicitly: `Skill({ skill: "name" })`
|
|
32
42
|
<!-- /SECTION -->
|
|
33
43
|
|
|
@@ -55,6 +65,10 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
|
|
|
55
65
|
**Signals** (5+ = auto-route): Project name | Features list (3+) | Tech stack | Timeline/MVP | Problem statement | Business model
|
|
56
66
|
|
|
57
67
|
**Opt-out phrases**: "Just brainstorm first" | "Don't plan yet" | "Quick discussion" | "Let's explore ideas"
|
|
68
|
+
|
|
69
|
+
**NOT opt-out phrases**: "simple" | "quick" | "basic" | "small" — these still require `/sw:increment`
|
|
70
|
+
|
|
71
|
+
**Setup/config requests bypass auto-detection** → route directly to the matching skill (e.g., `sw:sync-setup`, `sw:import`)
|
|
58
72
|
<!-- /SECTION -->
|
|
59
73
|
|
|
60
74
|
<!-- SECTION:metarule required -->
|
|
@@ -123,6 +137,8 @@ Good: npm run build → node script.js → Success
|
|
|
123
137
|
| `/sw:done` | Close |
|
|
124
138
|
| `/sw:progress-sync` | Sync progress to all external tools |
|
|
125
139
|
| `/sw-github:push` | Push progress to GitHub |
|
|
140
|
+
| `/sw:sync-setup` | Connect GitHub/Jira/ADO integration |
|
|
141
|
+
| `/sw:import` | Import issues from external tools |
|
|
126
142
|
|
|
127
143
|
**Natural language**: "Let's build X" → `/sw:increment` | "What's status?" → `/sw:progress` | "We're done" → `/sw:done` | "Ship while sleeping" → `/sw:auto`
|
|
128
144
|
|
|
@@ -251,7 +267,7 @@ Plugins load automatically. Manual: `vskill install --repo anton-abyzov/vskill -
|
|
|
251
267
|
<!-- SECTION:principles -->
|
|
252
268
|
## Principles
|
|
253
269
|
|
|
254
|
-
1. **Spec-first**: `/sw:increment` before coding
|
|
270
|
+
1. **Spec-first**: `/sw:increment` before coding — mandatory for ALL implementation requests, no exceptions unless user explicitly opts out
|
|
255
271
|
2. **Docs = truth**: Specs guide implementation
|
|
256
272
|
3. **Simplicity First**: Minimal code, minimal impact
|
|
257
273
|
4. **No Laziness**: Root causes, senior standards
|