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,225 +1,232 @@
1
- ---
2
- name: team-review
3
- description: "Unified team skill for code review. 3-role pipeline: scanner, reviewer, fixer. Triggers on team-review."
4
- allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), followup_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ace-tool__search_context(*), mcp__maestro-tools__team_msg(*)
5
- ---
6
-
7
- # Team Review
8
-
9
- Orchestrate multi-agent code review: scanner -> reviewer -> fixer. Toolchain + LLM scan, deep analysis with root cause enrichment, and automated fix with rollback-on-failure.
10
-
11
- ## Architecture
12
-
13
- ```
14
- Skill(skill="team-review", args="task description")
15
- |
16
- SKILL.md (this file) = Router
17
- |
18
- +--------------+--------------+
19
- | |
20
- no --role flag --role <name>
21
- | |
22
- Coordinator Worker
23
- roles/coordinator/role.md roles/<name>/role.md
24
- |
25
- +-- analyze -> dispatch -> spawn workers -> STOP
26
- |
27
- +-------+-------+-------+
28
- v v v
29
- [scan] [review] [fix]
30
- team-worker agents, each loads roles/<role>/role.md
31
- ```
32
-
33
- ## Role Registry
34
-
35
- | Role | Path | Prefix | Inner Loop |
36
- |------|------|--------|------------|
37
- | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | | |
38
- | scanner | [roles/scanner/role.md](roles/scanner/role.md) | SCAN-* | false |
39
- | reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REV-* | false |
40
- | fixer | [roles/fixer/role.md](roles/fixer/role.md) | FIX-* | true |
41
-
42
- ## Role Router
43
-
44
- Parse `$ARGUMENTS`:
45
- - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
46
- - No `--role` -> `roles/coordinator/role.md`, execute entry router
47
-
48
- ## Delegation Lock
49
-
50
- **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
51
-
52
- Before calling ANY tool, apply this check:
53
-
54
- | Tool Call | Verdict | Reason |
55
- |-----------|---------|--------|
56
- | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `followup_task` | ALLOWED | Orchestration |
57
- | `list_agents` | ALLOWED | Agent health check |
58
- | `request_user_input` | ALLOWED | User interaction |
59
- | `mcp__maestro-tools__team_msg` | ALLOWED | Message bus |
60
- | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
61
- | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
62
- | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
63
- | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
64
- | `Bash("maestro delegate ...")` | BLOCKED | Only workers call CLI |
65
- | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
66
-
67
- **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
68
-
69
- **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
70
-
71
- ---
72
-
73
- ## Shared Constants
74
-
75
- - **Session prefix**: `RV`
76
- - **Session path**: `.workflow/.team/RV-<slug>-<date>/`
77
- - **Team name**: `review`
78
- - **CLI tools**: `maestro delegate --mode analysis` (read-only), `maestro delegate --mode write` (modifications)
79
- - **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
80
-
81
- ## Worker Spawn Template
82
-
83
- Coordinator spawns workers using this template:
84
-
85
- ```
86
- spawn_agent({
87
- agent_type: "team_worker",
88
- task_name: "<task-id>",
89
- fork_turns: "none",
90
- message: `## Role Assignment
91
- role: <role>
92
- role_spec: <skill_root>/roles/<role>/role.md
93
- session: <session-folder>
94
- session_id: <session-id>
95
- requirement: <task-description>
96
- inner_loop: <true|false>
97
-
98
- Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
99
-
100
- ## Task Context
101
- task_id: <task-id>
102
- title: <task-title>
103
- description: <task-description>
104
- pipeline_phase: <pipeline-phase>
105
-
106
- ## Upstream Context
107
- <prev_context>`
108
- })
109
- ```
110
-
111
- After spawning, use `wait_agent({ timeout_ms: 1800000 })` to collect results (30 min). If `result.timed_out`, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents. Use `close_agent({ target })` each worker.
112
-
113
-
114
- ### Model Selection Guide
115
-
116
- | Role | model | reasoning_effort | Rationale |
117
- |------|-------|-------------------|-----------|
118
- | Scanner (SCAN-*) | (default) | medium | Toolchain scanning + pattern matching, less reasoning |
119
- | Reviewer (REV-*) | (default) | high | Deep root cause analysis requires full reasoning |
120
- | Fixer (FIX-*) | (default) | high | Code modification needs precision |
121
-
122
- Override model/reasoning_effort in spawn_agent when cost optimization is needed:
123
- ```
124
- spawn_agent({
125
- agent_type: "team_worker",
126
- task_name: "<task-id>",
127
- fork_turns: "none",
128
- model: "<model-override>",
129
- reasoning_effort: "<effort-level>",
130
- message: "..."
131
- })
132
- ```
133
-
134
- ## User Commands
135
-
136
- | Command | Action |
137
- |---------|--------|
138
- | `check` / `status` | View pipeline status graph |
139
- | `resume` / `continue` | Advance to next step |
140
- | `--full` | Enable scan + review + fix pipeline |
141
- | `--fix` | Fix-only mode (skip scan/review) |
142
- | `-q` / `--quick` | Quick scan only |
143
- | `--dimensions=sec,cor,prf,mnt` | Custom dimensions |
144
- | `-y` / `--yes` | Skip confirmations |
145
-
146
- ## v4 Agent Coordination
147
-
148
- ### Message Semantics
149
-
150
- | Intent | API | Example |
151
- |--------|-----|---------|
152
- | Send scan findings to running reviewer | `send_message` | Queue scan results to REV-* as supplementary context |
153
- | Not used in this skill | `followup_task` | No resident agents -- sequential 3-stage pipeline |
154
- | Check running agents | `list_agents` | Verify agent health during resume |
155
-
156
- ### Pipeline Pattern
157
-
158
- This is a **sequential 3-stage pipeline** (scan -> review -> fix). No parallel phases. Each stage completes before the next starts. The coordinator may skip stages (0 findings -> skip review+fix; user declines fix -> skip fix).
159
-
160
- ### Agent Health Check
161
-
162
- Use `list_agents({})` in handleResume and handleComplete:
163
-
164
- ```
165
- // Reconcile session state with actual running agents
166
- const running = list_agents({})
167
- // Compare with tasks.json active_agents
168
- // Reset orphaned tasks (in_progress but agent gone) to pending
169
- ```
170
-
171
- ### Named Agent Targeting
172
-
173
- Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
174
- - `send_message({ target: "REV-001", message: "..." })` -- queue scan findings to running reviewer
175
- - `close_agent({ target: "SCAN-001" })` -- cleanup by name after completion
176
-
177
- ## Completion Action
178
-
179
- When pipeline completes, coordinator presents:
180
-
181
- ```
182
- request_user_input({
183
- questions: [{
184
- question: "Review pipeline complete. What would you like to do?",
185
- header: "Completion",
186
- multiSelect: false,
187
- options: [
188
- { label: "Archive & Clean (Recommended)", description: "Archive session, clean up" },
189
- { label: "Keep Active", description: "Keep session for follow-up work" },
190
- { label: "Export Results", description: "Export deliverables to target directory" }
191
- ]
192
- }]
193
- })
194
- ```
195
-
196
- ## Session Directory
197
-
198
- ```
199
- .workflow/.team/RV-<slug>-<date>/
200
- ├── .msg/messages.jsonl # Team message bus
201
- ├── .msg/meta.json # Session state + cross-role state
202
- ├── wisdom/ # Cross-task knowledge
203
- ├── scan/ # Scanner output
204
- ├── review/ # Reviewer output
205
- └── fix/ # Fixer output
206
- ```
207
-
208
- ## Specs Reference
209
-
210
- - [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
211
- - [specs/dimensions.md](specs/dimensions.md) — Review dimension definitions (SEC/COR/PRF/MNT)
212
- - [specs/finding-schema.json](specs/finding-schema.json) — Finding data schema
213
- - [specs/team-config.json](specs/team-config.json) — Team configuration
214
-
215
- ## Error Handling
216
-
217
- | Scenario | Resolution |
218
- |----------|------------|
219
- | Unknown --role value | Error with available role list |
220
- | Role not found | Error with expected path (roles/<name>/role.md) |
221
- | CLI tool fails | Worker fallback to direct implementation |
222
- | Scanner finds 0 findings | Report clean, skip review + fix |
223
- | User declines fix | Delete FIX tasks, complete with review-only results |
224
- | Fast-advance conflict | Coordinator reconciles on next callback |
225
- | Completion action fails | Default to Keep Active |
1
+ ---
2
+ name: team-review
3
+ description: "Unified team skill for code review. 3-role pipeline: scanner, reviewer, fixer. Triggers on team-review."
4
+ allowed-tools: spawn_agent(*), wait_agent(*), send_message(*), followup_task(*), close_agent(*), list_agents(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ace-tool__search_context(*), mcp__maestro-tools__team_msg(*)
5
+ ---
6
+
7
+ <purpose>
8
+ Orchestrate multi-agent code review: scanner -> reviewer -> fixer. Toolchain + LLM scan, deep analysis with root cause enrichment, and automated fix with rollback-on-failure.
9
+
10
+ ```
11
+ Skill(skill="team-review", args="task description")
12
+ |
13
+ SKILL.md (this file) = Router
14
+ |
15
+ +--------------+--------------+
16
+ | |
17
+ no --role flag --role <name>
18
+ | |
19
+ Coordinator Worker
20
+ roles/coordinator/role.md roles/<name>/role.md
21
+ |
22
+ +-- analyze -> dispatch -> spawn workers -> STOP
23
+ |
24
+ +-------+-------+-------+
25
+ v v v
26
+ [scan] [review] [fix]
27
+ team-worker agents, each loads roles/<role>/role.md
28
+ ```
29
+ </purpose>
30
+
31
+ <context>
32
+ ### Role Registry
33
+
34
+ | Role | Path | Prefix | Inner Loop |
35
+ |------|------|--------|------------|
36
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
37
+ | scanner | [roles/scanner/role.md](roles/scanner/role.md) | SCAN-* | false |
38
+ | reviewer | [roles/reviewer/role.md](roles/reviewer/role.md) | REV-* | false |
39
+ | fixer | [roles/fixer/role.md](roles/fixer/role.md) | FIX-* | true |
40
+
41
+ ### Role Router
42
+
43
+ Parse `$ARGUMENTS`:
44
+ - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
45
+ - No `--role` -> `roles/coordinator/role.md`, execute entry router
46
+
47
+ ### Delegation Lock
48
+
49
+ **Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.**
50
+
51
+ Before calling ANY tool, apply this check:
52
+
53
+ | Tool Call | Verdict | Reason |
54
+ |-----------|---------|--------|
55
+ | `spawn_agent`, `wait_agent`, `close_agent`, `send_message`, `followup_task` | ALLOWED | Orchestration |
56
+ | `list_agents` | ALLOWED | Agent health check |
57
+ | `request_user_input` | ALLOWED | User interaction |
58
+ | `mcp__maestro-tools__team_msg` | ALLOWED | Message bus |
59
+ | `Read/Write` on `.workflow/.team/` files | ALLOWED | Session state |
60
+ | `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
61
+ | `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
62
+ | `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
63
+ | `Bash("maestro delegate ...")` | BLOCKED | Only workers call CLI |
64
+ | `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
65
+
66
+ **If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
67
+
68
+ **No exceptions for "simple" tasks.** Even a single-file read-and-report MUST go through spawn_agent.
69
+
70
+ ### Shared Constants
71
+
72
+ - **Session prefix**: `RV`
73
+ - **Session path**: `.workflow/.team/RV-<slug>-<date>/`
74
+ - **Team name**: `review`
75
+ - **CLI tools**: `maestro delegate --mode analysis` (read-only), `maestro delegate --mode write` (modifications)
76
+ - **Message bus**: `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)`
77
+
78
+ ### Worker Spawn Template
79
+
80
+ Coordinator spawns workers using this template:
81
+
82
+ ```
83
+ spawn_agent({
84
+ agent_type: "team_worker",
85
+ task_name: "<task-id>",
86
+ fork_turns: "none",
87
+ message: `## Role Assignment
88
+ role: <role>
89
+ role_spec: <skill_root>/roles/<role>/role.md
90
+ session: <session-folder>
91
+ session_id: <session-id>
92
+ requirement: <task-description>
93
+ inner_loop: <true|false>
94
+
95
+ Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
96
+
97
+ ## Task Context
98
+ task_id: <task-id>
99
+ title: <task-title>
100
+ description: <task-description>
101
+ pipeline_phase: <pipeline-phase>
102
+
103
+ ## Upstream Context
104
+ <prev_context>`
105
+ })
106
+ ```
107
+
108
+ After spawning, use `wait_agent({ timeout_ms: 1800000 })` to collect results (30 min). If `result.timed_out`, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents. Use `close_agent({ target })` each worker.
109
+
110
+ ### Model Selection Guide
111
+
112
+ | Role | model | reasoning_effort | Rationale |
113
+ |------|-------|-------------------|-----------|
114
+ | Scanner (SCAN-*) | (default) | medium | Toolchain scanning + pattern matching, less reasoning |
115
+ | Reviewer (REV-*) | (default) | high | Deep root cause analysis requires full reasoning |
116
+ | Fixer (FIX-*) | (default) | high | Code modification needs precision |
117
+
118
+ Override model/reasoning_effort in spawn_agent when cost optimization is needed:
119
+ ```
120
+ spawn_agent({
121
+ agent_type: "team_worker",
122
+ task_name: "<task-id>",
123
+ fork_turns: "none",
124
+ model: "<model-override>",
125
+ reasoning_effort: "<effort-level>",
126
+ message: "..."
127
+ })
128
+ ```
129
+
130
+ ### User Commands
131
+
132
+ | Command | Action |
133
+ |---------|--------|
134
+ | `check` / `status` | View pipeline status graph |
135
+ | `resume` / `continue` | Advance to next step |
136
+ | `--full` | Enable scan + review + fix pipeline |
137
+ | `--fix` | Fix-only mode (skip scan/review) |
138
+ | `-q` / `--quick` | Quick scan only |
139
+ | `--dimensions=sec,cor,prf,mnt` | Custom dimensions |
140
+ | `-y` / `--yes` | Skip confirmations |
141
+
142
+ ### v4 Agent Coordination
143
+
144
+ #### Message Semantics
145
+
146
+ | Intent | API | Example |
147
+ |--------|-----|---------|
148
+ | Send scan findings to running reviewer | `send_message` | Queue scan results to REV-* as supplementary context |
149
+ | Not used in this skill | `followup_task` | No resident agents -- sequential 3-stage pipeline |
150
+ | Check running agents | `list_agents` | Verify agent health during resume |
151
+
152
+ #### Pipeline Pattern
153
+
154
+ This is a **sequential 3-stage pipeline** (scan -> review -> fix). No parallel phases. Each stage completes before the next starts. The coordinator may skip stages (0 findings -> skip review+fix; user declines fix -> skip fix).
155
+
156
+ #### Agent Health Check
157
+
158
+ Use `list_agents({})` in handleResume and handleComplete:
159
+
160
+ ```
161
+ // Reconcile session state with actual running agents
162
+ const running = list_agents({})
163
+ // Compare with tasks.json active_agents
164
+ // Reset orphaned tasks (in_progress but agent gone) to pending
165
+ ```
166
+
167
+ #### Named Agent Targeting
168
+
169
+ Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
170
+ - `send_message({ target: "REV-001", message: "..." })` -- queue scan findings to running reviewer
171
+ - `close_agent({ target: "SCAN-001" })` -- cleanup by name after completion
172
+
173
+ ### Completion Action
174
+
175
+ When pipeline completes, coordinator presents:
176
+
177
+ ```
178
+ request_user_input({
179
+ questions: [{
180
+ question: "Review pipeline complete. What would you like to do?",
181
+ header: "Completion",
182
+ multiSelect: false,
183
+ options: [
184
+ { label: "Archive & Clean (Recommended)", description: "Archive session, clean up" },
185
+ { label: "Keep Active", description: "Keep session for follow-up work" },
186
+ { label: "Export Results", description: "Export deliverables to target directory" }
187
+ ]
188
+ }]
189
+ })
190
+ ```
191
+
192
+ ### Session Directory
193
+
194
+ ```
195
+ .workflow/.team/RV-<slug>-<date>/
196
+ +-- .msg/messages.jsonl # Team message bus
197
+ +-- .msg/meta.json # Session state + cross-role state
198
+ +-- wisdom/ # Cross-task knowledge
199
+ +-- scan/ # Scanner output
200
+ +-- review/ # Reviewer output
201
+ +-- fix/ # Fixer output
202
+ ```
203
+
204
+ ### Specs Reference
205
+
206
+ - [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
207
+ - [specs/dimensions.md](specs/dimensions.md) -- Review dimension definitions (SEC/COR/PRF/MNT)
208
+ - [specs/finding-schema.json](specs/finding-schema.json) -- Finding data schema
209
+ - [specs/team-config.json](specs/team-config.json) -- Team configuration
210
+ </context>
211
+
212
+ <error_codes>
213
+
214
+ | Scenario | Resolution |
215
+ |----------|------------|
216
+ | Unknown --role value | Error with available role list |
217
+ | Role not found | Error with expected path (roles/<name>/role.md) |
218
+ | CLI tool fails | Worker fallback to direct implementation |
219
+ | Scanner finds 0 findings | Report clean, skip review + fix |
220
+ | User declines fix | Delete FIX tasks, complete with review-only results |
221
+ | Fast-advance conflict | Coordinator reconciles on next callback |
222
+ | Completion action fails | Default to Keep Active |
223
+ </error_codes>
224
+
225
+ <success_criteria>
226
+ - [ ] Role router correctly dispatches to coordinator or worker based on --role flag
227
+ - [ ] Sequential pipeline: scan -> review -> fix executed in order
228
+ - [ ] Scanner findings passed as upstream context to reviewer
229
+ - [ ] Fix stage skipped when scanner finds 0 findings or user declines
230
+ - [ ] Session state persisted after each pipeline stage
231
+ - [ ] Completion action presented and handled correctly
232
+ </success_criteria>