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.
- package/.claude/commands/learn-retro.md +1 -1
- package/.claude/commands/maestro-composer.md +2 -2
- package/.claude/commands/maestro-ralph-execute.md +1 -1
- package/.claude/commands/maestro-ralph.md +11 -11
- package/.claude/commands/maestro-verify.md +1 -1
- package/.claude/commands/maestro.md +1 -2
- package/.claude/commands/quality-auto-test.md +124 -0
- package/.claude/commands/quality-refactor.md +1 -1
- package/.claude/commands/quality-test.md +3 -3
- package/.codex/skills/learn-retro/SKILL.md +1 -1
- package/.codex/skills/maestro/SKILL.md +1 -1
- package/.codex/skills/maestro-link-coordinate/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-audit/SKILL.md +9 -1
- package/.codex/skills/maestro-plan/SKILL.md +72 -6
- package/.codex/skills/maestro-ralph/SKILL.md +159 -159
- package/.codex/skills/maestro-roadmap/SKILL.md +31 -5
- package/.codex/skills/maestro-verify/SKILL.md +1 -1
- package/.codex/skills/quality-auto-test/SKILL.md +547 -0
- package/.codex/skills/quality-debug/SKILL.md +18 -6
- package/.codex/skills/quality-refactor/SKILL.md +8 -1
- package/.codex/skills/quality-sync/SKILL.md +23 -4
- package/.codex/skills/quality-test/SKILL.md +498 -166
- package/dashboard/dist-server/src/config/cli-tools-config.js +5 -20
- package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
- package/dashboard/dist-server/src/config/cli-tools-defaults.json +17 -0
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +168 -32
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +9 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +1 -1
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.js +1 -1
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/overlay.js +1 -1
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/commands/tools.d.ts.map +1 -1
- package/dist/src/commands/tools.js +7 -17
- package/dist/src/commands/tools.js.map +1 -1
- package/dist/src/commands/uninstall.js +1 -1
- package/dist/src/commands/uninstall.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +5 -20
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/config/cli-tools-defaults.json +17 -0
- package/dist/src/tui/config-ui/ConfigHub.d.ts +14 -0
- package/dist/src/tui/config-ui/ConfigHub.d.ts.map +1 -0
- package/dist/src/tui/config-ui/ConfigHub.js +125 -0
- package/dist/src/tui/config-ui/ConfigHub.js.map +1 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.d.ts +6 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.d.ts.map +1 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.js +25 -0
- package/dist/src/tui/config-ui/ConfigSourcesView.js.map +1 -0
- package/dist/src/tui/config-ui/HooksPanel.d.ts +6 -0
- package/dist/src/tui/config-ui/HooksPanel.d.ts.map +1 -0
- package/dist/src/tui/config-ui/HooksPanel.js +92 -0
- package/dist/src/tui/config-ui/HooksPanel.js.map +1 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts +9 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.js +64 -0
- package/dist/src/tui/config-ui/SkillConfigDashboard.js.map +1 -0
- package/dist/src/tui/config-ui/SkillParamEditor.d.ts +12 -0
- package/dist/src/tui/config-ui/SkillParamEditor.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SkillParamEditor.js +162 -0
- package/dist/src/tui/config-ui/SkillParamEditor.js.map +1 -0
- package/dist/src/tui/config-ui/SkillsList.d.ts +12 -0
- package/dist/src/tui/config-ui/SkillsList.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SkillsList.js +91 -0
- package/dist/src/tui/config-ui/SkillsList.js.map +1 -0
- package/dist/src/tui/config-ui/SpecPanel.d.ts +6 -0
- package/dist/src/tui/config-ui/SpecPanel.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SpecPanel.js +79 -0
- package/dist/src/tui/config-ui/SpecPanel.js.map +1 -0
- package/dist/src/tui/config-ui/index.d.ts +23 -0
- package/dist/src/tui/config-ui/index.d.ts.map +1 -0
- package/dist/src/tui/config-ui/index.js +34 -0
- package/dist/src/tui/config-ui/index.js.map +1 -0
- package/dist/src/tui/index.d.ts +7 -0
- package/dist/src/tui/index.d.ts.map +1 -0
- package/dist/src/tui/index.js +10 -0
- package/dist/src/tui/index.js.map +1 -0
- package/dist/src/tui/install-ui/BackupConfig.d.ts +10 -0
- package/dist/src/tui/install-ui/BackupConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/BackupConfig.js +46 -0
- package/dist/src/tui/install-ui/BackupConfig.js.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.d.ts +9 -0
- package/dist/src/tui/install-ui/BlueprintPreview.d.ts.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.js +65 -0
- package/dist/src/tui/install-ui/BlueprintPreview.js.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.d.ts +33 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.d.ts.map +1 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.js +51 -0
- package/dist/src/tui/install-ui/BlueprintPreview.logic.js.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.d.ts +13 -0
- package/dist/src/tui/install-ui/ComponentGrid.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.js +75 -0
- package/dist/src/tui/install-ui/ComponentGrid.js.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts +31 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.js +58 -0
- package/dist/src/tui/install-ui/ComponentGrid.logic.js.map +1 -0
- package/dist/src/tui/install-ui/ConfigPanel.d.ts +11 -0
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ConfigPanel.js +35 -0
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -0
- package/dist/src/tui/install-ui/CyberItem.d.ts +18 -0
- package/dist/src/tui/install-ui/CyberItem.d.ts.map +1 -0
- package/dist/src/tui/install-ui/CyberItem.js +33 -0
- package/dist/src/tui/install-ui/CyberItem.js.map +1 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts +7 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts.map +1 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.js +91 -0
- package/dist/src/tui/install-ui/CyberdeckBlueprint.js.map +1 -0
- package/dist/src/tui/install-ui/ExecutionView.d.ts +12 -0
- package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ExecutionView.js +154 -0
- package/dist/src/tui/install-ui/ExecutionView.js.map +1 -0
- package/dist/src/tui/install-ui/GradientHeader.d.ts +8 -0
- package/dist/src/tui/install-ui/GradientHeader.d.ts.map +1 -0
- package/dist/src/tui/install-ui/GradientHeader.js +18 -0
- package/dist/src/tui/install-ui/GradientHeader.js.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts +8 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.js +35 -0
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +27 -0
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallConfirm.js +25 -0
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -0
- package/dist/src/tui/install-ui/InstallExecution.d.ts +21 -0
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallExecution.js +154 -0
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -0
- package/dist/src/tui/install-ui/InstallFlow.d.ts +14 -0
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallFlow.js +186 -0
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -0
- package/dist/src/tui/install-ui/InstallHub.d.ts +33 -0
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallHub.js +97 -0
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -0
- package/dist/src/tui/install-ui/InstallResult.d.ts +7 -0
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -0
- package/dist/src/tui/install-ui/InstallResult.js +15 -0
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -0
- package/dist/src/tui/install-ui/McpConfig.d.ts +12 -0
- package/dist/src/tui/install-ui/McpConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/McpConfig.js +69 -0
- package/dist/src/tui/install-ui/McpConfig.js.map +1 -0
- package/dist/src/tui/install-ui/ResultDashboard.d.ts +8 -0
- package/dist/src/tui/install-ui/ResultDashboard.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ResultDashboard.js +17 -0
- package/dist/src/tui/install-ui/ResultDashboard.js.map +1 -0
- package/dist/src/tui/install-ui/ReviewPanel.d.ts +19 -0
- package/dist/src/tui/install-ui/ReviewPanel.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ReviewPanel.js +25 -0
- package/dist/src/tui/install-ui/ReviewPanel.js.map +1 -0
- package/dist/src/tui/install-ui/ShortcutFooter.d.ts +7 -0
- package/dist/src/tui/install-ui/ShortcutFooter.d.ts.map +1 -0
- package/dist/src/tui/install-ui/ShortcutFooter.js +15 -0
- package/dist/src/tui/install-ui/ShortcutFooter.js.map +1 -0
- package/dist/src/tui/install-ui/StatuslineConfig.d.ts +11 -0
- package/dist/src/tui/install-ui/StatuslineConfig.d.ts.map +1 -0
- package/dist/src/tui/install-ui/StatuslineConfig.js +39 -0
- package/dist/src/tui/install-ui/StatuslineConfig.js.map +1 -0
- package/dist/src/tui/install-ui/StepSelector.d.ts +14 -0
- package/dist/src/tui/install-ui/StepSelector.d.ts.map +1 -0
- package/dist/src/tui/install-ui/StepSelector.js +46 -0
- package/dist/src/tui/install-ui/StepSelector.js.map +1 -0
- package/dist/src/tui/install-ui/index.d.ts +8 -0
- package/dist/src/tui/install-ui/index.d.ts.map +1 -0
- package/dist/src/tui/install-ui/index.js +10 -0
- package/dist/src/tui/install-ui/index.js.map +1 -0
- package/dist/src/tui/install-ui/types.d.ts +35 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -0
- package/dist/src/tui/install-ui/types.js +25 -0
- package/dist/src/tui/install-ui/types.js.map +1 -0
- package/dist/src/tui/overlay-ui/OverlayList.d.ts +37 -0
- package/dist/src/tui/overlay-ui/OverlayList.d.ts.map +1 -0
- package/dist/src/tui/overlay-ui/OverlayList.js +146 -0
- package/dist/src/tui/overlay-ui/OverlayList.js.map +1 -0
- package/dist/src/tui/overlay-ui/index.d.ts +18 -0
- package/dist/src/tui/overlay-ui/index.d.ts.map +1 -0
- package/dist/src/tui/overlay-ui/index.js +204 -0
- package/dist/src/tui/overlay-ui/index.js.map +1 -0
- package/dist/src/tui/render.d.ts +13 -0
- package/dist/src/tui/render.d.ts.map +1 -0
- package/dist/src/tui/render.js +31 -0
- package/dist/src/tui/render.js.map +1 -0
- package/dist/src/tui/tools-ui/CommandReference.d.ts +7 -0
- package/dist/src/tui/tools-ui/CommandReference.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/CommandReference.js +33 -0
- package/dist/src/tui/tools-ui/CommandReference.js.map +1 -0
- package/dist/src/tui/tools-ui/ConfigSources.d.ts +6 -0
- package/dist/src/tui/tools-ui/ConfigSources.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/ConfigSources.js +27 -0
- package/dist/src/tui/tools-ui/ConfigSources.js.map +1 -0
- package/dist/src/tui/tools-ui/RegisterSettings.d.ts +8 -0
- package/dist/src/tui/tools-ui/RegisterSettings.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/RegisterSettings.js +125 -0
- package/dist/src/tui/tools-ui/RegisterSettings.js.map +1 -0
- package/dist/src/tui/tools-ui/RoleMappings.d.ts +9 -0
- package/dist/src/tui/tools-ui/RoleMappings.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/RoleMappings.js +104 -0
- package/dist/src/tui/tools-ui/RoleMappings.js.map +1 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts +8 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.js +60 -0
- package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -0
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts +9 -0
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/ToolsOverview.js +84 -0
- package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -0
- package/dist/src/tui/tools-ui/index.d.ts +3 -0
- package/dist/src/tui/tools-ui/index.d.ts.map +1 -0
- package/dist/src/tui/tools-ui/index.js +6 -0
- package/dist/src/tui/tools-ui/index.js.map +1 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts +7 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.js +189 -0
- package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -0
- package/dist/src/tui/uninstall-ui/index.d.ts +3 -0
- package/dist/src/tui/uninstall-ui/index.d.ts.map +1 -0
- package/dist/src/tui/uninstall-ui/index.js +6 -0
- package/dist/src/tui/uninstall-ui/index.js.map +1 -0
- package/package.json +1 -1
- package/workflows/auto-test.md +682 -0
- package/workflows/business-test.md +570 -0
- package/workflows/integration-test.md +1 -1
- package/workflows/maestro.codex.md +4 -3
- package/workflows/maestro.md +5 -4
- package/workflows/status.md +2 -2
- package/workflows/test.md +1 -1
- package/workflows/verify.md +1 -1
- package/.claude/commands/quality-business-test.md +0 -110
- package/.claude/commands/quality-integration-test.md +0 -67
- package/.claude/commands/quality-test-gen.md +0 -68
- package/.codex/skills/maestro-ralph-execute/SKILL.md +0 -219
- package/.codex/skills/quality-business-test/SKILL.md +0 -218
- package/.codex/skills/quality-integration-test/SKILL.md +0 -427
- 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>
|