maestro-flow 0.3.9 → 0.3.11

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 (281) hide show
  1. package/.claude/agents/workflow-collab-planner.md +1 -1
  2. package/.claude/agents/workflow-executor.md +1 -1
  3. package/.claude/agents/workflow-plan-checker.md +1 -1
  4. package/.claude/agents/workflow-planner.md +1 -1
  5. package/.claude/commands/learn-decompose.md +176 -176
  6. package/.claude/commands/learn-follow.md +167 -167
  7. package/.claude/commands/learn-retro.md +1 -1
  8. package/.claude/commands/maestro-analyze.md +46 -3
  9. package/.claude/commands/maestro-coordinate.md +1 -3
  10. package/.claude/commands/maestro-execute.md +14 -0
  11. package/.claude/commands/maestro-plan.md +16 -0
  12. package/.claude/commands/manage-harvest.md +131 -131
  13. package/.claude/commands/manage-issue-discover.md +2 -2
  14. package/.claude/commands/manage-issue.md +5 -5
  15. package/.claude/commands/spec-add.md +67 -56
  16. package/.claude/commands/spec-load.md +66 -64
  17. package/.claude/commands/spec-setup.md +5 -9
  18. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  19. package/.codex/skills/learn-follow/SKILL.md +83 -0
  20. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  21. package/.codex/skills/learn-retro/SKILL.md +83 -0
  22. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  23. package/.codex/skills/maestro/SKILL.md +335 -0
  24. package/.codex/skills/maestro-analyze/SKILL.md +84 -75
  25. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  26. package/.codex/skills/maestro-chain/SKILL.md +233 -0
  27. package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
  28. package/.codex/skills/maestro-execute/SKILL.md +435 -438
  29. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  30. package/.codex/skills/maestro-init/SKILL.md +171 -167
  31. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  32. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  33. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  34. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  35. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  36. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  37. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  38. package/.codex/skills/maestro-plan/SKILL.md +66 -69
  39. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  40. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  41. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  42. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  43. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  44. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  45. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  46. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  47. package/.codex/skills/manage-issue/SKILL.md +80 -65
  48. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  49. package/.codex/skills/manage-learn/SKILL.md +190 -186
  50. package/.codex/skills/manage-memory/SKILL.md +95 -72
  51. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  52. package/.codex/skills/manage-status/SKILL.md +102 -89
  53. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  54. package/.codex/skills/quality-debug/SKILL.md +54 -66
  55. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  56. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  57. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  58. package/.codex/skills/quality-review/SKILL.md +93 -105
  59. package/.codex/skills/quality-sync/SKILL.md +101 -89
  60. package/.codex/skills/quality-test/SKILL.md +202 -198
  61. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  62. package/.codex/skills/spec-add/SKILL.md +58 -39
  63. package/.codex/skills/spec-load/SKILL.md +45 -40
  64. package/.codex/skills/spec-map/SKILL.md +180 -182
  65. package/.codex/skills/spec-setup/SKILL.md +94 -76
  66. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  67. package/.codex/skills/team-executor/SKILL.md +70 -112
  68. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  69. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  70. package/.codex/skills/team-review/SKILL.md +232 -225
  71. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  72. package/.codex/skills/team-testing/SKILL.md +242 -235
  73. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  74. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  75. package/README.md +14 -11
  76. package/README.zh-CN.md +14 -11
  77. package/chains/issue-lifecycle.json +13 -13
  78. package/chains/singles/issue-analyze.json +3 -3
  79. package/chains/singles/issue-execute.json +3 -3
  80. package/chains/singles/issue-plan.json +3 -3
  81. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
  82. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
  84. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  85. package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
  86. package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
  87. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  88. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  89. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  90. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  91. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  92. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  93. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
  94. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
  95. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  96. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  97. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
  98. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  99. package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
  100. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
  101. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
  102. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  103. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  104. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  105. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  106. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  107. package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
  108. package/dashboard/dist-server/src/hooks/constants.js +151 -16
  109. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  110. package/dashboard/dist-server/src/types/index.d.ts +5 -0
  111. package/dist/src/commands/collab.d.ts +1 -34
  112. package/dist/src/commands/collab.d.ts.map +1 -1
  113. package/dist/src/commands/collab.js +8 -76
  114. package/dist/src/commands/collab.js.map +1 -1
  115. package/dist/src/commands/hooks.d.ts +5 -1
  116. package/dist/src/commands/hooks.d.ts.map +1 -1
  117. package/dist/src/commands/hooks.js +115 -10
  118. package/dist/src/commands/hooks.js.map +1 -1
  119. package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
  120. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  121. package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
  122. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  123. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  124. package/dist/src/commands/install-ui/InstallExecution.js +5 -1
  125. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  126. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  127. package/dist/src/commands/install-ui/InstallFlow.js +7 -3
  128. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  129. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
  130. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  131. package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
  132. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  133. package/dist/src/commands/spec.d.ts.map +1 -1
  134. package/dist/src/commands/spec.js +7 -2
  135. package/dist/src/commands/spec.js.map +1 -1
  136. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
  137. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
  138. package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
  139. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
  140. package/dist/src/hooks/constants.d.ts +92 -12
  141. package/dist/src/hooks/constants.d.ts.map +1 -1
  142. package/dist/src/hooks/constants.js +151 -16
  143. package/dist/src/hooks/constants.js.map +1 -1
  144. package/dist/src/hooks/guards/index.d.ts +2 -0
  145. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  146. package/dist/src/hooks/guards/index.js +2 -0
  147. package/dist/src/hooks/guards/index.js.map +1 -1
  148. package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
  149. package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
  150. package/dist/src/hooks/guards/preflight-guard.js +95 -0
  151. package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
  152. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  153. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  154. package/dist/src/hooks/guards/spec-validator.js +66 -0
  155. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  156. package/dist/src/hooks/index.d.ts +1 -0
  157. package/dist/src/hooks/index.d.ts.map +1 -1
  158. package/dist/src/hooks/index.js +1 -0
  159. package/dist/src/hooks/index.js.map +1 -1
  160. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  161. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  162. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  163. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  164. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  165. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  166. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  167. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  168. package/dist/src/hooks/preflight-core.d.ts +37 -0
  169. package/dist/src/hooks/preflight-core.d.ts.map +1 -0
  170. package/dist/src/hooks/preflight-core.js +86 -0
  171. package/dist/src/hooks/preflight-core.js.map +1 -0
  172. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  173. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  174. package/dist/src/hooks/spec-bridge.js +97 -0
  175. package/dist/src/hooks/spec-bridge.js.map +1 -0
  176. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  177. package/dist/src/hooks/spec-injector.js +18 -12
  178. package/dist/src/hooks/spec-injector.js.map +1 -1
  179. package/dist/src/hooks/statusline.d.ts +8 -17
  180. package/dist/src/hooks/statusline.d.ts.map +1 -1
  181. package/dist/src/hooks/statusline.js +269 -112
  182. package/dist/src/hooks/statusline.js.map +1 -1
  183. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  184. package/dist/src/i18n/locales/en.js +5 -0
  185. package/dist/src/i18n/locales/en.js.map +1 -1
  186. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  187. package/dist/src/i18n/locales/zh.js +5 -0
  188. package/dist/src/i18n/locales/zh.js.map +1 -1
  189. package/dist/src/i18n/types.d.ts +5 -0
  190. package/dist/src/i18n/types.d.ts.map +1 -1
  191. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  192. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  193. package/dist/src/team/phase-orchestrator.js +165 -0
  194. package/dist/src/team/phase-orchestrator.js.map +1 -0
  195. package/dist/src/team/phase-types.d.ts +51 -0
  196. package/dist/src/team/phase-types.d.ts.map +1 -0
  197. package/dist/src/team/phase-types.js +41 -0
  198. package/dist/src/team/phase-types.js.map +1 -0
  199. package/dist/src/tools/collab-adapter.d.ts +17 -0
  200. package/dist/src/tools/collab-adapter.d.ts.map +1 -1
  201. package/dist/src/tools/collab-adapter.js +138 -0
  202. package/dist/src/tools/collab-adapter.js.map +1 -1
  203. package/dist/src/tools/index.d.ts.map +1 -1
  204. package/dist/src/tools/index.js +6 -0
  205. package/dist/src/tools/index.js.map +1 -1
  206. package/dist/src/tools/merge-validator.d.ts +24 -0
  207. package/dist/src/tools/merge-validator.d.ts.map +1 -0
  208. package/dist/src/tools/merge-validator.js +220 -0
  209. package/dist/src/tools/merge-validator.js.map +1 -0
  210. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  211. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  212. package/dist/src/tools/spec-entry-parser.js +196 -0
  213. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  214. package/dist/src/tools/spec-init.d.ts.map +1 -1
  215. package/dist/src/tools/spec-init.js +66 -92
  216. package/dist/src/tools/spec-init.js.map +1 -1
  217. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  218. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  219. package/dist/src/tools/spec-keyword-index.js +101 -0
  220. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  221. package/dist/src/tools/spec-loader.d.ts +3 -3
  222. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  223. package/dist/src/tools/spec-loader.js +49 -23
  224. package/dist/src/tools/spec-loader.js.map +1 -1
  225. package/dist/src/tools/team-agents.d.ts +27 -0
  226. package/dist/src/tools/team-agents.d.ts.map +1 -0
  227. package/dist/src/tools/team-agents.js +362 -0
  228. package/dist/src/tools/team-agents.js.map +1 -0
  229. package/dist/src/tools/team-mailbox.d.ts +40 -0
  230. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  231. package/dist/src/tools/team-mailbox.js +384 -0
  232. package/dist/src/tools/team-mailbox.js.map +1 -0
  233. package/dist/src/tools/team-msg.d.ts +17 -8
  234. package/dist/src/tools/team-msg.d.ts.map +1 -1
  235. package/dist/src/tools/team-msg.js +110 -13
  236. package/dist/src/tools/team-msg.js.map +1 -1
  237. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  238. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  239. package/dist/src/tools/team-tasks-mcp.js +408 -0
  240. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  241. package/dist/src/types/index.d.ts +5 -0
  242. package/dist/src/types/index.d.ts.map +1 -1
  243. package/package.json +2 -1
  244. package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
  245. package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
  246. package/templates/search-tools.md +1 -1
  247. package/workflows/analyze.md +816 -816
  248. package/workflows/brainstorm.md +471 -471
  249. package/workflows/cli-tools-usage.md +44 -27
  250. package/workflows/codebase-rebuild.md +332 -332
  251. package/workflows/codebase-refresh.md +240 -240
  252. package/workflows/delegate-usage.md +3 -3
  253. package/workflows/execute.md +1 -1
  254. package/workflows/harvest.md +420 -420
  255. package/workflows/integration-test.md +343 -343
  256. package/workflows/issue-analyze.md +6 -2
  257. package/workflows/issue-discover.md +414 -414
  258. package/workflows/issue-execute.md +6 -3
  259. package/workflows/issue-plan.md +5 -2
  260. package/workflows/maestro-coordinate.codex.md +281 -470
  261. package/workflows/maestro-coordinate.md +14 -14
  262. package/workflows/maestro-link-coordinate.md +2 -2
  263. package/workflows/maestro.codex.md +710 -0
  264. package/workflows/maestro.md +10 -11
  265. package/workflows/map.md +111 -111
  266. package/workflows/milestone-complete.md +176 -176
  267. package/workflows/plan.md +1 -1
  268. package/workflows/quick.md +497 -497
  269. package/workflows/refactor.md +300 -300
  270. package/workflows/retrospective.md +1 -1
  271. package/workflows/roadmap.md +335 -335
  272. package/workflows/spec-generate.md +640 -640
  273. package/workflows/specs-add.md +46 -81
  274. package/workflows/specs-load.md +15 -17
  275. package/workflows/specs-setup.md +40 -161
  276. package/.claude/commands/manage-issue-analyze.md +0 -62
  277. package/.claude/commands/manage-issue-execute.md +0 -73
  278. package/.claude/commands/manage-issue-plan.md +0 -62
  279. package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
  280. package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
  281. package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
@@ -1,185 +1,188 @@
1
- ---
2
- name: maestro-overlay
3
- description: Create or edit a non-invasive command overlay from natural-language intent. Writes a JSON patch file to ~/.maestro/overlays/, applies it via maestro overlay add, and confirms installation with idempotent re-apply support.
4
- argument-hint: "<intent> | --list | --remove <name>"
5
- allowed-tools: Read, Write, Bash, Glob, Grep
6
- ---
7
-
8
- # Maestro Overlay
9
-
10
- ## Usage
11
-
12
- ```bash
13
- $maestro-overlay "always run CLI verification after maestro-execute"
14
- $maestro-overlay "require reading doc X before maestro-plan"
15
- $maestro-overlay "--list"
16
- $maestro-overlay "--remove cli-verify-after-execute"
17
- ```
18
-
19
- **Flags**:
20
- - `<intent>` — Natural-language description of what to inject and where
21
- - `--list` — Show installed overlays and their applied state
22
- - `--remove <name>` — Strip overlay from targets and delete its file
23
-
24
- **Overlay storage**:
25
- - User overlays: `~/.maestro/overlays/*.json`
26
- - Shared docs: `~/.maestro/overlays/docs/*.md`
27
- - Shipped examples: `~/.maestro/overlays/_shipped/` (read-only)
28
-
29
- ---
30
-
31
- ## Overview
32
-
33
- 4-step pipeline: parse intent identify targets + injection points → draft overlay JSON → install via CLI and report. Overlays are JSON patch files that augment `.claude/commands/*.md` non-invasively. They survive reinstalls because `maestro install` auto-reapplies them. Each overlay is idempotent: the patcher wraps content in hashed HTML-comment markers, so re-running `maestro overlay apply` produces no file changes.
34
-
35
- ```
36
- Parse Intent → Identify Targets → Draft JSON → Install + Report
37
- (or --list / (read command (apply_patch (exec_command +
38
- --remove) XML sections) to overlays/) banner)
39
- ```
40
-
41
- **Available injection sections**: `purpose`, `required_reading`, `deferred_reading`, `context`, `execution`, `error_codes`, `success_criteria`
42
-
43
- **Patch modes**: `append`, `prepend`, `replace`, `new-section`
44
-
45
- ---
46
-
47
- ## Implementation
48
-
49
- ### Step 1: Parse User Intent
50
-
51
- ```javascript
52
- functions.update_plan({
53
- explanation: "Parsing overlay intent",
54
- plan: [
55
- { step: "Parse intent", status: "in_progress" },
56
- { step: "Identify targets and injection points", status: "pending" },
57
- { step: "Draft overlay JSON", status: "pending" },
58
- { step: "Install and report", status: "pending" }
59
- ]
60
- })
61
- ```
62
-
63
- **Quick-exit paths**:
64
- - `--list` → `functions.exec_command({ cmd: "maestro overlay list" })` then stop
65
- - `--remove <name>` → `functions.exec_command({ cmd: "maestro overlay remove <name>" })` then stop
66
-
67
- **Ambiguous intent**: If intent does not clearly specify (a) which command to target or (b) where in the flow to inject, ask up to 2 focused questions:
68
- ```javascript
69
- functions.request_user_input({
70
- id: "overlay-clarify",
71
- message: "Which command(s) should this overlay target? (e.g. maestro-execute, maestro-plan)"
72
- })
73
- ```
74
-
75
- ### Step 2: Identify Targets and Injection Points
76
-
77
- For each likely target command, read the pristine source from `$PKG_ROOT/.claude/commands/<name>.md` (preferred) or fall back to `~/.claude/commands/<name>.md`. Inspect XML sections and select injection point:
78
-
79
- | Intent type | Section | Mode |
80
- |-------------|---------|------|
81
- | New step after execution | `execution` | `append` |
82
- | Required reading / prerequisite | `required_reading` | `append` |
83
- | Preconditions / gating | `context` | `append` |
84
- | Output quality gate | `success_criteria` | `append` |
85
- | Brand-new section | `execution` | `new-section` (with `afterSection`) |
86
-
87
- ### Step 3: Draft Overlay JSON
88
-
89
- Build a slug from intent (kebab-case, lowercase, max 40 chars).
90
-
91
- ```javascript
92
- functions.apply_patch:
93
- *** Begin Patch
94
- *** Add File: ~/.maestro/overlays/<slug>.json
95
- +{
96
- + "name": "<slug>",
97
- + "description": "<short summary of what and why>",
98
- + "targets": ["<command-name>"],
99
- + "priority": 50,
100
- + "enabled": true,
101
- + "patches": [
102
- + {
103
- + "section": "<section>",
104
- + "mode": "<append|prepend|replace|new-section>",
105
- + "content": "<injected markdown content with (overlay) heading>"
106
- + }
107
- + ]
108
- +}
109
- *** End Patch
110
- ```
111
-
112
- **Content guidelines**:
113
- - Lead injected block with heading including `(overlay)` e.g. `## CLI Verification (overlay)`
114
- - `@~/.maestro/...` references are encouraged for docs
115
- - Keep content concise — overlay adds a step, not rewrites the command
116
-
117
- ```javascript
118
- functions.update_plan({
119
- explanation: "Overlay JSON drafted",
120
- plan: [
121
- { step: "Parse intent", status: "completed" },
122
- { step: "Identify targets and injection points", status: "completed" },
123
- { step: "Draft overlay JSON", status: "completed" },
124
- { step: "Install and report", status: "in_progress" }
125
- ]
126
- })
127
- ```
128
-
129
- ### Step 4: Install via CLI and Report
130
-
131
- ```javascript
132
- functions.exec_command({
133
- cmd: "maestro overlay add ~/.maestro/overlays/<slug>.json",
134
- workdir: "."
135
- })
136
- ```
137
-
138
- On validation failure, fix the JSON and re-run (max 2 retries).
139
-
140
- ```javascript
141
- functions.update_plan({
142
- explanation: "Overlay installed",
143
- plan: [
144
- { step: "Parse intent", status: "completed" },
145
- { step: "Identify targets and injection points", status: "completed" },
146
- { step: "Draft overlay JSON", status: "completed" },
147
- { step: "Install and report", status: "completed" }
148
- ]
149
- })
150
- ```
151
-
152
- Display report:
153
- ```
154
- === OVERLAY INSTALLED ===
155
- Name: <slug>
156
- Path: ~/.maestro/overlays/<slug>.json
157
- Targets: <command> (applied), <command> (skipped: missing)
158
- Scopes: [global]
159
-
160
- Re-apply: maestro overlay apply
161
- Remove: maestro overlay remove <slug>
162
- Inspect: maestro overlay list
163
- ```
164
-
165
- ---
166
-
167
- ## Error Handling
168
-
169
- | Code | Severity | Description | Recovery |
170
- |------|----------|-------------|----------|
171
- | E001 | error | `maestro overlay add` validation failed | Fix JSON syntax or section name, retry |
172
- | E002 | error | No targets found (all commands missing) | Check command name spelling |
173
- | E003 | error | `--remove` target not found in overlay store | Run `--list` to see installed overlays |
174
- | W001 | warning | One or more targets skipped (command missing from install) | Overlay still installed; applies when command is added |
175
-
176
- ---
177
-
178
- ## Core Rules
179
-
180
- 1. **Quick-exit first**: `--list` and `--remove` skip all intent parsing
181
- 2. **Pristine source preferred**: Always read `.claude/commands/<name>.md` for the untouched command spec before deciding injection point
182
- 3. **Idempotent content**: Injected blocks use hashed comment markers — re-runs produce no changes
183
- 4. **Heading required**: Every injected block must start with a `## <Title> (overlay)` heading
184
- 5. **Validate before report**: Run `maestro overlay add` successfully before displaying the report banner
185
- 6. **Max 2 clarification questions**: If intent is ambiguous, ask at most 2 focused questions then proceed with best guess
1
+ ---
2
+ name: maestro-overlay
3
+ description: Create or edit a non-invasive command overlay from natural-language intent. Writes a JSON patch file to ~/.maestro/overlays/, applies it via maestro overlay add, and confirms installation with idempotent re-apply support.
4
+ argument-hint: "<intent> | --list | --remove <name>"
5
+ allowed-tools: Read, Write, Bash, Glob, Grep
6
+ ---
7
+
8
+ <purpose>
9
+ 4-step pipeline: parse intent → identify targets + injection points → draft overlay JSON → install via CLI and report. Overlays are JSON patch files that augment `.claude/commands/*.md` non-invasively. They survive reinstalls because `maestro install` auto-reapplies them. Each overlay is idempotent: the patcher wraps content in hashed HTML-comment markers, so re-running `maestro overlay apply` produces no file changes.
10
+
11
+ ```
12
+ Parse Intent → Identify Targets → Draft JSON → Install + Report
13
+ (or --list / (read command (apply_patch (exec_command +
14
+ --remove) XML sections) to overlays/) banner)
15
+ ```
16
+
17
+ **Available injection sections**: `purpose`, `required_reading`, `deferred_reading`, `context`, `execution`, `error_codes`, `success_criteria`
18
+
19
+ **Patch modes**: `append`, `prepend`, `replace`, `new-section`
20
+ </purpose>
21
+
22
+ <context>
23
+
24
+ ```bash
25
+ $maestro-overlay "always run CLI verification after maestro-execute"
26
+ $maestro-overlay "require reading doc X before maestro-plan"
27
+ $maestro-overlay "--list"
28
+ $maestro-overlay "--remove cli-verify-after-execute"
29
+ ```
30
+
31
+ **Flags**:
32
+ - `<intent>` — Natural-language description of what to inject and where
33
+ - `--list` Show installed overlays and their applied state
34
+ - `--remove <name>` — Strip overlay from targets and delete its file
35
+
36
+ **Overlay storage**:
37
+ - User overlays: `~/.maestro/overlays/*.json`
38
+ - Shared docs: `~/.maestro/overlays/docs/*.md`
39
+ - Shipped examples: `~/.maestro/overlays/_shipped/` (read-only)
40
+
41
+ </context>
42
+
43
+ <invariants>
44
+ 1. **Quick-exit first**: `--list` and `--remove` skip all intent parsing
45
+ 2. **Pristine source preferred**: Always read `.claude/commands/<name>.md` for the untouched command spec before deciding injection point
46
+ 3. **Idempotent content**: Injected blocks use hashed comment markers — re-runs produce no changes
47
+ 4. **Heading required**: Every injected block must start with a `## <Title> (overlay)` heading
48
+ 5. **Validate before report**: Run `maestro overlay add` successfully before displaying the report banner
49
+ 6. **Max 2 clarification questions**: If intent is ambiguous, ask at most 2 focused questions then proceed with best guess
50
+ </invariants>
51
+
52
+ <execution>
53
+
54
+ ### Step 1: Parse User Intent
55
+
56
+ ```javascript
57
+ functions.update_plan({
58
+ explanation: "Parsing overlay intent",
59
+ plan: [
60
+ { step: "Parse intent", status: "in_progress" },
61
+ { step: "Identify targets and injection points", status: "pending" },
62
+ { step: "Draft overlay JSON", status: "pending" },
63
+ { step: "Install and report", status: "pending" }
64
+ ]
65
+ })
66
+ ```
67
+
68
+ **Quick-exit paths**:
69
+ - `--list` → `functions.exec_command({ cmd: "maestro overlay list" })` then stop
70
+ - `--remove <name>` → `functions.exec_command({ cmd: "maestro overlay remove <name>" })` then stop
71
+
72
+ **Ambiguous intent**: If intent does not clearly specify (a) which command to target or (b) where in the flow to inject, ask up to 2 focused questions:
73
+ ```javascript
74
+ functions.request_user_input({
75
+ id: "overlay-clarify",
76
+ message: "Which command(s) should this overlay target? (e.g. maestro-execute, maestro-plan)"
77
+ })
78
+ ```
79
+
80
+ ### Step 2: Identify Targets and Injection Points
81
+
82
+ For each likely target command, read the pristine source from `$PKG_ROOT/.claude/commands/<name>.md` (preferred) or fall back to `~/.claude/commands/<name>.md`. Inspect XML sections and select injection point:
83
+
84
+ | Intent type | Section | Mode |
85
+ |-------------|---------|------|
86
+ | New step after execution | `execution` | `append` |
87
+ | Required reading / prerequisite | `required_reading` | `append` |
88
+ | Preconditions / gating | `context` | `append` |
89
+ | Output quality gate | `success_criteria` | `append` |
90
+ | Brand-new section | `execution` | `new-section` (with `afterSection`) |
91
+
92
+ ### Step 3: Draft Overlay JSON
93
+
94
+ Build a slug from intent (kebab-case, lowercase, max 40 chars).
95
+
96
+ ```javascript
97
+ functions.apply_patch:
98
+ *** Begin Patch
99
+ *** Add File: ~/.maestro/overlays/<slug>.json
100
+ +{
101
+ + "name": "<slug>",
102
+ + "description": "<short summary of what and why>",
103
+ + "targets": ["<command-name>"],
104
+ + "priority": 50,
105
+ + "enabled": true,
106
+ + "patches": [
107
+ + {
108
+ + "section": "<section>",
109
+ + "mode": "<append|prepend|replace|new-section>",
110
+ + "content": "<injected markdown content with (overlay) heading>"
111
+ + }
112
+ + ]
113
+ +}
114
+ *** End Patch
115
+ ```
116
+
117
+ **Content guidelines**:
118
+ - Lead injected block with heading including `(overlay)` e.g. `## CLI Verification (overlay)`
119
+ - `@~/.maestro/...` references are encouraged for docs
120
+ - Keep content concise — overlay adds a step, not rewrites the command
121
+
122
+ ```javascript
123
+ functions.update_plan({
124
+ explanation: "Overlay JSON drafted",
125
+ plan: [
126
+ { step: "Parse intent", status: "completed" },
127
+ { step: "Identify targets and injection points", status: "completed" },
128
+ { step: "Draft overlay JSON", status: "completed" },
129
+ { step: "Install and report", status: "in_progress" }
130
+ ]
131
+ })
132
+ ```
133
+
134
+ ### Step 4: Install via CLI and Report
135
+
136
+ ```javascript
137
+ functions.exec_command({
138
+ cmd: "maestro overlay add ~/.maestro/overlays/<slug>.json",
139
+ workdir: "."
140
+ })
141
+ ```
142
+
143
+ On validation failure, fix the JSON and re-run (max 2 retries).
144
+
145
+ ```javascript
146
+ functions.update_plan({
147
+ explanation: "Overlay installed",
148
+ plan: [
149
+ { step: "Parse intent", status: "completed" },
150
+ { step: "Identify targets and injection points", status: "completed" },
151
+ { step: "Draft overlay JSON", status: "completed" },
152
+ { step: "Install and report", status: "completed" }
153
+ ]
154
+ })
155
+ ```
156
+
157
+ Display report:
158
+ ```
159
+ === OVERLAY INSTALLED ===
160
+ Name: <slug>
161
+ Path: ~/.maestro/overlays/<slug>.json
162
+ Targets: <command> (applied), <command> (skipped: missing)
163
+ Scopes: [global]
164
+
165
+ Re-apply: maestro overlay apply
166
+ Remove: maestro overlay remove <slug>
167
+ Inspect: maestro overlay list
168
+ ```
169
+
170
+ </execution>
171
+
172
+ <error_codes>
173
+
174
+ | Code | Severity | Description | Recovery |
175
+ |------|----------|-------------|----------|
176
+ | E001 | error | `maestro overlay add` validation failed | Fix JSON syntax or section name, retry |
177
+ | E002 | error | No targets found (all commands missing) | Check command name spelling |
178
+ | E003 | error | `--remove` target not found in overlay store | Run `--list` to see installed overlays |
179
+ | W001 | warning | One or more targets skipped (command missing from install) | Overlay still installed; applies when command is added |
180
+
181
+ </error_codes>
182
+
183
+ <success_criteria>
184
+ - [ ] Intent parsed and targets identified
185
+ - [ ] Overlay JSON drafted with correct section and mode
186
+ - [ ] `maestro overlay add` executed successfully
187
+ - [ ] Report displayed with apply/remove/inspect commands
188
+ </success_criteria>
@@ -5,35 +5,7 @@ argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--auto]
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 exploration angles, skip interactive clarification (P2), use defaults for complexity detection.
11
-
12
- # Maestro Plan (CSV Wave)
13
-
14
- ## Usage
15
-
16
- ```bash
17
- $maestro-plan "3"
18
- $maestro-plan -y "3 --auto"
19
- $maestro-plan -c 4 "3 --spec SPEC-001"
20
- $maestro-plan "3 --gaps"
21
- $maestro-plan "3 --dir .workflow/scratch/quick-nav-fix"
22
- $maestro-plan --continue "plan-phase3-20260318"
23
- ```
24
-
25
- **Flags**:
26
- - `-y, --yes`: Skip all confirmations (auto mode)
27
- - `-c, --concurrency N`: Max concurrent agents within each wave (default: 4)
28
- - `--continue`: Resume existing session
29
-
30
- **Output Directory**: `.workflow/.csv-wave/{session-id}/`
31
- **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `plan.json` + `.task/TASK-*.json`
32
-
33
- ---
34
-
35
- ## Overview
36
-
8
+ <purpose>
37
9
  Wave-based planning using `spawn_agents_on_csv`. Wave 1 explores codebase context in parallel across multiple angles, Wave 2 consumes all exploration findings to generate a verified execution plan.
38
10
 
39
11
  **Core workflow**: Resolve Phase -> Determine Explorations -> Parallel Exploration -> Sequential Planning -> Check + Confirm
@@ -74,10 +46,30 @@ Wave-based planning using `spawn_agents_on_csv`. Wave 1 explores codebase contex
74
46
  | |
75
47
  +---------------------------------------------------------------------------+
76
48
  ```
49
+ </purpose>
77
50
 
78
- ---
51
+ <context>
52
+ ```bash
53
+ $maestro-plan "3"
54
+ $maestro-plan -y "3 --auto"
55
+ $maestro-plan -c 4 "3 --spec SPEC-001"
56
+ $maestro-plan "3 --gaps"
57
+ $maestro-plan "3 --dir .workflow/scratch/quick-nav-fix"
58
+ $maestro-plan --continue "plan-phase3-20260318"
59
+ ```
60
+
61
+ **Flags**:
62
+ - `-y, --yes`: Skip all confirmations (auto mode)
63
+ - `-c, --concurrency N`: Max concurrent agents within each wave (default: 4)
64
+ - `--continue`: Resume existing session
79
65
 
80
- ## CSV Schema
66
+ When `--yes` or `-y`: Auto-confirm exploration angles, skip interactive clarification (P2), use defaults for complexity detection.
67
+
68
+ **Output Directory**: `.workflow/.csv-wave/{session-id}/`
69
+ **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `plan.json` + `.task/TASK-*.json`
70
+ </context>
71
+
72
+ <csv_schema>
81
73
 
82
74
  ### tasks.csv (Master State)
83
75
 
@@ -109,9 +101,7 @@ id,title,description,exploration_focus,deps,context_from,wave,status,findings,er
109
101
 
110
102
  Each wave generates `wave-{N}.csv` with extra `prev_context` column.
111
103
 
112
- ---
113
-
114
- ## Output Artifacts
104
+ ### Output Artifacts
115
105
 
116
106
  | File | Purpose | Lifecycle |
117
107
  |------|---------|-----------|
@@ -123,9 +113,7 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
123
113
  | `plan.json` | Execution plan (in phase directory) | Created by wave 2 agent |
124
114
  | `.task/TASK-*.json` | Individual task definitions (in phase directory) | Created by wave 2 agent |
125
115
 
126
- ---
127
-
128
- ## Session Structure
116
+ ### Session Structure
129
117
 
130
118
  ```
131
119
  .workflow/.csv-wave/plan-{phase}-{date}/
@@ -135,10 +123,20 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
135
123
  +-- context.md
136
124
  +-- wave-{N}.csv (temporary)
137
125
  ```
126
+ </csv_schema>
138
127
 
139
- ---
128
+ <invariants>
129
+ 1. **Start Immediately**: First action is session initialization, then Phase 1
130
+ 2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
131
+ 3. **CSV is Source of Truth**: Master tasks.csv holds all state
132
+ 4. **Context Propagation**: prev_context built from master CSV, not from memory
133
+ 5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
134
+ 6. **Skip on Failure**: If all exploration agents failed, planning agent proceeds with available context
135
+ 7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
136
+ 8. **DO NOT STOP**: Continuous execution until all waves complete
137
+ </invariants>
140
138
 
141
- ## Implementation
139
+ <execution>
142
140
 
143
141
  ### Session Initialization
144
142
 
@@ -207,8 +205,6 @@ Bash(`mkdir -p ${sessionFolder}`)
207
205
  Bash(`mkdir -p ${scratchDir}/.task/`)
208
206
  ```
209
207
 
210
- ---
211
-
212
208
  ### Phase 1: Phase Resolution -> CSV
213
209
 
214
210
  **Objective**: Resolve phase, load context, determine exploration angles, generate tasks.csv.
@@ -224,7 +220,7 @@ Bash(`mkdir -p ${scratchDir}/.task/`)
224
220
  - Read spec-ref if `--spec` flag
225
221
  - Read `.workflow/codebase/doc-index.json` if exists
226
222
  - Find design artifacts from `state.json.artifacts[]` (type=brainstorm with ui-designer) for MASTER.md
227
- - Load project specs via `maestro spec load --category planning`
223
+ - Load project specs via `maestro spec load --category arch`
228
224
 
229
225
  3. **Upstream analysis check**:
230
226
  - If `{contextDir}/conclusions.json` exists and has content: reuse as exploration context, skip wave 1
@@ -250,8 +246,6 @@ Bash(`mkdir -p ${scratchDir}/.task/`)
250
246
 
251
247
  **User validation**: Display exploration breakdown (skip if AUTO_YES or `--auto`).
252
248
 
253
- ---
254
-
255
249
  ### Phase 2: Wave Execution Engine
256
250
 
257
251
  **Objective**: Explore codebase then generate plan via spawn_agents_on_csv.
@@ -341,8 +335,6 @@ spawn_agents_on_csv({
341
335
  - If `--gaps`: create fix tasks from gap context, link to issues
342
336
  - If `--collab`: pre-allocate ID ranges for parallel planners
343
337
 
344
- ---
345
-
346
338
  ### Phase 3: Plan Checking + Confirmation
347
339
 
348
340
  **Objective**: Validate plan quality, revise if needed, present to user.
@@ -404,7 +396,15 @@ spawn_agents_on_csv({
404
396
  }
405
397
  ```
406
398
 
407
- 5. **Issue linking** (if --gaps): Update issues in `issues.jsonl` with status `planned`, link to TASK IDs.
399
+ 5. **Issue linking** (if --gaps):
400
+ For each created TASK-{NNN}.json that has `issue_id`:
401
+ - Update corresponding issue in `.workflow/issues/issues.jsonl`:
402
+ - `task_refs`: append TASK-{NNN} to array
403
+ - `task_plan_dir`: relative path to `.task/` directory
404
+ - `status`: "planned"
405
+ - `updated_at`: now()
406
+ - Append history entry: `{ action: "planned", at: <ISO>, by: "maestro-plan", summary: "Linked to TASK-{NNN}" }`
407
+ This ensures bidirectional issue <-> TASK traceability for dashboard display.
408
408
 
409
409
  6. **Display summary + options** (skip options if AUTO_YES):
410
410
  ```
@@ -421,11 +421,9 @@ spawn_agents_on_csv({
421
421
  Skill({ skill: "maestro-plan", args: "{phase}" }) -- Re-plan with modifications
422
422
  ```
423
423
 
424
- ---
425
-
426
- ## Shared Discovery Board Protocol
424
+ ### Shared Discovery Board Protocol
427
425
 
428
- ### Standard Discovery Types
426
+ #### Standard Discovery Types
429
427
 
430
428
  | Type | Dedup Key | Data Schema | Description |
431
429
  |------|-----------|-------------|-------------|
@@ -435,7 +433,7 @@ spawn_agents_on_csv({
435
433
  | `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
436
434
  | `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
437
435
 
438
- ### Domain Discovery Types
436
+ #### Domain Discovery Types
439
437
 
440
438
  | Type | Dedup Key | Data Schema | Description |
441
439
  |------|-----------|-------------|-------------|
@@ -444,7 +442,7 @@ spawn_agents_on_csv({
444
442
  | `risk_factor` | `data.risk` | `{risk, severity, mitigation, affected_files[]}` | Identified risk |
445
443
  | `test_command` | `data.command` | `{command, scope, framework}` | Test execution command |
446
444
 
447
- ### Protocol
445
+ #### Protocol
448
446
 
449
447
  1. **Read** `{session_folder}/discoveries.ndjson` before own exploration
450
448
  2. **Skip covered**: If discovery of same type + dedup key exists, skip
@@ -455,10 +453,9 @@ spawn_agents_on_csv({
455
453
  ```bash
456
454
  echo '{"ts":"<ISO>","worker":"{id}","type":"existing_pattern","data":{"name":"Result error handling","file":"src/utils/result.ts","description":"All functions return Result<T,E> instead of throwing","usage":"Used in auth, payments, validation modules"}}' >> {session_folder}/discoveries.ndjson
457
455
  ```
456
+ </execution>
458
457
 
459
- ---
460
-
461
- ## Error Handling
458
+ <error_codes>
462
459
 
463
460
  | Error | Resolution |
464
461
  |-------|------------|
@@ -473,16 +470,16 @@ echo '{"ts":"<ISO>","worker":"{id}","type":"existing_pattern","data":{"name":"Re
473
470
  | CSV parse error | Validate format, show line number |
474
471
  | discoveries.ndjson corrupt | Ignore malformed lines |
475
472
  | Continue mode: no session found | List available sessions |
476
-
477
- ---
478
-
479
- ## Core Rules
480
-
481
- 1. **Start Immediately**: First action is session initialization, then Phase 1
482
- 2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
483
- 3. **CSV is Source of Truth**: Master tasks.csv holds all state
484
- 4. **Context Propagation**: prev_context built from master CSV, not from memory
485
- 5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
486
- 6. **Skip on Failure**: If all exploration agents failed, planning agent proceeds with available context
487
- 7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
488
- 8. **DO NOT STOP**: Continuous execution until all waves complete
473
+ </error_codes>
474
+
475
+ <success_criteria>
476
+ - [ ] Session folder created with valid tasks.csv
477
+ - [ ] All waves executed in order
478
+ - [ ] plan.json produced in phase directory
479
+ - [ ] .task/TASK-*.json files produced for all tasks
480
+ - [ ] Plan passes quality checks (coverage, deps, criteria)
481
+ - [ ] context.md produced with exploration findings + plan overview
482
+ - [ ] index.json updated with plan metadata
483
+ - [ ] Issues linked (if --gaps mode)
484
+ - [ ] discoveries.ndjson append-only throughout
485
+ </success_criteria>