maestro-flow 0.3.32 → 0.3.34

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 (241) hide show
  1. package/.claude/commands/learn-retro.md +1 -1
  2. package/.claude/commands/maestro-composer.md +2 -2
  3. package/.claude/commands/maestro-ralph-execute.md +1 -1
  4. package/.claude/commands/maestro-ralph.md +11 -11
  5. package/.claude/commands/maestro-verify.md +1 -1
  6. package/.claude/commands/maestro.md +1 -2
  7. package/.claude/commands/quality-auto-test.md +124 -0
  8. package/.claude/commands/quality-refactor.md +1 -1
  9. package/.claude/commands/quality-test.md +3 -3
  10. package/.codex/skills/learn-retro/SKILL.md +1 -1
  11. package/.codex/skills/maestro/SKILL.md +1 -1
  12. package/.codex/skills/maestro-link-coordinate/SKILL.md +1 -1
  13. package/.codex/skills/maestro-milestone-audit/SKILL.md +9 -1
  14. package/.codex/skills/maestro-plan/SKILL.md +72 -6
  15. package/.codex/skills/maestro-ralph/SKILL.md +159 -159
  16. package/.codex/skills/maestro-roadmap/SKILL.md +31 -5
  17. package/.codex/skills/maestro-verify/SKILL.md +1 -1
  18. package/.codex/skills/quality-auto-test/SKILL.md +547 -0
  19. package/.codex/skills/quality-debug/SKILL.md +18 -6
  20. package/.codex/skills/quality-refactor/SKILL.md +8 -1
  21. package/.codex/skills/quality-sync/SKILL.md +23 -4
  22. package/.codex/skills/quality-test/SKILL.md +498 -166
  23. package/dashboard/dist-server/src/config/cli-tools-config.js +5 -20
  24. package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
  25. package/dashboard/dist-server/src/config/cli-tools-defaults.json +17 -0
  26. package/dist/src/commands/config.d.ts.map +1 -1
  27. package/dist/src/commands/config.js +168 -32
  28. package/dist/src/commands/config.js.map +1 -1
  29. package/dist/src/commands/hooks.d.ts +9 -0
  30. package/dist/src/commands/hooks.d.ts.map +1 -1
  31. package/dist/src/commands/hooks.js +1 -1
  32. package/dist/src/commands/hooks.js.map +1 -1
  33. package/dist/src/commands/install.js +1 -1
  34. package/dist/src/commands/install.js.map +1 -1
  35. package/dist/src/commands/overlay.js +1 -1
  36. package/dist/src/commands/overlay.js.map +1 -1
  37. package/dist/src/commands/tools.d.ts.map +1 -1
  38. package/dist/src/commands/tools.js +7 -17
  39. package/dist/src/commands/tools.js.map +1 -1
  40. package/dist/src/commands/uninstall.js +1 -1
  41. package/dist/src/commands/uninstall.js.map +1 -1
  42. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  43. package/dist/src/config/cli-tools-config.js +5 -20
  44. package/dist/src/config/cli-tools-config.js.map +1 -1
  45. package/dist/src/config/cli-tools-defaults.json +17 -0
  46. package/dist/src/tui/config-ui/ConfigHub.d.ts +14 -0
  47. package/dist/src/tui/config-ui/ConfigHub.d.ts.map +1 -0
  48. package/dist/src/tui/config-ui/ConfigHub.js +125 -0
  49. package/dist/src/tui/config-ui/ConfigHub.js.map +1 -0
  50. package/dist/src/tui/config-ui/ConfigSourcesView.d.ts +6 -0
  51. package/dist/src/tui/config-ui/ConfigSourcesView.d.ts.map +1 -0
  52. package/dist/src/tui/config-ui/ConfigSourcesView.js +25 -0
  53. package/dist/src/tui/config-ui/ConfigSourcesView.js.map +1 -0
  54. package/dist/src/tui/config-ui/HooksPanel.d.ts +6 -0
  55. package/dist/src/tui/config-ui/HooksPanel.d.ts.map +1 -0
  56. package/dist/src/tui/config-ui/HooksPanel.js +92 -0
  57. package/dist/src/tui/config-ui/HooksPanel.js.map +1 -0
  58. package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts +9 -0
  59. package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts.map +1 -0
  60. package/dist/src/tui/config-ui/SkillConfigDashboard.js +64 -0
  61. package/dist/src/tui/config-ui/SkillConfigDashboard.js.map +1 -0
  62. package/dist/src/tui/config-ui/SkillParamEditor.d.ts +12 -0
  63. package/dist/src/tui/config-ui/SkillParamEditor.d.ts.map +1 -0
  64. package/dist/src/tui/config-ui/SkillParamEditor.js +162 -0
  65. package/dist/src/tui/config-ui/SkillParamEditor.js.map +1 -0
  66. package/dist/src/tui/config-ui/SkillsList.d.ts +12 -0
  67. package/dist/src/tui/config-ui/SkillsList.d.ts.map +1 -0
  68. package/dist/src/tui/config-ui/SkillsList.js +91 -0
  69. package/dist/src/tui/config-ui/SkillsList.js.map +1 -0
  70. package/dist/src/tui/config-ui/SpecPanel.d.ts +6 -0
  71. package/dist/src/tui/config-ui/SpecPanel.d.ts.map +1 -0
  72. package/dist/src/tui/config-ui/SpecPanel.js +79 -0
  73. package/dist/src/tui/config-ui/SpecPanel.js.map +1 -0
  74. package/dist/src/tui/config-ui/index.d.ts +23 -0
  75. package/dist/src/tui/config-ui/index.d.ts.map +1 -0
  76. package/dist/src/tui/config-ui/index.js +34 -0
  77. package/dist/src/tui/config-ui/index.js.map +1 -0
  78. package/dist/src/tui/index.d.ts +7 -0
  79. package/dist/src/tui/index.d.ts.map +1 -0
  80. package/dist/src/tui/index.js +10 -0
  81. package/dist/src/tui/index.js.map +1 -0
  82. package/dist/src/tui/install-ui/BackupConfig.d.ts +10 -0
  83. package/dist/src/tui/install-ui/BackupConfig.d.ts.map +1 -0
  84. package/dist/src/tui/install-ui/BackupConfig.js +46 -0
  85. package/dist/src/tui/install-ui/BackupConfig.js.map +1 -0
  86. package/dist/src/tui/install-ui/BlueprintPreview.d.ts +9 -0
  87. package/dist/src/tui/install-ui/BlueprintPreview.d.ts.map +1 -0
  88. package/dist/src/tui/install-ui/BlueprintPreview.js +65 -0
  89. package/dist/src/tui/install-ui/BlueprintPreview.js.map +1 -0
  90. package/dist/src/tui/install-ui/BlueprintPreview.logic.d.ts +33 -0
  91. package/dist/src/tui/install-ui/BlueprintPreview.logic.d.ts.map +1 -0
  92. package/dist/src/tui/install-ui/BlueprintPreview.logic.js +51 -0
  93. package/dist/src/tui/install-ui/BlueprintPreview.logic.js.map +1 -0
  94. package/dist/src/tui/install-ui/ComponentGrid.d.ts +13 -0
  95. package/dist/src/tui/install-ui/ComponentGrid.d.ts.map +1 -0
  96. package/dist/src/tui/install-ui/ComponentGrid.js +75 -0
  97. package/dist/src/tui/install-ui/ComponentGrid.js.map +1 -0
  98. package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts +31 -0
  99. package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts.map +1 -0
  100. package/dist/src/tui/install-ui/ComponentGrid.logic.js +58 -0
  101. package/dist/src/tui/install-ui/ComponentGrid.logic.js.map +1 -0
  102. package/dist/src/tui/install-ui/ConfigPanel.d.ts +11 -0
  103. package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -0
  104. package/dist/src/tui/install-ui/ConfigPanel.js +35 -0
  105. package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -0
  106. package/dist/src/tui/install-ui/CyberItem.d.ts +18 -0
  107. package/dist/src/tui/install-ui/CyberItem.d.ts.map +1 -0
  108. package/dist/src/tui/install-ui/CyberItem.js +33 -0
  109. package/dist/src/tui/install-ui/CyberItem.js.map +1 -0
  110. package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts +7 -0
  111. package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts.map +1 -0
  112. package/dist/src/tui/install-ui/CyberdeckBlueprint.js +91 -0
  113. package/dist/src/tui/install-ui/CyberdeckBlueprint.js.map +1 -0
  114. package/dist/src/tui/install-ui/ExecutionView.d.ts +12 -0
  115. package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -0
  116. package/dist/src/tui/install-ui/ExecutionView.js +154 -0
  117. package/dist/src/tui/install-ui/ExecutionView.js.map +1 -0
  118. package/dist/src/tui/install-ui/GradientHeader.d.ts +8 -0
  119. package/dist/src/tui/install-ui/GradientHeader.d.ts.map +1 -0
  120. package/dist/src/tui/install-ui/GradientHeader.js +18 -0
  121. package/dist/src/tui/install-ui/GradientHeader.js.map +1 -0
  122. package/dist/src/tui/install-ui/HooksConfig.d.ts +8 -0
  123. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -0
  124. package/dist/src/tui/install-ui/HooksConfig.js +35 -0
  125. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -0
  126. package/dist/src/tui/install-ui/InstallConfirm.d.ts +27 -0
  127. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -0
  128. package/dist/src/tui/install-ui/InstallConfirm.js +25 -0
  129. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -0
  130. package/dist/src/tui/install-ui/InstallExecution.d.ts +21 -0
  131. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -0
  132. package/dist/src/tui/install-ui/InstallExecution.js +154 -0
  133. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -0
  134. package/dist/src/tui/install-ui/InstallFlow.d.ts +14 -0
  135. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -0
  136. package/dist/src/tui/install-ui/InstallFlow.js +186 -0
  137. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -0
  138. package/dist/src/tui/install-ui/InstallHub.d.ts +33 -0
  139. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -0
  140. package/dist/src/tui/install-ui/InstallHub.js +97 -0
  141. package/dist/src/tui/install-ui/InstallHub.js.map +1 -0
  142. package/dist/src/tui/install-ui/InstallResult.d.ts +7 -0
  143. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -0
  144. package/dist/src/tui/install-ui/InstallResult.js +15 -0
  145. package/dist/src/tui/install-ui/InstallResult.js.map +1 -0
  146. package/dist/src/tui/install-ui/McpConfig.d.ts +12 -0
  147. package/dist/src/tui/install-ui/McpConfig.d.ts.map +1 -0
  148. package/dist/src/tui/install-ui/McpConfig.js +69 -0
  149. package/dist/src/tui/install-ui/McpConfig.js.map +1 -0
  150. package/dist/src/tui/install-ui/ResultDashboard.d.ts +8 -0
  151. package/dist/src/tui/install-ui/ResultDashboard.d.ts.map +1 -0
  152. package/dist/src/tui/install-ui/ResultDashboard.js +17 -0
  153. package/dist/src/tui/install-ui/ResultDashboard.js.map +1 -0
  154. package/dist/src/tui/install-ui/ReviewPanel.d.ts +19 -0
  155. package/dist/src/tui/install-ui/ReviewPanel.d.ts.map +1 -0
  156. package/dist/src/tui/install-ui/ReviewPanel.js +25 -0
  157. package/dist/src/tui/install-ui/ReviewPanel.js.map +1 -0
  158. package/dist/src/tui/install-ui/ShortcutFooter.d.ts +7 -0
  159. package/dist/src/tui/install-ui/ShortcutFooter.d.ts.map +1 -0
  160. package/dist/src/tui/install-ui/ShortcutFooter.js +15 -0
  161. package/dist/src/tui/install-ui/ShortcutFooter.js.map +1 -0
  162. package/dist/src/tui/install-ui/StatuslineConfig.d.ts +11 -0
  163. package/dist/src/tui/install-ui/StatuslineConfig.d.ts.map +1 -0
  164. package/dist/src/tui/install-ui/StatuslineConfig.js +39 -0
  165. package/dist/src/tui/install-ui/StatuslineConfig.js.map +1 -0
  166. package/dist/src/tui/install-ui/StepSelector.d.ts +14 -0
  167. package/dist/src/tui/install-ui/StepSelector.d.ts.map +1 -0
  168. package/dist/src/tui/install-ui/StepSelector.js +46 -0
  169. package/dist/src/tui/install-ui/StepSelector.js.map +1 -0
  170. package/dist/src/tui/install-ui/index.d.ts +8 -0
  171. package/dist/src/tui/install-ui/index.d.ts.map +1 -0
  172. package/dist/src/tui/install-ui/index.js +10 -0
  173. package/dist/src/tui/install-ui/index.js.map +1 -0
  174. package/dist/src/tui/install-ui/types.d.ts +35 -0
  175. package/dist/src/tui/install-ui/types.d.ts.map +1 -0
  176. package/dist/src/tui/install-ui/types.js +25 -0
  177. package/dist/src/tui/install-ui/types.js.map +1 -0
  178. package/dist/src/tui/overlay-ui/OverlayList.d.ts +37 -0
  179. package/dist/src/tui/overlay-ui/OverlayList.d.ts.map +1 -0
  180. package/dist/src/tui/overlay-ui/OverlayList.js +146 -0
  181. package/dist/src/tui/overlay-ui/OverlayList.js.map +1 -0
  182. package/dist/src/tui/overlay-ui/index.d.ts +18 -0
  183. package/dist/src/tui/overlay-ui/index.d.ts.map +1 -0
  184. package/dist/src/tui/overlay-ui/index.js +204 -0
  185. package/dist/src/tui/overlay-ui/index.js.map +1 -0
  186. package/dist/src/tui/render.d.ts +13 -0
  187. package/dist/src/tui/render.d.ts.map +1 -0
  188. package/dist/src/tui/render.js +31 -0
  189. package/dist/src/tui/render.js.map +1 -0
  190. package/dist/src/tui/tools-ui/CommandReference.d.ts +7 -0
  191. package/dist/src/tui/tools-ui/CommandReference.d.ts.map +1 -0
  192. package/dist/src/tui/tools-ui/CommandReference.js +33 -0
  193. package/dist/src/tui/tools-ui/CommandReference.js.map +1 -0
  194. package/dist/src/tui/tools-ui/ConfigSources.d.ts +6 -0
  195. package/dist/src/tui/tools-ui/ConfigSources.d.ts.map +1 -0
  196. package/dist/src/tui/tools-ui/ConfigSources.js +27 -0
  197. package/dist/src/tui/tools-ui/ConfigSources.js.map +1 -0
  198. package/dist/src/tui/tools-ui/RegisterSettings.d.ts +8 -0
  199. package/dist/src/tui/tools-ui/RegisterSettings.d.ts.map +1 -0
  200. package/dist/src/tui/tools-ui/RegisterSettings.js +125 -0
  201. package/dist/src/tui/tools-ui/RegisterSettings.js.map +1 -0
  202. package/dist/src/tui/tools-ui/RoleMappings.d.ts +9 -0
  203. package/dist/src/tui/tools-ui/RoleMappings.d.ts.map +1 -0
  204. package/dist/src/tui/tools-ui/RoleMappings.js +104 -0
  205. package/dist/src/tui/tools-ui/RoleMappings.js.map +1 -0
  206. package/dist/src/tui/tools-ui/ToolsDashboard.d.ts +8 -0
  207. package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -0
  208. package/dist/src/tui/tools-ui/ToolsDashboard.js +60 -0
  209. package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -0
  210. package/dist/src/tui/tools-ui/ToolsOverview.d.ts +9 -0
  211. package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -0
  212. package/dist/src/tui/tools-ui/ToolsOverview.js +84 -0
  213. package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -0
  214. package/dist/src/tui/tools-ui/index.d.ts +3 -0
  215. package/dist/src/tui/tools-ui/index.d.ts.map +1 -0
  216. package/dist/src/tui/tools-ui/index.js +6 -0
  217. package/dist/src/tui/tools-ui/index.js.map +1 -0
  218. package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts +7 -0
  219. package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -0
  220. package/dist/src/tui/uninstall-ui/UninstallFlow.js +189 -0
  221. package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -0
  222. package/dist/src/tui/uninstall-ui/index.d.ts +3 -0
  223. package/dist/src/tui/uninstall-ui/index.d.ts.map +1 -0
  224. package/dist/src/tui/uninstall-ui/index.js +6 -0
  225. package/dist/src/tui/uninstall-ui/index.js.map +1 -0
  226. package/package.json +1 -1
  227. package/workflows/auto-test.md +682 -0
  228. package/workflows/business-test.md +570 -0
  229. package/workflows/integration-test.md +1 -1
  230. package/workflows/maestro.codex.md +4 -3
  231. package/workflows/maestro.md +5 -4
  232. package/workflows/status.md +2 -2
  233. package/workflows/test.md +1 -1
  234. package/workflows/verify.md +1 -1
  235. package/.claude/commands/quality-business-test.md +0 -110
  236. package/.claude/commands/quality-integration-test.md +0 -67
  237. package/.claude/commands/quality-test-gen.md +0 -68
  238. package/.codex/skills/maestro-ralph-execute/SKILL.md +0 -219
  239. package/.codex/skills/quality-business-test/SKILL.md +0 -218
  240. package/.codex/skills/quality-integration-test/SKILL.md +0 -427
  241. package/.codex/skills/quality-test-gen/SKILL.md +0 -352
@@ -1,427 +0,0 @@
1
- ---
2
- name: quality-integration-test
3
- description: Self-iterating integration test cycle via CSV wave pipeline. Progressive L0-L3 layers in linear pipeline topology with reflection-driven adaptive strategy engine. Replaces quality-integration-test command.
4
- argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--max-iterations N] [--target-coverage N]\""
5
- allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
- ---
7
-
8
- <purpose>
9
- Linear pipeline test execution using `spawn_agents_on_csv`. Progressive L0 -> L1 -> L2 -> L3 layers where each layer depends on the previous passing. Self-iterating 6-phase cycle (Explore -> Design -> Develop -> Test -> Reflect -> Adjust) with adaptive strategy engine.
10
-
11
- **Core workflow**: Explore Codebase -> Design Test Plan -> Progressive Layer Execution -> Reflect -> Adjust Strategy -> Iterate
12
-
13
- ```
14
- +-------------------------------------------------------------------------+
15
- | INTEGRATION TEST CSV WAVE WORKFLOW |
16
- +-------------------------------------------------------------------------+
17
- | |
18
- | Phase 1: Exploration -> CSV |
19
- | +-- Resolve phase directory from arguments |
20
- | +-- Explore codebase for integration points |
21
- | +-- Discover test infrastructure and existing tests |
22
- | +-- Load pre-generated tests from quality-test-gen |
23
- | +-- Design L0-L3 test plan |
24
- | +-- Generate tasks.csv with rows per layer + module |
25
- | +-- User validates test plan (skip if -y) |
26
- | |
27
- | Phase 2: Wave Execution Engine (Linear Pipeline) |
28
- | +-- Wave 1: L0 Static Analysis |
29
- | | +-- Type checking (tsc --noEmit) |
30
- | | +-- Linting (eslint / ruff) |
31
- | | +-- Results: pass/fail per check |
32
- | +-- Wave 2: L1 Unit Tests (parallel per module) |
33
- | | +-- Each module agent runs unit tests independently |
34
- | | +-- Discoveries shared (test commands, fixtures) |
35
- | | +-- Results: tests_passed + tests_failed per module |
36
- | +-- Wave 3: L2 Integration Tests |
37
- | | +-- Cross-module + API + DB tests |
38
- | | +-- Uses L1 context for test commands and patterns |
39
- | | +-- Results: tests_passed + tests_failed + coverage |
40
- | +-- Wave 4: L3 E2E Tests |
41
- | | +-- Full user flow tests |
42
- | | +-- Uses L2 context for integration points |
43
- | | +-- Results: tests_passed + tests_failed + coverage |
44
- | +-- discoveries.ndjson shared across all waves (append-only) |
45
- | |
46
- | Phase 3: Reflect + Iterate |
47
- | +-- Calculate overall pass rate |
48
- | +-- Reflect on results (what worked, what failed, patterns) |
49
- | +-- Adjust strategy (conservative/aggressive/surgical/reflective) |
50
- | +-- If pass_rate < target: iterate (back to Phase 2) |
51
- | +-- If pass_rate >= target OR max_iterations: finalize |
52
- | +-- Export results.csv + summary.json |
53
- | +-- Generate context.md + reflection-log.md |
54
- | +-- Display summary with next steps |
55
- | |
56
- +-------------------------------------------------------------------------+
57
- ```
58
- </purpose>
59
-
60
- <context>
61
- ```bash
62
- $quality-integration-test "3"
63
- $quality-integration-test -c 4 "3 --max-iterations 8"
64
- $quality-integration-test -y "3 --target-coverage 90"
65
- $quality-integration-test --continue "20260318-integration-test-P3-auth"
66
- ```
67
-
68
- **Flags**:
69
- - `-y, --yes`: Skip all confirmations (auto mode)
70
- - `-c, --concurrency N`: Max concurrent agents within each wave (default: 4)
71
- - `--continue`: Resume existing session
72
-
73
- When `--yes` or `-y`: Auto-confirm test plan, skip interactive validation, use defaults for layer detection.
74
-
75
- **Output Directory**: `.workflow/.csv-wave/{session-id}/`
76
- **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report) + `summary.json` (structured output for downstream)
77
- </context>
78
-
79
- <csv_schema>
80
- ### tasks.csv (Master State)
81
-
82
- ```csv
83
- id,title,description,test_layer,test_scope,deps,context_from,wave,status,findings,tests_passed,tests_failed,coverage,error
84
- "1","L0 Type Check","Run TypeScript type checking with tsc --noEmit. Report all type errors with file:line references.","L0-static","src/**/*.ts","","","1","","","","","",""
85
- "2","L0 Lint","Run ESLint on all source files. Report errors and warnings with file:line references.","L0-static","src/**/*.ts","","","1","","","","","",""
86
- "3","L1 Auth Module","Run unit tests for auth module: token verification, session management, password hashing. Isolated tests with mocked dependencies.","L1-unit","src/auth/**/*.ts","1;2","1;2","2","","","","","",""
87
- "4","L1 API Module","Run unit tests for API module: route handlers, middleware, validators. Isolated tests with mocked DB.","L1-unit","src/api/**/*.ts","1;2","1;2","2","","","","","",""
88
- "5","L1 Utils Module","Run unit tests for utility functions: validation, formatting, helpers. Pure function tests.","L1-unit","src/utils/**/*.ts","1;2","1;2","2","","","","","",""
89
- "6","L2 API Integration","Run integration tests: API endpoints with real middleware chain, DB fixtures, cross-module data flow.","L2-integration","src/api/**/*.ts;src/auth/**/*.ts","3;4;5","3;4;5","3","","","","","",""
90
- "7","L2 DB Integration","Run integration tests: database queries, migrations, transaction handling with test DB.","L2-integration","src/db/**/*.ts","3;4;5","3;4;5","3","","","","","",""
91
- "8","L3 User Flows","Run E2E tests: login flow, CRUD operations, error handling. Full browser/process execution.","L3-e2e","src/**/*.ts","6;7","6;7","4","","","","","",""
92
- ```
93
-
94
- **Columns**:
95
-
96
- | Column | Phase | Description |
97
- |--------|-------|-------------|
98
- | `id` | Input | Unique task identifier (string) |
99
- | `title` | Input | Short task title |
100
- | `description` | Input | Detailed test execution instructions for this layer/scope |
101
- | `test_layer` | Input | Test layer: L0-static/L1-unit/L2-integration/L3-e2e |
102
- | `test_scope` | Input | Semicolon-separated file/module globs to test |
103
- | `deps` | Input | Semicolon-separated dependency task IDs (previous layer tasks) |
104
- | `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
105
- | `wave` | Computed | Wave number: 1=L0, 2=L1, 3=L2, 4=L3 |
106
- | `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
107
- | `findings` | Output | Key findings summary: failures, patterns, coverage notes (max 500 chars) |
108
- | `tests_passed` | Output | Count of passing tests |
109
- | `tests_failed` | Output | Count of failing tests |
110
- | `coverage` | Output | Coverage percentage for this scope (e.g., `87.5%`) |
111
- | `error` | Output | Error message if failed |
112
-
113
- ### Per-Wave CSV (Temporary)
114
-
115
- Each wave generates `wave-{N}.csv` with extra `prev_context` column populated from predecessor findings.
116
-
117
- ### Output Artifacts
118
-
119
- | File | Purpose | Lifecycle |
120
- |------|---------|-----------|
121
- | `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
122
- | `wave-{N}.csv` | Per-wave input (temporary) | Created before wave, deleted after |
123
- | `results.csv` | Final export of all task results | Created in Phase 3 |
124
- | `discoveries.ndjson` | Shared exploration board | Append-only, carries across waves |
125
- | `context.md` | Human-readable integration test report | Created in Phase 3 |
126
- | `summary.json` | Structured output for downstream commands | Created in Phase 3 |
127
- | `reflection-log.md` | Per-iteration reflection history | Append-only across iterations |
128
-
129
- ### Session Structure
130
-
131
- ```
132
- .workflow/.csv-wave/{YYYYMMDD}-integration-test-P{N}-{slug}/
133
- +-- tasks.csv
134
- +-- results.csv
135
- +-- discoveries.ndjson
136
- +-- context.md
137
- +-- summary.json
138
- +-- reflection-log.md
139
- +-- state.json
140
- +-- iteration-{N}/
141
- | +-- wave-{N}.csv (temporary)
142
- | +-- test-results.json
143
- +-- wave-{N}.csv (temporary)
144
- ```
145
- </csv_schema>
146
-
147
- <invariants>
148
- 1. **Start Immediately**: First action is session initialization, then Phase 1
149
- 2. **Wave Order is Sacred**: Never execute wave N+1 before wave N completes and results are merged
150
- 3. **Progressive Layers**: L0 -> L1 -> L2 -> L3 -- each layer gates the next
151
- 4. **CSV is Source of Truth**: Master tasks.csv holds all state
152
- 5. **Context Propagation**: prev_context built from master CSV, not from memory
153
- 6. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
154
- 7. **Self-Iterating**: Loop until convergence or max iterations -- do not stop after one pass
155
- 8. **Strategy is Adaptive**: Apply the strategy engine rules for transitions, never stay on a failing strategy
156
- 9. **Reflect Before Adjusting**: Always log reflection before changing strategy
157
- 10. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
158
- 11. **DO NOT STOP**: Continuous execution until convergence or max iterations reached
159
- </invariants>
160
-
161
- <execution>
162
-
163
- ### Session Initialization
164
-
165
- **Parse from `$ARGUMENTS`**:
166
-
167
- | Variable | Source | Default |
168
- |----------|--------|---------|
169
- | `AUTO_YES` | `--yes` or `-y` | false |
170
- | `continueMode` | `--continue` | false |
171
- | `maxConcurrency` | `--concurrency N` or `-c N` | 4 |
172
- | `maxIterations` | `--max-iterations N` | 5 |
173
- | `targetCoverage` | `--target-coverage N` | 95 |
174
- | `phaseArg` | remaining text after flag removal | — |
175
-
176
- **Session path** (UTC+8 date prefix): `.workflow/.csv-wave/{YYYYMMDD}-integration-test-P{phaseArg}-{phaseSlug}/`
177
-
178
- Create session directory. Initialize `state.json` with `{ phase, started_at, current_iteration: 0, max_iterations, strategy: "conservative", current_layer: "L0", pass_rates: [], convergence_threshold: targetCoverage, status: "running" }`. Initialize `reflection-log.md` with header.
179
-
180
- ### Phase 1: Exploration -> CSV
181
-
182
- **Objective**: Explore codebase, discover integration points, design L0-L3 test plan, generate tasks.csv.
183
-
184
- **Decomposition Rules**:
185
-
186
- 1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`
187
-
188
- 2. **Related session discovery**: Query `state.json.artifacts[]` for all artifacts matching `phase === target_phase && milestone === current_milestone`. Each artifact's type determines its outputs: review → review.json (critical findings inform integration test focus), debug → understanding.md (root causes guide regression test layers), test → uat.md/.tests/ (prior results inform layer priorities). Extract conclusions that may affect integration test strategy.
189
-
190
- 3. **Codebase exploration**:
191
- - Cross-module imports and dependencies
192
- - API endpoints and route definitions
193
- - Database interactions and queries
194
- - External service integrations
195
- - Event flows and message passing
196
-
197
- 3. **Test infrastructure discovery**:
198
- - Detect frameworks (jest/vitest/pytest, playwright/cypress)
199
- - Find existing integration and E2E tests
200
- - Identify test utilities, fixtures, DB seed scripts
201
-
202
- 4. **Pre-generated test loading**:
203
- Check `{artifact_dir}/.tests/test-gen-report.json` for tests from `quality-test-gen`. Merge integration/e2e tests into plan (execute but don't re-generate).
204
-
205
- 5. **Layer design**:
206
-
207
- | Layer | Wave | Tasks | Content |
208
- |-------|------|-------|---------|
209
- | L0 | 1 | 1-2 | Type check + lint commands |
210
- | L1 | 2 | 1 per module | Unit tests per discovered module (parallel) |
211
- | L2 | 3 | 1-3 | Integration tests (API, DB, cross-module) |
212
- | L3 | 4 | 1-2 | E2E tests (user flows) |
213
-
214
- 6. **Dependency wiring**: L1 depends on L0, L2 depends on L1, L3 depends on L2.
215
-
216
- 7. **CSV generation**: Rows for all layers with correct wave assignments and deps.
217
-
218
- **User validation**: Display layer breakdown with test counts (skip if AUTO_YES).
219
-
220
- ### Phase 2: Wave Execution Engine
221
-
222
- **Objective**: Execute test layers wave-by-wave via spawn_agents_on_csv. Progressive -- each layer requires previous to pass.
223
-
224
- #### Wave 1: L0 Static Analysis
225
-
226
- Filter `wave == 1 && status == pending` from master CSV. No prev_context (first wave). Write `wave-1.csv`.
227
-
228
- ```javascript
229
- spawn_agents_on_csv({
230
- csv_path: `${sessionFolder}/wave-1.csv`,
231
- id_column: "id",
232
- instruction: buildL0Instruction(sessionFolder),
233
- max_concurrency: maxConcurrency,
234
- max_runtime_seconds: 3600,
235
- output_csv_path: `${sessionFolder}/wave-1-results.csv`,
236
- output_schema: { id, status: ["completed"|"failed"], findings, tests_passed, tests_failed, coverage, error }
237
- // required: id, status, findings
238
- })
239
- ```
240
-
241
- Merge results into master `tasks.csv`, delete `wave-1.csv`. **Gate**: If all L0 failed, skip remaining waves for this iteration.
242
-
243
- #### Waves 2-4: L1 Unit -> L2 Integration -> L3 E2E
244
-
245
- Each wave follows the same pattern: filter pending tasks for that wave, check deps (all previous wave tasks must not have all-failed), build `prev_context` from predecessor findings, write wave CSV, execute `spawn_agents_on_csv`, merge results, delete temp CSV.
246
-
247
- | Wave | Layer | Parallelism | prev_context Source | Gate |
248
- |------|-------|-------------|---------------------|------|
249
- | 2 | L1 Unit | per module | L0 findings (type errors, lint warnings) | All L1 failed -> skip L2, L3 |
250
- | 3 | L2 Integration | per scope | L1 findings (test commands, failures, coverage) | All L2 failed -> skip L3 |
251
- | 4 | L3 E2E | per flow | L2 findings (integration points, coverage levels) | — |
252
-
253
- ### Phase 3: Reflect + Iterate
254
-
255
- **Objective**: Evaluate results, reflect, adjust strategy, iterate or finalize.
256
-
257
- #### Step 3a: Calculate Pass Rate
258
-
259
- `overall_pass_rate = total_passed / (total_passed + total_failed) * 100`. Record in `state.json.pass_rates[]`.
260
-
261
- #### Step 3b: Reflect
262
-
263
- Analyze: which tests failed and why, trend (improving/plateauing/regressing), failure clustering, strategy effectiveness. Append to `reflection-log.md` per iteration: strategy, pass rate + delta, what worked, what failed, patterns detected, strategy assessment (effective/ineffective/partially_effective).
264
-
265
- #### Step 3c: Adjust Strategy (Adaptive Strategy Engine)
266
-
267
- | Condition | Strategy | Behavior |
268
- |-----------|----------|----------|
269
- | Iteration 1-2 | Conservative | Fix obvious failures, don't refactor |
270
- | Pass rate >80% + similar failures | Aggressive | Batch-fix related failures |
271
- | New regressions | Surgical | Revert last changes, fix regression only |
272
- | Stuck 3+ iterations | Reflective | Re-analyze root cause pattern |
273
-
274
- **Transitions**: Conservative --(>80%)--> Aggressive --(regression)--> Surgical --(fixed)--> Aggressive. Any --(stuck 3+)--> Reflective --(new insight)--> Conservative.
275
-
276
- Update `state.json` with new strategy and iteration count.
277
-
278
- #### Step 3d: Convergence Check
279
-
280
- - `pass_rate >= target_coverage` -> **CONVERGED** -> finalize
281
- - `iteration >= max_iterations` -> **MAX_ITER_REACHED** -> finalize
282
- - Otherwise -> **ITERATE** -> reset failing layer tasks to pending, return to Phase 2
283
-
284
- #### Step 3e: Finalize
285
-
286
- 1. Read final master `tasks.csv`
287
- 2. Export as `results.csv`
288
- 3. Build `summary.json`:
289
-
290
- ```json
291
- {
292
- "phase": "<phase>",
293
- "completed_at": "<ISO>",
294
- "session_id": "<session-id>",
295
- "iterations": 3,
296
- "final_pass_rate": 97.5,
297
- "converged": true,
298
- "convergence_threshold": 95,
299
- "strategy_history": ["conservative", "conservative", "aggressive"],
300
- "layers": {
301
- "L0": { "status": "pass" },
302
- "L1": { "total": 15, "passed": 15, "failed": 0, "pass_rate": 100.0 },
303
- "L2": { "total": 8, "passed": 7, "failed": 1, "pass_rate": 87.5 },
304
- "L3": { "total": 4, "passed": 4, "failed": 0, "pass_rate": 100.0 }
305
- },
306
- "bugs_discovered": [],
307
- "regressions_fixed": []
308
- }
309
- ```
310
-
311
- 4. Generate `context.md`:
312
-
313
- ```markdown
314
- # Integration Test Report -- Phase {phase}
315
-
316
- ## Summary
317
- - Iterations: {N}/{max_iter}
318
- - Converged: {yes/no} (threshold: {threshold}%)
319
- - Final pass rate: {rate}%
320
- - Strategy: {final_strategy} (transitioned {N} times)
321
-
322
- ## Layer Results
323
- | Layer | Status | Passed | Failed | Pass Rate | Coverage |
324
- |-------|--------|--------|--------|-----------|----------|
325
- | L0 Static | {pass/fail} | -- | -- | -- | -- |
326
- | L1 Unit | {status} | {P} | {F} | {rate}% | {cov}% |
327
- | L2 Integration | {status} | {P} | {F} | {rate}% | {cov}% |
328
- | L3 E2E | {status} | {P} | {F} | {rate}% | {cov}% |
329
-
330
- ## Iteration History
331
- | Iter | Strategy | Pass Rate | Delta | Action |
332
- |------|----------|-----------|-------|--------|
333
- | 1 | conservative | 72.0% | -- | fixed 3 type errors |
334
- | 2 | conservative | 85.5% | +13.5% | fixed auth test fixtures |
335
- | 3 | aggressive | 97.5% | +12.0% | batch-fixed API tests |
336
-
337
- ## Reflection Summary
338
- {key insights from reflection-log.md}
339
-
340
- ## Bugs Discovered
341
- {list of bugs found during testing}
342
-
343
- ## Next Steps
344
- {suggested_next_command}
345
- ```
346
-
347
- 5. Copy `summary.json` to phase `.tests/integration/` directory.
348
-
349
- 6. Update `index.json` with integration test status.
350
-
351
- 7. **Register artifact**: Append to `state.json.artifacts[]` with `type: "test"`, `id: TST-NNN`, `path: "scratch/{YYYYMMDD}-integration-test-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch.
352
-
353
- 8. Display summary.
354
-
355
- **Next step routing**:
356
-
357
- | Result | Suggestion |
358
- |--------|------------|
359
- | Converged (>=target%) | `maestro-verify {phase}` to update validation |
360
- | Max iter, >80% | `quality-test {phase}` for manual UAT on remaining gaps |
361
- | Max iter, <80% | `quality-debug` for deep investigation |
362
- | Bugs discovered | `maestro-plan {phase} --gaps` to plan fixes |
363
-
364
- ### Shared Discovery Board Protocol
365
-
366
- #### Standard Discovery Types
367
-
368
- | Type | Dedup Key | Data Schema | Description |
369
- |------|-----------|-------------|-------------|
370
- | `code_pattern` | `data.name` | `{name, file, description}` | Reusable code pattern found |
371
- | `integration_point` | `data.file` | `{file, description, exports[]}` | Module connection point |
372
- | `convention` | singleton | `{naming, imports, formatting}` | Project code conventions |
373
- | `blocker` | `data.issue` | `{issue, severity, impact}` | Blocking issue found |
374
- | `tech_stack` | singleton | `{framework, language, tools[]}` | Technology stack info |
375
-
376
- #### Domain Discovery Types
377
-
378
- | Type | Dedup Key | Data Schema | Description |
379
- |------|-----------|-------------|-------------|
380
- | `test_command` | `data.layer` | `{layer, command, flags, cwd}` | Working test command for a layer |
381
- | `test_fixture` | `data.name` | `{name, file, setup, teardown}` | Shared test fixture or DB seed |
382
- | `coverage_gap` | `data.module` | `{module, layer, uncovered_areas[]}` | Coverage gap in a module |
383
- | `regression` | `data.test` | `{test, file, previous_status, current_status}` | Test that regressed |
384
- | `flaky_test` | `data.test` | `{test, file, fail_rate, pattern}` | Intermittently failing test |
385
-
386
- #### Protocol
387
-
388
- 1. **Read** `{session_folder}/discoveries.ndjson` before own test execution
389
- 2. **Skip covered**: If discovery of same type + dedup key exists, skip
390
- 3. **Write immediately**: Append findings as found
391
- 4. **Append-only**: Never modify or delete
392
- 5. **Deduplicate**: Check before writing
393
-
394
- ```bash
395
- echo '{"ts":"<ISO>","worker":"{id}","type":"test_command","data":{"layer":"L1","command":"npx vitest run --reporter=verbose","flags":"--testPathPattern=unit","cwd":"."}}' >> {session_folder}/discoveries.ndjson
396
- ```
397
- </execution>
398
-
399
- <error_codes>
400
-
401
- | Error | Resolution |
402
- |-------|------------|
403
- | Phase directory not found | Abort with error: "Phase {N} not found" |
404
- | No test framework detected | Abort with error: "No test framework detected (E003)" |
405
- | L0 static analysis fails | Record failures, proceed to L1 (type errors are informational) |
406
- | All tasks in a layer failed | Gate check: skip subsequent layers for this iteration |
407
- | Agent timeout | Mark as failed, continue with remaining agents in wave |
408
- | Max iterations without convergence | Finalize with current results, warn (W001) |
409
- | Regression detected | Switch to Surgical strategy (W002) |
410
- | Stuck 3+ iterations | Switch to Reflective strategy (W003) |
411
- | CSV parse error | Validate format, show line number |
412
- | discoveries.ndjson corrupt | Ignore malformed lines |
413
- | Continue mode: no session found | List available sessions |
414
- | state.json missing on resume | Rebuild from tasks.csv status column |
415
- </error_codes>
416
-
417
- <success_criteria>
418
- - [ ] Session initialized with state.json and reflection-log.md
419
- - [ ] tasks.csv generated with correct layer/wave assignments and dependencies
420
- - [ ] All waves executed sequentially (L0 -> L1 -> L2 -> L3) with gate checks
421
- - [ ] Reflection logged after each iteration with strategy assessment
422
- - [ ] Strategy engine transitions applied correctly based on pass rates
423
- - [ ] Convergence reached or max iterations exhausted
424
- - [ ] results.csv, summary.json, and context.md generated
425
- - [ ] Temporary wave-{N}.csv files cleaned up after merge
426
- - [ ] discoveries.ndjson maintained as append-only across all waves
427
- </success_criteria>