@lbruton/specflow 3.5.3 → 3.5.5

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.
Files changed (41) hide show
  1. package/dist/core/__tests__/template-generator.test.js +36 -1
  2. package/dist/core/__tests__/template-generator.test.js.map +1 -1
  3. package/dist/core/archive-service.d.ts.map +1 -1
  4. package/dist/core/archive-service.js +29 -12
  5. package/dist/core/archive-service.js.map +1 -1
  6. package/dist/core/template-generator.d.ts.map +1 -1
  7. package/dist/core/template-generator.js +116 -44
  8. package/dist/core/template-generator.js.map +1 -1
  9. package/dist/dashboard/approval-storage.d.ts.map +1 -1
  10. package/dist/dashboard/approval-storage.js +4 -2
  11. package/dist/dashboard/approval-storage.js.map +1 -1
  12. package/dist/dashboard/job-scheduler.js +2 -2
  13. package/dist/dashboard/job-scheduler.js.map +1 -1
  14. package/dist/dashboard/multi-server.d.ts.map +1 -1
  15. package/dist/dashboard/multi-server.js +23 -18
  16. package/dist/dashboard/multi-server.js.map +1 -1
  17. package/dist/dashboard/parser.d.ts.map +1 -1
  18. package/dist/dashboard/parser.js +8 -7
  19. package/dist/dashboard/parser.js.map +1 -1
  20. package/dist/dashboard/project-manager.d.ts.map +1 -1
  21. package/dist/dashboard/project-manager.js +12 -1
  22. package/dist/dashboard/project-manager.js.map +1 -1
  23. package/dist/dashboard/watcher.d.ts.map +1 -1
  24. package/dist/dashboard/watcher.js +5 -4
  25. package/dist/dashboard/watcher.js.map +1 -1
  26. package/dist/markdown/templates/code-quality-reviewer-template.md +2 -0
  27. package/dist/markdown/templates/implementer-prompt-template.md +11 -0
  28. package/dist/markdown/templates/spec-reviewer-template.md +32 -0
  29. package/dist/markdown/templates/tasks-template.md +124 -138
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +94 -40
  32. package/dist/server.js.map +1 -1
  33. package/dist/tools/approvals.js +24 -3
  34. package/dist/tools/approvals.js.map +1 -1
  35. package/dist/tools/spec-workflow-guide.d.ts.map +1 -1
  36. package/dist/tools/spec-workflow-guide.js +64 -62
  37. package/dist/tools/spec-workflow-guide.js.map +1 -1
  38. package/dist/tools/steering-guide.d.ts.map +1 -1
  39. package/dist/tools/steering-guide.js +28 -26
  40. package/dist/tools/steering-guide.js.map +1 -1
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/dashboard/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/dashboard/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-manager.d.ts","sourceRoot":"","sources":["../../src/dashboard/project-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAyC,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAIrG,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,eAAe,CAAC,CAAqB;;IAO7C;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;YACW,wBAAwB;IAUtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;;OAGG;YACW,gBAAgB;IAuC9B;;OAEG;YACW,UAAU;IAgExB;;OAEG;YACW,aAAa;IAuB3B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIzD;;OAEG;IACH,cAAc,IAAI,cAAc,EAAE;IAIlC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IA0CH;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B5D;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB5B"}
1
+ {"version":3,"file":"project-manager.d.ts","sourceRoot":"","sources":["../../src/dashboard/project-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAyC,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAKrG,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,eAAe,CAAC,CAAqB;;IAO7C;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;YACW,wBAAwB;IAUtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;;OAGG;YACW,gBAAgB;IAuC9B;;OAEG;YACW,UAAU;IA0ExB;;OAEG;YACW,aAAa;IAuB3B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIzD;;OAEG;IACH,cAAc,IAAI,cAAc,EAAE;IAIlC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IA0CH;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B5D;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB5B"}
@@ -7,6 +7,7 @@ import { SpecArchiveService } from '../core/archive-service.js';
7
7
  import { ProjectRegistry } from '../core/project-registry.js';
8
8
  import { PathUtils } from '../core/path-utils.js';
9
9
  import { resolveGitRoot, resolveGitWorkspaceRoot } from '../core/git-utils.js';
10
+ import { loadConfig } from '../core/config-loader.js';
10
11
  export class ProjectManager extends EventEmitter {
11
12
  registry;
12
13
  projects = new Map();
@@ -116,7 +117,17 @@ export class ProjectManager extends EventEmitter {
116
117
  ? entry.worktrees[0]
117
118
  : entry.projectPath;
118
119
  const translatedWorkspacePath = PathUtils.translatePath(workspacePath);
119
- const translatedWorkflowRootPath = PathUtils.translatePath(entry.workflowRootPath);
120
+ let translatedWorkflowRootPath = PathUtils.translatePath(entry.workflowRootPath);
121
+ // Load DocVault config if available — use the DocVault specflow root instead of git root
122
+ // This ensures the dashboard reads specs/approvals/templates from DocVault, matching the MCP server
123
+ try {
124
+ const config = await loadConfig(translatedWorkspacePath);
125
+ translatedWorkflowRootPath = PathUtils.translatePath(config.specflowRoot);
126
+ console.error(`DocVault config loaded for ${entry.projectName}: ${config.specflowRoot}`);
127
+ }
128
+ catch {
129
+ // No DocVault config — use legacy workflowRootPath (git root / .specflow)
130
+ }
120
131
  const parser = new SpecParser(translatedWorkflowRootPath);
121
132
  const watcher = new SpecWatcher(translatedWorkflowRootPath, parser);
122
133
  const approvalStorage = new ApprovalStorage(translatedWorkflowRootPath, {
@@ -1 +1 @@
1
- {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../../src/dashboard/project-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAyC,MAAM,6BAA6B,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAiB/E,MAAM,OAAO,cAAe,SAAQ,YAAY;IACtC,QAAQ,CAAkB;IAC1B,QAAQ,GAAgC,IAAI,GAAG,EAAE,CAAC;IAClD,eAAe,CAAsB;IAE7C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,sEAAsE;QACtE,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAE3C,kCAAkC;QAClC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEtC,kCAAkC;QAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,0CAA0C;QAC1C,4EAA4E;QAC5E,qEAAqE;IACvE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAErD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAErD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE;YAClD,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;YAChB,sBAAsB,EAAE,IAAI;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,gDAAgD;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAEjD,yDAAyD;YACzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,wCAAwC;oBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACnD,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;wBACxC,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC;wBAChD,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;wBAClD,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;wBACtE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBACnE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;wBAC1C,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,KAA2B;QAClD,IAAI,CAAC;YACH,gFAAgF;YAChF,0FAA0F;YAC1F,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;YACtB,MAAM,uBAAuB,GAAG,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,0BAA0B,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAEnF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,0BAA0B,EAAE;gBACtE,YAAY,EAAE,KAAK,CAAC,gBAAgB;gBACpC,kBAAkB,EAAE,uBAAuB;aAC5C,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;YAE1E,iBAAiB;YACjB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;YAE9B,gCAAgC;YAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,eAAe,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBACzC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAmB;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,0BAA0B;gBACvC,aAAa,EAAE,uBAAuB;gBACtC,mBAAmB,EAAE,KAAK,CAAC,WAAW,EAAE,2CAA2C;gBACnF,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAQ,6BAA6B;gBACrE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAQ,kCAAkC;gBAC1E,MAAM;gBACN,OAAO;gBACP,eAAe;gBACf,cAAc;aACf,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAE1E,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,SAAiB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC;YACH,gBAAgB;YAChB,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAErC,uBAAuB;YACvB,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YACrC,OAAO,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAE7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,WAAW,KAAK,SAAS,GAAG,CAAC,CAAC;YAExE,6BAA6B;YAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QASnB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,6BAA6B;YAC7B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;gBACjE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YAED,iEAAiE;YACjE,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,wEAAwE;wBACxE,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YAED,OAAO;gBACL,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,mBAAmB,EAAG,mCAAmC;gBACxE,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,gBAAgB;gBAChB,WAAW;aACZ,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,MAAM,aAAa,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,qBAAqB;YACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;QAED,0DAA0D;QAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE;YAChF,gBAAgB;SACjB,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,wBAAwB;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,oBAAoB;QACpB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../../src/dashboard/project-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/dashboard/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,GAAG,GAAG,CAAC;CACzB;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAgG;IACtH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;YACW,oBAAoB;YA6BpB,gBAAgB;YA0BhB,gBAAgB;YAmChB,oBAAoB;CAiBnC"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/dashboard/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,GAAG,GAAG,CAAC;CACzB;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAgG;IACtH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;gBAEvB,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;YACW,oBAAoB;YA6BpB,gBAAgB;YA0BhB,gBAAgB;YAmChB,oBAAoB;CAiBnC"}
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import chokidar from 'chokidar';
3
3
  import { stat } from 'fs/promises';
4
- import { PathUtils } from '../core/path-utils.js';
4
+ import { join } from 'path';
5
5
  export class SpecWatcher extends EventEmitter {
6
6
  projectPath;
7
7
  parser;
@@ -15,9 +15,10 @@ export class SpecWatcher extends EventEmitter {
15
15
  this.parser = parser;
16
16
  }
17
17
  async start() {
18
- const workflowRoot = PathUtils.getWorkflowRoot(this.projectPath);
19
- const specsPath = PathUtils.getSpecPath(this.projectPath, '');
20
- const steeringPath = PathUtils.getSteeringPath(this.projectPath);
18
+ // Use direct joins — PathUtils methods rely on a process-level singleton
19
+ // that isn't initialized in the dashboard process.
20
+ const specsPath = join(this.projectPath, 'specs');
21
+ const steeringPath = join(this.projectPath, 'steering');
21
22
  // Watch for changes in specs and steering directories
22
23
  this.watcher = chokidar.watch([
23
24
  `${specsPath}/**/*.md`,
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/dashboard/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/dashboard/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAU5B,MAAM,OAAO,WAAY,SAAQ,YAAY;IACnC,WAAW,CAAS;IACpB,MAAM,CAAa;IACnB,OAAO,CAAsB;IAC7B,cAAc,GAAsF,IAAI,GAAG,EAAE,CAAC;IACrG,WAAW,GAAG,GAAG,CAAC;IAEnC,YAAY,WAAmB,EAAE,MAAkB;QACjD,KAAK,EAAE,CAAC;QACR,+DAA+D;QAC/D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,yEAAyE;QACzE,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAExD,sDAAsD;QACtD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC5B,GAAG,SAAS,UAAU;YACtB,GAAG,YAAY,OAAO;SACvB,EAAE;YACD,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;YAChB,sBAAsB,EAAE,IAAI;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEtF,+CAA+C;QAC/C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,gDAAgD;QAClD,CAAC,CAAC,CAAC;QAEH,gDAAgD;IAClD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,sCAAsC;QACtC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,8DAA8D;YAC9D,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,uBAAuB;QACzB,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,MAAyC,EAAE,QAAgB;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,yEAAyE;QACzE,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAE7G,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAErB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,YAAoB,IAAI;QAC3E,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC,gCAAgC;QAEhE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,aAAa,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,WAAW,EAAE,CAAC;oBACd,IAAI,WAAW,IAAI,oBAAoB,EAAE,CAAC;wBACxC,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,CAAC,CAAC;oBAChB,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,yCAAyC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,gFAAgF;QAChF,OAAO,WAAW,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAyC,EAAE,QAAgB;QACxF,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEpD,+EAA+E;YAC/E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,yEAAyE;oBACzE,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YACpE,iDAAiD;QACnD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAyC,EAAE,QAAgB;QACxF,uFAAuF;QACvF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAEjE,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM;YAAE,OAAO;QAEpE,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE/D,IAAI,QAAQ,GAAsB,IAAI,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAoB;YAC7B,IAAI,EAAE,MAAM;YACZ,MAAM;YACN,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE3B,8DAA8D;QAC9D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGO,KAAK,CAAC,oBAAoB,CAAC,MAAyC,EAAE,QAAgB;QAC5F,4EAA4E;QAC5E,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAEpE,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,UAAmB;YACzB,MAAM;YACN,IAAI,EAAE,QAAQ;YACd,cAAc;SACf,CAAC;QAEF,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -2,6 +2,8 @@
2
2
 
3
3
  You are reviewing code changes for production readiness. Only dispatch this review AFTER spec compliance has passed.
4
4
 
5
+ > **Gate Ordering:** This is Stage 2 of the two-stage review pipeline. Stage 1 (spec compliance review via `spec-reviewer-template.md`) must PASS before this review is dispatched. The implementer must have addressed all STOP checkpoints from the `implementer-prompt-template.md` — TDD gate, test gate, implementation log gate, and requirements verification gate — before this code quality review begins.
6
+
5
7
  ## What Was Implemented
6
8
 
7
9
  {DESCRIPTION}
@@ -28,14 +28,25 @@ If you have questions about:
28
28
  ## Your Job
29
29
 
30
30
  Once you're clear on requirements:
31
+
32
+ **STOP — TDD Gate:** Before writing any implementation code, confirm that failing tests exist for this task's requirements. If no tests exist yet, write them first. Tests MUST fail before you begin implementation. Do NOT proceed until failing tests are confirmed.
33
+
31
34
  1. Implement exactly what the task specifies
32
35
  2. Follow _Leverage fields to use existing code/utilities
33
36
  3. Test your implementation
37
+
38
+ **STOP — Test Gate:** Run the project's full test suite. ALL tests must pass — both new tests and existing tests. Zero regressions allowed. Do NOT proceed until the test suite passes completely.
39
+
34
40
  4. Commit your work
35
41
  5. Self-review (see below)
42
+
43
+ **STOP — Implementation Log Gate:** Confirm you are about to call the `log-implementation` MCP tool with complete artifacts (filesModified, filesCreated, statistics, artifacts including tests with pass/fail counts). Do NOT mark this task complete or report back until log-implementation succeeds.
44
+
36
45
  6. Log implementation using log-implementation tool
37
46
  7. Report back
38
47
 
48
+ **STOP — Requirements Verification Gate:** Before declaring this task done, verify your implementation against every requirement listed in the task's `_Requirements` field. For each acceptance criterion, confirm there is evidence in the code (file:line reference). If ANY criterion lacks evidence, fix it now before reporting.
49
+
39
50
  **While you work:** If you encounter something unexpected or unclear, ask questions.
40
51
  Don't guess or make assumptions.
41
52
 
@@ -42,6 +42,34 @@ The implementer may have been optimistic. You MUST verify everything independent
42
42
  - Did they solve the wrong problem?
43
43
  - Did they implement the right feature the wrong way?
44
44
 
45
+ ## Requirements Verification
46
+
47
+ Read the task's `_Requirements` field to identify which requirements this task implements. Then read those specific requirements and ALL their acceptance criteria from `requirements.md`.
48
+
49
+ For EACH acceptance criterion, read the actual implementation code and find evidence:
50
+
51
+ ### Output Format
52
+
53
+ ```
54
+ ## Requirements Verification
55
+
56
+ ### REQ-X.Y: [requirement title]
57
+ - AC-1: "WHEN [event] THEN [system] SHALL [response]"
58
+ → Evidence: `file.js:45` — `functionName()` handles this case ✓
59
+ - AC-2: "IF [condition] THEN [system] SHALL [response]"
60
+ → [MISSING — no implementation found] ✗
61
+
62
+ ### REQ-X.Z: [requirement title]
63
+ - AC-1: "criterion text"
64
+ → Evidence: `file.js:89` — `otherFunction()` ✓
65
+ ```
66
+
67
+ **CRITICAL:**
68
+ - Read the ACTUAL CODE, not the implementer's report
69
+ - Every acceptance criterion MUST have a file:line reference or be marked MISSING
70
+ - A single MISSING criterion = FAIL
71
+ - Do not accept vague evidence like "it's handled in the service layer" — cite specific file:line
72
+
45
73
  ## Output
46
74
 
47
75
  Verify by reading code, not by trusting the report.
@@ -51,8 +79,12 @@ Verify by reading code, not by trusting the report.
51
79
 
52
80
  ```
53
81
  Spec Compliance: ✅ PASS / ❌ FAIL
82
+ Requirements Coverage: X/Y acceptance criteria verified (✅ FULL / ❌ GAPS)
54
83
 
55
84
  Issues (if any):
56
85
  1. [MISSING/EXTRA/WRONG] — description — file:line
57
86
  2. ...
87
+
88
+ Unmet Acceptance Criteria (if any):
89
+ - REQ-X.Y AC-Z: "criterion" — [why it's missing]
58
90
  ```
@@ -4,7 +4,7 @@
4
4
 
5
5
  - **Issue:** PROJ-XXX
6
6
  - **GitHub PR:** [#NNN](https://github.com/owner/repo/pull/NNN)
7
- - **Spec Path:** `.spec-workflow/specs/{spec-name}/`
7
+ - **Spec Path:** `DocVault/specflow/{{projectName}}/specs/{{spec-name}}/`
8
8
 
9
9
  ## UI Prototype Gate (conditional — include ONLY if design.md declares `Has UI Changes: Yes` AND `Prototype Required: Yes`)
10
10
 
@@ -37,149 +37,135 @@
37
37
 
38
38
  ---
39
39
 
40
- - [ ] 1. Create core interfaces in src/types/feature.ts
41
- - File: src/types/feature.ts
42
- - Define TypeScript interfaces for feature data structures
43
- - Extend existing base interfaces from base.ts
44
- - Purpose: Establish type safety for feature implementation
45
- - _Leverage: src/types/base.ts_
46
- - _Requirements: 1.1_
47
- - _Prompt: Role: TypeScript Developer specializing in type systems and interfaces | Task: Create comprehensive TypeScript interfaces for the feature data structures following requirements 1.1, extending existing base interfaces from src/types/base.ts | Restrictions: Do not modify existing base interfaces, maintain backward compatibility, follow project naming conventions | Success: All interfaces compile without errors, proper inheritance from base types, full type coverage for feature requirements_
48
-
49
- - [ ] 2. Create base model class in src/models/FeatureModel.ts
50
- - File: src/models/FeatureModel.ts
51
- - Implement base model extending BaseModel class
52
- - Add validation methods using existing validation utilities
53
- - Purpose: Provide data layer foundation for feature
54
- - _Leverage: src/models/BaseModel.ts, src/utils/validation.ts_
55
- - _Requirements: 2.1_
56
- - _Prompt: Role: Backend Developer with expertise in Node.js and data modeling | Task: Create a base model class extending BaseModel and implementing validation following requirement 2.1, leveraging existing patterns from src/models/BaseModel.ts and src/utils/validation.ts | Restrictions: Must follow existing model patterns, do not bypass validation utilities, maintain consistent error handling | Success: Model extends BaseModel correctly, validation methods implemented and tested, follows project architecture patterns_
57
-
58
- - [ ] 3. Add specific model methods to FeatureModel.ts
59
- - File: src/models/FeatureModel.ts (continue from task 2)
60
- - Implement create, update, delete methods
61
- - Add relationship handling for foreign keys
62
- - Purpose: Complete model functionality for CRUD operations
63
- - _Leverage: src/models/BaseModel.ts_
64
- - _Requirements: 2.2, 2.3_
65
- - _Prompt: Role: Backend Developer with expertise in ORM and database operations | Task: Implement CRUD methods and relationship handling in FeatureModel.ts following requirements 2.2 and 2.3, extending patterns from src/models/BaseModel.ts | Restrictions: Must maintain transaction integrity, follow existing relationship patterns, do not duplicate base model functionality | Success: All CRUD operations work correctly, relationships are properly handled, database operations are atomic and efficient_
66
-
67
- - [ ] 4. Create model unit tests in tests/models/FeatureModel.test.ts
68
- - File: tests/models/FeatureModel.test.ts
69
- - Write tests for model validation and CRUD methods
70
- - Use existing test utilities and fixtures
71
- - Purpose: Ensure model reliability and catch regressions
72
- - _Leverage: tests/helpers/testUtils.ts, tests/fixtures/data.ts_
73
- - _Requirements: 2.1, 2.2_
74
- - _Prompt: Role: QA Engineer with expertise in unit testing and Jest/Mocha frameworks | Task: Create comprehensive unit tests for FeatureModel validation and CRUD methods covering requirements 2.1 and 2.2, using existing test utilities from tests/helpers/testUtils.ts and fixtures from tests/fixtures/data.ts | Restrictions: Must test both success and failure scenarios, do not test external dependencies directly, maintain test isolation | Success: All model methods are tested with good coverage, edge cases covered, tests run independently and consistently_
75
-
76
- - [ ] 5. Create service interface in src/services/IFeatureService.ts
77
- - File: src/services/IFeatureService.ts
78
- - Define service contract with method signatures
79
- - Extend base service interface patterns
80
- - Purpose: Establish service layer contract for dependency injection
81
- - _Leverage: src/services/IBaseService.ts_
82
- - _Requirements: 3.1_
83
- - _Prompt: Role: Software Architect specializing in service-oriented architecture and TypeScript interfaces | Task: Design service interface contract following requirement 3.1, extending base service patterns from src/services/IBaseService.ts for dependency injection | Restrictions: Must maintain interface segregation principle, do not expose internal implementation details, ensure contract compatibility with DI container | Success: Interface is well-defined with clear method signatures, extends base service appropriately, supports all required service operations_
84
-
85
- - [ ] 6. Implement feature service in src/services/FeatureService.ts
86
- - File: src/services/FeatureService.ts
87
- - Create concrete service implementation using FeatureModel
88
- - Add error handling with existing error utilities
89
- - Purpose: Provide business logic layer for feature operations
90
- - _Leverage: src/services/BaseService.ts, src/utils/errorHandler.ts, src/models/FeatureModel.ts_
91
- - _Requirements: 3.2_
92
- - _Prompt: Role: Backend Developer with expertise in service layer architecture and business logic | Task: Implement concrete FeatureService following requirement 3.2, using FeatureModel and extending BaseService patterns with proper error handling from src/utils/errorHandler.ts | Restrictions: Must implement interface contract exactly, do not bypass model validation, maintain separation of concerns from data layer | Success: Service implements all interface methods correctly, robust error handling implemented, business logic is well-encapsulated and testable_
93
-
94
- - [ ] 7. Add service dependency injection in src/utils/di.ts
95
- - File: src/utils/di.ts (modify existing)
96
- - Register FeatureService in dependency injection container
97
- - Configure service lifetime and dependencies
98
- - Purpose: Enable service injection throughout application
99
- - _Leverage: existing DI configuration in src/utils/di.ts_
100
- - _Requirements: 3.1_
101
- - _Prompt: Role: DevOps Engineer with expertise in dependency injection and IoC containers | Task: Register FeatureService in DI container following requirement 3.1, configuring appropriate lifetime and dependencies using existing patterns from src/utils/di.ts | Restrictions: Must follow existing DI container patterns, do not create circular dependencies, maintain service resolution efficiency | Success: FeatureService is properly registered and resolvable, dependencies are correctly configured, service lifetime is appropriate for use case_
102
-
103
- - [ ] 8. Create service unit tests in tests/services/FeatureService.test.ts
104
- - File: tests/services/FeatureService.test.ts
105
- - Write tests for service methods with mocked dependencies
106
- - Test error handling scenarios
107
- - Purpose: Ensure service reliability and proper error handling
108
- - _Leverage: tests/helpers/testUtils.ts, tests/mocks/modelMocks.ts_
109
- - _Requirements: 3.2, 3.3_
110
- - _Prompt: Role: QA Engineer with expertise in service testing and mocking frameworks | Task: Create comprehensive unit tests for FeatureService methods covering requirements 3.2 and 3.3, using mocked dependencies from tests/mocks/modelMocks.ts and test utilities | Restrictions: Must mock all external dependencies, test business logic in isolation, do not test framework code | Success: All service methods tested with proper mocking, error scenarios covered, tests verify business logic correctness and error handling_
111
-
112
- - [ ] 4. Create API endpoints
113
- - Design API structure
114
- - _Leverage: src/api/baseApi.ts, src/utils/apiUtils.ts_
115
- - _Requirements: 4.0_
116
- - _Prompt: Role: API Architect specializing in RESTful design and Express.js | Task: Design comprehensive API structure following requirement 4.0, leveraging existing patterns from src/api/baseApi.ts and utilities from src/utils/apiUtils.ts | Restrictions: Must follow REST conventions, maintain API versioning compatibility, do not expose internal data structures directly | Success: API structure is well-designed and documented, follows existing patterns, supports all required operations with proper HTTP methods and status codes_
117
-
118
- - [ ] 4.1 Set up routing and middleware
119
- - Configure application routes
120
- - Add authentication middleware
121
- - Set up error handling middleware
122
- - _Leverage: src/middleware/auth.ts, src/middleware/errorHandler.ts_
123
- - _Requirements: 4.1_
124
- - _Prompt: Role: Backend Developer with expertise in Express.js middleware and routing | Task: Configure application routes and middleware following requirement 4.1, integrating authentication from src/middleware/auth.ts and error handling from src/middleware/errorHandler.ts | Restrictions: Must maintain middleware order, do not bypass security middleware, ensure proper error propagation | Success: Routes are properly configured with correct middleware chain, authentication works correctly, errors are handled gracefully throughout the request lifecycle_
125
-
126
- - [ ] 4.2 Implement CRUD endpoints
127
- - Create API endpoints
128
- - Add request validation
129
- - Write API integration tests
130
- - _Leverage: src/controllers/BaseController.ts, src/utils/validation.ts_
131
- - _Requirements: 4.2, 4.3_
132
- - _Prompt: Role: Full-stack Developer with expertise in API development and validation | Task: Implement CRUD endpoints following requirements 4.2 and 4.3, extending BaseController patterns and using validation utilities from src/utils/validation.ts | Restrictions: Must validate all inputs, follow existing controller patterns, ensure proper HTTP status codes and responses | Success: All CRUD operations work correctly, request validation prevents invalid data, integration tests pass and cover all endpoints_
133
-
134
- - [ ] 5. Add frontend components
135
- - Plan component architecture
136
- - _Leverage: src/components/BaseComponent.tsx, src/styles/theme.ts_
137
- - _Requirements: 5.0_
138
- - _Prompt: Role: Frontend Architect with expertise in React component design and architecture | Task: Plan comprehensive component architecture following requirement 5.0, leveraging base patterns from src/components/BaseComponent.tsx and theme system from src/styles/theme.ts | Restrictions: Must follow existing component patterns, maintain design system consistency, ensure component reusability | Success: Architecture is well-planned and documented, components are properly organized, follows existing patterns and theme system_
139
-
140
- - [ ] 5.1 Create base UI components
141
- - Set up component structure
142
- - Implement reusable components
143
- - Add styling and theming
144
- - _Leverage: src/components/BaseComponent.tsx, src/styles/theme.ts_
145
- - _Requirements: 5.1_
146
- - _Prompt: Role: Frontend Developer specializing in React and component architecture | Task: Create reusable UI components following requirement 5.1, extending BaseComponent patterns and using existing theme system from src/styles/theme.ts | Restrictions: Must use existing theme variables, follow component composition patterns, ensure accessibility compliance | Success: Components are reusable and properly themed, follow existing architecture, accessible and responsive_
147
-
148
- - [ ] 5.2 Implement feature-specific components
149
- - Create feature components
150
- - Add state management
151
- - Connect to API endpoints
152
- - _Leverage: src/hooks/useApi.ts, src/components/BaseComponent.tsx_
153
- - _Requirements: 5.2, 5.3_
154
- - _Prompt: Role: React Developer with expertise in state management and API integration | Task: Implement feature-specific components following requirements 5.2 and 5.3, using API hooks from src/hooks/useApi.ts and extending BaseComponent patterns | Restrictions: Must use existing state management patterns, handle loading and error states properly, maintain component performance | Success: Components are fully functional with proper state management, API integration works smoothly, user experience is responsive and intuitive_
40
+ <!-- MANDATORY GATES These gates appear verbatim in every generated tasks.md. Do NOT treat as placeholders.
41
+
42
+ VERSION CHECKOUT GATE INTERACTIVE:
43
+ Before implementing ANY task below, check the project's version management:
44
+ 1. IF the project has `devops/version.lock`:
45
+ - Run `/release patch` to claim a version and create a worktree
46
+ - Record the assigned version in the first implementation log
47
+ - ALL file edits happen inside the worktree never in the main repo working directory
48
+ - Verify: `git branch --show-current` returns patch/VERSION, not dev or main
49
+ - If multiple tasks are parallelized across agents, each agent gets its own /release patch
50
+ 2. IF the project has NO `devops/version.lock`:
51
+ - Prompt the user: "This project has no version lock or changelog. Would you like to set up version tracking (version.lock + CHANGELOG.md)?"
52
+ - IF yes: assist with scaffolding `devops/version.lock` and `CHANGELOG.md` before proceeding
53
+ - IF no: skip this gate and record the decision as a comment in tasks.md
54
+ Skipping this gate without user acknowledgment is a workflow violation.
55
+
56
+ IMPLEMENTATION LOGGING GATE HARD GATE:
57
+ Before marking ANY task [x], you MUST call the `log-implementation` MCP tool with full
58
+ artifacts (functions added/modified, files changed, endpoints created, tests written).
59
+ Do NOT mark [x] until the log-implementation tool call succeeds. No exceptions.
60
+
61
+ SPEC COMPLETION GATE BLOCKING (Phase 5):
62
+ After ALL tasks are [x] and implementation logs are recorded:
63
+ 1. Generate `verification.md` in the spec directory — a checklist mapping every requirement
64
+ and acceptance criterion from requirements.md to file:line code evidence. Any unchecked
65
+ item means the spec is NOT complete loop back to implementation.
66
+ 2. Run `/vault-update` to update DocVault pages affected by this spec's changed files
67
+ 3. Close all linked DocVault issues (move to Done, move file to Closed/)
68
+ 4. Run `/verification-before-completion` for a final smoke check
69
+ 5. The spec is NOT complete until all four steps are verified.
70
+ -->
71
+
72
+ ---
73
+
74
+ ## Phase 1 [Phase Name]
75
+
76
+ - [ ] 1. [Task title]
77
+ - File: `[file path]`
78
+ - [What to implement be specific about function names, line numbers, and code patterns]
79
+ - [Second bullet if multi-part]
80
+ - Purpose: [Why this task exists what problem it solves]
81
+ - _Leverage: [Existing functions/constants/patterns to reuse, with file:line references]_
82
+ - _Requirements: REQ-X_
83
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: [Role] | Task: [Detailed implementation instructions referencing specific file paths, line numbers, existing functions, and exact variable names. Include the complete behavior specification.] | Restrictions: [What NOT to do other files to leave untouched, patterns to avoid, anti-patterns for this codebase] | Success: [Concrete, verifiable acceptance criteria — what works, what doesn't break] PREREQUISITE: Before writing any code, verify you are in the correct working context. If the project uses version.lock, confirm `git branch --show-current` returns patch/VERSION. If not, STOP and run /release patch first. Mark task as [-] in tasks.md before starting. BLOCKING: After implementation, you MUST call the log-implementation tool with full artifacts before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
84
+
85
+ - [ ] 2. [Task title]
86
+ - File: `[file path]`
87
+ - [Implementation details]
88
+ - Purpose: [Why]
89
+ - _Leverage: [Existing code to reuse]_
90
+ - _Requirements: REQ-Y_
91
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: [Role] | Task: [Instructions] | Restrictions: [Constraints] | Success: [Criteria] PREREQUISITE: Before writing any code, verify you are in the correct working context. If the project uses version.lock, confirm `git branch --show-current` returns patch/VERSION. If not, STOP and run /release patch first. Mark task as [-] in tasks.md before starting. BLOCKING: After implementation, you MUST call the log-implementation tool with full artifacts before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
92
+
93
+ ---
94
+
95
+ ## Phase 2 — [Phase Name] (optional — remove if single-phase)
96
+
97
+ - [ ] 3. [Task title]
98
+ - File: `[file path]`
99
+ - [Implementation details]
100
+ - Purpose: [Why]
101
+ - _Leverage: [Existing code to reuse]_
102
+ - _Requirements: REQ-Z_
103
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: [Role] | Task: [Instructions] | Restrictions: [Constraints] | Success: [Criteria] PREREQUISITE: Before writing any code, verify you are in the correct working context. If the project uses version.lock, confirm `git branch --show-current` returns patch/VERSION. If not, STOP and run /release patch first. Mark task as [-] in tasks.md before starting. BLOCKING: After implementation, you MUST call the log-implementation tool with full artifacts before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
104
+
105
+ ---
155
106
 
156
107
  ## Standard Closing Tasks
157
108
 
158
- - [ ] 6. Run project test suite and verify baseline
159
- - Run the project's test command to establish a passing baseline before changes
160
- - If no test suite exists, flag this and discuss with the user
161
- - _Leverage: Project test configuration (package.json scripts, vitest.config, jest.config, etc.)_
109
+ - [ ] C1. Establish test baseline
110
+ - File: (no file changes testing only)
111
+ - Run the project's test command to establish a passing baseline before any implementation changes
112
+ - If no test suite exists, flag this to the user and discuss whether to set one up
113
+ - Purpose: Record the starting state so regressions can be detected
114
+ - _Leverage: Project test configuration (test scripts, config files, CI definitions)_
162
115
  - _Requirements: All_
163
- - _Prompt: Role: QA Engineer | Task: Run the project's established test suite to verify a passing baseline before implementation. Identify the test command from package.json, CLAUDE.md, or project conventions. If no test suite exists, flag this to the user. | Restrictions: Use the project's existing test framework, do not introduce a new one. | Success: Test suite runs and baseline results are recorded._
116
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: QA Engineer | Task: Identify and run the project's established test suite to verify a passing baseline before implementation. Check project documentation and config files for the test command. Record the number of passing/failing/skipped tests. If no test suite exists, flag this to the user and ask whether to set one up before proceeding. | Restrictions: Use the project's existing test framework do not introduce a new one. Do not modify any source files. | Success: Test suite runs and baseline results (pass/fail/skip counts) are recorded. PREREQUISITE: This is a verification-only task — no worktree changes needed. BLOCKING: After recording baseline, you MUST call the log-implementation tool with the test results before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
164
117
 
165
- - [ ] 6.1 Write tests for new behavior (TDD — write BEFORE implementation)
166
- - Write failing tests using the project's test framework for all new behavior
167
- - Tests should cover the acceptance criteria from requirements.md
118
+ - [ ] C2. Write failing tests for new behavior (TDD — BEFORE implementation)
119
+ - File: [test file paths determined by project conventions]
120
+ - Write failing tests using the project's test framework for all new behavior described in requirements.md
121
+ - Tests should map to acceptance criteria — one or more tests per AC
122
+ - Purpose: TDD — tests define the expected behavior before code is written
168
123
  - _Leverage: Project test framework, requirements.md acceptance criteria_
169
124
  - _Requirements: All_
170
- - _Prompt: Role: QA Engineer | Task: Write failing tests for all new behavior described in requirements.md using the project's test framework. Follow TDD - tests must fail before implementation, pass after. | Restrictions: Use the project's existing test framework. Tests must be runnable with the project's test command. | Success: Failing tests exist for all new acceptance criteria._
171
-
172
- - [ ] 6.2 Verify all tests pass after implementation
173
- - Run the full test suite after all implementation tasks are complete
174
- - All new tests must pass; no existing tests may regress
175
- - _Leverage: Project test command_
125
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: QA Engineer | Task: Write failing tests for all new behavior described in requirements.md acceptance criteria. Use the project's existing test framework and conventions. Each acceptance criterion should have at least one corresponding test. Tests MUST fail before implementation (red phase of TDD) and pass after (green phase). | Restrictions: Use the project's existing test framework — do not introduce a new one. Tests must be runnable with the project's test command. Do not write implementation code in this task. | Success: Failing tests exist for every acceptance criterion in requirements.md. Running the test suite shows the new tests fail (expected) while existing tests still pass. PREREQUISITE: Before writing any code, verify you are in the correct working context. If the project uses version.lock, confirm `git branch --show-current` returns patch/VERSION. If not, STOP and run /release patch first. Mark task as [-] in tasks.md before starting. BLOCKING: After writing tests, you MUST call the log-implementation tool with test file paths and AC mapping before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
126
+
127
+ - [ ] C3. Implement make tests pass
128
+ - File: [implementation file paths determined by design.md]
129
+ - Write the minimum code needed to make all failing tests from C2 pass
130
+ - Follow existing project patterns and conventions
131
+ - Purpose: Green phase of TDD — implementation is driven by tests
132
+ - _Leverage: design.md architecture decisions, existing project patterns_
176
133
  - _Requirements: All_
177
- - _Prompt: Role: QA Engineer | Task: Run the project's full test suite. Verify all new tests pass and no existing tests regressed. | Restrictions: Do not skip or disable failing tests. | Success: Full test suite passes with zero regressions._
178
-
179
- - [ ] 6.3 Final integration and cleanup
180
- - Integrate all components
181
- - Verify no lint or type errors
182
- - Clean up temporary code and documentation
183
- - _Leverage: Project lint/build commands_
134
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: Senior Developer | Task: Write the implementation code to make all failing tests from task C2 pass. Follow the architecture and patterns described in design.md. Use existing project utilities and patterns — do not reinvent. Keep changes minimal and focused on making tests green. | Restrictions: Do not modify test files from C2 to make them pass — fix the implementation instead. Do not introduce new dependencies without justification. Follow existing code style and patterns. | Success: All tests from C2 now pass. No existing tests regress. Code follows project conventions. PREREQUISITE: Before writing any code, verify you are in the correct working context. If the project uses version.lock, confirm `git branch --show-current` returns patch/VERSION. If not, STOP and run /release patch first. Mark task as [-] in tasks.md before starting. BLOCKING: After implementation, you MUST call the log-implementation tool with full artifacts before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
135
+
136
+ - [ ] C4. Run full test suite — zero regressions
137
+ - File: (no file changes — testing only)
138
+ - Run the project's complete test suite after all implementation is done
139
+ - All new tests must pass; no existing tests may regress from the C1 baseline
140
+ - Purpose: Verify implementation is complete and nothing is broken
141
+ - _Leverage: Project test command, baseline results from C1_
142
+ - _Requirements: All_
143
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: QA Engineer | Task: Run the project's full test suite. Compare results against the baseline from task C1. All new tests from C2 must pass. No existing tests may have regressed. If any test fails, diagnose and fix before proceeding — do not skip or disable failing tests. | Restrictions: Do not skip or disable any tests. Do not modify tests to make them pass unless they have a genuine bug. | Success: Full test suite passes. New test count matches C2. Zero regressions from C1 baseline. PREREQUISITE: This is a verification-only task — no file changes expected unless fixing regressions. BLOCKING: After test run, you MUST call the log-implementation tool with pass/fail/skip counts and comparison to C1 baseline before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
144
+
145
+ - [ ] C5. Log implementation — HARD GATE
146
+ - File: (no file changes — logging only)
147
+ - Call the `log-implementation` MCP tool with a comprehensive summary of ALL implementation work done across all tasks in this spec
148
+ - Include: all functions added/modified, all files changed, all tests written, all endpoints created
149
+ - Purpose: Create a permanent record of what was implemented for future reference and audit
150
+ - _Leverage: Implementation logs from individual tasks, git diff_
151
+ - _Requirements: All_
152
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: Project Coordinator | Task: Call the log-implementation MCP tool with a comprehensive summary covering all implementation tasks in this spec. Aggregate: (1) all functions added or modified with file paths, (2) all files created or changed, (3) all test files and test counts, (4) any new endpoints, routes, or APIs, (5) any configuration changes. This is the consolidated implementation record. | Restrictions: Do not skip any task's artifacts. Do not mark this task [x] until the log-implementation tool call succeeds. | Success: log-implementation MCP tool call succeeds with full artifact listing. BLOCKING: This IS the logging gate. Do NOT mark [x] until the log-implementation tool call succeeds._
153
+
154
+ - [ ] C6. Generate verification.md
155
+ - File: `DocVault/specflow/{{projectName}}/specs/{{spec-name}}/verification.md`
156
+ - Generate a verification checklist in the spec directory
157
+ - List every requirement and acceptance criterion from requirements.md as a checklist item
158
+ - For each item: mark `[x]` with `file:line` code evidence, OR mark `[ ]` with a gap description
159
+ - Purpose: Prove every requirement is met with traceable evidence — no hand-waving
160
+ - _Leverage: requirements.md, implementation logs, git diff_
161
+ - _Requirements: All_
162
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: QA Engineer | Task: Generate verification.md in the spec directory. Read requirements.md and list every requirement and acceptance criterion as a markdown checklist. For each item, search the codebase for the implementing code and mark [x] with file:line evidence (e.g., "src/core/parser.ts:142 — validates input format"). If any criterion cannot be verified, mark [ ] with a description of the gap. Run /vault-update to update any DocVault pages affected by this spec's changes. Close all linked DocVault issues. Run /verification-before-completion for a final check. | Restrictions: Do not mark [x] without concrete file:line evidence. Do not fabricate evidence. If a gap exists, document it honestly. | Success: verification.md exists with every requirement/AC listed. All items marked [x] with evidence, OR [ ] items have gap descriptions. /vault-update completed. Linked issues closed. /verification-before-completion passed. BLOCKING: After generating verification.md, you MUST call the log-implementation tool before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._
163
+
164
+ - [ ] C7. Loop or complete
165
+ - File: (no file changes — decision gate only)
166
+ - IF verification.md has ANY unchecked `[ ]` items → return to task C2 and write tests for the gaps, then implement (C3), test (C4), log (C5), and re-verify (C6)
167
+ - ONLY when ALL items in verification.md are `[x]` → proceed to PR/commit
168
+ - Purpose: Enforce the verification loop — specs are not complete until every requirement is proven
169
+ - _Leverage: verification.md from C6_
184
170
  - _Requirements: All_
185
- - _Prompt: Role: Senior Developer | Task: Complete final integration of all components and perform comprehensive cleanup. Run lint and type checks. Remove any temporary code or debug statements. | Restrictions: Must not break existing functionality. Ensure code quality standards are met. | Success: All components integrated, no lint or type errors, code is clean._
171
+ - _Prompt: Implement the task for spec {{spec-name}}, first run spec-workflow-guide to get the workflow guide then implement the task: Role: Project Coordinator | Task: Read verification.md from task C6. Count unchecked [ ] items. IF any exist: list the gaps, return to task C2 to write tests targeting those gaps, then re-execute C3 through C6. Repeat until verification.md has zero unchecked items. ONLY when all items are [x]: proceed to create the PR or commit. | Restrictions: Do NOT proceed to PR/commit if ANY [ ] items remain in verification.md. Do NOT remove unchecked items to force completion. Each loop iteration must go through C2→C6 in order. | Success: verification.md has zero unchecked items. All requirements are proven with code evidence. PR/commit may proceed. BLOCKING: After confirming all items are verified, you MUST call the log-implementation tool with the final verification status before marking [x]. Do NOT mark [x] until the log-implementation tool call succeeds._