maestro-flow 0.3.45 → 0.3.47

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 (289) hide show
  1. package/.claude/agents/ui-design-agent.md +1 -0
  2. package/.claude/agents/workflow-executor.md +3 -0
  3. package/.claude/commands/learn-decompose.md +91 -146
  4. package/.claude/commands/learn-follow.md +102 -137
  5. package/.claude/commands/learn-investigate.md +102 -167
  6. package/.claude/commands/learn-retro.md +100 -243
  7. package/.claude/commands/learn-second-opinion.md +95 -135
  8. package/.claude/commands/maestro-amend.md +95 -232
  9. package/.claude/commands/maestro-analyze.md +1 -6
  10. package/.claude/commands/maestro-collab.md +104 -265
  11. package/.claude/commands/maestro-composer.md +113 -293
  12. package/.claude/commands/maestro-execute.md +11 -17
  13. package/.claude/commands/maestro-impeccable.md +89 -0
  14. package/.claude/commands/maestro-plan.md +1 -6
  15. package/.claude/commands/maestro-player.md +111 -340
  16. package/.claude/commands/maestro-quick.md +9 -0
  17. package/.claude/commands/maestro-ralph-execute.md +167 -210
  18. package/.claude/commands/maestro-ralph.md +245 -426
  19. package/.claude/commands/maestro-tools-register.md +28 -7
  20. package/.claude/commands/maestro-ui-codify.md +13 -0
  21. package/.claude/commands/maestro-ui-craft.md +364 -0
  22. package/.claude/commands/maestro-ui-design.md +12 -1
  23. package/.claude/commands/maestro-verify.md +12 -13
  24. package/.claude/commands/maestro.md +142 -72
  25. package/.claude/commands/manage-knowhow-capture.md +45 -161
  26. package/.claude/commands/quality-auto-test.md +9 -0
  27. package/.claude/commands/quality-debug.md +11 -24
  28. package/.claude/commands/quality-refactor.md +9 -0
  29. package/.claude/commands/quality-review.md +5 -13
  30. package/.claude/commands/quality-test.md +5 -0
  31. package/.claude/commands/spec-add.md +1 -1
  32. package/.claude/commands/spec-load.md +3 -2
  33. package/.claude/skills/maestro-help/SKILL.md +264 -0
  34. package/.claude/skills/maestro-help/index/catalog.json +182 -0
  35. package/.claude/skills/maestro-help/phases/01-parse-intent.md +122 -0
  36. package/.claude/skills/maestro-help/phases/02-search-present.md +181 -0
  37. package/.claude/skills/maestro-help/phases/03-workflow-guide.md +186 -0
  38. package/.claude/skills/maestro-impeccable/SKILL.md +169 -0
  39. package/.codex/agents/team-supervisor.toml +40 -0
  40. package/.codex/agents/team-worker.toml +63 -0
  41. package/.codex/skills/learn-decompose/SKILL.md +1 -1
  42. package/.codex/skills/learn-investigate/SKILL.md +2 -1
  43. package/.codex/skills/maestro/SKILL.md +278 -313
  44. package/.codex/skills/maestro-analyze/SKILL.md +126 -417
  45. package/.codex/skills/maestro-brainstorm/SKILL.md +129 -451
  46. package/.codex/skills/maestro-collab/SKILL.md +134 -547
  47. package/.codex/skills/maestro-execute/SKILL.md +4 -2
  48. package/.codex/skills/maestro-help/SKILL.md +213 -0
  49. package/.codex/skills/maestro-help/catalog.json +182 -0
  50. package/.codex/skills/maestro-impeccable/SKILL.md +112 -0
  51. package/.codex/skills/maestro-plan/SKILL.md +88 -437
  52. package/.codex/skills/maestro-player/SKILL.md +191 -333
  53. package/.codex/skills/maestro-quick/SKILL.md +2 -0
  54. package/.codex/skills/maestro-ralph/SKILL.md +307 -710
  55. package/.codex/skills/maestro-roadmap/SKILL.md +201 -518
  56. package/.codex/skills/maestro-tools-register/SKILL.md +29 -7
  57. package/.codex/skills/maestro-ui-codify/SKILL.md +1 -0
  58. package/.codex/skills/maestro-ui-craft/SKILL.md +341 -0
  59. package/.codex/skills/maestro-ui-design/SKILL.md +10 -0
  60. package/.codex/skills/maestro-verify/SKILL.md +116 -409
  61. package/.codex/skills/manage-knowhow-capture/SKILL.md +18 -3
  62. package/.codex/skills/quality-auto-test/SKILL.md +145 -443
  63. package/.codex/skills/quality-debug/SKILL.md +2 -1
  64. package/.codex/skills/quality-refactor/SKILL.md +1 -1
  65. package/.codex/skills/quality-review/SKILL.md +1 -1
  66. package/.codex/skills/quality-test/SKILL.md +229 -507
  67. package/.codex/skills/spec-add/SKILL.md +1 -1
  68. package/README.md +4 -1
  69. package/README.zh-CN.md +3 -1
  70. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +3 -0
  71. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
  72. package/dashboard/dist-server/dashboard/src/server/index.js +5 -3
  73. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  74. package/dashboard/dist-server/dashboard/src/server/routes/board-state.integration.test.js +3 -3
  75. package/dashboard/dist-server/dashboard/src/server/routes/board-state.integration.test.js.map +1 -1
  76. package/dashboard/dist-server/dashboard/src/server/routes/index.js +14 -5
  77. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  78. package/dashboard/dist-server/dashboard/src/server/routes/install.js +110 -1
  79. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  80. package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.d.ts +2 -0
  81. package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.js +181 -0
  82. package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.js.map +1 -0
  83. package/dashboard/dist-server/dashboard/src/server/routes/settings.js +56 -0
  84. package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
  85. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +2 -0
  86. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  87. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +2 -0
  88. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +2 -0
  89. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  90. package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.d.ts +2 -0
  91. package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.js +58 -0
  92. package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.js.map +1 -1
  93. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +2 -2
  94. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -1
  95. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +2 -0
  96. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  97. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +3 -1
  98. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +7 -2
  99. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +7 -1
  100. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
  101. package/dashboard/dist-server/dashboard/src/shared/constants.d.ts +2 -0
  102. package/dashboard/dist-server/dashboard/src/shared/constants.js +9 -9
  103. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  104. package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.d.ts +113 -0
  105. package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.js +6 -0
  106. package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.js.map +1 -0
  107. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +4 -3
  108. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  109. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  110. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  111. package/dist/src/agents/cli-agent-runner.js +1 -3
  112. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  113. package/dist/src/agents/cli-history-store.d.ts +5 -0
  114. package/dist/src/agents/cli-history-store.d.ts.map +1 -1
  115. package/dist/src/agents/cli-history-store.js +65 -13
  116. package/dist/src/agents/cli-history-store.js.map +1 -1
  117. package/dist/src/cli.js +13 -0
  118. package/dist/src/cli.js.map +1 -1
  119. package/dist/src/commands/command-help.d.ts +3 -0
  120. package/dist/src/commands/command-help.d.ts.map +1 -0
  121. package/dist/src/commands/command-help.js +60 -0
  122. package/dist/src/commands/command-help.js.map +1 -0
  123. package/dist/src/commands/config.d.ts.map +1 -1
  124. package/dist/src/commands/config.js +17 -0
  125. package/dist/src/commands/config.js.map +1 -1
  126. package/dist/src/commands/delegate.d.ts.map +1 -1
  127. package/dist/src/commands/delegate.js +12 -2
  128. package/dist/src/commands/delegate.js.map +1 -1
  129. package/dist/src/commands/impeccable.d.ts +10 -0
  130. package/dist/src/commands/impeccable.d.ts.map +1 -0
  131. package/dist/src/commands/impeccable.js +181 -0
  132. package/dist/src/commands/impeccable.js.map +1 -0
  133. package/dist/src/commands/knowhow.d.ts.map +1 -1
  134. package/dist/src/commands/knowhow.js +7 -4
  135. package/dist/src/commands/knowhow.js.map +1 -1
  136. package/dist/src/commands/spec.js +1 -1
  137. package/dist/src/commands/spec.js.map +1 -1
  138. package/dist/src/commands/wiki.d.ts.map +1 -1
  139. package/dist/src/commands/wiki.js +5 -1
  140. package/dist/src/commands/wiki.js.map +1 -1
  141. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  142. package/dist/src/config/cli-tools-config.js +10 -7
  143. package/dist/src/config/cli-tools-config.js.map +1 -1
  144. package/dist/src/core/addon-registry.d.ts +31 -0
  145. package/dist/src/core/addon-registry.d.ts.map +1 -0
  146. package/dist/src/core/addon-registry.js +28 -0
  147. package/dist/src/core/addon-registry.js.map +1 -0
  148. package/dist/src/hooks/plugins/spec-injection-plugin.js +9 -4
  149. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  150. package/dist/src/hooks/spec-injector.js +2 -2
  151. package/dist/src/hooks/spec-injector.js.map +1 -1
  152. package/dist/src/index.d.ts +2 -0
  153. package/dist/src/index.d.ts.map +1 -1
  154. package/dist/src/index.js +1 -0
  155. package/dist/src/index.js.map +1 -1
  156. package/dist/src/tools/impeccable/critique-storage.d.ts +28 -0
  157. package/dist/src/tools/impeccable/critique-storage.d.ts.map +1 -0
  158. package/dist/src/tools/impeccable/critique-storage.js +120 -0
  159. package/dist/src/tools/impeccable/critique-storage.js.map +1 -0
  160. package/dist/src/tools/impeccable/design-parser.d.ts +90 -0
  161. package/dist/src/tools/impeccable/design-parser.d.ts.map +1 -0
  162. package/dist/src/tools/impeccable/design-parser.js +696 -0
  163. package/dist/src/tools/impeccable/design-parser.js.map +1 -0
  164. package/dist/src/tools/impeccable/detect-csp.d.ts +6 -0
  165. package/dist/src/tools/impeccable/detect-csp.d.ts.map +1 -0
  166. package/dist/src/tools/impeccable/detect-csp.js +130 -0
  167. package/dist/src/tools/impeccable/detect-csp.js.map +1 -0
  168. package/dist/src/tools/impeccable/is-generated.d.ts +4 -0
  169. package/dist/src/tools/impeccable/is-generated.d.ts.map +1 -0
  170. package/dist/src/tools/impeccable/is-generated.js +56 -0
  171. package/dist/src/tools/impeccable/is-generated.js.map +1 -0
  172. package/dist/src/tools/impeccable/live/accept.d.ts +50 -0
  173. package/dist/src/tools/impeccable/live/accept.d.ts.map +1 -0
  174. package/dist/src/tools/impeccable/live/accept.js +556 -0
  175. package/dist/src/tools/impeccable/live/accept.js.map +1 -0
  176. package/dist/src/tools/impeccable/live/bootstrap.d.ts +2 -0
  177. package/dist/src/tools/impeccable/live/bootstrap.d.ts.map +1 -0
  178. package/dist/src/tools/impeccable/live/bootstrap.js +244 -0
  179. package/dist/src/tools/impeccable/live/bootstrap.js.map +1 -0
  180. package/dist/src/tools/impeccable/live/complete.d.ts +7 -0
  181. package/dist/src/tools/impeccable/live/complete.d.ts.map +1 -0
  182. package/dist/src/tools/impeccable/live/complete.js +67 -0
  183. package/dist/src/tools/impeccable/live/complete.js.map +1 -0
  184. package/dist/src/tools/impeccable/live/completion.d.ts +24 -0
  185. package/dist/src/tools/impeccable/live/completion.d.ts.map +1 -0
  186. package/dist/src/tools/impeccable/live/completion.js +26 -0
  187. package/dist/src/tools/impeccable/live/completion.js.map +1 -0
  188. package/dist/src/tools/impeccable/live/inject.d.ts +41 -0
  189. package/dist/src/tools/impeccable/live/inject.d.ts.map +1 -0
  190. package/dist/src/tools/impeccable/live/inject.js +394 -0
  191. package/dist/src/tools/impeccable/live/inject.js.map +1 -0
  192. package/dist/src/tools/impeccable/live/poll.d.ts +24 -0
  193. package/dist/src/tools/impeccable/live/poll.d.ts.map +1 -0
  194. package/dist/src/tools/impeccable/live/poll.js +180 -0
  195. package/dist/src/tools/impeccable/live/poll.js.map +1 -0
  196. package/dist/src/tools/impeccable/live/resume.d.ts +5 -0
  197. package/dist/src/tools/impeccable/live/resume.d.ts.map +1 -0
  198. package/dist/src/tools/impeccable/live/resume.js +30 -0
  199. package/dist/src/tools/impeccable/live/resume.js.map +1 -0
  200. package/dist/src/tools/impeccable/live/server.d.ts +6 -0
  201. package/dist/src/tools/impeccable/live/server.d.ts.map +1 -0
  202. package/dist/src/tools/impeccable/live/server.js +867 -0
  203. package/dist/src/tools/impeccable/live/server.js.map +1 -0
  204. package/dist/src/tools/impeccable/live/session-store.d.ts +72 -0
  205. package/dist/src/tools/impeccable/live/session-store.d.ts.map +1 -0
  206. package/dist/src/tools/impeccable/live/session-store.js +281 -0
  207. package/dist/src/tools/impeccable/live/session-store.js.map +1 -0
  208. package/dist/src/tools/impeccable/live/static/live-browser-session.js +123 -0
  209. package/dist/src/tools/impeccable/live/static/live-browser.js +4860 -0
  210. package/dist/src/tools/impeccable/live/static/modern-screenshot.umd.js +14 -0
  211. package/dist/src/tools/impeccable/live/status.d.ts +2 -0
  212. package/dist/src/tools/impeccable/live/status.d.ts.map +1 -0
  213. package/dist/src/tools/impeccable/live/status.js +52 -0
  214. package/dist/src/tools/impeccable/live/status.js.map +1 -0
  215. package/dist/src/tools/impeccable/live/wrap.d.ts +33 -0
  216. package/dist/src/tools/impeccable/live/wrap.d.ts.map +1 -0
  217. package/dist/src/tools/impeccable/live/wrap.js +572 -0
  218. package/dist/src/tools/impeccable/live/wrap.js.map +1 -0
  219. package/dist/src/tools/impeccable/load-context.d.ts +13 -0
  220. package/dist/src/tools/impeccable/load-context.d.ts.map +1 -0
  221. package/dist/src/tools/impeccable/load-context.js +79 -0
  222. package/dist/src/tools/impeccable/load-context.js.map +1 -0
  223. package/dist/src/tools/impeccable/paths.d.ts +34 -0
  224. package/dist/src/tools/impeccable/paths.d.ts.map +1 -0
  225. package/dist/src/tools/impeccable/paths.js +102 -0
  226. package/dist/src/tools/impeccable/paths.js.map +1 -0
  227. package/dist/src/tools/spec-entry-parser.d.ts +1 -1
  228. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
  229. package/dist/src/tools/spec-entry-parser.js +1 -1
  230. package/dist/src/tools/spec-entry-parser.js.map +1 -1
  231. package/dist/src/tools/spec-init.d.ts.map +1 -1
  232. package/dist/src/tools/spec-init.js +26 -1
  233. package/dist/src/tools/spec-init.js.map +1 -1
  234. package/dist/src/tools/spec-loader.d.ts +1 -1
  235. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  236. package/dist/src/tools/spec-loader.js +2 -0
  237. package/dist/src/tools/spec-loader.js.map +1 -1
  238. package/dist/src/tools/store-knowhow.d.ts.map +1 -1
  239. package/dist/src/tools/store-knowhow.js +15 -6
  240. package/dist/src/tools/store-knowhow.js.map +1 -1
  241. package/package.json +5 -3
  242. package/workflows/claude-instructions.md +17 -5
  243. package/workflows/cli-tools-usage.md +10 -3
  244. package/workflows/delegate-usage.md +3 -2
  245. package/workflows/impeccable/adapt.md +190 -0
  246. package/workflows/impeccable/animate.md +175 -0
  247. package/workflows/impeccable/audit.md +133 -0
  248. package/workflows/impeccable/bolder.md +113 -0
  249. package/workflows/impeccable/brand.md +118 -0
  250. package/workflows/impeccable/clarify.md +174 -0
  251. package/workflows/impeccable/codex.md +105 -0
  252. package/workflows/impeccable/cognitive-load.md +106 -0
  253. package/workflows/impeccable/color-and-contrast.md +105 -0
  254. package/workflows/impeccable/colorize.md +154 -0
  255. package/workflows/impeccable/craft.md +123 -0
  256. package/workflows/impeccable/critique.md +261 -0
  257. package/workflows/impeccable/delight.md +302 -0
  258. package/workflows/impeccable/distill.md +111 -0
  259. package/workflows/impeccable/document.md +439 -0
  260. package/workflows/impeccable/extract.md +69 -0
  261. package/workflows/impeccable/harden.md +347 -0
  262. package/workflows/impeccable/heuristics-scoring.md +234 -0
  263. package/workflows/impeccable/interaction-design.md +195 -0
  264. package/workflows/impeccable/layout.md +141 -0
  265. package/workflows/impeccable/live.md +622 -0
  266. package/workflows/impeccable/motion-design.md +109 -0
  267. package/workflows/impeccable/onboard.md +234 -0
  268. package/workflows/impeccable/optimize.md +258 -0
  269. package/workflows/impeccable/overdrive.md +130 -0
  270. package/workflows/impeccable/personas.md +179 -0
  271. package/workflows/impeccable/polish.md +242 -0
  272. package/workflows/impeccable/product.md +62 -0
  273. package/workflows/impeccable/quieter.md +99 -0
  274. package/workflows/impeccable/responsive-design.md +114 -0
  275. package/workflows/impeccable/shape.md +165 -0
  276. package/workflows/impeccable/spatial-design.md +100 -0
  277. package/workflows/impeccable/teach.md +168 -0
  278. package/workflows/impeccable/typeset.md +124 -0
  279. package/workflows/impeccable/typography.md +159 -0
  280. package/workflows/impeccable/ux-writing.md +107 -0
  281. package/workflows/impeccable.md +164 -0
  282. package/workflows/maestro.md +7 -3
  283. package/workflows/skill-authoring.md +265 -0
  284. package/workflows/specs-add.md +3 -2
  285. package/workflows/specs-load.md +2 -1
  286. package/workflows/specs-setup.md +21 -1
  287. package/workflows/tools-spec.md +20 -13
  288. package/.claude/commands/maestro-link-coordinate.md +0 -71
  289. package/.codex/skills/maestro-link-coordinate/SKILL.md +0 -257
@@ -11,344 +11,164 @@ allowed-tools:
11
11
  - Grep
12
12
  - Agent
13
13
  - AskUserQuestion
14
+ - Skill
14
15
  ---
15
16
  <purpose>
16
- Interactive workflow template composer. Parses natural language into a reusable DAG template
17
- via 5 phases with user confirmation at each boundary. Templates saved globally at
18
- `~/.maestro/templates/workflows/`. Progressive disclosure specs loaded only when phase needs them.
19
-
20
- Three entry modes:
21
- 1. **New design**: Parse → [confirm] → Resolve → [confirm] → Enrich → Confirm pipeline → Persist
22
- 2. **Resume design**: Load in-progress draft from `.workflow/templates/design-drafts/`
23
- 3. **Edit template**: Load existing template, modify, re-save
17
+ Interactive workflow template composer. Parse natural language resolve executors → inject checkpoints → build DAG → persist to `~/.maestro/templates/workflows/`. Progressive disclosure — specs loaded only when phase needs them.
18
+
19
+ Three entry modes: **New design** (default), **Resume** (`--resume`), **Edit** (`--edit <path>`).
24
20
  </purpose>
25
21
 
26
22
  <deferred_reading>
27
- - [node-catalog](~/.maestro/templates/workflows/specs/node-catalog.md) — read at Phase 2 (Resolve) when mapping steps to executors
28
- - [template-schema](~/.maestro/templates/workflows/specs/template-schema.md) — read at Phase 5 (Persist) when assembling final JSON
23
+ - [node-catalog](~/.maestro/templates/workflows/specs/node-catalog.md) — read at Phase 2 (Resolve)
24
+ - [template-schema](~/.maestro/templates/workflows/specs/template-schema.md) — read at Phase 5 (Persist)
29
25
  </deferred_reading>
30
26
 
31
27
  <context>
32
- $ARGUMENTS — natural language workflow description, or flags.
33
-
34
- **Flags:**
35
- - `--resume` — Resume in-progress design session
36
- - `--edit <template-path>` — Edit an existing template
37
-
38
- **Shared constants:**
39
-
40
- | Constant | Value |
41
- |----------|-------|
42
- | Session prefix | `WFD` |
43
- | Template dir (global) | `~/.maestro/templates/workflows/` |
44
- | Template index (global) | `~/.maestro/templates/workflows/index.json` |
45
- | Design drafts dir (local) | `.workflow/templates/design-drafts/` |
46
- | Template ID format | `wft-<slug>-<YYYYMMDD>` |
47
- | Node ID format | `N-<seq>` (e.g. N-001), `CP-<seq>` for checkpoints |
48
- | Max nodes | 20 |
49
-
50
- **Entry routing:**
51
-
52
- | Detection | Condition | Handler |
53
- |-----------|-----------|---------|
54
- | Resume design | `--resume` flag or existing WFD session | Phase 0: Resume |
55
- | Edit template | `--edit <template-path>` | Phase 0: Load + Edit |
56
- | New design | Default | Phase 1: Parse |
57
- </context>
58
-
59
- <execution>
60
-
61
- ### Phase 0: Resume / Edit (conditional)
28
+ $ARGUMENTS — natural language description, or flags.
62
29
 
63
- **Resume design session** (if `--resume`):
64
- 1. Scan `.workflow/templates/design-drafts/WFD-*/` for in-progress designs
65
- 2. Multiple found → AskUserQuestion for selection
66
- 3. Load draft → skip to last incomplete phase
67
-
68
- **Edit existing template** (if `--edit <path>`):
69
- 1. Load template from `--edit` path
70
- 2. Show current pipeline visualization (Phase 4 format)
71
- 3. AskUserQuestion: which nodes to modify/add/remove
72
- 4. Re-enter at Phase 3 with edits applied
73
-
74
- ---
30
+ **Flags**: `--resume` (resume in-progress design), `--edit <path>` (edit existing template)
75
31
 
76
- ### Phase 1: Parse — Semantic Intent Extraction
77
-
78
- **Step 1.1** Parse `$ARGUMENTS` as description. If empty, AskUserQuestion:
79
- ```
80
- "Describe the workflow you want to automate.
81
- Include: what steps to run, in what order, and what varies each time (inputs).
82
- Example: 'analyze the code, then plan, implement, and test the feature'"
83
- ```
84
-
85
- **Step 1.2** — Extract sequential actions as candidate nodes using semantic understanding:
86
-
87
- | Signal | Candidate Type |
88
- |--------|---------------|
89
- | "analyze", "review", "explore" | analysis (cli) |
90
- | "plan", "design", "spec" | planning (skill) |
91
- | "implement", "build", "code", "fix" | execution (skill) |
92
- | "test", "validate", "verify" | testing (skill) |
93
- | "brainstorm", "ideate" | brainstorm (skill) |
94
- | "review code" | review (skill) |
95
- | "then", "next", "after" | sequential edge |
96
- | "parallel", "simultaneously" | parallel edge |
97
-
98
- **Step 1.3** — Extract variables (inputs that vary per run). Detect from: direct mentions, `{var}` patterns, implicit from task type.
99
-
100
- **Step 1.4** — Classify task type: `bugfix | feature | tdd | review | brainstorm | spec-driven | roadmap | refactor | auto-test | quick-task | custom`
101
-
102
- **Step 1.5** — Assess complexity: `simple` (1-3 nodes), `medium` (4-7), `complex` (8+)
103
-
104
- **Step 1.6** — Write `intent.json` to `.workflow/templates/design-drafts/WFD-<slug>-<date>/`.
105
-
106
- **Step 1.7 — Interactive confirmation**:
107
-
108
- Display parsed intent summary:
109
- ```
110
- ============================================================
111
- COMPOSER — Intent Parsed
112
- ============================================================
113
- Description: "<original input>"
114
- Task type: <type>
115
- Complexity: <level>
32
+ **Constants**:
33
+ - Template dir: `~/.maestro/templates/workflows/`
34
+ - Template index: `~/.maestro/templates/workflows/index.json`
35
+ - Design drafts: `.workflow/templates/design-drafts/`
36
+ - Template ID: `wft-<slug>-<YYYYMMDD>`, Node ID: `N-<seq>`, Checkpoint: `CP-<seq>`
37
+ - Max nodes: 20
38
+ </context>
116
39
 
117
- Detected steps:
118
- 1. <description> → <type_hint>
119
- 2. <description> → <type_hint>
120
- 3. <description> → <type_hint>
40
+ <state_machine>
121
41
 
122
- Variables:
123
- - goal (required): <inferred description>
42
+ <states>
43
+ S_ROUTE — 入口路由(new/resume/edit) PERSIST:
44
+ S_PARSE — 语义意图提取 PERSIST: intent.json
45
+ S_CONFIRM_1 — 确认解析结果 PERSIST: —
46
+ S_RESOLVE — 映射步骤到 executor 节点 PERSIST: nodes.json
47
+ S_CONFIRM_2 — 确认节点映射 PERSIST: —
48
+ S_ENRICH — 注入 checkpoint + 构建 DAG PERSIST: dag.json
49
+ S_CONFIRM_3 — 可视化 pipeline + 用户审批 PERSIST: —
50
+ S_PERSIST — 组装 JSON + 保存模板 PERSIST: template file + index
51
+ </states>
124
52
 
125
- Draft: .workflow/templates/design-drafts/WFD-<slug>-<date>/
126
- ============================================================
127
- ```
53
+ <transitions>
128
54
 
129
- AskUserQuestion:
130
- ```
131
- options:
132
- - "Looks good, continue to resolution" → Phase 2
133
- - "Edit steps" → re-describe, re-parse
134
- - "Add a step" → append, re-parse
135
- - "Cancel" → save draft, exit
136
- ```
55
+ S_ROUTE:
56
+ → S_PARSE WHEN: no flags (new design)
57
+ → S_RESOLVE WHEN: --resume DO: load draft, skip to last incomplete phase
58
+ S_CONFIRM_3 WHEN: --edit <path> DO: load template, show pipeline, ask edits
137
59
 
138
- ---
60
+ S_PARSE:
61
+ → S_CONFIRM_1 DO: A_PARSE_INTENT
139
62
 
140
- ### Phase 2: Resolve — Map Steps to Executor Nodes
63
+ S_CONFIRM_1:
64
+ → S_RESOLVE WHEN: user confirms "Looks good"
65
+ → S_PARSE WHEN: user selects "Edit steps" or "Add step"
66
+ → END WHEN: user cancels DO: save draft
141
67
 
142
- **Read deferred**: `~/.maestro/templates/workflows/specs/node-catalog.md` — load node catalog for executor mapping.
68
+ S_RESOLVE:
69
+ → S_CONFIRM_2 DO: A_RESOLVE_NODES (read deferred: node-catalog)
143
70
 
144
- If the spec file does not exist, use the built-in fallback mapping:
71
+ S_CONFIRM_2:
72
+ → S_ENRICH WHEN: user confirms "Continue"
73
+ → S_RESOLVE WHEN: user changes executor or node type
74
+ → S_PARSE WHEN: user selects "Back to intent"
75
+ → END WHEN: user cancels DO: save draft
145
76
 
146
- | type_hint | Default executor type | Default executor |
147
- |-----------|----------------------|------------------|
148
- | `planning` | skill | `maestro-plan` |
149
- | `execution` | skill | `maestro-execute` |
150
- | `testing` | skill | `quality-test` |
151
- | `review` | skill | `quality-review` |
152
- | `brainstorm` | skill | `maestro-brainstorm` |
153
- | `analysis` | cli | `maestro delegate --role analyze --mode analysis` |
154
- | `verify` | skill | `maestro-verify` |
155
- | `refactor` | skill | `quality-refactor` |
156
- | `debug` | skill | `quality-debug` |
157
- | `spec` | skill | `maestro-roadmap --mode full` |
158
- | `checkpoint` | checkpoint | — |
77
+ S_ENRICH:
78
+ → S_CONFIRM_3 DO: A_BUILD_DAG
159
79
 
160
- **Step 2.1** — Load `intent.json`.
80
+ S_CONFIRM_3:
81
+ → S_PERSIST WHEN: user confirms "Confirm & Save"
82
+ → S_CONFIRM_3 WHEN: user edits/adds/removes node DO: apply change, re-render
83
+ → S_ENRICH WHEN: user selects "Re-run checkpoints"
84
+ → END WHEN: user cancels DO: save draft
161
85
 
162
- **Step 2.2** — Map each step to executor. Resolution: match `type_hint` → catalog → semantic fit → fallback `cli`.
86
+ S_PERSIST:
87
+ → END DO: A_SAVE_TEMPLATE (read deferred: template-schema)
163
88
 
164
- **Step 2.3** — Build `args_template` with variable placeholders. Context injection:
165
- - Planning after analysis → `--context {prev_output_path}`
166
- - Execution after planning → `--resume-session {prev_session_id}`
167
- - Testing after execution → `--session {prev_session_id}`
89
+ </transitions>
168
90
 
169
- **Step 2.4** — Assign `parallel_group` for steps with `parallel_with` set.
91
+ <actions>
170
92
 
171
- **Step 2.5** — Write `nodes.json`.
93
+ ### A_PARSE_INTENT
172
94
 
173
- **Step 2.6 Interactive confirmation**:
95
+ 1. Parse description (if empty: AskUserQuestion for workflow description)
96
+ 2. Extract candidate nodes via semantic signals:
174
97
 
175
- Display resolved nodes:
176
- ```
177
- ============================================================
178
- COMPOSER Nodes Resolved
179
- ============================================================
180
- N-001 [skill] maestro-plan "{goal}"
181
- N-002 [skill] maestro-execute {phase}
182
- N-003 [skill] quality-test {phase}
98
+ | Signal | Type hint |
99
+ |--------|-----------|
100
+ | "analyze", "review", "explore" | analysis (cli) |
101
+ | "plan", "design", "spec" | planning (skill) |
102
+ | "implement", "build", "code", "fix" | execution (skill) |
103
+ | "test", "validate", "verify" | testing (skill) |
104
+ | "then", "next", "after" | sequential edge |
105
+ | "parallel", "simultaneously" | parallel edge |
183
106
 
184
- Parallel groups: none
185
- ============================================================
186
- ```
107
+ 3. Extract variables (inputs that vary per run)
108
+ 4. Classify: task type + complexity (simple 1-3 / medium 4-7 / complex 8+)
109
+ 5. Write `intent.json` to design drafts dir
110
+ 6. Display: parsed steps, variables, task type, complexity
187
111
 
188
- AskUserQuestion:
189
- ```
190
- options:
191
- - "Continue to checkpoint injection" → Phase 3
192
- - "Change executor for a node" → select node, pick new executor
193
- - "Change node type" → skill/cli/agent/command
194
- - "Back to intent" → Phase 1
195
- - "Cancel" → save draft, exit
196
- ```
112
+ ### A_RESOLVE_NODES
197
113
 
198
- ---
114
+ Read deferred `node-catalog.md` (fallback to built-in mapping):
199
115
 
200
- ### Phase 3: Enrich Inject Checkpoints + Build DAG
116
+ | Type hint | Default executor |
117
+ |-----------|-----------------|
118
+ | planning | `maestro-plan` |
119
+ | execution | `maestro-execute` |
120
+ | testing | `quality-test` |
121
+ | review | `quality-review` |
122
+ | brainstorm | `maestro-brainstorm` |
123
+ | analysis | `maestro delegate --role analyze` |
124
+ | verify | `maestro-verify` |
125
+ | refactor | `quality-refactor` |
126
+ | debug | `quality-debug` |
201
127
 
202
- **Step 3.1** Load `nodes.json`.
128
+ Build `args_template` with variable placeholders. Context injection: planning-after-analysis → `--context {prev_output_path}`, execution-after-planning → `--resume-session {prev_session_id}`.
129
+ Write `nodes.json`. Display resolved node list.
203
130
 
204
- **Step 3.2** — Build sequential edges (N-001 → N-002 → ...). For parallel groups: fan-out/fan-in.
131
+ ### A_BUILD_DAG
205
132
 
206
- **Step 3.3** Auto-inject checkpoint nodes. Inject if ANY rule triggers:
133
+ 1. Build sequential edges (fan-out/fan-in for parallel groups)
134
+ 2. Auto-inject checkpoints:
207
135
 
208
136
  | Rule | Condition |
209
137
  |------|-----------|
210
- | Artifact boundary | Source output_ports: plan, spec, analysis, review-findings |
211
- | Execution gate | Target executor contains `execute` |
212
- | Agent spawn | Target type is `agent` |
138
+ | Artifact boundary | Source outputs plan/spec/analysis/review |
139
+ | Execution gate | Target contains `execute` |
213
140
  | Long-running | Target is maestro-plan, maestro-roadmap --mode full |
214
- | User-defined | Step had `type_hint: checkpoint` |
215
- | Post-testing | Source executor contains `test` or `auto-test` |
216
-
217
- Set `auto_continue: false` for checkpoints before user-facing deliverables.
218
-
219
- **Step 3.4** — Insert checkpoint edges (A → B becomes A → CP-X → B).
220
-
221
- **Step 3.5** — Finalize `context_schema` from all `{variable}` references.
222
-
223
- **Step 3.6** — Validate: no cycles, no orphans, all nodes reachable.
224
-
225
- **Step 3.7** — Write `dag.json`.
226
-
227
- → Proceed directly to Phase 4 (confirm is the pipeline visualization).
228
-
229
- ---
230
-
231
- ### Phase 4: Confirm — Visualize + User Approval
232
-
233
- **Step 4.1** — Render ASCII pipeline from `dag.json`:
234
- ```
235
- ============================================================
236
- COMPOSER — Pipeline Review
237
- ============================================================
238
- Pipeline: <template-name>
239
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
240
- N-001 [skill] maestro-plan "{goal}"
241
- |
242
- CP-01 [checkpoint] After Plan auto-continue
243
- |
244
- N-002 [skill] maestro-execute {phase}
245
- |
246
- CP-02 [checkpoint] Before Tests pause-for-user
247
- |
248
- N-003 [skill] quality-test {phase}
249
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
250
- Variables (required): goal
251
- Checkpoints: 2 (1 auto, 1 pause)
252
- Nodes: 3 work + 2 checkpoints
253
- ============================================================
254
- ```
255
-
256
- For parallel groups show fan-out/fan-in:
257
- ```
258
- N-003a [skill] quality-review ─┐
259
- ├─ N-004 [skill] quality-test
260
- N-003b [cli] cli analysis ─┘
261
- ```
262
-
263
- **Step 4.2** — AskUserQuestion:
264
- ```
265
- options:
266
- - "Confirm & Save" → Phase 5
267
- - "Edit a node" → select node ID, modify executor/args, re-render
268
- - "Add a node" → insert position + description, re-resolve + re-enrich, re-render
269
- - "Remove a node" → select node, re-wire edges, re-render
270
- - "Rename template" → new name
271
- - "Re-run checkpoint injection" → back to Phase 3.3
272
- - "Cancel" → save draft, output resume command
273
- ```
274
-
275
- **Step 4.3** — On edit: apply change, re-render, re-ask. Loop until Confirm or Cancel.
276
-
277
- **Step 4.4** — On Confirm: freeze dag.json, proceed to Phase 5. On Cancel: save draft, output `/maestro-composer --resume`.
278
-
279
- ---
280
-
281
- ### Phase 5: Persist — Assemble + Save Template
282
-
283
- **Read deferred**: `~/.maestro/templates/workflows/specs/template-schema.md` — load full JSON schema for template assembly.
284
-
285
- If the spec file does not exist, use the built-in template structure:
286
- ```json
287
- {
288
- "template_id": "wft-<slug>-<YYYYMMDD>",
289
- "name": "<name>", "description": "<desc>", "version": "1.0",
290
- "created_at": "<ISO>", "source_session": "WFD-<slug>-<date>",
291
- "tags": [], "context_schema": {},
292
- "nodes": [], "edges": [], "checkpoints": [],
293
- "execution_mode": "serial",
294
- "metadata": { "node_count": 0, "checkpoint_count": 0 }
295
- }
296
- ```
297
-
298
- **Step 5.1** — Load `intent.json` + `dag.json`.
299
-
300
- **Step 5.2** — Determine template name (from Phase 4 or derive from task_type + description). Slug = kebab-case. If file exists with different content, append `-v2`, `-v3`.
301
-
302
- **Step 5.3** — Assemble template JSON.
303
-
304
- **Step 5.4** — Ensure `~/.maestro/templates/workflows/` exists. Write `<slug>.json`.
305
-
306
- **Step 5.5** — Update `~/.maestro/templates/workflows/index.json`.
141
+ | Post-testing | Source contains `test` or `auto-test` |
142
+ | User-defined | type_hint == checkpoint |
307
143
 
308
- **Step 5.6** Output summary:
309
- ```
310
- ============================================================
311
- COMPOSER Template Saved
312
- ============================================================
313
- Path: ~/.maestro/templates/workflows/<slug>.json
314
- ID: wft-<slug>-<date>
315
- Nodes: <n> work + <n> checkpoints
316
- Variables: <required vars>
144
+ 3. Finalize context_schema from {variable} references
145
+ 4. Validate: no cycles, no orphans, all reachable
146
+ 5. Write `dag.json`
147
+ 6. Display ASCII pipeline visualization
317
148
 
318
- To execute:
319
- /maestro-player <slug> --context goal="<your goal>"
149
+ ### A_SAVE_TEMPLATE
320
150
 
321
- To edit later:
322
- /maestro-composer --edit ~/.maestro/templates/workflows/<slug>.json
151
+ Read deferred `template-schema.md` (fallback to built-in structure).
152
+ Assemble template JSON: template_id, name, nodes, edges, checkpoints, context_schema, execution_mode.
153
+ Write to `~/.maestro/templates/workflows/<slug>.json`. Update index.json.
154
+ Display: path, ID, node count, variables, execute/edit commands. Clean up draft dir.
323
155
 
324
- To list all templates:
325
- /maestro-player --list
326
- ============================================================
327
- ```
156
+ </actions>
328
157
 
329
- **Step 5.7** — Clean up design draft directory.
330
- </execution>
158
+ </state_machine>
331
159
 
332
160
  <error_codes>
333
- | Code | Severity | Description | Recovery |
334
- |------|----------|-------------|----------|
335
- | E001 | error | Empty description and no flags | AskUserQuestion for workflow description |
336
- | E002 | error | Step extraction found 0 steps | Ask user to rephrase with action verbs |
337
- | E003 | error | Node count exceeds max (20) | Suggest splitting into sub-workflows |
338
- | E004 | error | DAG cycle detected | Show cycle, ask user to resolve |
339
- | E005 | error | Resume session not found | Show available design drafts |
340
- | E006 | error | Edit template not found | Show available templates |
341
- | W001 | warning | Ambiguous step-to-executor mapping | Show candidates, let user choose |
342
- | W002 | warning | No checkpoint injection rules triggered | Warn user, offer to add manually |
343
- | W003 | warning | Deferred spec file not found | Use built-in fallback, continue |
161
+ | Code | Condition | Recovery |
162
+ |------|-----------|----------|
163
+ | E002 | 0 steps extracted | Ask user to rephrase with action verbs |
164
+ | E003 | Node count > 20 | Suggest splitting into sub-workflows |
165
+ | E005 | DAG cycle detected | Show cycle, ask user to resolve |
166
+ | E006 | Edit template not found (--edit) | Show available templates |
167
+ | W001 | Ambiguous step→executor mapping | Show candidates, let user choose |
344
168
  </error_codes>
345
169
 
346
170
  <success_criteria>
347
- - [ ] Intent parsed and confirmed by user (Phase 1 interactive gate)
348
- - [ ] Nodes resolved and confirmed by user (Phase 2 interactive gate)
349
- - [ ] DAG built with auto-injected checkpoints
350
- - [ ] Pipeline visualized and confirmed by user (Phase 4 interactive gate)
351
- - [ ] Template JSON written to `~/.maestro/templates/workflows/<slug>.json`
352
- - [ ] Template index updated at `~/.maestro/templates/workflows/index.json`
353
- - [ ] Deferred specs loaded only when phase needs them (not upfront)
171
+ - [ ] Each phase has interactive confirmation gate
172
+ - [ ] Template JSON written with nodes, edges, checkpoints, context_schema
173
+ - [ ] Index updated; deferred specs loaded only when phase needs them
354
174
  </success_criteria>
@@ -36,15 +36,12 @@ Scope routing, flags, resolution logic, output directory format, artifact regist
36
36
 
37
37
  1. **Codebase docs**: If `.workflow/codebase/doc-index.json` exists, read `ARCHITECTURE.md` for module boundaries. Pass as shared context to executor agents.
38
38
  2. **Wiki knowledge**: Run `maestro wiki search "<phase keywords>" --json 2>/dev/null`. If results found, extract top 5 entries as prior knowledge context for agents.
39
- 3. Both are optional proceed without if unavailable (log warning).
39
+ 3. **Coding specs + tools**: Run `maestro spec load --category coding` to load coding conventions AND discoverable knowhow tools (tool: true entries). Pass as specs context to all executor agents.
40
+ 4. **UI specs (conditional)**: If any task involves frontend/UI work (task scope/description contains keywords like component, page, style, layout, CSS, HTML, frontend; or focus_paths in `src/components/`, `src/pages/`, `src/styles/`, `src/ui/`), also run `maestro spec load --category ui` and include in agent context.
41
+ 5. All are optional — proceed without if unavailable (log warning).
40
42
 
41
43
  ### Role Knowledge
42
- 1. Browse accumulated knowledge for this role:
43
- `maestro wiki list --category coding`
44
- 2. Analyze the index, identify entries relevant to the current task
45
- 3. Load selected documents:
46
- `maestro wiki load <id1> [id2] [id3...]`
47
- 4. Review loaded knowledge before proceeding
44
+ `maestro wiki list --category coding` select relevant → `maestro wiki load`
48
45
  </context>
49
46
 
50
47
  <execution>
@@ -60,18 +57,15 @@ Follow '~/.maestro/workflows/execute.md' completely.
60
57
 
61
58
  ### Post-task Knowledge Inquiry
62
59
 
63
- After each task completes, evaluate inquiry triggers:
60
+ After each task completion, check triggers:
64
61
 
65
- 1. **Execution deviation**: If task summary mentions approach change, dependency swap, or plan deviation:
66
- → Ask: "TASK-{NNN} deviated from the plan. Should this decision be recorded as an architecture constraint? (`/spec-add arch`)"
62
+ | Condition | Ask | Route |
63
+ |-----------|-----|-------|
64
+ | Summary mentions approach change / plan deviation | "Record as arch constraint?" | spec-add arch |
65
+ | retry_count >= 2 | "Document fix pattern?" | spec-add debug |
66
+ | Summary contains design rationale ("chose X because") | "Record as knowhow?" | spec-add learning |
67
67
 
68
- 2. **Retry success**: If task required ≥2 retries before completion:
69
- → Ask: "TASK-{NNN} succeeded after {N} retries. Should this fix pattern be documented? (`/spec-add debug`)"
70
-
71
- 3. **Implicit knowledge**: If task summary contains design rationale ("chose X because", "rejected Y due to"):
72
- → Ask: "Design decision detected. Should it be recorded as knowhow? (`/spec-add learning`)"
73
-
74
- If user confirms, invoke `Skill({ skill: "spec-add", args: "<category> <content>" })` with extracted content.
68
+ On confirm `Skill("spec-add", "<category> <content>")`.
75
69
 
76
70
  ### Issue Status Sync
77
71
 
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: maestro-impeccable
3
+ description: Production-grade UI design with knowhow accumulation — 23 commands for build, evaluate, refine, enhance, fix
4
+ argument-hint: "<command> [target] [--skip-harvest] [-y]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Skill
13
+ - AskUserQuestion
14
+ ---
15
+ <purpose>
16
+ Replaces impeccable as the primary UI design entry point. 23 commands covering the full design lifecycle:
17
+ Build (craft, shape, teach, document, extract), Evaluate (critique, audit), Refine (polish, bolder, quieter, distill, harden, onboard),
18
+ Enhance (animate, colorize, typeset, layout, delight, overdrive), Fix (clarify, adapt, optimize), Iterate (live).
19
+
20
+ Core innovation over impeccable: after each command execution, automatically harvests design decisions
21
+ into `.workflow/knowhow/` (DCS-, AST-, TIP-, REF-) for cross-session accumulation. Other maestro commands
22
+ consume this via `category: coding` auto-injection and keyword matching.
23
+ </purpose>
24
+
25
+ <deferred_reading>
26
+ - [impeccable harvest workflow](~/.maestro/workflows/impeccable.md) — read after command execution for harvest logic
27
+ </deferred_reading>
28
+
29
+ <context>
30
+ $ARGUMENTS — sub-command + target + optional flags.
31
+
32
+ **Sub-commands** (23):
33
+
34
+ | Category | Commands |
35
+ |----------|----------|
36
+ | Build | craft, shape, teach, document, extract |
37
+ | Evaluate | critique, audit |
38
+ | Refine | polish, bolder, quieter, distill, harden, onboard |
39
+ | Enhance | animate, colorize, typeset, layout, delight, overdrive |
40
+ | Fix | clarify, adapt, optimize |
41
+ | Iterate | live |
42
+
43
+ **Flags:**
44
+ - `--skip-harvest` — Execute command without knowhow capture
45
+ - `-y` — Auto-confirm where the skill allows
46
+
47
+ **Harvest behavior**: After command completion, the harvest workflow extracts design decisions
48
+ and writes knowhow entries. DCS-/AST- types also get spec index entries for discoverability.
49
+ `live` command is exempt (too ephemeral). Use `--skip-harvest` to suppress.
50
+ </context>
51
+
52
+ <execution>
53
+
54
+ ## 1. Invoke Skill
55
+
56
+ ```
57
+ Skill({ skill: "maestro-impeccable", args: "$ARGUMENTS" })
58
+ ```
59
+
60
+ The skill handles: context loading (spec load --category ui, with load-context fallback), register detection (brand/product),
61
+ reference file loading, and command execution.
62
+
63
+ ## 2. Harvest
64
+
65
+ After the skill completes, read `~/.maestro/workflows/impeccable.md` and follow the harvest workflow.
66
+
67
+ Skip harvest if:
68
+ - `--skip-harvest` flag is set
69
+ - Sub-command is `live` (interactive, no harvestable output)
70
+ - Sub-command is unrecognized
71
+
72
+ </execution>
73
+
74
+ <error_codes>
75
+ | Code | Severity | Description |
76
+ |------|----------|-------------|
77
+ | E001 | error | Invalid sub-command (not in 23 valid commands) |
78
+ | E002 | error | No intent or target specified |
79
+ | W001 | warning | Harvest failed — design knowledge not captured (command still succeeded) |
80
+ | W002 | warning | PRODUCT.md missing — skill will auto-trigger teach |
81
+ </error_codes>
82
+
83
+ <success_criteria>
84
+ - [ ] Sub-command recognized and routed to maestro-impeccable skill
85
+ - [ ] Skill executed with context (spec load --category ui or load-context fallback, register identified)
86
+ - [ ] Design changes applied to target files
87
+ - [ ] Knowhow entry created in .workflow/knowhow/ (unless --skip-harvest or live)
88
+ - [ ] Spec index entry created for DCS-/AST- types
89
+ </success_criteria>
@@ -47,12 +47,7 @@ Scope routing, base flags (`--collab`, `--spec`, `-y`, `--gaps`, `--dir`), outpu
47
47
  - Reads `conclusions.json` if available (implementation_scope seeds task generation)
48
48
 
49
49
  ### Role Knowledge
50
- 1. Browse accumulated knowledge for this role:
51
- `maestro wiki list --category arch`
52
- 2. Analyze the index, identify entries relevant to the current task
53
- 3. Load selected documents:
54
- `maestro wiki load <id1> [id2] [id3...]`
55
- 4. Review loaded knowledge before proceeding
50
+ `maestro wiki list --category arch` select relevant → `maestro wiki load`
56
51
  </context>
57
52
 
58
53
  <execution>