maestro-flow 0.3.10 → 0.3.12

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 (311) hide show
  1. package/.claude/agents/conceptual-planning-agent.md +1 -0
  2. package/.claude/agents/workflow-analyzer.md +114 -114
  3. package/.claude/agents/workflow-collab-planner.md +144 -144
  4. package/.claude/agents/workflow-debugger.md +102 -103
  5. package/.claude/agents/workflow-executor.md +127 -128
  6. package/.claude/agents/workflow-integration-checker.md +82 -82
  7. package/.claude/agents/workflow-nyquist-auditor.md +85 -84
  8. package/.claude/agents/workflow-phase-researcher.md +85 -85
  9. package/.claude/agents/workflow-plan-checker.md +90 -90
  10. package/.claude/agents/workflow-planner.md +178 -178
  11. package/.claude/agents/workflow-roadmapper.md +81 -83
  12. package/.claude/agents/workflow-verifier.md +119 -119
  13. package/.claude/commands/learn-decompose.md +176 -176
  14. package/.claude/commands/learn-follow.md +167 -167
  15. package/.claude/commands/learn-retro.md +3 -3
  16. package/.claude/commands/learn-second-opinion.md +2 -2
  17. package/.claude/commands/maestro-brainstorm.md +1 -0
  18. package/.claude/commands/maestro-coordinate.md +1 -3
  19. package/.claude/commands/maestro-fork.md +133 -111
  20. package/.claude/commands/maestro-merge.md +85 -77
  21. package/.claude/commands/maestro-plan.md +88 -2
  22. package/.claude/commands/maestro-roadmap.md +113 -2
  23. package/.claude/commands/maestro.md +1 -0
  24. package/.claude/commands/manage-harvest.md +131 -131
  25. package/.claude/commands/manage-issue.md +2 -2
  26. package/.claude/commands/quality-business-test.md +5 -5
  27. package/.claude/commands/quality-debug.md +3 -2
  28. package/.claude/commands/quality-retrospective.md +6 -4
  29. package/.claude/commands/quality-review.md +1 -1
  30. package/.claude/commands/quality-test-gen.md +5 -4
  31. package/.claude/commands/spec-add.md +67 -56
  32. package/.claude/commands/spec-load.md +66 -64
  33. package/.claude/commands/spec-setup.md +5 -9
  34. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  35. package/.codex/skills/learn-follow/SKILL.md +83 -0
  36. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  37. package/.codex/skills/learn-retro/SKILL.md +83 -0
  38. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  39. package/.codex/skills/maestro/SKILL.md +151 -279
  40. package/.codex/skills/maestro-analyze/SKILL.md +59 -71
  41. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  42. package/.codex/skills/maestro-chain/SKILL.md +95 -110
  43. package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
  44. package/.codex/skills/maestro-execute/SKILL.md +435 -446
  45. package/.codex/skills/maestro-fork/SKILL.md +98 -0
  46. package/.codex/skills/maestro-init/SKILL.md +172 -167
  47. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  48. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  49. package/.codex/skills/maestro-merge/SKILL.md +69 -0
  50. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  51. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  52. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  53. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  54. package/.codex/skills/maestro-plan/SKILL.md +58 -69
  55. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  56. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  57. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  58. package/.codex/skills/maestro-ui-design/SKILL.md +35 -32
  59. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  60. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  61. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  62. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  63. package/.codex/skills/manage-issue/SKILL.md +80 -65
  64. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  65. package/.codex/skills/manage-learn/SKILL.md +190 -186
  66. package/.codex/skills/manage-memory/SKILL.md +95 -72
  67. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  68. package/.codex/skills/manage-status/SKILL.md +102 -89
  69. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  70. package/.codex/skills/quality-debug/SKILL.md +54 -66
  71. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  72. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  73. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  74. package/.codex/skills/quality-review/SKILL.md +95 -107
  75. package/.codex/skills/quality-sync/SKILL.md +101 -89
  76. package/.codex/skills/quality-test/SKILL.md +202 -198
  77. package/.codex/skills/quality-test-gen/SKILL.md +94 -105
  78. package/.codex/skills/spec-add/SKILL.md +58 -39
  79. package/.codex/skills/spec-load/SKILL.md +45 -40
  80. package/.codex/skills/spec-map/SKILL.md +180 -182
  81. package/.codex/skills/spec-setup/SKILL.md +94 -76
  82. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  83. package/.codex/skills/team-executor/SKILL.md +70 -112
  84. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  85. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  86. package/.codex/skills/team-review/SKILL.md +232 -225
  87. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  88. package/.codex/skills/team-testing/SKILL.md +242 -235
  89. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  90. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  91. package/README.md +9 -4
  92. package/README.zh-CN.md +9 -4
  93. package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
  94. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
  95. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
  96. package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
  97. package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
  98. package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
  99. package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
  100. package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
  101. package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
  102. package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
  103. package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
  104. package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
  105. package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
  106. package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
  107. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
  108. package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
  109. package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
  110. package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
  111. package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
  112. package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
  113. package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
  114. package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
  115. package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
  116. package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
  117. package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
  118. package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
  119. package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
  120. package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
  121. package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
  122. package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
  123. package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
  124. package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
  125. package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
  126. package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
  127. package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
  128. package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
  129. package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
  130. package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
  131. package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
  132. package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
  133. package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
  134. package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
  135. package/dashboard/dist/index.html +2 -2
  136. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
  137. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  138. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
  139. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
  140. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
  141. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
  142. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
  143. package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
  144. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  145. package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
  146. package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
  147. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  148. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  149. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  150. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  151. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  152. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  153. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
  154. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
  155. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
  156. package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
  157. package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
  158. package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
  159. package/dashboard/dist-server/dashboard/src/shared/constants.js +10 -0
  160. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  161. package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
  162. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
  163. package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
  164. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  165. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +22 -0
  166. package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
  167. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  168. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  169. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +28 -2
  170. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  171. package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
  172. package/dashboard/dist-server/src/hooks/constants.d.ts +3 -1
  173. package/dashboard/dist-server/src/hooks/constants.js +4 -2
  174. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  175. package/dist/shared/agent-types.d.ts +4 -0
  176. package/dist/shared/agent-types.d.ts.map +1 -1
  177. package/dist/src/commands/collab.js +4 -4
  178. package/dist/src/commands/collab.js.map +1 -1
  179. package/dist/src/commands/hooks.d.ts.map +1 -1
  180. package/dist/src/commands/hooks.js +66 -1
  181. package/dist/src/commands/hooks.js.map +1 -1
  182. package/dist/src/commands/install-backend.d.ts.map +1 -1
  183. package/dist/src/commands/install-backend.js +29 -18
  184. package/dist/src/commands/install-backend.js.map +1 -1
  185. package/dist/src/commands/spec.d.ts.map +1 -1
  186. package/dist/src/commands/spec.js +7 -2
  187. package/dist/src/commands/spec.js.map +1 -1
  188. package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
  189. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
  190. package/dist/src/hooks/constants.d.ts +3 -1
  191. package/dist/src/hooks/constants.d.ts.map +1 -1
  192. package/dist/src/hooks/constants.js +4 -2
  193. package/dist/src/hooks/constants.js.map +1 -1
  194. package/dist/src/hooks/guards/index.d.ts +1 -0
  195. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  196. package/dist/src/hooks/guards/index.js +1 -0
  197. package/dist/src/hooks/guards/index.js.map +1 -1
  198. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  199. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  200. package/dist/src/hooks/guards/spec-validator.js +66 -0
  201. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  202. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  203. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  204. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  205. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  206. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  207. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  208. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  209. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  210. package/dist/src/hooks/skill-context.d.ts +3 -0
  211. package/dist/src/hooks/skill-context.d.ts.map +1 -1
  212. package/dist/src/hooks/skill-context.js +95 -9
  213. package/dist/src/hooks/skill-context.js.map +1 -1
  214. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  215. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  216. package/dist/src/hooks/spec-bridge.js +97 -0
  217. package/dist/src/hooks/spec-bridge.js.map +1 -0
  218. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  219. package/dist/src/hooks/spec-injector.js +18 -12
  220. package/dist/src/hooks/spec-injector.js.map +1 -1
  221. package/dist/src/hooks/statusline.d.ts.map +1 -1
  222. package/dist/src/hooks/statusline.js +6 -3
  223. package/dist/src/hooks/statusline.js.map +1 -1
  224. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  225. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  226. package/dist/src/team/phase-orchestrator.js +165 -0
  227. package/dist/src/team/phase-orchestrator.js.map +1 -0
  228. package/dist/src/team/phase-types.d.ts +51 -0
  229. package/dist/src/team/phase-types.d.ts.map +1 -0
  230. package/dist/src/team/phase-types.js +41 -0
  231. package/dist/src/team/phase-types.js.map +1 -0
  232. package/dist/src/tools/index.d.ts.map +1 -1
  233. package/dist/src/tools/index.js +6 -0
  234. package/dist/src/tools/index.js.map +1 -1
  235. package/dist/src/tools/merge-validator.d.ts.map +1 -1
  236. package/dist/src/tools/merge-validator.js +114 -16
  237. package/dist/src/tools/merge-validator.js.map +1 -1
  238. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  239. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  240. package/dist/src/tools/spec-entry-parser.js +196 -0
  241. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  242. package/dist/src/tools/spec-init.d.ts.map +1 -1
  243. package/dist/src/tools/spec-init.js +66 -92
  244. package/dist/src/tools/spec-init.js.map +1 -1
  245. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  246. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  247. package/dist/src/tools/spec-keyword-index.js +101 -0
  248. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  249. package/dist/src/tools/spec-loader.d.ts +3 -3
  250. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  251. package/dist/src/tools/spec-loader.js +49 -23
  252. package/dist/src/tools/spec-loader.js.map +1 -1
  253. package/dist/src/tools/team-agents.d.ts +27 -0
  254. package/dist/src/tools/team-agents.d.ts.map +1 -0
  255. package/dist/src/tools/team-agents.js +362 -0
  256. package/dist/src/tools/team-agents.js.map +1 -0
  257. package/dist/src/tools/team-mailbox.d.ts +40 -0
  258. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  259. package/dist/src/tools/team-mailbox.js +384 -0
  260. package/dist/src/tools/team-mailbox.js.map +1 -0
  261. package/dist/src/tools/team-msg.d.ts +17 -8
  262. package/dist/src/tools/team-msg.d.ts.map +1 -1
  263. package/dist/src/tools/team-msg.js +110 -13
  264. package/dist/src/tools/team-msg.js.map +1 -1
  265. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  266. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  267. package/dist/src/tools/team-tasks-mcp.js +408 -0
  268. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  269. package/package.json +2 -1
  270. package/shared/agent-types.ts +4 -0
  271. package/templates/worktree-scope.json +9 -10
  272. package/templates/worktrees.json +26 -27
  273. package/workflows/analyze.md +816 -816
  274. package/workflows/brainstorm.md +480 -471
  275. package/workflows/codebase-rebuild.md +332 -332
  276. package/workflows/codebase-refresh.md +240 -240
  277. package/workflows/debug.md +16 -6
  278. package/workflows/execute.md +1 -1
  279. package/workflows/fork.md +100 -36
  280. package/workflows/harvest.md +420 -420
  281. package/workflows/integration-test.md +355 -343
  282. package/workflows/issue-discover.md +414 -414
  283. package/workflows/issue.md +14 -4
  284. package/workflows/learn.md +19 -5
  285. package/workflows/maestro.md +1 -0
  286. package/workflows/map.md +111 -111
  287. package/workflows/merge.md +113 -55
  288. package/workflows/milestone-complete.md +176 -176
  289. package/workflows/plan.md +1 -1
  290. package/workflows/quick.md +497 -497
  291. package/workflows/refactor.md +300 -300
  292. package/workflows/retrospective.md +61 -22
  293. package/workflows/review.md +17 -4
  294. package/workflows/roadmap.md +335 -335
  295. package/workflows/spec-generate.md +640 -640
  296. package/workflows/specs-add.md +46 -81
  297. package/workflows/specs-load.md +15 -17
  298. package/workflows/specs-setup.md +40 -161
  299. package/workflows/test.md +12 -2
  300. package/workflows/ui-style.md +9 -2
  301. package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
  302. package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
  303. package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
  304. package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
  305. package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
  306. package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
  307. package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
  308. package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
  309. package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
  310. package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
  311. package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
@@ -5,14 +5,46 @@ argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--type u
5
5
  allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
6
  ---
7
7
 
8
- ## Auto Mode
9
-
10
- When `--yes` or `-y`: Auto-confirm test plan, skip interactive validation, use defaults for framework detection.
8
+ <purpose>
9
+ Wave-based test generation using `spawn_agents_on_csv`. Each source file/module gets an independent agent that classifies, plans, and writes tests using RED-GREEN methodology. All agents run in a single parallel wave.
11
10
 
12
- # Maestro Test Gen (CSV Wave)
11
+ **Core workflow**: Discover Infrastructure -> Identify Gaps -> Classify Files -> Decompose to CSV -> Parallel Test Gen -> Aggregate Results
13
12
 
14
- ## Usage
13
+ ```
14
+ +---------------------------------------------------------------------------+
15
+ | TEST GENERATION CSV WAVE WORKFLOW |
16
+ +---------------------------------------------------------------------------+
17
+ | |
18
+ | Phase 1: Gap Analysis -> CSV |
19
+ | +-- Resolve phase directory from arguments |
20
+ | +-- Discover test infrastructure (framework, patterns, conventions) |
21
+ | +-- Identify gaps from verification.json + coverage-report.json |
22
+ | +-- Classify changed files into unit/integration/e2e/skip |
23
+ | +-- Apply --type filter if set |
24
+ | +-- Generate tasks.csv with one row per source file |
25
+ | +-- User validates test plan breakdown (skip if -y) |
26
+ | |
27
+ | Phase 2: Wave Execution Engine |
28
+ | +-- Wave 1: Test Generation (independent parallel) |
29
+ | | +-- Each agent generates tests for its assigned source file |
30
+ | | +-- RED phase: write failing test targeting real behavior |
31
+ | | +-- GREEN assessment: check if source already satisfies |
32
+ | | +-- Discoveries shared via board (test patterns, fixtures) |
33
+ | | +-- Results: tests_created + coverage_delta per source file |
34
+ | +-- discoveries.ndjson shared across all agents (append-only) |
35
+ | |
36
+ | Phase 3: Results Aggregation |
37
+ | +-- Export results.csv + test-gen-report.json |
38
+ | +-- Run full test suite to verify no regressions |
39
+ | +-- Generate context.md with all findings |
40
+ | +-- Update validation.json with new coverage status |
41
+ | +-- Display summary with next steps |
42
+ | |
43
+ +---------------------------------------------------------------------------+
44
+ ```
45
+ </purpose>
15
46
 
47
+ <context>
16
48
  ```bash
17
49
  $quality-test-gen "3"
18
50
  $quality-test-gen -c 4 "3 --type unit"
@@ -25,53 +57,13 @@ $quality-test-gen --continue "test-gen-phase3-20260318"
25
57
  - `-c, --concurrency N`: Max concurrent agents within the wave (default: 6)
26
58
  - `--continue`: Resume existing session
27
59
 
60
+ When `--yes` or `-y`: Auto-confirm test plan, skip interactive validation, use defaults for framework detection.
61
+
28
62
  **Output Directory**: `.workflow/.csv-wave/{session-id}/`
29
63
  **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `test-gen-report.json` (structured output for downstream)
64
+ </context>
30
65
 
31
- ---
32
-
33
- ## Overview
34
-
35
- Wave-based test generation using `spawn_agents_on_csv`. Each source file/module gets an independent agent that classifies, plans, and writes tests using RED-GREEN methodology. All agents run in a single parallel wave.
36
-
37
- **Core workflow**: Discover Infrastructure → Identify Gaps → Classify Files → Decompose to CSV → Parallel Test Gen → Aggregate Results
38
-
39
- ```
40
- ┌─────────────────────────────────────────────────────────────────────────┐
41
- │ TEST GENERATION CSV WAVE WORKFLOW │
42
- ├─────────────────────────────────────────────────────────────────────────┤
43
- │ │
44
- │ Phase 1: Gap Analysis → CSV │
45
- │ ├─ Resolve phase directory from arguments │
46
- │ ├─ Discover test infrastructure (framework, patterns, conventions) │
47
- │ ├─ Identify gaps from verification.json + coverage-report.json │
48
- │ ├─ Classify changed files into unit/integration/e2e/skip │
49
- │ ├─ Apply --type filter if set │
50
- │ ├─ Generate tasks.csv with one row per source file │
51
- │ └─ User validates test plan breakdown (skip if -y) │
52
- │ │
53
- │ Phase 2: Wave Execution Engine │
54
- │ ├─ Wave 1: Test Generation (independent parallel) │
55
- │ │ ├─ Each agent generates tests for its assigned source file │
56
- │ │ ├─ RED phase: write failing test targeting real behavior │
57
- │ │ ├─ GREEN assessment: check if source already satisfies │
58
- │ │ ├─ Discoveries shared via board (test patterns, fixtures) │
59
- │ │ └─ Results: tests_created + coverage_delta per source file │
60
- │ └─ discoveries.ndjson shared across all agents (append-only) │
61
- │ │
62
- │ Phase 3: Results Aggregation │
63
- │ ├─ Export results.csv + test-gen-report.json │
64
- │ ├─ Run full test suite to verify no regressions │
65
- │ ├─ Generate context.md with all findings │
66
- │ ├─ Update validation.json with new coverage status │
67
- │ └─ Display summary with next steps │
68
- │ │
69
- └─────────────────────────────────────────────────────────────────────────┘
70
- ```
71
-
72
- ---
73
-
74
- ## CSV Schema
66
+ <csv_schema>
75
67
 
76
68
  ### tasks.csv (Master State)
77
69
 
@@ -96,8 +88,8 @@ id,title,description,source_file,test_type,test_framework,deps,context_from,wave
96
88
  | `test_framework` | Input | Detected or specified framework: jest/vitest/pytest/mocha/playwright/cypress |
97
89
  | `deps` | Input | Semicolon-separated dependency task IDs (empty for independent parallel) |
98
90
  | `context_from` | Input | Semicolon-separated task IDs whose findings this task needs (empty for wave 1) |
99
- | `wave` | Computed | Wave number (always 1 independent parallel topology) |
100
- | `status` | Output | `pending` `completed` / `failed` / `skipped` |
91
+ | `wave` | Computed | Wave number (always 1 -- independent parallel topology) |
92
+ | `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
101
93
  | `findings` | Output | Key findings summary: bugs discovered, patterns used (max 500 chars) |
102
94
  | `tests_created` | Output | Semicolon-separated paths to generated test files |
103
95
  | `coverage_delta` | Output | Coverage improvement estimate: `+N%` or `N new cases` |
@@ -107,36 +99,43 @@ id,title,description,source_file,test_type,test_framework,deps,context_from,wave
107
99
 
108
100
  Each wave generates `wave-{N}.csv` with extra `prev_context` column (empty for wave 1).
109
101
 
110
- ---
111
-
112
- ## Output Artifacts
102
+ ### Output Artifacts
113
103
 
114
104
  | File | Purpose | Lifecycle |
115
105
  |------|---------|-----------|
116
- | `tasks.csv` | Master state all tasks with status/findings | Updated after wave completes |
106
+ | `tasks.csv` | Master state -- all tasks with status/findings | Updated after wave completes |
117
107
  | `wave-{N}.csv` | Per-wave input (temporary) | Created before wave, deleted after |
118
108
  | `results.csv` | Final export of all task results | Created in Phase 3 |
119
109
  | `discoveries.ndjson` | Shared exploration board | Append-only, carries across agents |
120
110
  | `context.md` | Human-readable test generation report | Created in Phase 3 |
121
111
  | `test-gen-report.json` | Structured output for downstream commands | Created in Phase 3 |
122
112
 
123
- ---
124
-
125
- ## Session Structure
113
+ ### Session Structure
126
114
 
127
115
  ```
128
116
  .workflow/.csv-wave/test-gen-{phase}-{date}/
129
- ├── tasks.csv
130
- ├── results.csv
131
- ├── discoveries.ndjson
132
- ├── context.md
133
- ├── test-gen-report.json
134
- └── wave-{N}.csv (temporary)
117
+ +-- tasks.csv
118
+ +-- results.csv
119
+ +-- discoveries.ndjson
120
+ +-- context.md
121
+ +-- test-gen-report.json
122
+ +-- wave-{N}.csv (temporary)
135
123
  ```
124
+ </csv_schema>
136
125
 
137
- ---
126
+ <invariants>
127
+ 1. **Start Immediately**: First action is session initialization, then Phase 1
128
+ 2. **Single Wave**: All test generation agents run in one parallel wave (independent topology)
129
+ 3. **CSV is Source of Truth**: Master tasks.csv holds all state
130
+ 4. **RED-GREEN Methodology**: Write failing test first, then assess -- never write trivially passing tests
131
+ 5. **Tests Expose, Not Fix**: Failing tests document bugs; source code changes are NOT permitted
132
+ 6. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
133
+ 7. **Follow Existing Patterns**: Generated tests must match project's test conventions (imports, structure, assertions)
134
+ 8. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
135
+ 9. **DO NOT STOP**: Continuous execution until all agents complete and results are aggregated
136
+ </invariants>
138
137
 
139
- ## Implementation
138
+ <execution>
140
139
 
141
140
  ### Session Initialization
142
141
 
@@ -165,15 +164,13 @@ const sessionFolder = `.workflow/.csv-wave/${sessionId}`
165
164
  Bash(`mkdir -p ${sessionFolder}`)
166
165
  ```
167
166
 
168
- ---
169
-
170
- ### Phase 1: Gap Analysis → CSV
167
+ ### Phase 1: Gap Analysis -> CSV
171
168
 
172
169
  **Objective**: Discover test infrastructure, identify coverage gaps, classify files, generate tasks.csv.
173
170
 
174
171
  **Decomposition Rules**:
175
172
 
176
- 1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
173
+ 1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
177
174
 
178
175
  2. **Test infrastructure discovery**:
179
176
  - Find config files: `jest.config.*`, `vitest.config.*`, `pytest.ini`, `.mocharc.*`
@@ -210,12 +207,10 @@ Bash(`mkdir -p ${sessionFolder}`)
210
207
 
211
208
  7. **CSV generation**: One row per source file (skip category excluded).
212
209
 
213
- **Wave computation**: Single wave all tasks are independent parallel (wave = 1).
210
+ **Wave computation**: Single wave -- all tasks are independent parallel (wave = 1).
214
211
 
215
212
  **User validation**: Display test plan breakdown (skip if AUTO_YES).
216
213
 
217
- ---
218
-
219
214
  ### Phase 2: Wave Execution Engine
220
215
 
221
216
  **Objective**: Execute test generation agents in parallel via spawn_agents_on_csv.
@@ -262,12 +257,10 @@ Each agent receives:
262
257
  - Gap references (requirement IDs, descriptions)
263
258
  - RED-GREEN methodology rules:
264
259
  1. **RED**: Write test that fails if behavior is broken (not trivially passing)
265
- 2. **Verify RED**: Run test if passes, strengthen; if fails with expected error, good
260
+ 2. **Verify RED**: Run test -- if passes, strengthen; if fails with expected error, good
266
261
  3. **GREEN assessment**: If source satisfies, gap was missing test; if fails, record as bug discovery
267
262
  - Discovery board protocol for sharing test patterns and fixtures
268
- - Instruction to NOT fix source code failing tests are valuable bug documentation
269
-
270
- ---
263
+ - Instruction to NOT fix source code -- failing tests are valuable bug documentation
271
264
 
272
265
  ### Phase 3: Results Aggregation
273
266
 
@@ -332,7 +325,7 @@ Each agent receives:
332
325
  6. Generate `context.md`:
333
326
 
334
327
  ```markdown
335
- # Test Generation Report Phase {phase}
328
+ # Test Generation Report -- Phase {phase}
336
329
 
337
330
  ## Summary
338
331
  - Framework: {framework}
@@ -359,13 +352,13 @@ Each agent receives:
359
352
  - Existing tests broken: {N} (regressions)
360
353
 
361
354
  ## Bugs Discovered
362
- {list of failing tests with descriptions NOT fixed, documented only}
355
+ {list of failing tests with descriptions -- NOT fixed, documented only}
363
356
 
364
357
  ## Next Steps
365
358
  {suggested_next_command}
366
359
  ```
367
360
 
368
- 7. Update `validation.json` gaps: change MISSING COVERED for gaps that now have tests.
361
+ 7. Update `validation.json` gaps: change MISSING -> COVERED for gaps that now have tests.
369
362
 
370
363
  8. Copy `test-gen-report.json` to phase `.tests/` directory.
371
364
 
@@ -380,11 +373,9 @@ Each agent receives:
380
373
  | Regressions found | `quality-debug` immediately |
381
374
  | Coverage still low | Run again with `--type` for uncovered layers |
382
375
 
383
- ---
384
-
385
- ## Shared Discovery Board Protocol
376
+ ### Shared Discovery Board Protocol
386
377
 
387
- ### Standard Discovery Types
378
+ #### Standard Discovery Types
388
379
 
389
380
  | Type | Dedup Key | Data Schema | Description |
390
381
  |------|-----------|-------------|-------------|
@@ -394,7 +385,7 @@ Each agent receives:
394
385
  | `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
395
386
  | `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
396
387
 
397
- ### Domain Discovery Types
388
+ #### Domain Discovery Types
398
389
 
399
390
  | Type | Dedup Key | Data Schema | Description |
400
391
  |------|-----------|-------------|-------------|
@@ -403,7 +394,7 @@ Each agent receives:
403
394
  | `mock_strategy` | `data.module` | `{module, strategy, file}` | How a dependency is mocked |
404
395
  | `bug_discovered` | `data.location` | `{location, test_file, description, severity}` | Bug found via failing test |
405
396
 
406
- ### Protocol
397
+ #### Protocol
407
398
 
408
399
  1. **Read** `{session_folder}/discoveries.ndjson` before own test generation
409
400
  2. **Skip covered**: If discovery of same type + dedup key exists, skip
@@ -414,34 +405,32 @@ Each agent receives:
414
405
  ```bash
415
406
  echo '{"ts":"<ISO>","worker":"{id}","type":"test_pattern","data":{"name":"api-endpoint-test","file":"src/api/__tests__/users.test.ts","framework":"vitest","description":"supertest + vitest pattern for REST endpoints"}}' >> {session_folder}/discoveries.ndjson
416
407
  ```
408
+ </execution>
417
409
 
418
- ---
419
-
420
- ## Error Handling
410
+ <error_codes>
421
411
 
422
412
  | Error | Resolution |
423
413
  |-------|------------|
424
414
  | Phase directory not found | Abort with error: "Phase {N} not found" |
425
- | No verification results found | Abort with error: "No verification results run maestro-verify first" |
415
+ | No verification results found | Abort with error: "No verification results -- run maestro-verify first" |
426
416
  | No test framework detected | Abort with error: "No test framework detected (E003)" |
427
- | No gaps identified | Info: "No coverage gaps found phase fully tested" |
417
+ | No gaps identified | Info: "No coverage gaps found -- phase fully tested" |
428
418
  | Agent timeout | Mark as failed, continue with remaining agents |
429
419
  | Test file write conflict | Agent checks for existing test, extends rather than overwrites |
430
420
  | CSV parse error | Validate format, show line number |
431
421
  | discoveries.ndjson corrupt | Ignore malformed lines |
432
422
  | Continue mode: no session found | List available sessions |
433
423
  | Regression detected in existing tests | Flag as blocker (W002), do not fix source code |
434
-
435
- ---
436
-
437
- ## Core Rules
438
-
439
- 1. **Start Immediately**: First action is session initialization, then Phase 1
440
- 2. **Single Wave**: All test generation agents run in one parallel wave (independent topology)
441
- 3. **CSV is Source of Truth**: Master tasks.csv holds all state
442
- 4. **RED-GREEN Methodology**: Write failing test first, then assess — never write trivially passing tests
443
- 5. **Tests Expose, Not Fix**: Failing tests document bugs; source code changes are NOT permitted
444
- 6. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
445
- 7. **Follow Existing Patterns**: Generated tests must match project's test conventions (imports, structure, assertions)
446
- 8. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
447
- 9. **DO NOT STOP**: Continuous execution until all agents complete and results are aggregated
424
+ </error_codes>
425
+
426
+ <success_criteria>
427
+ - [ ] Session folder created with valid tasks.csv
428
+ - [ ] All test generation agents executed in parallel (single wave)
429
+ - [ ] Test files created following project conventions
430
+ - [ ] RED-GREEN methodology applied (no trivially passing tests)
431
+ - [ ] test-gen-report.json produced with classification and results
432
+ - [ ] context.md produced with test generation report
433
+ - [ ] Full test suite run to verify no regressions
434
+ - [ ] validation.json gaps updated for covered items
435
+ - [ ] discoveries.ndjson append-only throughout
436
+ </success_criteria>
@@ -1,31 +1,44 @@
1
1
  ---
2
2
  name: spec-add
3
- description: Add a spec entry (bug, pattern, decision, or rule) to the appropriate specs file
4
- argument-hint: "<type> <content>"
3
+ description: Add a spec entry to the appropriate specs file by category
4
+ argument-hint: "<category> <content>"
5
5
  allowed-tools: Read, Write, Bash, Glob, Grep
6
6
  ---
7
7
 
8
- # Spec Add
9
-
10
- ## Usage
8
+ <purpose>
9
+ Add a spec entry using `<spec-entry>` closed-tag format. Each category maps 1:1 to a single target file.
11
10
 
12
11
  ```bash
13
- $spec-add "pattern Always use named exports for utility functions"
14
- $spec-add "bug Off-by-one in pagination when page=0"
15
- $spec-add "decision Use Zod for runtime validation over io-ts"
16
- $spec-add "rule All API endpoints must return structured error objects"
12
+ $spec-add "coding Always use named exports for utility functions"
13
+ $spec-add "learning Off-by-one in pagination when page=0"
14
+ $spec-add "arch Use Zod for runtime validation over io-ts"
15
+ $spec-add "quality All API endpoints must return structured error objects"
17
16
  ```
18
17
 
19
- **Arguments**: `<type> <content>` where type is one of: bug, pattern, decision, rule, debug, test, review, validation.
18
+ **Valid categories**: coding, arch, quality, debug, test, review, learning.
19
+ </purpose>
20
20
 
21
- ---
21
+ <context>
22
+ $ARGUMENTS — `<category> <content>` where category selects the target file.
23
+
24
+ **Category-to-file mapping (1:1, same as spec-load):**
25
+ | Category | Target file |
26
+ |----------|------------|
27
+ | `coding` | `coding-conventions.md` |
28
+ | `arch` | `architecture-constraints.md` |
29
+ | `quality` | `quality-rules.md` |
30
+ | `debug` | `debug-notes.md` |
31
+ | `test` | `test-conventions.md` |
32
+ | `review` | `review-standards.md` |
33
+ | `learning` | `learnings.md` |
34
+ </context>
22
35
 
23
- ## Implementation
36
+ <execution>
24
37
 
25
38
  ### Step 1: Parse Input
26
39
 
27
- Extract type (first token) and content (remainder) from arguments.
28
- - Validate type is one of: bug, pattern, decision, rule, debug, test, review, validation (E003 if invalid)
40
+ Extract category (first token) and content (remainder) from arguments.
41
+ - Validate category is one of: coding, arch, quality, debug, test, review, learning (E003 if invalid)
29
42
  - Validate content is non-empty (E001 if missing)
30
43
 
31
44
  ### Step 2: Validate Specs Directory
@@ -36,44 +49,50 @@ test -d .workflow/specs || exit 1 # E002: not initialized
36
49
 
37
50
  ### Step 3: Route to File
38
51
 
39
- | Type | Primary File | Secondary Update |
40
- |------|-------------|-----------------|
41
- | `bug` | `learnings.md` | -- |
42
- | `pattern` | `learnings.md` | `coding-conventions.md` |
43
- | `decision` | `learnings.md` | `architecture-constraints.md` |
44
- | `rule` | `learnings.md` | `quality-rules.md` |
45
- | `debug` | `learnings.md` | `debug-notes.md` |
46
- | `test` | `learnings.md` | `test-conventions.md` |
47
- | `review` | `learnings.md` | `review-standards.md` |
48
- | `validation` | `learnings.md` | `validation-rules.md` |
52
+ Resolve target file from category-to-file mapping table. If the target file does not exist, create it with a basic header.
49
53
 
50
- ### Step 4: Append Entry
54
+ ### Step 4: Extract Keywords
51
55
 
52
- Append timestamped entry to `.workflow/specs/learnings.md` using the unified `[type] [date]` format:
56
+ Auto-extract 3-5 relevant keywords from the content. Keywords should be:
57
+ - Lowercase, no spaces (use hyphens for multi-word)
58
+ - Domain-specific terms that would help future lookup
59
+ - Avoid generic words (code, file, function, etc.)
53
60
 
54
- ```markdown
55
- ### [{type}] [{YYYY-MM-DD}] {first line of content}
61
+ ### Step 5: Write Entry
56
62
 
57
- {content}
58
- ```
63
+ Append `<spec-entry>` closed-tag block to target file:
59
64
 
60
- Example: `### [bug] [2026-03-21] Off-by-one in pagination when page=0`
65
+ ```markdown
66
+ <spec-entry category="{category}" keywords="{kw1},{kw2},{kw3}" date="{YYYY-MM-DD}">
61
67
 
62
- If type has a secondary file, also update that file with the new convention/rule/decision.
68
+ ### {title extracted from content}
63
69
 
64
- ### Step 5: Confirm
70
+ {content}
65
71
 
66
- ```
67
- Added [{type}] to learnings.md
68
- {Secondary file updated if applicable}
72
+ </spec-entry>
69
73
  ```
70
74
 
71
- ---
75
+ ### Step 6: Confirm
72
76
 
73
- ## Error Handling
77
+ ```
78
+ Added [{category}] to {target_file}
79
+ Keywords: {kw1}, {kw2}, {kw3}
80
+ Verify: /spec-load --keyword {kw1}
81
+ ```
82
+ </execution>
74
83
 
84
+ <error_codes>
75
85
  | Code | Severity | Description |
76
86
  |------|----------|-------------|
77
87
  | E001 | fatal | Category and content are both required |
78
88
  | E002 | fatal | `.workflow/specs/` not initialized -- run `Skill({ skill: "spec-setup" })` first |
79
- | E003 | fatal | Invalid category -- must be one of: bug, pattern, decision, rule, debug, test, review, validation |
89
+ | E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning |
90
+ </error_codes>
91
+
92
+ <success_criteria>
93
+ - [ ] Category and content parsed and validated
94
+ - [ ] Keywords auto-extracted from content (3-5 terms)
95
+ - [ ] Entry written in `<spec-entry>` closed-tag format with keywords attribute
96
+ - [ ] Entry appended to correct target file
97
+ - [ ] Confirmation displayed with keywords and verify command
98
+ </success_criteria>
@@ -1,26 +1,41 @@
1
1
  ---
2
2
  name: spec-load
3
3
  description: Load relevant specs for current context, optionally filtered by category or keyword
4
- argument-hint: "[--category <type>] [keyword]"
4
+ argument-hint: "[--category <type>] [--keyword <word>]"
5
5
  allowed-tools: Read, Bash, Glob, Grep
6
6
  ---
7
7
 
8
- # Spec Load
8
+ <purpose>
9
+ Load relevant specs filtered by category (file-level) and/or keyword (entry-level via `<spec-entry>` tags).
10
+ </purpose>
9
11
 
10
- ## Usage
12
+ <context>
13
+ $ARGUMENTS — optional category filter and keyword.
11
14
 
12
15
  ```bash
13
16
  $spec-load
14
- $spec-load "--category execution"
15
- $spec-load "authentication"
16
- $spec-load "--category debug error handling"
17
+ $spec-load "--category coding"
18
+ $spec-load "--keyword auth"
19
+ $spec-load "--category coding --keyword naming"
17
20
  ```
18
21
 
19
- **Flags**: `--category <type>` filters by spec category. Optional keyword searches within loaded files.
22
+ **Category-to-file mapping (1:1, same as spec-add):**
20
23
 
21
- ---
24
+ | Category | File loaded |
25
+ |----------|------------|
26
+ | `coding` | `coding-conventions.md` |
27
+ | `arch` | `architecture-constraints.md` |
28
+ | `quality` | `quality-rules.md` |
29
+ | `debug` | `debug-notes.md` |
30
+ | `test` | `test-conventions.md` |
31
+ | `review` | `review-standards.md` |
32
+ | `learning` | `learnings.md` |
33
+ | `all` (default) | All spec files |
22
34
 
23
- ## Implementation
35
+ **Keyword filtering**: When `--keyword` is provided, only entries with matching keyword in their `<spec-entry keywords="...">` attribute are returned. Legacy entries (heading format) are filtered by text grep.
36
+ </context>
37
+
38
+ <execution>
24
39
 
25
40
  ### Step 1: Validate Specs Directory
26
41
 
@@ -30,46 +45,36 @@ test -d .workflow/specs || exit 1 # E001: not initialized
30
45
 
31
46
  ### Step 2: Parse Arguments
32
47
 
33
- Extract optional `--category` flag and keyword from arguments.
34
-
35
- **Category-to-file mapping:**
36
-
37
- | Category | Files Loaded |
38
- |----------|-------------|
39
- | `general` | `learnings.md` |
40
- | `planning` | `architecture-constraints.md` |
41
- | `execution` | `coding-conventions.md`, `quality-rules.md` |
42
- | `debug` | `debug-notes.md` |
43
- | `test` | `test-conventions.md` |
44
- | `review` | `review-standards.md` |
45
- | `validation` | `validation-rules.md` |
46
- | `all` (default) | All spec files |
47
-
48
- ### Step 3: Load Files
48
+ Extract optional `--category` and `--keyword` flags from arguments.
49
49
 
50
- Read the spec files matching the category filter.
51
- If no files exist for the category, fall back to loading all specs.
50
+ ### Step 3: Load via CLI
52
51
 
53
- ### Step 4: Apply Keyword Filter
52
+ ```bash
53
+ maestro spec load [--category <cat>] [--keyword <word>]
54
+ ```
54
55
 
55
- If a keyword is provided, search within loaded files for matching sections using grep.
56
- Return only matching sections with file:line references.
57
- If no matches found, show all content in the category (W001).
56
+ If CLI unavailable, read files directly and apply keyword filter.
58
57
 
59
- ### Step 5: Display Results
58
+ ### Step 4: Display Results
60
59
 
61
60
  ```
62
- === SPECS: {category} ===
63
- {For each file}
64
- --- {filename} ---
65
- {content or matching sections}
61
+ === SPECS: {category} {keyword ? "keyword=" + keyword : ""} ===
62
+ --- {filename} ({category}) ---
63
+ {matched entry content (tags stripped)}
66
64
  ```
65
+ </execution>
67
66
 
68
- ---
69
-
70
- ## Error Handling
71
-
67
+ <error_codes>
72
68
  | Code | Severity | Description |
73
69
  |------|----------|-------------|
74
70
  | E001 | fatal | `.workflow/specs/` not initialized -- run `Skill({ skill: "spec-setup" })` first |
75
71
  | W001 | warning | No matching specs for keyword -- showing all in category |
72
+ </error_codes>
73
+
74
+ <success_criteria>
75
+ - [ ] `.workflow/specs/` directory validated
76
+ - [ ] Category and keyword parsed from arguments
77
+ - [ ] Files loaded per category mapping
78
+ - [ ] Keyword filtering applied at entry level (via `<spec-entry>` keywords)
79
+ - [ ] Results displayed with file references and stripped tags
80
+ </success_criteria>