maestro-flow 0.3.10 → 0.3.12
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.
- package/.claude/agents/conceptual-planning-agent.md +1 -0
- package/.claude/agents/workflow-analyzer.md +114 -114
- package/.claude/agents/workflow-collab-planner.md +144 -144
- package/.claude/agents/workflow-debugger.md +102 -103
- package/.claude/agents/workflow-executor.md +127 -128
- package/.claude/agents/workflow-integration-checker.md +82 -82
- package/.claude/agents/workflow-nyquist-auditor.md +85 -84
- package/.claude/agents/workflow-phase-researcher.md +85 -85
- package/.claude/agents/workflow-plan-checker.md +90 -90
- package/.claude/agents/workflow-planner.md +178 -178
- package/.claude/agents/workflow-roadmapper.md +81 -83
- package/.claude/agents/workflow-verifier.md +119 -119
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +3 -3
- package/.claude/commands/learn-second-opinion.md +2 -2
- package/.claude/commands/maestro-brainstorm.md +1 -0
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-fork.md +133 -111
- package/.claude/commands/maestro-merge.md +85 -77
- package/.claude/commands/maestro-plan.md +88 -2
- package/.claude/commands/maestro-roadmap.md +113 -2
- package/.claude/commands/maestro.md +1 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue.md +2 -2
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +3 -2
- package/.claude/commands/quality-retrospective.md +6 -4
- package/.claude/commands/quality-review.md +1 -1
- package/.claude/commands/quality-test-gen.md +5 -4
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +151 -279
- package/.codex/skills/maestro-analyze/SKILL.md +59 -71
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +95 -110
- package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
- package/.codex/skills/maestro-execute/SKILL.md +435 -446
- package/.codex/skills/maestro-fork/SKILL.md +98 -0
- package/.codex/skills/maestro-init/SKILL.md +172 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +69 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +58 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +35 -32
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +95 -107
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +94 -105
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +9 -4
- package/README.zh-CN.md +9 -4
- package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
- package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
- package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
- package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
- package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
- package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
- package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
- package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
- package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
- package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
- package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
- package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
- package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
- package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
- package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
- package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
- package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
- package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
- package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
- package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
- package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
- package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
- package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
- package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
- package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
- package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
- package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
- package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
- package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +10 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +28 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
- package/dashboard/dist-server/src/hooks/constants.d.ts +3 -1
- package/dashboard/dist-server/src/hooks/constants.js +4 -2
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dist/shared/agent-types.d.ts +4 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/commands/collab.js +4 -4
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +66 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +29 -18
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +3 -1
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +4 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +1 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +1 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.js.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts +3 -0
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +95 -9
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +6 -3
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts.map +1 -1
- package/dist/src/tools/merge-validator.js +114 -16
- package/dist/src/tools/merge-validator.js.map +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/package.json +2 -1
- package/shared/agent-types.ts +4 -0
- package/templates/worktree-scope.json +9 -10
- package/templates/worktrees.json +26 -27
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +480 -471
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/debug.md +16 -6
- package/workflows/execute.md +1 -1
- package/workflows/fork.md +100 -36
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +355 -343
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue.md +14 -4
- package/workflows/learn.md +19 -5
- package/workflows/maestro.md +1 -0
- package/workflows/map.md +111 -111
- package/workflows/merge.md +113 -55
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +61 -22
- package/workflows/review.md +17 -4
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- package/workflows/test.md +12 -2
- package/workflows/ui-style.md +9 -2
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
- package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
- package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
- package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
- package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
- package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
- package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
- package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
|
@@ -1,343 +1,355 @@
|
|
|
1
|
-
# Integration Test Workflow
|
|
2
|
-
|
|
3
|
-
Self-iterating integration test cycle that combines exploration, test design, execution, reflection, and adaptive strategy adjustment. Runs automated tests in a closed loop that self-corrects until convergence.
|
|
4
|
-
|
|
5
|
-
6-phase cycle: Explore -> Design -> Develop -> Test -> Reflect -> Adjust
|
|
6
|
-
Adaptive strategy: Conservative -> Aggressive -> Surgical -> Reflective
|
|
7
|
-
L0-L3 progressive layers: Static Analysis -> Unit -> Integration -> E2E
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
### Step 1: Parse Input and Initialize
|
|
12
|
-
|
|
13
|
-
**Parse arguments:**
|
|
14
|
-
|
|
15
|
-
| Input | Result |
|
|
16
|
-
|-------|--------|
|
|
17
|
-
| No arguments | Error E001 |
|
|
18
|
-
| Phase number | Resolve `.workflow/phases/{NN}-{slug}/` |
|
|
19
|
-
| `--max-iter N` | Set MAX_ITER = N (default 5) |
|
|
20
|
-
| `--layer L2` | Start from L2 layer |
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
**
|
|
130
|
-
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
|
|
136
|
-
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
"
|
|
299
|
-
"
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
{
|
|
329
|
-
{
|
|
330
|
-
{
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
1
|
+
# Integration Test Workflow
|
|
2
|
+
|
|
3
|
+
Self-iterating integration test cycle that combines exploration, test design, execution, reflection, and adaptive strategy adjustment. Runs automated tests in a closed loop that self-corrects until convergence.
|
|
4
|
+
|
|
5
|
+
6-phase cycle: Explore -> Design -> Develop -> Test -> Reflect -> Adjust
|
|
6
|
+
Adaptive strategy: Conservative -> Aggressive -> Surgical -> Reflective
|
|
7
|
+
L0-L3 progressive layers: Static Analysis -> Unit -> Integration -> E2E
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
### Step 1: Parse Input and Initialize
|
|
12
|
+
|
|
13
|
+
**Parse arguments:**
|
|
14
|
+
|
|
15
|
+
| Input | Result |
|
|
16
|
+
|-------|--------|
|
|
17
|
+
| No arguments | Error E001 |
|
|
18
|
+
| Phase number | Resolve phase dir (artifact registry or legacy `.workflow/phases/{NN}-{slug}/`) |
|
|
19
|
+
| `--max-iter N` | Set MAX_ITER = N (default 5) |
|
|
20
|
+
| `--layer L2` | Start from L2 layer |
|
|
21
|
+
|
|
22
|
+
**Resolve phase dir:**
|
|
23
|
+
```
|
|
24
|
+
Read .workflow/state.json → state
|
|
25
|
+
artifacts = state.artifacts ?? []
|
|
26
|
+
IF artifacts.length > 0:
|
|
27
|
+
art = artifacts.find(a => a.type === 'execute' && a.phase === phaseNum)
|
|
28
|
+
PHASE_DIR = ".workflow/" + art.path
|
|
29
|
+
ELSE:
|
|
30
|
+
Glob: .workflow/phases/{NN}-*/
|
|
31
|
+
PHASE_DIR = resolved path
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Check for existing integration test session:
|
|
35
|
+
```bash
|
|
36
|
+
ls ${PHASE_DIR}/.tests/integration/state.json 2>/dev/null
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
If session exists: offer resume or restart.
|
|
40
|
+
|
|
41
|
+
**Initialize session:**
|
|
42
|
+
|
|
43
|
+
Create `.tests/integration/` directory.
|
|
44
|
+
|
|
45
|
+
Write initial `state.json`:
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"phase": "{phase}",
|
|
49
|
+
"started_at": "{ISO timestamp}",
|
|
50
|
+
"current_iteration": 0,
|
|
51
|
+
"max_iterations": 5,
|
|
52
|
+
"strategy": "conservative",
|
|
53
|
+
"current_layer": "L0",
|
|
54
|
+
"pass_rates": [],
|
|
55
|
+
"convergence_threshold": 95,
|
|
56
|
+
"status": "running"
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Initialize `reflection-log.md`:
|
|
61
|
+
```markdown
|
|
62
|
+
# Integration Test Reflection Log
|
|
63
|
+
Phase: {phase_name}
|
|
64
|
+
Started: {timestamp}
|
|
65
|
+
|
|
66
|
+
## Iterations
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### Step 1.3: Load Project Specs
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
specs_content = maestro spec load --category test
|
|
75
|
+
arch_content = maestro spec load --category arch
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`specs_content` for test conventions; `arch_content` for module boundaries in Step 2-3.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Step 1.5: Load Previously Generated Tests
|
|
83
|
+
|
|
84
|
+
Check for tests already generated by `quality-test-gen`:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
generated_tests = []
|
|
88
|
+
IF file exists "${PHASE_DIR}/.tests/test-gen-report.json":
|
|
89
|
+
report = read_json("${PHASE_DIR}/.tests/test-gen-report.json")
|
|
90
|
+
FOR test_entry IN report.generated:
|
|
91
|
+
IF test_entry.layer is "integration" or "e2e":
|
|
92
|
+
generated_tests.push(test_entry)
|
|
93
|
+
IF generated_tests.length > 0:
|
|
94
|
+
display "Found {generated_tests.length} pre-generated integration/e2e tests from test-gen. Will incorporate into test plan."
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
These tests are merged into the test plan in Step 3 (Design) — they are executed but not re-generated.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### Step 2: Explore
|
|
102
|
+
|
|
103
|
+
**Phase 1: Explore codebase for testable integration points.**
|
|
104
|
+
|
|
105
|
+
Discover:
|
|
106
|
+
- Module boundaries and cross-module calls
|
|
107
|
+
- API endpoints and their handlers
|
|
108
|
+
- Database interactions and queries
|
|
109
|
+
- External service integrations
|
|
110
|
+
- Event flows and message passing
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Find cross-module imports
|
|
114
|
+
grep -r "import.*from.*\.\./" src/ --include="*.ts" --include="*.tsx" -l 2>/dev/null | head -20
|
|
115
|
+
|
|
116
|
+
# Find API route definitions
|
|
117
|
+
grep -r "router\.\|app\.\(get\|post\|put\|delete\)" src/ --include="*.ts" -l 2>/dev/null | head -20
|
|
118
|
+
|
|
119
|
+
# Find database calls
|
|
120
|
+
grep -r "prisma\.\|query\|findMany\|findOne\|create\|update\|delete" src/ --include="*.ts" -l 2>/dev/null | head -20
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Map integration points: which modules talk to which, through what interfaces.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Step 3: Design
|
|
128
|
+
|
|
129
|
+
**Phase 2: Design integration test plan.**
|
|
130
|
+
|
|
131
|
+
**Merge pre-generated tests** (from Step 1.5):
|
|
132
|
+
If `generated_tests` is not empty, incorporate them into the test plan directly — mark as "pre-existing" so Step 4 (Develop) skips writing them and Step 5 (Test Execute) includes them in the run.
|
|
133
|
+
|
|
134
|
+
Based on exploration (and pre-generated tests if available), design tests per layer:
|
|
135
|
+
|
|
136
|
+
**L0 - Static Analysis:**
|
|
137
|
+
- Type check command
|
|
138
|
+
- Lint command
|
|
139
|
+
- Dead code detection
|
|
140
|
+
|
|
141
|
+
**L1 - Unit Tests (isolation):**
|
|
142
|
+
- Critical functions identified in explore
|
|
143
|
+
- Edge cases for core logic
|
|
144
|
+
|
|
145
|
+
**L2 - Integration Tests:**
|
|
146
|
+
- API endpoint tests (request -> response)
|
|
147
|
+
- Cross-module interaction tests
|
|
148
|
+
- Database query tests (with fixtures)
|
|
149
|
+
|
|
150
|
+
**L3 - E2E Tests:**
|
|
151
|
+
- Critical user flows
|
|
152
|
+
- Happy path + error path
|
|
153
|
+
|
|
154
|
+
Write test plan to `.tests/integration/test-plan.json`:
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"layers": {
|
|
158
|
+
"L0": { "commands": ["tsc --noEmit", "eslint src/"], "expected_pass": true },
|
|
159
|
+
"L1": { "test_files": [...], "test_count": N },
|
|
160
|
+
"L2": { "test_files": [...], "test_count": N },
|
|
161
|
+
"L3": { "test_files": [...], "test_count": N }
|
|
162
|
+
},
|
|
163
|
+
"total_tests": M
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### Step 4: Develop
|
|
170
|
+
|
|
171
|
+
**Phase 3: Develop/write test code.**
|
|
172
|
+
|
|
173
|
+
For each layer (current and below), write tests following existing patterns.
|
|
174
|
+
Use quality-test-gen's RED-GREEN methodology for test writing.
|
|
175
|
+
|
|
176
|
+
For integration tests (L2) specifically:
|
|
177
|
+
- Set up test fixtures (DB seeds, mock services)
|
|
178
|
+
- Write request/response assertions
|
|
179
|
+
- Test error handling paths
|
|
180
|
+
- Verify cross-module data flow
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Step 5: Test Execute
|
|
185
|
+
|
|
186
|
+
**Phase 4: Execute tests for current layer.**
|
|
187
|
+
|
|
188
|
+
Run tests progressively (L0 must pass before L1, etc.):
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# L0: Static analysis
|
|
192
|
+
tsc --noEmit 2>&1 | tail -30
|
|
193
|
+
eslint src/ 2>&1 | tail -30
|
|
194
|
+
|
|
195
|
+
# L1: Unit tests
|
|
196
|
+
{test_command} --testPathPattern="unit|__tests__" 2>&1 | tail -50
|
|
197
|
+
|
|
198
|
+
# L2: Integration tests
|
|
199
|
+
{test_command} --testPathPattern="integration" 2>&1 | tail -50
|
|
200
|
+
|
|
201
|
+
# L3: E2E tests
|
|
202
|
+
{test_command} --testPathPattern="e2e" 2>&1 | tail -50
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Record results in `test-results-iter-{N}.json`:
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"iteration": N,
|
|
209
|
+
"timestamp": "{ISO timestamp}",
|
|
210
|
+
"strategy": "{current_strategy}",
|
|
211
|
+
"layers": {
|
|
212
|
+
"L0": { "status": "pass|fail", "errors": [...] },
|
|
213
|
+
"L1": { "total": N, "passed": P, "failed": F, "pass_rate": 95.0 },
|
|
214
|
+
"L2": { "total": N, "passed": P, "failed": F, "pass_rate": 87.5 },
|
|
215
|
+
"L3": { "total": N, "passed": P, "failed": F, "pass_rate": 100.0 }
|
|
216
|
+
},
|
|
217
|
+
"overall_pass_rate": 92.3
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Calculate overall pass rate.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### Step 6: Reflect
|
|
226
|
+
|
|
227
|
+
**Phase 5: Reflect on iteration results.**
|
|
228
|
+
|
|
229
|
+
Analyze what happened:
|
|
230
|
+
- Which tests failed and why?
|
|
231
|
+
- Is pass rate improving, plateauing, or regressing?
|
|
232
|
+
- Are failures clustered in one area or spread out?
|
|
233
|
+
- Is the current strategy working?
|
|
234
|
+
|
|
235
|
+
Append to `reflection-log.md`:
|
|
236
|
+
```markdown
|
|
237
|
+
## Iteration {N}
|
|
238
|
+
Strategy: {strategy_name}
|
|
239
|
+
Pass rate: {rate}% (previous: {prev_rate}%)
|
|
240
|
+
Delta: {+/-}%
|
|
241
|
+
|
|
242
|
+
### What worked
|
|
243
|
+
- {observation}
|
|
244
|
+
|
|
245
|
+
### What failed
|
|
246
|
+
- {test}: {reason}
|
|
247
|
+
|
|
248
|
+
### Pattern detected
|
|
249
|
+
- {pattern, e.g., "all failures in auth module"}
|
|
250
|
+
|
|
251
|
+
### Strategy assessment
|
|
252
|
+
- Current strategy: {effective|ineffective|partially_effective}
|
|
253
|
+
- Recommendation: {keep|switch_to_X}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### Step 7: Adjust
|
|
259
|
+
|
|
260
|
+
**Phase 6: Adjust strategy based on reflection.**
|
|
261
|
+
|
|
262
|
+
**Adaptive Strategy Engine:**
|
|
263
|
+
|
|
264
|
+
| Condition | Strategy | Behavior |
|
|
265
|
+
|-----------|----------|----------|
|
|
266
|
+
| Iteration 1-2 | Conservative | Fix obvious failures, don't refactor |
|
|
267
|
+
| Pass rate >80% AND failures similar to previous | Aggressive | Batch-fix related failures together |
|
|
268
|
+
| New regressions appeared | Surgical | Revert last changes, fix regression only |
|
|
269
|
+
| Stuck 3+ iterations (rate not improving) | Reflective | Step back, re-analyze root cause pattern |
|
|
270
|
+
|
|
271
|
+
**Strategy transitions:**
|
|
272
|
+
```
|
|
273
|
+
Conservative -> (pass rate >80%) -> Aggressive
|
|
274
|
+
Aggressive -> (regression) -> Surgical
|
|
275
|
+
Surgical -> (regression fixed) -> Aggressive
|
|
276
|
+
Any -> (stuck 3+ iters) -> Reflective
|
|
277
|
+
Reflective -> (new insight) -> Conservative (restart approach)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Update state.json with new strategy and iteration count.
|
|
281
|
+
|
|
282
|
+
**Convergence check:**
|
|
283
|
+
- If overall_pass_rate >= convergence_threshold (95%): CONVERGED -> go to Step 8
|
|
284
|
+
- If iteration >= max_iterations: MAX_ITER_REACHED -> go to Step 8
|
|
285
|
+
- Otherwise: go back to Step 4 (next iteration)
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
### Step 8: Complete
|
|
290
|
+
|
|
291
|
+
**Complete integration test cycle.**
|
|
292
|
+
|
|
293
|
+
Update state.json: status -> "complete" or "max_iter_reached".
|
|
294
|
+
|
|
295
|
+
Write `.tests/integration/summary.json`:
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"phase": "{phase}",
|
|
299
|
+
"completed_at": "{ISO timestamp}",
|
|
300
|
+
"iterations": N,
|
|
301
|
+
"final_pass_rate": 97.5,
|
|
302
|
+
"converged": true,
|
|
303
|
+
"strategy_history": ["conservative", "conservative", "aggressive"],
|
|
304
|
+
"layers": {
|
|
305
|
+
"L0": { "status": "pass" },
|
|
306
|
+
"L1": { "pass_rate": 100.0 },
|
|
307
|
+
"L2": { "pass_rate": 95.0 },
|
|
308
|
+
"L3": { "pass_rate": 100.0 }
|
|
309
|
+
},
|
|
310
|
+
"bugs_discovered": [...],
|
|
311
|
+
"regressions_fixed": [...]
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Update index.json with integration test results.
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
### Step 9: Report
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
=== INTEGRATION TEST CYCLE ===
|
|
323
|
+
Phase: {phase_name}
|
|
324
|
+
Iterations: {N}/{max_iter}
|
|
325
|
+
Converged: {yes/no} (threshold: {threshold}%)
|
|
326
|
+
|
|
327
|
+
Layer Results:
|
|
328
|
+
L0 Static: {pass/fail}
|
|
329
|
+
L1 Unit: {pass_rate}% ({passed}/{total})
|
|
330
|
+
L2 Integration: {pass_rate}% ({passed}/{total})
|
|
331
|
+
L3 E2E: {pass_rate}% ({passed}/{total})
|
|
332
|
+
|
|
333
|
+
Overall: {final_pass_rate}%
|
|
334
|
+
Strategy: {final_strategy} (transitioned {N} times)
|
|
335
|
+
|
|
336
|
+
Bugs Found: {bug_count}
|
|
337
|
+
Regressions: {regression_count} found, {fixed_count} fixed
|
|
338
|
+
|
|
339
|
+
Files:
|
|
340
|
+
{target_dir}/.tests/integration/state.json
|
|
341
|
+
{target_dir}/.tests/integration/reflection-log.md
|
|
342
|
+
{target_dir}/.tests/integration/summary.json
|
|
343
|
+
|
|
344
|
+
Next steps:
|
|
345
|
+
{suggested_next_command}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Next step routing:**
|
|
349
|
+
|
|
350
|
+
| Result | Suggestion |
|
|
351
|
+
|--------|------------|
|
|
352
|
+
| Converged (>=95%) | Skill({ skill: "maestro-verify", args: "{phase}" }) to update validation |
|
|
353
|
+
| Max iter, >80% | Skill({ skill: "quality-test", args: "{phase}" }) for manual UAT on remaining gaps |
|
|
354
|
+
| Max iter, <80% | Skill({ skill: "quality-debug" }) for deep investigation |
|
|
355
|
+
| Bugs discovered | Skill({ skill: "maestro-plan", args: "{phase} --gaps" }) to plan fixes |
|