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
@@ -5,14 +5,49 @@ argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--level
5
5
  allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
6
  ---
7
7
 
8
- ## Auto Mode
9
-
10
- When `--yes` or `-y`: Auto-confirm dimension selection, skip interactive validation, use defaults for level detection.
8
+ <purpose>
9
+ Wave-based multi-dimensional code review using `spawn_agents_on_csv`. Decomposes review into independent dimension agents (Wave 1), then aggregates findings into a unified report with verdict (Wave 2).
11
10
 
12
- # Maestro Review (CSV Wave)
11
+ **Core workflow**: Collect Files -> Decompose Dimensions -> Parallel Review -> Aggregate + Verdict
13
12
 
14
- ## Usage
13
+ ```
14
+ +---------------------------------------------------------------------------+
15
+ | CODE REVIEW CSV WAVE WORKFLOW |
16
+ +---------------------------------------------------------------------------+
17
+ | |
18
+ | Phase 1: Phase Resolution -> CSV |
19
+ | +-- Resolve phase directory from arguments |
20
+ | +-- Collect changed files from task summaries |
21
+ | +-- Auto-detect review level (quick/standard/deep) |
22
+ | +-- Determine active dimensions |
23
+ | +-- Generate tasks.csv with one row per dimension |
24
+ | +-- User validates dimension breakdown (skip if -y) |
25
+ | |
26
+ | Phase 2: Wave Execution Engine |
27
+ | +-- Wave 1: Dimension Review (parallel) |
28
+ | | +-- Each dimension agent reviews all changed files |
29
+ | | +-- Agent classifies findings by severity |
30
+ | | +-- Discoveries shared via board (patterns, conventions) |
31
+ | | +-- Results: severity_counts + top_issues per dimension |
32
+ | +-- Wave 2: Aggregation + Deep-Dive (if needed) |
33
+ | | +-- Aggregate all dimension findings |
34
+ | | +-- If criticals > 0 (standard) or always (deep): deep-dive |
35
+ | | +-- Cross-dimension impact analysis |
36
+ | | +-- Generate verdict: PASS / WARN / BLOCK |
37
+ | +-- discoveries.ndjson shared across all waves (append-only) |
38
+ | |
39
+ | Phase 3: Results Aggregation |
40
+ | +-- Export results.csv + review.json |
41
+ | +-- Generate context.md with all findings |
42
+ | +-- Auto-create issues for qualifying findings |
43
+ | +-- Update phase index.json with review status |
44
+ | +-- Display summary with verdict + next steps |
45
+ | |
46
+ +---------------------------------------------------------------------------+
47
+ ```
48
+ </purpose>
15
49
 
50
+ <context>
16
51
  ```bash
17
52
  $quality-review "3"
18
53
  $quality-review -c 6 "3 --level deep"
@@ -25,56 +60,13 @@ $quality-review --continue "review-phase3-20260318"
25
60
  - `-c, --concurrency N`: Max concurrent agents within each wave (default: 6)
26
61
  - `--continue`: Resume existing session
27
62
 
63
+ When `--yes` or `-y`: Auto-confirm dimension selection, skip interactive validation, use defaults for level detection.
64
+
28
65
  **Output Directory**: `.workflow/.csv-wave/{session-id}/`
29
66
  **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `review.json` (structured review output)
67
+ </context>
30
68
 
31
- ---
32
-
33
- ## Overview
34
-
35
- Wave-based multi-dimensional code review using `spawn_agents_on_csv`. Decomposes review into independent dimension agents (Wave 1), then aggregates findings into a unified report with verdict (Wave 2).
36
-
37
- **Core workflow**: Collect Files → Decompose Dimensions → Parallel Review → Aggregate + Verdict
38
-
39
- ```
40
- ┌─────────────────────────────────────────────────────────────────────────┐
41
- │ CODE REVIEW CSV WAVE WORKFLOW │
42
- ├─────────────────────────────────────────────────────────────────────────┤
43
- │ │
44
- │ Phase 1: Phase Resolution → CSV │
45
- │ ├─ Resolve phase directory from arguments │
46
- │ ├─ Collect changed files from task summaries │
47
- │ ├─ Auto-detect review level (quick/standard/deep) │
48
- │ ├─ Determine active dimensions │
49
- │ ├─ Generate tasks.csv with one row per dimension │
50
- │ └─ User validates dimension breakdown (skip if -y) │
51
- │ │
52
- │ Phase 2: Wave Execution Engine │
53
- │ ├─ Wave 1: Dimension Review (parallel) │
54
- │ │ ├─ Each dimension agent reviews all changed files │
55
- │ │ ├─ Agent classifies findings by severity │
56
- │ │ ├─ Discoveries shared via board (patterns, conventions) │
57
- │ │ └─ Results: severity_counts + top_issues per dimension │
58
- │ ├─ Wave 2: Aggregation + Deep-Dive (if needed) │
59
- │ │ ├─ Aggregate all dimension findings │
60
- │ │ ├─ If criticals > 0 (standard) or always (deep): deep-dive │
61
- │ │ ├─ Cross-dimension impact analysis │
62
- │ │ └─ Generate verdict: PASS / WARN / BLOCK │
63
- │ └─ discoveries.ndjson shared across all waves (append-only) │
64
- │ │
65
- │ Phase 3: Results Aggregation │
66
- │ ├─ Export results.csv + review.json │
67
- │ ├─ Generate context.md with all findings │
68
- │ ├─ Auto-create issues for qualifying findings │
69
- │ ├─ Update phase index.json with review status │
70
- │ └─ Display summary with verdict + next steps │
71
- │ │
72
- └─────────────────────────────────────────────────────────────────────────┘
73
- ```
74
-
75
- ---
76
-
77
- ## CSV Schema
69
+ <csv_schema>
78
70
 
79
71
  ### tasks.csv (Master State)
80
72
 
@@ -99,11 +91,11 @@ id,title,description,dimension,changed_files,project_specs,review_level,deps,con
99
91
  | `dimension` | Input | Review dimension: correctness/security/performance/architecture/maintainability/best-practices/aggregation |
100
92
  | `changed_files` | Input | Semicolon-separated file paths to review |
101
93
  | `project_specs` | Input | Relevant project specs/conventions context |
102
- | `review_level` | Input | quick/standard/deep controls depth |
94
+ | `review_level` | Input | quick/standard/deep -- controls depth |
103
95
  | `deps` | Input | Semicolon-separated dependency task IDs |
104
96
  | `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
105
97
  | `wave` | Computed | Wave number (1 = dimension review, 2 = aggregation) |
106
- | `status` | Output | `pending` `completed` / `failed` / `skipped` |
98
+ | `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
107
99
  | `findings` | Output | Key review findings summary (max 500 chars) |
108
100
  | `severity_counts` | Output | JSON: `{"critical":N,"high":N,"medium":N,"low":N}` |
109
101
  | `top_issues` | Output | Top 5 issues with `[severity] description (file:line)` format |
@@ -113,36 +105,42 @@ id,title,description,dimension,changed_files,project_specs,review_level,deps,con
113
105
 
114
106
  Each wave generates `wave-{N}.csv` with extra `prev_context` column.
115
107
 
116
- ---
117
-
118
- ## Output Artifacts
108
+ ### Output Artifacts
119
109
 
120
110
  | File | Purpose | Lifecycle |
121
111
  |------|---------|-----------|
122
- | `tasks.csv` | Master state all tasks with status/findings | Updated after each wave |
112
+ | `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
123
113
  | `wave-{N}.csv` | Per-wave input (temporary) | Created before wave, deleted after |
124
114
  | `results.csv` | Final export of all task results | Created in Phase 3 |
125
115
  | `discoveries.ndjson` | Shared exploration board | Append-only, carries across waves |
126
116
  | `context.md` | Human-readable review report | Created in Phase 3 |
127
117
  | `review.json` | Structured review output for downstream | Created in Phase 3 |
128
118
 
129
- ---
130
-
131
- ## Session Structure
119
+ ### Session Structure
132
120
 
133
121
  ```
134
122
  .workflow/.csv-wave/review-{phase}-{date}/
135
- ├── tasks.csv
136
- ├── results.csv
137
- ├── discoveries.ndjson
138
- ├── context.md
139
- ├── review.json
140
- └── wave-{N}.csv (temporary)
123
+ +-- tasks.csv
124
+ +-- results.csv
125
+ +-- discoveries.ndjson
126
+ +-- context.md
127
+ +-- review.json
128
+ +-- wave-{N}.csv (temporary)
141
129
  ```
130
+ </csv_schema>
142
131
 
143
- ---
132
+ <invariants>
133
+ 1. **Start Immediately**: First action is session initialization, then Phase 1
134
+ 2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
135
+ 3. **CSV is Source of Truth**: Master tasks.csv holds all state
136
+ 4. **Context Propagation**: prev_context built from master CSV, not from memory
137
+ 5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
138
+ 6. **Skip on Failure**: If all dimension agents failed, skip aggregation
139
+ 7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
140
+ 8. **DO NOT STOP**: Continuous execution until all waves complete
141
+ </invariants>
144
142
 
145
- ## Implementation
143
+ <execution>
146
144
 
147
145
  ### Session Initialization
148
146
 
@@ -171,24 +169,22 @@ const sessionFolder = `.workflow/.csv-wave/${sessionId}`
171
169
  Bash(`mkdir -p ${sessionFolder}`)
172
170
  ```
173
171
 
174
- ---
175
-
176
- ### Phase 1: Phase Resolution → CSV
172
+ ### Phase 1: Phase Resolution -> CSV
177
173
 
178
174
  **Objective**: Resolve phase, collect changed files, determine review level, generate tasks.csv.
179
175
 
180
176
  **Decomposition Rules**:
181
177
 
182
178
  1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
183
- 2. **File collection**: Read `.task/TASK-*.json` collect all `files[].path` where action != "read"
179
+ 2. **File collection**: Read `.task/TASK-*.json` -> collect all `files[].path` where action != "read"
184
180
  3. **Level detection**:
185
181
 
186
182
  | Condition | Level |
187
183
  |-----------|-------|
188
184
  | `--level` flag provided | Use explicit level |
189
- | 3 changed files | quick |
185
+ | <=3 changed files | quick |
190
186
  | 4-19 changed files | standard |
191
- | 20 files OR phase marked critical | deep |
187
+ | >=20 files OR phase marked critical | deep |
192
188
 
193
189
  4. **Dimension selection**:
194
190
 
@@ -204,12 +200,10 @@ If `--dimensions` flag provided, override with explicit list.
204
200
 
205
201
  6. **CSV generation**: One row per dimension + one aggregation row.
206
202
 
207
- **Wave computation**: Simple 2-wave all dimension tasks = wave 1, aggregation = wave 2.
203
+ **Wave computation**: Simple 2-wave -- all dimension tasks = wave 1, aggregation = wave 2.
208
204
 
209
205
  **User validation**: Display task breakdown (skip if AUTO_YES).
210
206
 
211
- ---
212
-
213
207
  ### Phase 2: Wave Execution Engine
214
208
 
215
209
  **Objective**: Execute dimension reviews wave-by-wave via spawn_agents_on_csv.
@@ -252,7 +246,7 @@ spawn_agents_on_csv({
252
246
 
253
247
  1. Read master `tasks.csv`
254
248
  2. Filter rows where `wave == 2` AND `status == pending`
255
- 3. Check deps if all wave 1 tasks failed, skip aggregation
249
+ 3. Check deps -- if all wave 1 tasks failed, skip aggregation
256
250
  4. Build `prev_context` from wave 1 findings:
257
251
  ```
258
252
  [Task 1: Correctness Review] Found 2 critical issues: null pointer in login handler...
@@ -264,8 +258,6 @@ spawn_agents_on_csv({
264
258
  7. Merge results into master `tasks.csv`
265
259
  8. Delete `wave-2.csv`
266
260
 
267
- ---
268
-
269
261
  ### Phase 3: Results Aggregation
270
262
 
271
263
  **Objective**: Generate final results and human-readable report.
@@ -292,7 +284,7 @@ spawn_agents_on_csv({
292
284
  4. Generate `context.md`:
293
285
 
294
286
  ```markdown
295
- # Code Review Report Phase {phase}
287
+ # Code Review Report -- Phase {phase}
296
288
 
297
289
  ## Summary
298
290
  - Level: {level}
@@ -344,11 +336,9 @@ spawn_agents_on_csv({
344
336
 
345
337
  8. Display summary.
346
338
 
347
- ---
348
-
349
- ## Shared Discovery Board Protocol
339
+ ### Shared Discovery Board Protocol
350
340
 
351
- ### Standard Discovery Types
341
+ #### Standard Discovery Types
352
342
 
353
343
  | Type | Dedup Key | Data Schema | Description |
354
344
  |------|-----------|-------------|-------------|
@@ -358,7 +348,7 @@ spawn_agents_on_csv({
358
348
  | `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
359
349
  | `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
360
350
 
361
- ### Domain Discovery Types
351
+ #### Domain Discovery Types
362
352
 
363
353
  | Type | Dedup Key | Data Schema | Description |
364
354
  |------|-----------|-------------|-------------|
@@ -367,7 +357,7 @@ spawn_agents_on_csv({
367
357
  | `performance_hotspot` | `data.location` | `{location, type, impact}` | Performance issue |
368
358
  | `architecture_violation` | `data.location` | `{location, rule, description}` | Architecture rule violation |
369
359
 
370
- ### Protocol
360
+ #### Protocol
371
361
 
372
362
  1. **Read** `{session_folder}/discoveries.ndjson` before own review
373
363
  2. **Skip covered**: If discovery of same type + dedup key exists, skip
@@ -378,31 +368,29 @@ spawn_agents_on_csv({
378
368
  ```bash
379
369
  echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"src/auth/login.ts:42","type":"sql_injection","severity":"critical","cwe":"CWE-89"}}' >> {session_folder}/discoveries.ndjson
380
370
  ```
371
+ </execution>
381
372
 
382
- ---
383
-
384
- ## Error Handling
373
+ <error_codes>
385
374
 
386
375
  | Error | Resolution |
387
376
  |-------|------------|
388
377
  | Phase directory not found | Abort with error: "Phase {N} not found" |
389
- | No task summaries found | Abort with error: "No execution results run execute first" |
378
+ | No task summaries found | Abort with error: "No execution results -- run execute first" |
390
379
  | No changed files | Abort with error: "No changed files detected" |
391
380
  | Dimension agent timeout | Mark as failed, skip dependent aggregation if all failed |
392
381
  | Aggregation agent failed | Use wave 1 results directly, verdict based on raw counts |
393
382
  | CSV parse error | Validate format, show line number |
394
383
  | discoveries.ndjson corrupt | Ignore malformed lines |
395
384
  | Continue mode: no session found | List available sessions |
396
-
397
- ---
398
-
399
- ## Core Rules
400
-
401
- 1. **Start Immediately**: First action is session initialization, then Phase 1
402
- 2. **Wave Order is Sacred**: Never execute wave 2 before wave 1 completes and results are merged
403
- 3. **CSV is Source of Truth**: Master tasks.csv holds all state
404
- 4. **Context Propagation**: prev_context built from master CSV, not from memory
405
- 5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
406
- 6. **Skip on Failure**: If all dimension agents failed, skip aggregation
407
- 7. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
408
- 8. **DO NOT STOP**: Continuous execution until all waves complete
385
+ </error_codes>
386
+
387
+ <success_criteria>
388
+ - [ ] Session folder created with valid tasks.csv
389
+ - [ ] All dimension reviews executed in parallel (wave 1)
390
+ - [ ] Aggregation + deep-dive executed (wave 2)
391
+ - [ ] review.json produced with verdict and severity distribution
392
+ - [ ] context.md produced with full review report
393
+ - [ ] Issues auto-created for qualifying severity findings
394
+ - [ ] Phase index.json updated with review status
395
+ - [ ] discoveries.ndjson append-only throughout
396
+ </success_criteria>
@@ -1,89 +1,101 @@
1
- ---
2
- name: quality-sync
3
- description: Sync codebase docs after code changes -- traces git diff through component/feature/requirement layers
4
- argument-hint: "[--full] [--since <commit|HEAD~N>] [--dry-run]"
5
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep
6
- ---
7
-
8
- # Sync
9
-
10
- ## Usage
11
-
12
- ```bash
13
- $quality-sync
14
- $quality-sync "--since HEAD~5"
15
- $quality-sync "--full"
16
- $quality-sync "--dry-run"
17
- $quality-sync "--since abc123 --dry-run"
18
- ```
19
-
20
- **Flags**:
21
- - `--full` -- Complete resync of all tracked files (ignores git diff)
22
- - `--since <commit|HEAD~N>` -- Diff since specific commit (default: last sync timestamp)
23
- - `--dry-run` -- Show what would be updated without writing
24
-
25
- ---
26
-
27
- ## Implementation
28
-
29
- ### Step 1: Validate
30
-
31
- ```bash
32
- test -d .workflow || exit 1 # E001: not initialized
33
- ```
34
-
35
- ### Step 2: Detect Changes
36
-
37
- If `--full`: skip diff, mark all tracked files as changed.
38
-
39
- Otherwise:
40
- 1. Read last sync timestamp from `state.json` field `last_synced`
41
- 2. If `--since` provided, use that as baseline
42
- 3. Run `git diff --name-only {baseline} HEAD` to get changed files
43
-
44
- If no changes and not `--full`, report clean state (W001) and exit.
45
-
46
- ### Step 3: Trace Impact Chain
47
-
48
- For each changed file, trace through `doc-index.json` impact layers:
49
- 1. **File layer** -- Which doc entries reference this file directly
50
- 2. **Component layer** -- Which components contain this file
51
- 3. **Feature layer** -- Which features depend on affected components
52
- 4. **Requirement layer** -- Which requirements trace to affected features
53
-
54
- Build the full set of affected documentation entries.
55
-
56
- ### Step 4: Update Documentation
57
-
58
- If `--dry-run`: display affected entries and exit.
59
-
60
- For each affected entry:
61
- 1. Re-read source files
62
- 2. Regenerate the documentation section in `.workflow/codebase/`
63
- 3. Update `doc-index.json` with new timestamp and content hash
64
-
65
- ### Step 5: Update State
66
-
67
- Update `state.json`:
68
- - `last_synced: "{ISO timestamp}"`
69
- - `last_synced_commit: "{HEAD commit hash}"`
70
-
71
- Update affected `index.json` files in phase directories if task files were modified.
72
-
73
- Display summary:
74
- ```
75
- === SYNC COMPLETE ===
76
- Files changed: {N}
77
- Components affected: {C}
78
- Features affected: {F}
79
- Docs updated: {D}
80
- ```
81
-
82
- ---
83
-
84
- ## Error Handling
85
-
86
- | Code | Severity | Description |
87
- |------|----------|-------------|
88
- | E001 | error | `.workflow/` not initialized -- run `Skill({ skill: "maestro-init" })` first |
89
- | W001 | warning | No changes detected since last sync |
1
+ ---
2
+ name: quality-sync
3
+ description: Sync codebase docs after code changes -- traces git diff through component/feature/requirement layers
4
+ argument-hint: "[--full] [--since <commit|HEAD~N>] [--dry-run]"
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
6
+ ---
7
+
8
+ <purpose>
9
+ Sync codebase documentation after code changes by tracing git diff through component, feature, and requirement layers. Updates `.workflow/codebase/` docs to reflect current source state.
10
+ </purpose>
11
+
12
+ <context>
13
+
14
+ ```bash
15
+ $quality-sync
16
+ $quality-sync "--since HEAD~5"
17
+ $quality-sync "--full"
18
+ $quality-sync "--dry-run"
19
+ $quality-sync "--since abc123 --dry-run"
20
+ ```
21
+
22
+ **Flags**:
23
+ - `--full` -- Complete resync of all tracked files (ignores git diff)
24
+ - `--since <commit|HEAD~N>` -- Diff since specific commit (default: last sync timestamp)
25
+ - `--dry-run` -- Show what would be updated without writing
26
+
27
+ </context>
28
+
29
+ <execution>
30
+
31
+ ### Step 1: Validate
32
+
33
+ ```bash
34
+ test -d .workflow || exit 1 # E001: not initialized
35
+ ```
36
+
37
+ ### Step 2: Detect Changes
38
+
39
+ If `--full`: skip diff, mark all tracked files as changed.
40
+
41
+ Otherwise:
42
+ 1. Read last sync timestamp from `state.json` field `last_synced`
43
+ 2. If `--since` provided, use that as baseline
44
+ 3. Run `git diff --name-only {baseline} HEAD` to get changed files
45
+
46
+ If no changes and not `--full`, report clean state (W001) and exit.
47
+
48
+ ### Step 3: Trace Impact Chain
49
+
50
+ For each changed file, trace through `doc-index.json` impact layers:
51
+ 1. **File layer** -- Which doc entries reference this file directly
52
+ 2. **Component layer** -- Which components contain this file
53
+ 3. **Feature layer** -- Which features depend on affected components
54
+ 4. **Requirement layer** -- Which requirements trace to affected features
55
+
56
+ Build the full set of affected documentation entries.
57
+
58
+ ### Step 4: Update Documentation
59
+
60
+ If `--dry-run`: display affected entries and exit.
61
+
62
+ For each affected entry:
63
+ 1. Re-read source files
64
+ 2. Regenerate the documentation section in `.workflow/codebase/`
65
+ 3. Update `doc-index.json` with new timestamp and content hash
66
+
67
+ ### Step 5: Update State
68
+
69
+ Update `state.json`:
70
+ - `last_synced: "{ISO timestamp}"`
71
+ - `last_synced_commit: "{HEAD commit hash}"`
72
+
73
+ Update affected `index.json` files in phase directories if task files were modified.
74
+
75
+ Display summary:
76
+ ```
77
+ === SYNC COMPLETE ===
78
+ Files changed: {N}
79
+ Components affected: {C}
80
+ Features affected: {F}
81
+ Docs updated: {D}
82
+ ```
83
+
84
+ </execution>
85
+
86
+ <error_codes>
87
+
88
+ | Code | Severity | Description |
89
+ |------|----------|-------------|
90
+ | E001 | error | `.workflow/` not initialized -- run `Skill({ skill: "maestro-init" })` first |
91
+ | W001 | warning | No changes detected since last sync |
92
+
93
+ </error_codes>
94
+
95
+ <success_criteria>
96
+ - [ ] Changed files detected (or full resync triggered)
97
+ - [ ] Impact chain traced through all layers
98
+ - [ ] Documentation entries updated in `.workflow/codebase/`
99
+ - [ ] `state.json` updated with sync timestamp and commit hash
100
+ - [ ] Summary report displayed
101
+ </success_criteria>