maestro-flow 0.5.3 → 0.5.31

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 (259) hide show
  1. package/.agents/skills/learn-follow/SKILL.md +114 -114
  2. package/.agents/skills/learn-investigate/SKILL.md +138 -139
  3. package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
  4. package/.agents/skills/maestro/SKILL.md +2 -10
  5. package/.agents/skills/maestro-amend/SKILL.md +152 -152
  6. package/.agents/skills/maestro-analyze/SKILL.md +201 -252
  7. package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
  8. package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
  9. package/.agents/skills/maestro-collab/SKILL.md +159 -159
  10. package/.agents/skills/maestro-companion/SKILL.md +517 -517
  11. package/.agents/skills/maestro-composer/SKILL.md +173 -164
  12. package/.agents/skills/maestro-execute/SKILL.md +169 -170
  13. package/.agents/skills/maestro-fork/SKILL.md +97 -96
  14. package/.agents/skills/maestro-grill/SKILL.md +161 -162
  15. package/.agents/skills/maestro-guard/SKILL.md +93 -92
  16. package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
  17. package/.agents/skills/maestro-init/SKILL.md +117 -118
  18. package/.agents/skills/maestro-merge/SKILL.md +73 -66
  19. package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
  20. package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
  21. package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
  22. package/.agents/skills/maestro-next/SKILL.md +241 -245
  23. package/.agents/skills/maestro-overlay/SKILL.md +176 -166
  24. package/.agents/skills/maestro-plan/SKILL.md +211 -197
  25. package/.agents/skills/maestro-player/SKILL.md +167 -167
  26. package/.agents/skills/maestro-quick/SKILL.md +69 -63
  27. package/.agents/skills/maestro-ralph/SKILL.md +2 -36
  28. package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -872
  29. package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
  30. package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
  31. package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
  32. package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
  33. package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
  34. package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
  35. package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
  36. package/.agents/skills/maestro-update/SKILL.md +109 -106
  37. package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
  38. package/.agents/skills/manage-harvest/SKILL.md +83 -81
  39. package/.agents/skills/manage-issue/SKILL.md +59 -60
  40. package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
  41. package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
  42. package/.agents/skills/manage-knowhow/SKILL.md +70 -66
  43. package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
  44. package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
  45. package/.agents/skills/manage-status/SKILL.md +52 -42
  46. package/.agents/skills/manage-wiki/SKILL.md +69 -58
  47. package/.agents/skills/odyssey-debug/SKILL.md +445 -459
  48. package/.agents/skills/odyssey-improve/SKILL.md +477 -491
  49. package/.agents/skills/odyssey-planex/SKILL.md +576 -587
  50. package/.agents/skills/odyssey-review-test-fix/SKILL.md +400 -413
  51. package/.agents/skills/odyssey-ui/SKILL.md +431 -448
  52. package/.agents/skills/quality-auto-test/SKILL.md +140 -123
  53. package/.agents/skills/quality-debug/SKILL.md +145 -106
  54. package/.agents/skills/quality-refactor/SKILL.md +91 -53
  55. package/.agents/skills/quality-retrospective/SKILL.md +109 -63
  56. package/.agents/skills/quality-review/SKILL.md +141 -114
  57. package/.agents/skills/quality-sync/SKILL.md +74 -38
  58. package/.agents/skills/quality-test/SKILL.md +133 -103
  59. package/.agents/skills/security-audit/SKILL.md +217 -166
  60. package/.agents/skills/spec-add/SKILL.md +66 -59
  61. package/.agents/skills/spec-load/SKILL.md +68 -68
  62. package/.agents/skills/spec-remove/SKILL.md +42 -42
  63. package/.agents/skills/spec-setup/SKILL.md +38 -41
  64. package/.agy/skills/learn-follow/SKILL.md +114 -114
  65. package/.agy/skills/learn-investigate/SKILL.md +138 -139
  66. package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
  67. package/.agy/skills/maestro/SKILL.md +2 -10
  68. package/.agy/skills/maestro-amend/SKILL.md +152 -152
  69. package/.agy/skills/maestro-analyze/SKILL.md +201 -252
  70. package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
  71. package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
  72. package/.agy/skills/maestro-collab/SKILL.md +159 -159
  73. package/.agy/skills/maestro-companion/SKILL.md +517 -517
  74. package/.agy/skills/maestro-composer/SKILL.md +173 -164
  75. package/.agy/skills/maestro-execute/SKILL.md +169 -170
  76. package/.agy/skills/maestro-fork/SKILL.md +97 -96
  77. package/.agy/skills/maestro-grill/SKILL.md +161 -162
  78. package/.agy/skills/maestro-guard/SKILL.md +93 -92
  79. package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
  80. package/.agy/skills/maestro-init/SKILL.md +117 -118
  81. package/.agy/skills/maestro-merge/SKILL.md +73 -66
  82. package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
  83. package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
  84. package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
  85. package/.agy/skills/maestro-next/SKILL.md +241 -245
  86. package/.agy/skills/maestro-overlay/SKILL.md +176 -166
  87. package/.agy/skills/maestro-plan/SKILL.md +211 -197
  88. package/.agy/skills/maestro-player/SKILL.md +167 -167
  89. package/.agy/skills/maestro-quick/SKILL.md +69 -63
  90. package/.agy/skills/maestro-ralph/SKILL.md +2 -36
  91. package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -872
  92. package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
  93. package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
  94. package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
  95. package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
  96. package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
  97. package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
  98. package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
  99. package/.agy/skills/maestro-update/SKILL.md +109 -106
  100. package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
  101. package/.agy/skills/manage-harvest/SKILL.md +83 -81
  102. package/.agy/skills/manage-issue/SKILL.md +59 -60
  103. package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
  104. package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
  105. package/.agy/skills/manage-knowhow/SKILL.md +70 -66
  106. package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
  107. package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
  108. package/.agy/skills/manage-status/SKILL.md +52 -42
  109. package/.agy/skills/manage-wiki/SKILL.md +69 -58
  110. package/.agy/skills/odyssey-debug/SKILL.md +445 -459
  111. package/.agy/skills/odyssey-improve/SKILL.md +477 -491
  112. package/.agy/skills/odyssey-planex/SKILL.md +576 -587
  113. package/.agy/skills/odyssey-review-test-fix/SKILL.md +400 -413
  114. package/.agy/skills/odyssey-ui/SKILL.md +431 -448
  115. package/.agy/skills/quality-auto-test/SKILL.md +140 -123
  116. package/.agy/skills/quality-debug/SKILL.md +145 -106
  117. package/.agy/skills/quality-refactor/SKILL.md +91 -53
  118. package/.agy/skills/quality-retrospective/SKILL.md +109 -63
  119. package/.agy/skills/quality-review/SKILL.md +141 -114
  120. package/.agy/skills/quality-sync/SKILL.md +74 -38
  121. package/.agy/skills/quality-test/SKILL.md +133 -103
  122. package/.agy/skills/security-audit/SKILL.md +217 -166
  123. package/.agy/skills/spec-add/SKILL.md +66 -59
  124. package/.agy/skills/spec-load/SKILL.md +68 -68
  125. package/.agy/skills/spec-remove/SKILL.md +42 -42
  126. package/.agy/skills/spec-setup/SKILL.md +38 -41
  127. package/.claude/commands/learn-follow.md +127 -127
  128. package/.claude/commands/learn-investigate.md +151 -152
  129. package/.claude/commands/learn-second-opinion.md +118 -122
  130. package/.claude/commands/maestro-amend.md +164 -164
  131. package/.claude/commands/maestro-analyze.md +215 -266
  132. package/.claude/commands/maestro-blueprint.md +189 -204
  133. package/.claude/commands/maestro-brainstorm.md +209 -213
  134. package/.claude/commands/maestro-collab.md +172 -172
  135. package/.claude/commands/maestro-companion.md +531 -531
  136. package/.claude/commands/maestro-composer.md +188 -179
  137. package/.claude/commands/maestro-execute.md +183 -184
  138. package/.claude/commands/maestro-fork.md +111 -110
  139. package/.claude/commands/maestro-grill.md +175 -176
  140. package/.claude/commands/maestro-guard.md +103 -102
  141. package/.claude/commands/maestro-impeccable.md +311 -268
  142. package/.claude/commands/maestro-init.md +130 -131
  143. package/.claude/commands/maestro-merge.md +87 -80
  144. package/.claude/commands/maestro-milestone-audit.md +4 -10
  145. package/.claude/commands/maestro-milestone-complete.md +6 -7
  146. package/.claude/commands/maestro-milestone-release.md +136 -145
  147. package/.claude/commands/maestro-next.md +253 -257
  148. package/.claude/commands/maestro-overlay.md +188 -178
  149. package/.claude/commands/maestro-plan.md +225 -211
  150. package/.claude/commands/maestro-player.md +182 -182
  151. package/.claude/commands/maestro-quick.md +83 -77
  152. package/.claude/commands/maestro-ralph-beta.md +875 -886
  153. package/.claude/commands/maestro-ralph-execute.md +247 -247
  154. package/.claude/commands/maestro-ralph.md +2 -36
  155. package/.claude/commands/maestro-roadmap.md +173 -186
  156. package/.claude/commands/maestro-swarm-workflow.md +243 -264
  157. package/.claude/commands/maestro-tools-execute.md +122 -117
  158. package/.claude/commands/maestro-tools-register.md +162 -157
  159. package/.claude/commands/maestro-ui-codify.md +117 -100
  160. package/.claude/commands/maestro-universal-workflow.md +548 -561
  161. package/.claude/commands/maestro-update.md +122 -119
  162. package/.claude/commands/maestro.md +2 -10
  163. package/.claude/commands/manage-codebase-rebuild.md +87 -85
  164. package/.claude/commands/manage-harvest.md +97 -95
  165. package/.claude/commands/manage-issue-discover.md +83 -81
  166. package/.claude/commands/manage-issue.md +72 -73
  167. package/.claude/commands/manage-kg-extractors.md +128 -0
  168. package/.claude/commands/manage-knowhow-capture.md +92 -82
  169. package/.claude/commands/manage-knowhow.md +83 -79
  170. package/.claude/commands/manage-knowledge-audit.md +105 -88
  171. package/.claude/commands/manage-status.md +62 -52
  172. package/.claude/commands/manage-wiki.md +82 -71
  173. package/.claude/commands/odyssey-debug.md +459 -473
  174. package/.claude/commands/odyssey-improve.md +491 -505
  175. package/.claude/commands/odyssey-planex.md +590 -601
  176. package/.claude/commands/odyssey-review-test-fix.md +414 -427
  177. package/.claude/commands/odyssey-ui.md +445 -462
  178. package/.claude/commands/quality-auto-test.md +153 -136
  179. package/.claude/commands/quality-debug.md +159 -120
  180. package/.claude/commands/quality-refactor.md +105 -67
  181. package/.claude/commands/quality-retrospective.md +123 -77
  182. package/.claude/commands/quality-review.md +155 -128
  183. package/.claude/commands/quality-sync.md +88 -52
  184. package/.claude/commands/quality-test.md +147 -117
  185. package/.claude/commands/security-audit.md +230 -179
  186. package/.claude/commands/spec-add.md +77 -70
  187. package/.claude/commands/spec-load.md +78 -78
  188. package/.claude/commands/spec-remove.md +55 -55
  189. package/.claude/commands/spec-setup.md +49 -52
  190. package/dist/src/cli.js +1 -1
  191. package/dist/src/cli.js.map +1 -1
  192. package/dist/src/commands/kg.d.ts.map +1 -1
  193. package/dist/src/commands/kg.js +11 -5
  194. package/dist/src/commands/kg.js.map +1 -1
  195. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +2 -0
  196. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -1
  197. package/dist/src/graph/kg/extraction/code/code-extractor.js +32 -3
  198. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
  199. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
  200. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
  201. package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
  202. package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
  203. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
  204. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
  205. package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
  206. package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
  207. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
  208. package/dist/src/graph/kg/extraction/orchestrator.js +17 -5
  209. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
  210. package/dist/src/graph/kg/schema.sql +16 -11
  211. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -1
  212. package/dist/src/graph/kg/surface/cli.js +153 -56
  213. package/dist/src/graph/kg/surface/cli.js.map +1 -1
  214. package/dist/src/hooks/workspace.d.ts +4 -2
  215. package/dist/src/hooks/workspace.d.ts.map +1 -1
  216. package/dist/src/hooks/workspace.js +6 -2
  217. package/dist/src/hooks/workspace.js.map +1 -1
  218. package/package.json +91 -91
  219. package/workflows/analyze.md +25 -49
  220. package/workflows/auto-test.md +699 -699
  221. package/workflows/blueprint.md +403 -431
  222. package/workflows/brainstorm.md +54 -195
  223. package/workflows/business-test.md +570 -570
  224. package/workflows/claude-instructions.md +23 -51
  225. package/workflows/codex-instructions.md +27 -77
  226. package/workflows/coding-philosophy.md +69 -69
  227. package/workflows/command-authoring.md +823 -823
  228. package/workflows/debug.md +43 -98
  229. package/workflows/delegate-usage.md +39 -241
  230. package/workflows/execute.md +4 -53
  231. package/workflows/grill.md +12 -56
  232. package/workflows/harvest.md +22 -68
  233. package/workflows/init.md +148 -148
  234. package/workflows/instruction-authoring-guide.md +97 -0
  235. package/workflows/issue-execute.md +110 -110
  236. package/workflows/issue-gaps-analyze.codex.md +260 -260
  237. package/workflows/issue-gaps-analyze.md +216 -216
  238. package/workflows/issue-plan.md +110 -110
  239. package/workflows/issue.md +338 -346
  240. package/workflows/knowhow.md +0 -32
  241. package/workflows/learn.md +277 -277
  242. package/workflows/maestro-chain-execute.md +20 -20
  243. package/workflows/refactor.md +22 -44
  244. package/workflows/retrospective.md +16 -65
  245. package/workflows/review.md +446 -486
  246. package/workflows/roadmap.md +35 -132
  247. package/workflows/skill-authoring.md +265 -265
  248. package/workflows/spec-generate.md +470 -470
  249. package/workflows/specs-remove.md +104 -104
  250. package/workflows/sync.md +11 -41
  251. package/workflows/test-gen.md +226 -226
  252. package/workflows/test.md +385 -475
  253. package/workflows/ui-design.md +391 -391
  254. package/workflows/ui-style.md +199 -199
  255. package/workflows/wiki-connect.md +151 -151
  256. package/workflows/wiki-digest.md +178 -178
  257. package/workflows/wiki-manage.md +109 -109
  258. package/workflows/cli-tools-usage.md +0 -252
  259. package/workflows/delegate-protocol.codex.md +0 -65
@@ -1,178 +1,188 @@
1
- ---
2
- name: maestro-overlay
3
- description: Create or edit command overlays from natural language
4
- argument-hint: "<intent> — 描述要添加的规则或步骤,如 'always verify after execute'"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Bash
9
- - Glob
10
- - Grep
11
- - AskUserQuestion
12
- ---
13
- <purpose>
14
- Turn a user's natural-language instruction into a command overlaya JSON patch file that augments one or more `.claude/commands/*.md` files non-invasively. Overlays live at `~/.maestro/overlays/` and are auto-applied by every `maestro install` run, so injected steps survive reinstalls. Use this skill when the user says things like "always run CLI verification after `/maestro-execute`", "require reading doc X before `/maestro-plan`", or "add a `ccw cli` quality check at the end of every quality-review".
15
- </purpose>
16
-
17
- <required_reading>
18
- @~/.maestro/workflows/overlays.md
19
- @~/.maestro/cli-tools.json
20
- </required_reading>
21
-
22
- <context>
23
- **Overlay model** — an overlay is a JSON file with a `name`, one or more `targets` (command names without `.md`), and a list of `patches`. Each patch targets an XML section (`execution`, `required_reading`, `context`, `success_criteria`, etc.), a mode (`append`, `prepend`, `replace`, `new-section`), and `content`. On apply, the patcher wraps the content in hashed HTML-comment markers so re-apply is idempotent and removal is surgical.
24
-
25
- **Where overlays live**
26
- - User overlays: `~/.maestro/overlays/*.json` — created by this skill
27
- - Shared docs: `~/.maestro/overlays/docs/*.md` — referenced via `@~/.maestro/overlays/docs/*.md` inside patch content
28
- - Shipped examples: `~/.maestro/overlays/_shipped/`read-only, do not edit
29
-
30
- **Management** — listing and removing overlays is handled by `maestro overlay list` (ink TUI with interactive delete). This skill focuses solely on creation.
31
-
32
- **Available sections** (for `section:` in patches): `purpose`, `required_reading`, `deferred_reading`, `context`, `execution`, `error_codes`, `success_criteria`.
33
- </context>
34
-
35
- <execution>
36
- ### 1. Parse user intent
37
-
38
- Treat the argument as natural-language intent. If unclear, ask up to 2 questions with AskUserQuestion: (a) which command(s) to target, (b) where in the command flow the injection should happen.
39
-
40
- ### 2. Identify targets, injection points, and visualize
41
-
42
- For each likely target command, read the pristine source from `$PKG_ROOT/.claude/commands/<name>.md` (preferred — untouched by overlays) or fall back to `~/.claude/commands/<name>.md`. Inspect the XML sections and pick the right one:
43
-
44
- - **New step after execution** → `section: execution`, `mode: append`
45
- - **Required reading** → `section: required_reading`, `mode: append`
46
- - **Preconditions / gating** → `section: context`, `mode: append`
47
- - **Output quality gate** → `section: success_criteria`, `mode: append`
48
-
49
- If the user wants a whole new section, use `mode: new-section` with `afterSection: execution` (or whichever anchor makes sense).
50
-
51
- **Injection point preview** — after selecting section + mode, render the target command's section map showing existing overlays and the new injection point:
52
-
53
- ```
54
- === maestro-execute.md (1 overlay exists) ===
55
-
56
- <purpose>
57
- <required_reading>
58
- <context>
59
- <execution>
60
- ├─ [existing] cli-verify #1 "CLI Verification step"
61
- >>> NEW: append here (your overlay)
62
- <success_criteria>
63
- ```
64
-
65
- Use AskUserQuestion to confirm:
66
- - **"Confirm"** proceed with this injection point
67
- - **"Pick different section"** — re-select section/mode
68
- - **"Cancel"** — abort
69
-
70
- ### 2.5. Skill chain configuration
71
-
72
- After confirming the injection point, ask whether this overlay should chain to another skill upon completion. This enables the overlay's injected content to hand off to a skill via AskUserQuestion at runtime — similar to how `/maestro` chains commands via `Skill({ skill: "...", args: "..." })`.
73
-
74
- Use AskUserQuestion:
75
- - **"No chain"** — standard overlay, no skill handoff
76
- - **"Chain to skill"** ask for the target skill name (e.g., `quality-review`, `maestro-execute`, `quality-test`)
77
- - **"Chain with alternatives"** → ask for primary skill + 1-2 alternative skills
78
-
79
- If chain is selected, record the skill name(s) for use in Step 3.
80
-
81
- ### 3. Draft the overlay JSON
82
-
83
- Build a slug from the user's intent (kebab-case, lowercase). Write to `~/.maestro/overlays/<slug>.json`:
84
-
85
- ```json
86
- {
87
- "name": "<slug>",
88
- "description": "<short summary of what and why>",
89
- "targets": ["maestro-execute"],
90
- "priority": 50,
91
- "enabled": true,
92
- "patches": [
93
- {
94
- "section": "execution",
95
- "mode": "append",
96
- "content": "## CLI Verification (overlay)\n\nAfter execution, run:\n```\nccw cli -p \"PURPOSE: ...\" --mode analysis --rule analysis-review-code-quality\n```"
97
- }
98
- ]
99
- }
100
- ```
101
-
102
- **Content guidelines**
103
- - Lead the injected block with a heading that includes `(overlay)` so readers see it's machine-injected
104
- - Keep content concise overlays should add a step, not rewrite the command
105
- - `@~/.maestro/...` references are encouraged for pointing at docs
106
- - Escape `\n` in JSON strings; use a HEREDOC via Bash if content is long
107
-
108
- **Skill chain content** — if a chain was configured in Step 2.5, append a Skill Handoff block at the end of the patch `content`. The handoff uses AskUserQuestion so the user controls whether to proceed:
109
-
110
- ```markdown
111
- ---
112
-
113
- **Skill Handoff** (overlay)
114
-
115
- After the above step completes, use AskUserQuestion:
116
- - "Proceed to /quality-review" Hand off to quality review
117
- - "Skip" — Continue with current command flow
118
- - "Alternative: /maestro-execute" — Run execution with built-in verification instead
119
-
120
- On user selection:
121
- - Proceed → Skill({ skill: "quality-review", args: "{phase}" })
122
- - Alternative → Skill({ skill: "maestro-execute", args: "{phase}" })
123
- - Skipcontinue normally
124
- ```
125
-
126
- Handoff rules:
127
- - Always include a **"Skip"** option — the user can always decline the chain
128
- - Use `Skill({ skill: "<name>", args: "..." })` syntax consistent with maestro.md chainMap
129
- - Mark handoff heading with `(overlay)` tag
130
- - Support runtime variable placeholders: `{phase}`, `{description}`, `{session_id}`
131
- - Keep handoff block under 10 lines of markdown
132
-
133
- ### 4. Install via `maestro overlay add`
134
-
135
- Run:
136
-
137
- ```bash
138
- maestro overlay add ~/.maestro/overlays/<slug>.json
139
- ```
140
-
141
- This validates the overlay, copies it into place (idempotent), and applies it across all known install scopes. On validation failure, fix the JSON and re-run.
142
-
143
- ### 5. Report
144
-
145
- Show the user:
146
- - Path of the saved overlay JSON
147
- - Which targets were patched and which were skipped (missing/disabled)
148
- - Skill chain info (if configured)
149
- - A reminder that `maestro install` will auto-reapply on every run
150
- - How to remove: `maestro overlay remove <slug>`
151
-
152
- **Report format**
153
-
154
- ```
155
- === OVERLAY INSTALLED ===
156
- Name: <slug>
157
- Path: ~/.maestro/overlays/<slug>.json
158
- Targets: maestro-execute (applied), maestro-plan (skipped: missing)
159
- Chain: quality-review (via AskUserQuestion) | none
160
- Scopes: [global]
161
-
162
- Re-apply: maestro overlay apply
163
- Remove: maestro overlay remove <slug>
164
- Inspect: maestro overlay list
165
- ```
166
-
167
- After the report, remind the user they can run `maestro overlay list` for the interactive TUI showing section maps and overlay management.
168
- </execution>
169
-
170
- <success_criteria>
171
- - [ ] Overlay JSON written to `~/.maestro/overlays/<slug>.json` and validates
172
- - [ ] `maestro overlay add` exited successfully and applied to at least one scope
173
- - [ ] Target command file(s) contain `<!-- maestro-overlay:<slug>#N hash=... -->` markers
174
- - [ ] Re-running `maestro overlay apply` produces no file changes (idempotent)
175
- - [ ] User shown the report with target list and removal instructions
176
- - [ ] Injection point preview shown (with existing overlays + `>>>` marker) and confirmed before drafting
177
- - [ ] If chain configured, `content` includes Skill Handoff block with AskUserQuestion + Skip option + `Skill()` calls
178
- </success_criteria>
1
+ ---
2
+ name: maestro-overlay
3
+ description: Create or edit command overlays from natural language
4
+ argument-hint: "<intent> — 描述要添加的规则或步骤,如 'always verify after execute'"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - AskUserQuestion
12
+ ---
13
+ <purpose>
14
+ Turn natural-language instructions into command overlays — JSON patch files that augment
15
+ `.claude/commands/*.md` non-invasively. Auto-applied by `maestro install`.
16
+ </purpose>
17
+
18
+ <required_reading>
19
+ @~/.maestro/workflows/overlays.md
20
+ @~/.maestro/cli-tools.json
21
+ </required_reading>
22
+
23
+ <context>
24
+ **Overlay model** — an overlay is a JSON file with a `name`, one or more `targets` (command names without `.md`), and a list of `patches`. Each patch targets an XML section (`execution`, `required_reading`, `context`, `success_criteria`, etc.), a mode (`append`, `prepend`, `replace`, `new-section`), and `content`. On apply, the patcher wraps the content in hashed HTML-comment markers so re-apply is idempotent and removal is surgical.
25
+
26
+ **Where overlays live**
27
+ - User overlays: `~/.maestro/overlays/*.json` — created by this skill
28
+ - Shared docs: `~/.maestro/overlays/docs/*.md`referenced via `@~/.maestro/overlays/docs/*.md` inside patch content
29
+ - Shipped examples: `~/.maestro/overlays/_shipped/` — read-only, do not edit
30
+
31
+ **Management** — listing and removing overlays is handled by `maestro overlay list` (ink TUI with interactive delete). This skill focuses solely on creation.
32
+
33
+ **Available sections** (for `section:` in patches): `purpose`, `required_reading`, `deferred_reading`, `context`, `execution`, `error_codes`, `success_criteria`.
34
+ </context>
35
+
36
+ <execution>
37
+ ### 1. Parse user intent
38
+
39
+ Treat the argument as natural-language intent. If unclear, ask up to 2 questions with AskUserQuestion: (a) which command(s) to target, (b) where in the command flow the injection should happen.
40
+
41
+ ### 2. Identify targets, injection points, and visualize
42
+
43
+ For each likely target command, read the pristine source from `$PKG_ROOT/.claude/commands/<name>.md` (preferred — untouched by overlays) or fall back to `~/.claude/commands/<name>.md`. Inspect the XML sections and pick the right one:
44
+
45
+ - **New step after execution** → `section: execution`, `mode: append`
46
+ - **Required reading** → `section: required_reading`, `mode: append`
47
+ - **Preconditions / gating** → `section: context`, `mode: append`
48
+ - **Output quality gate** → `section: success_criteria`, `mode: append`
49
+
50
+ If the user wants a whole new section, use `mode: new-section` with `afterSection: execution` (or whichever anchor makes sense).
51
+
52
+ **Injection point preview** — after selecting section + mode, render the target command's section map showing existing overlays and the new injection point:
53
+
54
+ ```
55
+ === maestro-execute.md (1 overlay exists) ===
56
+
57
+ <purpose>
58
+ <required_reading>
59
+ <context>
60
+ <execution>
61
+ ├─ [existing] cli-verify #1 "CLI Verification step"
62
+ >>> NEW: append here (your overlay)
63
+ <success_criteria>
64
+ ```
65
+
66
+ Use AskUserQuestion to confirm:
67
+ - **"Confirm"** — proceed with this injection point
68
+ - **"Pick different section"** — re-select section/mode
69
+ - **"Cancel"** — abort
70
+
71
+ ### 2.5. Skill chain configuration
72
+
73
+ After confirming the injection point, ask whether this overlay should chain to another skill upon completion. This enables the overlay's injected content to hand off to a skill via AskUserQuestion at runtime — similar to how `/maestro` chains commands via `Skill({ skill: "...", args: "..." })`.
74
+
75
+ Use AskUserQuestion:
76
+ - **"No chain"** standard overlay, no skill handoff
77
+ - **"Chain to skill"** → ask for the target skill name (e.g., `quality-review`, `maestro-execute`, `quality-test`)
78
+ - **"Chain with alternatives"** → ask for primary skill + 1-2 alternative skills
79
+
80
+ If chain is selected, record the skill name(s) for use in Step 3.
81
+
82
+ ### 3. Draft the overlay JSON
83
+
84
+ Build a slug from the user's intent (kebab-case, lowercase). Write to `~/.maestro/overlays/<slug>.json`:
85
+
86
+ ```json
87
+ {
88
+ "name": "<slug>",
89
+ "description": "<short summary of what and why>",
90
+ "targets": ["maestro-execute"],
91
+ "priority": 50,
92
+ "enabled": true,
93
+ "patches": [
94
+ {
95
+ "section": "execution",
96
+ "mode": "append",
97
+ "content": "## CLI Verification (overlay)\n\nAfter execution, run:\n```\nccw cli -p \"PURPOSE: ...\" --mode analysis --rule analysis-review-code-quality\n```"
98
+ }
99
+ ]
100
+ }
101
+ ```
102
+
103
+ **Content guidelines**
104
+ - Lead the injected block with a heading that includes `(overlay)` so readers see it's machine-injected
105
+ - Keep content concise overlays should add a step, not rewrite the command
106
+ - `@~/.maestro/...` references are encouraged for pointing at docs
107
+ - Escape `\n` in JSON strings; use a HEREDOC via Bash if content is long
108
+
109
+ **Skill chain content** — if a chain was configured in Step 2.5, append a Skill Handoff block at the end of the patch `content`. The handoff uses AskUserQuestion so the user controls whether to proceed:
110
+
111
+ ```markdown
112
+ ---
113
+
114
+ **Skill Handoff** (overlay)
115
+
116
+ After the above step completes, use AskUserQuestion:
117
+ - "Proceed to /quality-review" — Hand off to quality review
118
+ - "Skip" — Continue with current command flow
119
+ - "Alternative: /maestro-execute" — Run execution with built-in verification instead
120
+
121
+ On user selection:
122
+ - Proceed → Skill({ skill: "quality-review", args: "{phase}" })
123
+ - AlternativeSkill({ skill: "maestro-execute", args: "{phase}" })
124
+ - Skip → continue normally
125
+ ```
126
+
127
+ Handoff rules:
128
+ - Always include a **"Skip"** option the user can always decline the chain
129
+ - Use `Skill({ skill: "<name>", args: "..." })` syntax consistent with maestro.md chainMap
130
+ - Mark handoff heading with `(overlay)` tag
131
+ - Support runtime variable placeholders: `{phase}`, `{description}`, `{session_id}`
132
+ - Keep handoff block under 10 lines of markdown
133
+
134
+ ### 4. Install via `maestro overlay add`
135
+
136
+ Run:
137
+
138
+ ```bash
139
+ maestro overlay add ~/.maestro/overlays/<slug>.json
140
+ ```
141
+
142
+ This validates the overlay, copies it into place (idempotent), and applies it across all known install scopes. On validation failure, fix the JSON and re-run.
143
+
144
+ ### 5. Report
145
+
146
+ Show the user:
147
+ - Path of the saved overlay JSON
148
+ - Which targets were patched and which were skipped (missing/disabled)
149
+ - Skill chain info (if configured)
150
+ - A reminder that `maestro install` will auto-reapply on every run
151
+ - How to remove: `maestro overlay remove <slug>`
152
+
153
+ **Report format**
154
+
155
+ ```
156
+ === OVERLAY INSTALLED ===
157
+ Name: <slug>
158
+ Path: ~/.maestro/overlays/<slug>.json
159
+ Targets: maestro-execute (applied), maestro-plan (skipped: missing)
160
+ Chain: quality-review (via AskUserQuestion) | none
161
+ Scopes: [global]
162
+
163
+ Re-apply: maestro overlay apply
164
+ Remove: maestro overlay remove <slug>
165
+ Inspect: maestro overlay list
166
+ ```
167
+
168
+ After the report, remind the user they can run `maestro overlay list` for the interactive TUI showing section maps and overlay management.
169
+ </execution>
170
+
171
+ <success_criteria>
172
+ - [ ] Overlay JSON written to `~/.maestro/overlays/<slug>.json` and validates
173
+ - [ ] `maestro overlay add` exited successfully and applied to at least one scope
174
+ - [ ] Target command file(s) contain `<!-- maestro-overlay:<slug>#N hash=... -->` markers
175
+ - [ ] Re-running `maestro overlay apply` produces no file changes (idempotent)
176
+ - [ ] User shown the report with target list and removal instructions
177
+ - [ ] Injection point preview shown (with existing overlays + `>>>` marker) and confirmed before drafting
178
+ - [ ] If chain configured, `content` includes Skill Handoff block with AskUserQuestion + Skip option + `Skill()` calls
179
+ </success_criteria>
180
+
181
+ <completion>
182
+ ### Next-step routing
183
+ | Condition | Suggestion |
184
+ |-----------|-----------|
185
+ | Overlay installed | `maestro overlay list` for interactive management |
186
+ | Want to create another | `/maestro-overlay "<intent>"` |
187
+ | Want to remove | `maestro overlay remove <slug>` |
188
+ </completion>