mustard-claude 3.1.31 → 3.1.34

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 (53) hide show
  1. package/dist/commands/init.js +12 -2
  2. package/dist/commands/init.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/CLAUDE.md +97 -4
  5. package/templates/commands/mustard/approve/SKILL.md +20 -4
  6. package/templates/commands/mustard/bugfix/SKILL.md +59 -4
  7. package/templates/commands/mustard/complete/SKILL.md +12 -0
  8. package/templates/commands/mustard/feature/SKILL.md +155 -1
  9. package/templates/commands/mustard/qa/SKILL.md +99 -0
  10. package/templates/commands/mustard/resume/SKILL.md +88 -6
  11. package/templates/context/qa/README.md +36 -0
  12. package/templates/context/qa/qa.core.md +85 -0
  13. package/templates/hooks/__tests__/harness-dual-emission.test.js +489 -0
  14. package/templates/hooks/__tests__/harness-event.test.js +160 -0
  15. package/templates/hooks/__tests__/harness-views.test.js +216 -0
  16. package/templates/hooks/__tests__/harness-wave10.test.js +521 -0
  17. package/templates/hooks/__tests__/harness-wave11.test.js +621 -0
  18. package/templates/hooks/__tests__/harness-wave3.test.js +428 -0
  19. package/templates/hooks/__tests__/harness-wave4.test.js +271 -0
  20. package/templates/hooks/__tests__/harness-wave5.test.js +380 -0
  21. package/templates/hooks/__tests__/harness-wave6.test.js +423 -0
  22. package/templates/hooks/__tests__/harness-wave7.test.js +401 -0
  23. package/templates/hooks/__tests__/harness-wave8.test.js +606 -0
  24. package/templates/hooks/__tests__/harness-wave9.test.js +512 -0
  25. package/templates/hooks/__tests__/hooks.test.js +37 -37
  26. package/templates/hooks/_lib/harness-event.js +193 -0
  27. package/templates/hooks/close-gate.js +359 -0
  28. package/templates/hooks/convention-check.js +221 -0
  29. package/templates/hooks/duplication-check.js +299 -0
  30. package/templates/hooks/epic-detect.js +102 -0
  31. package/templates/hooks/harness-init.js +239 -0
  32. package/templates/hooks/metrics-tracker.js +38 -124
  33. package/templates/hooks/pipeline-phase.js +132 -0
  34. package/templates/hooks/regression-guard.js +273 -0
  35. package/templates/hooks/review-gate.js +110 -6
  36. package/templates/hooks/session-cleanup.js +7 -35
  37. package/templates/hooks/session-knowledge.js +35 -24
  38. package/templates/hooks/session-memory.js +75 -11
  39. package/templates/hooks/subagent-tracker.js +188 -211
  40. package/templates/scripts/epic-fold.js +487 -0
  41. package/templates/scripts/harness-views.js +993 -0
  42. package/templates/scripts/knowledge-update.js +5 -1
  43. package/templates/scripts/memory-persist.js +154 -118
  44. package/templates/scripts/metrics-collect.js +29 -11
  45. package/templates/scripts/qa-run.js +322 -0
  46. package/templates/scripts/scope-decompose.js +105 -0
  47. package/templates/scripts/spec-link.js +175 -0
  48. package/templates/scripts/statusline.js +69 -0
  49. package/templates/scripts/wave-dependency.js +239 -0
  50. package/templates/settings.json +75 -2
  51. package/templates/.claude/.agent-state/debug-loop-state.json +0 -6
  52. package/templates/.claude/.metrics/bash-native-redirect.jsonl +0 -16
  53. package/templates/.claude/.metrics/rtk-rewrite.jsonl +0 -8
@@ -235,7 +235,12 @@ export async function generateMustardJson(projectPath, options) {
235
235
  flow,
236
236
  provider: 'github',
237
237
  submodules: hasSubmodules
238
- }
238
+ },
239
+ // Wave 9 strict gates: populate with sensible defaults (all optional — absence = skip stage)
240
+ testCommand: 'npm test',
241
+ buildCommand: 'npm run build',
242
+ lintCommand: 'npm run lint',
243
+ typeCheckCommand: 'tsc --noEmit',
239
244
  };
240
245
  }
241
246
  else {
@@ -271,7 +276,12 @@ export async function generateMustardJson(projectPath, options) {
271
276
  flow,
272
277
  provider: answers.provider || 'github',
273
278
  submodules: hasSubmodules
274
- }
279
+ },
280
+ // Wave 9 strict gates: populate with sensible defaults (all optional — absence = skip stage)
281
+ testCommand: 'npm test',
282
+ buildCommand: 'npm run build',
283
+ lintCommand: 'npm run lint',
284
+ typeCheckCommand: 'tsc --noEmit',
275
285
  };
276
286
  }
277
287
  const spinner = ora('Writing mustard.json...').start();
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAY,YAAY,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAU,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAQhC,SAAS,eAAe;IACtB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,IAAY,EAAE,SAAS,GAAG,IAAI;IAChE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE1C,2BAA2B;IAC3B,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,kCAAkC;QACpC,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,uCAAuC,CAAC,CAAC;YACxE,MAAM,uBAAuB,EAAE,CAAC;YAChC,MAAM,SAAS,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACxE,cAAc,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB,CAAC;oBAC5D,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,0BAA0B;oBACnC,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACjD,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,OAAO,EAAE;wBACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACpC;iBACF,CAAC,CAAC,CAAC;YAEJ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,MAAM,UAAU,GAAG,GAAG,UAAU,WAAW,EAAE,EAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,aAAa,CAAC,OAAO,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,uCAAuC,CAAC,CAAC;gBACxE,MAAM,uBAAuB,EAAE,CAAC;gBAChC,MAAM,SAAS,EAAE,CAAC;gBAClB,IAAI,OAAO,CAAC,MAAM;oBAAE,MAAM,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACxE,cAAc,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa;IACb,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,KAAK,CAAC,CAAC,kBAAkB;IAC3B,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,oBAAoB,CAAC,CAAC;IAErD,gEAAgE;IAChE,MAAM,uBAAuB,EAAE,CAAC;IAChC,MAAM,SAAS,EAAE,CAAC;IAElB,sCAAsC;IACtC,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAExE,0CAA0C;IAC1C,MAAM,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEhD,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,uDAAuD,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5G,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAAE,OAAO,MAAM,CAAC;YACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAAE,OAAO,QAAQ,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,2CAA2C,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5F,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,OAA0B;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAErD,IAAI,cAAc,GAAyB,IAAI,CAAC;IAEhD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAkB,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QAED,IAAI,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,yBAAyB;YACzB,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,cAAc,CAAC,GAAG,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,cAAc,CAAC,GAAG,EAAE,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA2B,CAAC;oBACvE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE1F,0DAA0D;IAC1D,MAAM,YAAY,GAAG,cAAc,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;IACrD,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAuB,CAAC;IAClE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACjH,MAAM,gBAAgB,GAAG,cAAc,EAAE,GAAG,EAAE,QAAQ,IAAI,QAAQ,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEzD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,aAAa,aAAa,aAAa,gBAAgB,aAAa,EAAE,CAAC,CAAC,CAAC;QACtH,IAAI,YAAY;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACvH,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,MAAqB,CAAC;IAE1B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,qCAAqC;QACrC,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;QACtC,CAAC;QACD,MAAM,GAAG;YACP,GAAG,EAAE;gBACH,IAAI;gBACJ,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,aAAa;aAC1B;SACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,uEAAuE;QACvE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAIlC;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE,kBAAkB,IAAI,aAAa;aAC7C;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mDAAmD;gBAC5D,OAAO,EAAE,iBAAiB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACzG;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,eAAe;gBACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC;gBAC1C,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAA2B,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG;YACP,GAAG,EAAE;gBACH,IAAI;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ;gBACtC,UAAU,EAAE,aAAa;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3C,kCAAkC;IAClC,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,QAAQ,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,kDAAkD;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,OAAO,yBAAyB,CAAC,CAAC,CAAC;QACtE,uDAAuD;QACvD,IAAI,CAAC;YAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QACxG,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iFAAiF,CAAC,CAAC,CAAC;IAC7G,MAAM,OAAO,GAAG,GAAG,CAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,iBAAiB,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,2FAA2F,EAAE;gBACpG,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,MAAM,EAAE,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvF,OAAO,CAAC,OAAO,CAAC,OAAO,OAAO,mCAAmC,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,uDAAuD;QACvD,IAAI,CAAC;YAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAC1G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAC,CAAC;QAC1H,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC,CAAC;IACxH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEhD,4DAA4D;IAC5D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ,CAC1B,2IAA2I,EAC3I,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CACrD,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACnH,IAAI,KAAK,EAAE,oBAAoB,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,QAAQ,CACN,2DAA2D,KAAK,CAAC,oBAAoB,eAAe,OAAO,IAAI,EAC/G,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACnC,CAAC;YACF,QAAQ,CACN,yDAAyD,OAAO,uBAAuB,MAAM,WAAW,EACxG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAClC,CAAC;YACF,eAAe;YACf,IAAI,CAAC;gBAAC,QAAQ,CAAC,QAAQ,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC/E,2DAA2D;YAC3D,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,4BAA4B;IAC5B,IAAI,CAAC;QACH,QAAQ,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,QAAQ,CAAC,mDAAmD,EAAE;YAC5D,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3C,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO;QAErE,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC;QAE9C,oCAAoC;QACpC,QAAQ,CACN,2IAA2I,MAAM,aAAa,EAC9J,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAClC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC,CAAC,gEAAgE,CAAC,CAAC;AAC9E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAI,QAAQ,GAAwB,EAAE,CAAC;IAEvC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6EAA6E,CAAC,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,WAAW;QAAE,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;IAEhF,MAAM,KAAK,GAAa,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,8FAA8F;QAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,mEAAmE;YACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YAC9D,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAA2B,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC;IAC5E,IAAI,CAAC,QAAQ,CAAC,GAAG;QAAE,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACrD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,UAAkB;IACzE,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,IAAI,CAAC;QACH,sDAAsD;QACtD,MAAM,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAE7C,kDAAkD;QAClD,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAElE,OAAO,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAC9F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAI,GAAa,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mustard-claude",
3
- "version": "3.1.31",
3
+ "version": "3.1.34",
4
4
  "description": "Framework-agnostic CLI for Claude Code project setup",
5
5
  "type": "module",
6
6
  "bin": {
@@ -18,12 +18,19 @@ Any change that touches production code (schema, API, UI) → Pipeline Feature.
18
18
  Scope is auto-detected: Light (1-2 layers, ≤5 files, known pattern) vs Full (3+ layers, new entity).
19
19
 
20
20
  ## Pipeline Phases
21
- ANALYZE → PLAN → EXECUTE → CLOSE
22
- - Light scope: skip PLAN (ANALYZE → EXECUTE → CLOSE)
21
+ ANALYZE → PLAN → EXECUTE → QA → CLOSE (Wave 10)
22
+ - Light scope: skip PLAN (ANALYZE → EXECUTE → QA → CLOSE)
23
23
  - ANALYZE: Grep/Glob direct preferred; ≤1 Task(Explore) with ≤10 tool uses allowed
24
24
  - Reclassify to Full if >5 files surface
25
25
  - All dispatched agents cap returns at ≤50 lines
26
- - Full scope: ANALYZE → PLAN → /approve → EXECUTE → CLOSE
26
+ - Full scope: ANALYZE → PLAN → /approve → EXECUTE → QA → CLOSE
27
+
28
+ ### QA Phase (Wave 10)
29
+ After EXECUTE completes, run QA before CLOSE:
30
+ 1. Spec PLAN must define `## Acceptance Criteria` (3-8 AC, each with a runnable command)
31
+ 2. QA agent reads spec, executes each AC, reports pass/fail
32
+ 3. close-gate blocks CLOSE unless `qa.result` with `overall=pass` exists in events log
33
+ 4. Control: `MUSTARD_QA_GATE_MODE=strict (default) | warn | off`
27
34
 
28
35
  ## Context Loading
29
36
  Agents auto-load skills from `{subproject}/.claude/skills/` based on task description.
@@ -31,7 +38,7 @@ Guards always loaded via `{subproject}/CLAUDE.md`.
31
38
 
32
39
  ## Stack
33
40
 
34
- Node.js (>=18), CommonJS, no external dependencies. 20 lifecycle hooks, 11 scripts, 16 slash commands, 6 foundation skills.
41
+ Node.js (>=18), CommonJS, no external dependencies. 23 lifecycle hooks, 12 scripts, 17 slash commands, 6 foundation skills.
35
42
 
36
43
  ## Commands
37
44
 
@@ -106,5 +113,91 @@ Three enforcement hooks reduce token waste across all projects:
106
113
  - `MUSTARD_MODEL_GATE_MODE=warn|strict|off` (default: strict)
107
114
  - All hooks can be disabled via `MUSTARD_DISABLED_HOOKS=bash-native-redirect,model-routing-gate,tool-use-counter`
108
115
 
116
+ ### Enforcement Hooks
117
+
118
+ **Strict gates** (Wave 9-10): block on real failure
119
+
120
+ | Hook | Matcher | Mode env | Blocks on |
121
+ |------|---------|----------|-----------|
122
+ | `close-gate.js` | Write/Edit `.pipeline-states/*.json` with phase=CLOSE | `MUSTARD_CLOSE_GATE_MODE` (default strict) | build/type/lint/test fail |
123
+ | `close-gate.js` (Wave 10 QA) | same trigger | `MUSTARD_QA_GATE_MODE` (default strict) | no qa.result or qa.result=fail |
124
+ | `review-gate.js` | Bash `git commit` | `MUSTARD_COMMIT_GATE_MODE` (default warn) | secrets staged or build broken |
125
+
126
+ Bug in the hook itself (I/O error, timeout outside child process) still fails open — only real sensor failures block.
127
+
128
+ **Anti-slope hooks** (Wave 11): default warn, opt-in strict
129
+
130
+ | Hook | Mode env | Heuristic |
131
+ |---|---|---|
132
+ | `duplication-check.js` | `MUSTARD_DUPLICATION_MODE` (default warn) | Levenshtein ≥0.85 vs entity-registry |
133
+ | `convention-check.js` | `MUSTARD_CONVENTION_MODE` (default warn) | Rules derived from knowledge.json conf≥0.8 |
134
+ | `regression-guard.js` | `MUSTARD_REGRESSION_MODE` (default **off**) | File-to-test heuristic + re-run |
135
+
136
+ All anti-slope hooks fail-open on bug. Only real signal triggers warn/block.
137
+
138
+ **Downgrade in emergencies:**
139
+ - `MUSTARD_CLOSE_GATE_MODE=warn` — prints warning, allows
140
+ - `MUSTARD_CLOSE_GATE_MODE=off` — skips check
141
+ - `MUSTARD_QA_GATE_MODE=warn` — prints warning when QA absent/fail, allows
142
+ - `MUSTARD_QA_GATE_MODE=off` — skips QA check entirely
143
+ - `MUSTARD_COMMIT_GATE_MODE=strict` — upgrades commit gate to blocking
144
+ - `MUSTARD_COMMIT_GATE_MODE=off` — skips commit gate entirely
145
+
146
+ ## Shared Memory Architecture (Wave 4)
147
+
148
+ ### Truth source
149
+ `.claude/.harness/events.jsonl` — append-only NDJSON log. All hooks emit events here.
150
+
151
+ ### Persistent projections
152
+ | File | Writer | Purpose |
153
+ |------|--------|---------|
154
+ | `knowledge.json` | `session-knowledge.js` + `knowledge-update.js` | Confidence-ranked patterns across sessions |
155
+ | `memory/decisions.json` | `memory-persist.js` | Architectural decisions |
156
+ | `memory/lessons.json` | `memory-persist.js` | Operational lessons |
157
+ | `.pipeline-states/{spec}.json` | Pipeline commands | Current phase (ANALYZE/PLAN/EXECUTE/CLOSE) |
158
+
159
+ ### How agents read context
160
+ Via **views** in `scripts/harness-views.js`:
161
+ - `buildAgentVisibility(events, opts)` — parallel agents in current wave + prior findings
162
+ - `buildPipelineState(events, { spec })` — phase + metrics (tool counts, retries, agents) for a spec
163
+ - `buildCrossSessionTimeline(sessionsDir, opts)` — episodic memory across sessions
164
+ - `buildSessionSummary(events)` — roll-up for SessionEnd fold
165
+
166
+ ### Removed (Wave 4 — no longer written)
167
+ - `.agent-memory/` (was: per-agent summaries → now: `agent.stop` events in log)
168
+ - `.agent-state/_queue.json` (was: description relay → now: `agent.start` event in log)
169
+ - `.agent-state/{id}.json` (was: active agent tracking → now: `agent.start`/`agent.stop` in log)
170
+ - `.pipeline-states/*.metrics.json` (was: cumulative counters → now: `tool.use` events folded by `buildPipelineState`)
171
+
172
+ ### Log rotation
173
+ `harness-init.js` (SessionStart) rotates `.harness/events.jsonl` → `.harness/sessions/{sessionId}.jsonl` and prunes sessions >30 days.
174
+
175
+ ### On-Demand Memory Queries (Escape Hatch)
176
+
177
+ The automatic injection in SessionStart/SubagentStart is capped (400-800 chars). If you need more historical context, query the harness directly:
178
+
179
+ ```bash
180
+ # Find specific topic in session summary
181
+ node .claude/scripts/harness-views.js --view session-summary --query "JWT" --compact
182
+
183
+ # Get full state of a spec
184
+ node .claude/scripts/harness-views.js --view pipeline-state --spec auth-login --compact
185
+
186
+ # See last N sessions timeline
187
+ node .claude/scripts/harness-views.js --view cross-session-timeline --limit 5 --compact
188
+
189
+ # Active parallel agents in current wave
190
+ node .claude/scripts/harness-views.js --view agent-visibility --compact
191
+ ```
192
+
193
+ **When to use:**
194
+ - Exploring a feature area you have partial context on
195
+ - Before making a decision, check if a similar one was made
196
+ - Resuming work on a spec after session gap
197
+
198
+ **When NOT to use:**
199
+ - For patterns already in `knowledge.json` (that's auto-injected)
200
+ - As first action of every task (injection already gives you the top)
201
+
109
202
  ## Full Reference
110
203
  Rules, pipeline, naming: `.claude/pipeline-config.md`
@@ -23,15 +23,31 @@ Approves the active spec and prepares the implementation phase.
23
23
  - Do NOT proceed to step 2 without running this command
24
24
  2. **Read** `.claude/pipeline-config.md` — agents, model selection
25
25
  3. Locate active spec in `.claude/spec/active/`
26
+
27
+ ### Step 3b: Wave Plan Detection
28
+
29
+ Check if the located spec is a wave plan: look for `.claude/spec/active/{specName}/wave-plan.md`.
30
+
31
+ **If `wave-plan.md` exists:**
32
+
33
+ 1. Read `.claude/.pipeline-states/{specName}.json` — expect `isWavePlan: true`, `totalWaves: N`, `currentWave: 1`, `completedWaves: []`.
34
+ 2. Read `wave-plan.md` and print its ENTIRE contents verbatim inside a fenced markdown block (```` ```markdown ... ``` ````). List each wave spec file path below the block (one line each).
35
+ 3. `AskUserQuestion`:
36
+ - **"Approve wave plan — start with wave 1"** → proceed to step 4 (update header + state for wave 1 dispatch)
37
+ - **"Reject decomposition — use single spec"** → merge all wave specs back into a single spec at `.claude/spec/active/{specName}/spec.md` (concatenate `## Files`, `## Tasks`, `## Boundaries` from each wave), delete `wave-plan.md` and `wave-N-*/` subdirectories, set `scopeOverride: "user-rejected-waves"` and `isWavePlan: false` in pipeline state, proceed to step 4 on the single spec
38
+ - **"Stop — re-plan with guidance"** → stop. Instruct user: `Delete .claude/spec/active/{specName}/ and re-run /feature {name} with explicit guidance (e.g., "keep wave 2 and wave 3 together").`
39
+ 4. If user approved wave plan, for step 4 and onward, operate on the **wave 1 spec** (`.claude/spec/active/{specName}/wave-1-{role}/spec.md`) — update its header, not the wave-plan.md header.
40
+
41
+ **If `wave-plan.md` does NOT exist:** proceed as a single spec (original behavior below).
42
+
26
43
  4. **Spec Checkpoint — update spec header:**
27
44
  - `### Status: approved`
28
45
  - `### Phase: PLAN`
29
46
  - `### Checkpoint: {ISO timestamp now}`
30
- 5. **Pipeline State — create `.claude/.pipeline-states/{spec-name}.json`:**
47
+ 5. **Pipeline State — create or update `.claude/.pipeline-states/{spec-name}.json`:**
31
48
  - Extract `spec-name` from the spec directory (e.g. basename of path → `2026-02-26-linked-services-card`)
32
- - Parse Tasks from spec to extract tasks per agent (DB, Backend, Frontend, etc.)
33
- - Create `.claude/.pipeline-states/` directory if it doesn't exist
34
- - Write state file with `specName`, `status: "approved"`, `phaseName: "PLAN"`, `tasks` with names and agents, `model`, `updatedAt`
49
+ - **If wave plan (from Step 3b):** state already exists. Update fields: `status: "approved"`, `currentWave: 1`, `updatedAt`. Parse tasks from **wave-1** spec only (not all waves). Preserve `isWavePlan`, `totalWaves`, `completedWaves`, `failedWaves`.
50
+ - **If single spec:** Parse Tasks from spec to extract tasks per agent (DB, Backend, Frontend, etc.). Create `.claude/.pipeline-states/` directory if it doesn't exist. Write state file with `specName`, `status: "approved"`, `phaseName: "PLAN"`, `tasks` with names and agents, `model`, `updatedAt`.
35
51
  5b. **Memory Persist — record architectural decisions:**
36
52
  - For each significant decision in the spec (technology choices, design patterns, trade-offs):
37
53
  ```bash
@@ -58,12 +58,46 @@ If the diff file is empty or missing, skip the Git State header entirely. Never
58
58
  - Trace callers/callees via Grep in relevant directories (prefer Grep over Read)
59
59
  - Return as soon as root cause is clear — don't exhaustively scan
60
60
  - Return: root cause file(s), line(s), explanation
61
+
62
+ 2b. **Cache root-cause for retry reuse:**
63
+
64
+ After DIAGNOSE returns, compute a cache signature so fix-loop retries can skip re-DIAGNOSE when the affected surface hasn't changed:
65
+
66
+ ```javascript
67
+ // in-memory during bugfix session (also persisted to pipeline-state for Full Path)
68
+ const affectedFiles = [...root-cause file(s) from Explore return, sorted];
69
+ const bugDescription = {user's error description, canonical — trimmed and lowercased};
70
+ const rootCauseHash = sha256(bugDescription + '|' + affectedFiles.join(','));
71
+ const rootCauseSummary = {1-line root cause from Explore, ≤500 chars};
72
+ const affectedFilesHash = sha256(concatenated contents of affectedFiles right now);
73
+ ```
74
+
75
+ Write to pipeline-state if Full Path (`.claude/.pipeline-states/{specName}.json`):
76
+ ```json
77
+ {
78
+ "rootCauseHash": "sha256...",
79
+ "rootCauseSummary": "...",
80
+ "affectedFilesHash": "sha256...",
81
+ "affectedFiles": ["path/a.ts", "path/b.ts"],
82
+ "cachedAt": "{ISO}"
83
+ }
84
+ ```
85
+
86
+ For Fast Path (no spec yet), keep the cache in-memory only — it lives for the duration of the bugfix session, which is sufficient for the retry loop.
61
87
  3. **ASSESS — Decision point:**
62
88
  - Explore returns clear root cause in 1-2 files → **Fast Path** (skip PLAN)
63
89
  - 3+ files, unclear impact, cross-layer → **Full Path** (brief spec via PLAN)
64
90
 
65
91
  **Fast Path:** Go directly to EXECUTE. No spec, no approval gate (Zero Context-Switch Protocol). If you want to review the fix plan before EXECUTE, force Full Path by listing >5 files in the ANALYZE return.
66
- **Full Path:** Write brief spec in `.claude/spec/active/{date}-{name}/spec.md`, then **present the full spec to the user before stopping**:
92
+ **Full Path:** Write brief spec in `.claude/spec/active/{date}-{name}/spec.md`. The spec MUST include (Wave 10):
93
+ ```markdown
94
+ ## Acceptance Criteria
95
+
96
+ - [ ] AC-1: Bug is no longer reproducible — Command: `{command that previously triggered the bug}`
97
+ - [ ] AC-2: {additional verification if applicable} — Command: `{cmd}`
98
+ ```
99
+ Minimum 1 AC: the reproduction command for the bug (exits non-zero before fix, exits 0 after fix).
100
+ Then **present the full spec to the user before stopping**:
67
101
  - Read the spec file just written and print its ENTIRE contents verbatim inside a fenced markdown block (```` ```markdown ... ``` ````). Do NOT summarize — the user asked to read the complete plan before approving.
68
102
  - After the fenced block, instruct: _"Run `/approve` (or `/approve --resume` to chain inline) to proceed to EXECUTE."_
69
103
 
@@ -125,14 +159,35 @@ Before retrying a failed fix attempt, classify the failure:
125
159
 
126
160
  1. **Transient?** — Would re-running succeed without any change? (flaky test, cache, env) → Retry once immediately.
127
161
  2. **Resolvable?** — Is the fix clear and patchable in ≤3 lines without new reads? → Apply patch, retry (counts as retry 1).
128
- 3. **Structural?** — Did the original ANALYZE misidentify the root cause? → Re-analyze: dispatch a focused Explore on the actual failure point, update root cause, re-dispatch bugfix agent. Does NOT count against the 2-retry cap.
162
+ 3. **Structural?** — Did the original ANALYZE misidentify the root cause? → **Before re-Exploring, consult the root-cause cache from Step 2b:**
163
+ - Recompute `affectedFilesHash` for the cached `affectedFiles`.
164
+ - **Cache hit (hash matches) AND failure signal does NOT suggest a different cause** (no keyword in the failure pointing to files outside `affectedFiles`, no REVIEW rationale explicitly naming a different root) → skip re-Explore, inject `rootCauseSummary` verbatim into the retry prompt. Log: `root-cause cached (retry {N}/2), skipping diagnose`.
165
+ - **Cache miss (files changed) OR failure rationale points elsewhere** → invalidate cache, run targeted Explore on the actual failure point, update root cause (including new cache entry via Step 2b), re-dispatch bugfix agent.
166
+ - Re-ANALYZE (with or without cache) does NOT count against the 2-retry cap.
167
+
168
+ Max 2 retries for Transient + Resolvable. Structural failures trigger a targeted re-ANALYZE (cache-gated), not a blind retry.
169
+
170
+ **Cache invalidation signals:**
171
+ - Affected files changed on disk → hash mismatch invalidates
172
+ - Review/build failure rationale mentions files outside `affectedFiles` → invalidate
173
+ - User explicitly overrides (rare) → invalidate
174
+ - After 2 retries exhausted, the cache is naturally flushed when the pipeline aborts or advances
175
+
176
+ ### QA Phase (Wave 10)
177
+
178
+ After EXECUTE (fix + validate) completes:
129
179
 
130
- Max 2 retries for Transient + Resolvable. Structural failures trigger a targeted re-ANALYZE, not a blind retry.
180
+ 1. Update pipeline state: `phaseName: "QA"`
181
+ 2. Run: `node .claude/scripts/qa-run.js --spec {specName}` (Full Path only)
182
+ - For Fast Path: manually verify the bug reproduction command exits 0, emit result to harness
183
+ 3. If `overall=pass`: proceed to CLOSE
184
+ 4. If `overall=fail`: the bug reproduction AC still fails — return to EXECUTE for targeted fix, max 3 QA iterations
185
+ 5. Maximum 3 QA iterations — after that, escalate to user
131
186
 
132
187
  ### CLOSE
133
188
 
134
189
  - `node .claude/scripts/sync-registry.js` (if entities changed)
135
- - Output bugfix report (diagnosis, fix, validation)
190
+ - Output bugfix report (diagnosis, fix, validation, QA result)
136
191
 
137
192
  ## Zero Context-Switch Protocol
138
193
 
@@ -133,6 +133,18 @@ On completion, the output must include:
133
133
  - Summary of changes (what and why)
134
134
  - Files created/modified
135
135
 
136
+ ### Wave 8 — Epic Auto-Fold
137
+
138
+ After marking a spec CLOSE, check if the parent epic is now complete:
139
+ ```bash
140
+ node .claude/scripts/epic-fold.js --detect
141
+ ```
142
+ If output lists epics ready to fold:
143
+ ```bash
144
+ node .claude/scripts/epic-fold.js --epic <name>
145
+ ```
146
+ This consolidates learning into knowledge.json and marks granular events compactable.
147
+
136
148
  ## When to Use
137
149
 
138
150
  - After successful implementation and review
@@ -113,6 +113,28 @@ After ANALYZE completes, if the analysis required heavy exploration (>8 file rea
113
113
  - Suggest to user: _"Analysis complete. Context is heavy — consider `/compact` before we proceed to implementation, then `/resume`."_
114
114
  - This is advisory only — proceed immediately if user declines or ignores.
115
115
 
116
+ ### Decomposition Rule (Wave 7)
117
+
118
+ When ANALYZE surfaces ANY of:
119
+ - >5 files in scope, OR
120
+ - >3 architectural layers (e.g., UI + API + service + DB), OR
121
+ - Multiple independent sub-behaviors
122
+
123
+ STOP, decompose into child specs:
124
+ 1. Define root spec name (epic) — captures the user intent.
125
+ 2. Identify 2–5 child specs — each covers 1 coherent sub-behavior, ≤5 files, ≤2 layers.
126
+ 3. Link children to root:
127
+ ```bash
128
+ node .claude/scripts/spec-link.js --parent <epic> --child <sub1> --reason "<why split>"
129
+ node .claude/scripts/spec-link.js --parent <epic> --child <sub2> --reason "<why split>"
130
+ ```
131
+ 4. Start pipeline on children in order (parallel where independent).
132
+ 5. Parent spec stays in `phase: COORDINATE` until all children reach `CLOSE` → then parent transitions to `CLOSE`.
133
+
134
+ Do NOT put all implementation in one spec when the rule triggers.
135
+
136
+ **COORDINATE phase (parent specs):** A spec with `children_specs.length > 0` may enter `COORDINATE`. In this phase the orchestrator tracks children progress — it does NOT implement. Update `.claude/.pipeline-states/{epic}.json` to `phase: "COORDINATE"` after linking. When all children = CLOSE, update parent to `phase: "CLOSE"`.
137
+
116
138
  ### End of ANALYZE — Validation
117
139
 
118
140
  Run: `rtk node .claude/scripts/analyze-validation.js --spec .claude/spec/active/{specName}/spec.md`
@@ -121,6 +143,101 @@ Continue to PLAN regardless.
121
143
 
122
144
  ### PLAN Phase
123
145
 
146
+ #### Wave Decomposition Pre-Check (Full scope only)
147
+
148
+ **Skip for Light/Extended Light** — decomposition only makes sense when scope is genuinely large.
149
+
150
+ Before writing the single spec in Full scope, check whether the work should be decomposed into waves:
151
+
152
+ 1. **Compute signals from ANALYZE output:**
153
+ - `fileCount` — files that will go into `## Files`
154
+ - `layerCount` — distinct layers (use role detection derived from paths: schema/api/ui/lib)
155
+ - `newEntityCount` — new entities created by this spec
156
+ - `estimatedTouchPoints` — count of imports/refs from Grep on affected directories (optional)
157
+
158
+ 2. **Read knowledge matches:** Read `.claude/knowledge.json` (if it exists). Extract entries whose `id` starts with `heavy-pipeline` or `high-hook-retry`. Each entry's scope signals represent a historical pipeline that cost a lot.
159
+
160
+ 3. **Run decomposition decision:**
161
+ ```bash
162
+ echo '{"fileCount":{N},"layerCount":{L},"newEntityCount":{E},"knowledgeMatches":[...]}' | node .claude/scripts/scope-decompose.js
163
+ ```
164
+ Output JSON: `{decompose: bool, reason: string, signals: {...}}`
165
+
166
+ 4. **If `decompose: false`** → proceed to `#### Full Scope` below as usual (single spec).
167
+
168
+ 5. **If `decompose: true`** → build wave plan:
169
+ ```bash
170
+ echo '{"files":[...all paths from ANALYZE...],"projectRoot":"."}' | node .claude/scripts/wave-dependency.js
171
+ ```
172
+ Output cases:
173
+ - `{error: "cyclic-dependency", cycle: [...]}` → warn user about cyclic imports (pre-existing architecture issue), fall back to single spec with note in `## Concerns`. Proceed to `#### Full Scope`.
174
+ - `{error: ...}` → fail-open: fall back to single spec.
175
+ - `{waves: [...]}` with only 1 wave → no real DAG depth, fall back to single spec.
176
+ - `{waves: [...]}` with 2+ waves → write **Wave Plan** (step 6).
177
+
178
+ 6. **Write Wave Plan structure:**
179
+ ```
180
+ .claude/spec/active/{date}-{name}/
181
+ ├── wave-plan.md
182
+ ├── wave-1-{role}/spec.md
183
+ ├── wave-2-{role}/spec.md
184
+ └── wave-N-{role}/spec.md
185
+ ```
186
+
187
+ `wave-plan.md` contains:
188
+ ```markdown
189
+ # Wave Plan: {name}
190
+ ### Status: draft | Phase: PLAN | Scope: full | Decomposed: yes
191
+ ### Checkpoint: {ISO now}
192
+ ### Reason: {decompose.reason}
193
+
194
+ ## Summary
195
+ {1-2 lines: what + why}
196
+
197
+ ## Waves
198
+ ### Wave 1 — {roles of wave 1}
199
+ Depends on: none
200
+ Files ({count}): {file1}, {file2}, ...
201
+
202
+ ### Wave 2 — {roles of wave 2}
203
+ Depends on: wave 1
204
+ Files ({count}): {file3}, ...
205
+
206
+ {... for each wave ...}
207
+
208
+ ## Rationale
209
+ {which knowledge entry matched or which threshold triggered; signals from scope-decompose}
210
+ ```
211
+
212
+ Each `wave-N-{role}/spec.md` is a **complete atomic spec** scoped to just that wave's files. Use the same template as Full scope single spec (Summary, Entity Info, Files, Tasks, Dependencies, Boundaries). Reference `../wave-plan.md` at the top as context.
213
+
214
+ 7. **Write pipeline state for wave plan:**
215
+ ```json
216
+ {
217
+ "specName": "{date}-{name}",
218
+ "status": "draft",
219
+ "phase": 2,
220
+ "phaseName": "PLAN",
221
+ "scope": "full",
222
+ "isWavePlan": true,
223
+ "currentWave": 1,
224
+ "totalWaves": N,
225
+ "completedWaves": [],
226
+ "failedWaves": []
227
+ }
228
+ ```
229
+
230
+ 8. **Present wave plan to user:**
231
+ - Read `wave-plan.md` and print its ENTIRE contents verbatim inside a fenced markdown block.
232
+ - Also list each wave's spec file paths (one line each) so the user can open individual wave specs if desired.
233
+ - Then `AskUserQuestion`:
234
+ - **"Approve wave plan and implement now"** → goes to EXECUTE wave 1 inline (same rules as Light inline)
235
+ - **"Approve wave plan for later"** → stop, user runs `/approve` + `/resume`
236
+ - **"Edit decomposition (hint PLAN)"** → user provides hint (e.g., "merge waves 2 and 3"), PLAN reexecutes with the hint appended to `estimatedTouchPoints`/manual grouping. Re-decompose once.
237
+ - **"Reject decomposition — use single spec"** → discard wave plan files, set `scopeOverride: "user-rejected-waves"` in pipeline state, proceed to `#### Full Scope` as if `decompose: false`.
238
+
239
+ 9. **If user approves the wave plan**, the single-spec `#### Full Scope` flow below is **skipped** — wave-1 becomes the first thing to execute (via `/approve --resume` or `/resume`).
240
+
124
241
  #### Full Scope
125
242
 
126
243
  1. Create `.claude/spec/active/{date}-{name}/spec.md` with:
@@ -130,6 +247,17 @@ Continue to PLAN regardless.
130
247
  - If a frontend task has NO dependency on new backend endpoints or types, mark it as `(parallel-safe)` in the spec header:
131
248
  `### Frontend Agent (Wave 1, parallel-safe)`
132
249
  This allows the orchestrator to dispatch it alongside backend in Wave 1.
250
+ - **MANDATORY: `## Acceptance Criteria` section** (Wave 10) with 3-8 binary, executable AC items:
251
+ ```markdown
252
+ ## Acceptance Criteria
253
+
254
+ Testable, binary (pass/fail) criteria. Each MUST be executable and independent.
255
+
256
+ - [ ] AC-1: {description} — Command: `{exact command to verify}`
257
+ - [ ] AC-2: {description} — Command: `{exact command to verify}`
258
+ ```
259
+ Rules for AC: exit 0 = pass, non-zero = fail. Commands must be runnable from project root.
260
+ Focus on observable behavior: build succeeds, endpoint returns expected, test passes.
133
261
  2. Add checkpoint fields: `Status: draft`, `Phase: PLAN`, `Scope: full`, `Checkpoint: {now}`
134
262
  3. Create `.claude/.pipeline-states/{spec-name}.json`: `specName`, `status: "active"`, `phase: 2`, `phaseName: "PLAN"`, `scope: "full"`
135
263
  4. Elegance Check: 3+ files or complex logic → "Is there a more elegant approach?"
@@ -156,7 +284,13 @@ Continue to PLAN regardless.
156
284
 
157
285
  ## Files (~{N})
158
286
  - `path/to/file.ext` (create|modify)
287
+
288
+ ## Acceptance Criteria
289
+
290
+ - [ ] AC-1: {description} — Command: `{exact command}`
291
+ - [ ] AC-2: {description} — Command: `{exact command}`
159
292
  ```
293
+ Light scope: minimum 1-3 AC items. At least AC-1 must verify the feature works.
160
294
  2. Create `.claude/.pipeline-states/{spec-name}.json`: `specName`, `status: "active"`, `phase: 2`, `scope: "light"`
161
295
  3. **Present full spec to user before asking for approval:**
162
296
  - Read the spec file just written and print its ENTIRE contents verbatim inside a fenced markdown block. Do NOT summarize — Light scope specs are already compact, so the full print is cheap and the user asked to read the complete plan before approving.
@@ -282,9 +416,27 @@ Before retrying, classify the failure with 3 questions:
282
416
 
283
417
  Retry cap applies to Transient + Resolvable only. Structural failures reset the attempt after spec correction.
284
418
 
419
+ ### QA Phase (Wave 10)
420
+
421
+ After all EXECUTE tasks complete:
422
+
423
+ 1. Update pipeline state: `phaseName: "QA"`
424
+ 2. Run: `node .claude/scripts/qa-run.js --spec {specName}`
425
+ 3. If `overall=pass`: proceed to CLOSE
426
+ 4. If `overall=fail`: return failing AC list to the implementation agent for that specific criterion, re-run QA
427
+ 5. If `overall=skip` (no AC section): warn user, allow CLOSE (advisory)
428
+ 6. Maximum 3 QA iterations — after that, `AskUserQuestion`:
429
+ > "QA has failed 3 times for spec {specName}. Choose: (a) Fix manually and retry, (b) Relax the AC in the spec, (c) Abort pipeline."
430
+
431
+ Update spec `## Acceptance Criteria` checkboxes:
432
+ - `[x]` for each AC that passed
433
+ - `[ ]` remains for failed AC (to be fixed)
434
+
435
+ Visual update: `[v] ANALYZE [v] PLAN [v] EXECUTE [>] QA [ ] CLOSE`
436
+
285
437
  ## Visual Output
286
438
 
287
- Progress: `[v] ANALYZE [>] PLAN [ ] EXECUTE [ ] CLOSE`
439
+ Progress: `[v] ANALYZE [>] PLAN [ ] EXECUTE [ ] QA [ ] CLOSE`
288
440
  Scope tag: `[LIGHT]` or `[FULL]` after progress line.
289
441
 
290
442
  ## Rules
@@ -300,5 +452,7 @@ Scope tag: `[LIGHT]` or `[FULL]` after progress line.
300
452
  - ALWAYS go straight to PLAN once you understand the change — more reads ≠ better spec
301
453
  - Light scope inline implement follows same dispatch rules as `/resume` (template, waves, retries)
302
454
  - Context budget: Grep entity-registry (not full read), Grep recipes (not full read), line-by-line checkbox updates
455
+ - Wave decomposition is opt-in via signals (knowledge matches, layer/file/entity counts) — never force waves on small scopes
456
+ - If wave decomposition is approved, single-spec Full Scope flow is skipped — waves execute sequentially via `/resume`
303
457
 
304
458
  ULTRATHINK