maestro-flow 0.3.2 → 0.3.4
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/CLAUDE.md +2 -2
- package/.claude/agents/cli-explore-agent.md +1 -1
- package/.claude/agents/team-worker.md +237 -237
- package/.claude/commands/maestro-coordinate.md +65 -65
- package/.claude/commands/maestro-link-coordinate.md +71 -71
- package/.claude/commands/manage-issue-execute.md +73 -73
- package/.claude/commands/quality-business-test.md +110 -0
- package/.claude/skills/team-coordinate/SKILL.md +266 -266
- package/.claude/skills/team-lifecycle-v4/SKILL.md +209 -209
- package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +94 -94
- package/.claude/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -62
- package/.claude/skills/team-lifecycle-v4/roles/planner/role.md +85 -85
- package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +95 -95
- package/.claude/skills/team-quality-assurance/SKILL.md +147 -147
- package/.claude/skills/team-quality-assurance/roles/scout/role.md +75 -75
- package/.claude/skills/team-review/SKILL.md +147 -147
- package/.claude/skills/team-review/roles/reviewer/role.md +68 -68
- package/.claude/skills/team-review/roles/scanner/role.md +79 -79
- package/.claude/skills/team-tech-debt/SKILL.md +128 -128
- package/.claude/skills/team-tech-debt/roles/executor/role.md +76 -76
- package/.claude/skills/team-tech-debt/roles/scanner/role.md +90 -90
- package/.claude/skills/team-tech-debt/roles/validator/role.md +78 -78
- package/.claude/skills/team-testing/SKILL.md +143 -143
- package/.claude/skills/team-testing/roles/executor/role.md +99 -99
- package/.claude/skills/team-testing/roles/generator/role.md +98 -98
- package/.codex/skills/maestro-coordinate/SKILL.md +1 -1
- package/.codex/skills/manage-issue-analyze/SKILL.md +3 -3
- package/.codex/skills/manage-issue-execute/SKILL.md +4 -4
- package/.codex/skills/manage-issue-plan/SKILL.md +2 -2
- package/.codex/skills/quality-business-test/SKILL.md +223 -0
- package/.codex/skills/team-coordinate/SKILL.md +7 -7
- package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -2
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +1 -1
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.codex/skills/team-quality-assurance/SKILL.md +2 -2
- package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -2
- package/.codex/skills/team-review/SKILL.md +2 -2
- package/.codex/skills/team-review/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-review/roles/reviewer/role.md +1 -1
- package/.codex/skills/team-review/roles/scanner/role.md +1 -1
- package/.codex/skills/team-tech-debt/SKILL.md +2 -2
- package/.codex/skills/team-tech-debt/roles/coordinator/role.md +1 -1
- package/.codex/skills/team-tech-debt/roles/executor/role.md +1 -1
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +1 -1
- package/.codex/skills/team-tech-debt/roles/validator/role.md +1 -1
- package/.codex/skills/team-testing/SKILL.md +2 -2
- package/.codex/skills/team-testing/roles/coordinator/role.md +2 -2
- package/.codex/skills/team-testing/roles/executor/role.md +1 -1
- package/.codex/skills/team-testing/roles/generator/role.md +1 -1
- package/README.md +31 -2
- package/README.zh-CN.md +23 -1
- package/chains/_intent-map.json +6 -0
- package/chains/_router.json +14 -0
- package/chains/full-lifecycle.json +15 -0
- package/chains/quality-loop.json +16 -1
- package/chains/singles/business-test.json +26 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +16 -2
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +25 -9
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
- package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +3 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js +78 -61
- package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
- package/dashboard/dist-server/src/agents/cli-history-store.d.ts +14 -1
- package/dashboard/dist-server/src/agents/cli-history-store.js +24 -2
- package/dashboard/dist-server/src/agents/cli-history-store.js.map +1 -1
- package/dashboard/dist-server/src/commands/delegate.js +142 -6
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts +3 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +78 -61
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/agents/cli-history-store.d.ts +14 -1
- package/dist/src/agents/cli-history-store.d.ts.map +1 -1
- package/dist/src/agents/cli-history-store.js +24 -2
- package/dist/src/agents/cli-history-store.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +142 -6
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +15 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +29 -2
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +15 -0
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +67 -0
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/install-ui/BackupConfig.d.ts +6 -4
- package/dist/src/commands/install-ui/BackupConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/BackupConfig.js +39 -12
- package/dist/src/commands/install-ui/BackupConfig.js.map +1 -1
- package/dist/src/commands/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/commands/install-ui/ConfigPanel.js +1 -1
- package/dist/src/commands/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -0
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +5 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts +2 -0
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +30 -5
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +31 -6
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/InstallHub.d.ts +5 -0
- package/dist/src/commands/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallHub.js +24 -0
- package/dist/src/commands/install-ui/InstallHub.js.map +1 -1
- package/dist/src/commands/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallResult.js +1 -1
- package/dist/src/commands/install-ui/InstallResult.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +9 -0
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -0
- package/dist/src/commands/install-ui/StatuslineConfig.js +13 -0
- package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -0
- package/dist/src/commands/install-ui/index.d.ts +1 -1
- package/dist/src/commands/install-ui/index.d.ts.map +1 -1
- package/dist/src/commands/install-ui/types.d.ts +6 -0
- package/dist/src/commands/install-ui/types.d.ts.map +1 -1
- package/dist/src/commands/install-ui/types.js +3 -0
- package/dist/src/commands/install-ui/types.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +6 -1
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/overlay.d.ts.map +1 -1
- package/dist/src/commands/overlay.js +45 -1
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/commands/team.d.ts +10 -0
- package/dist/src/commands/team.d.ts.map +1 -1
- package/dist/src/commands/team.js +436 -42
- package/dist/src/commands/team.js.map +1 -1
- package/dist/src/core/manifest.d.ts.map +1 -1
- package/dist/src/core/manifest.js +58 -0
- package/dist/src/core/manifest.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts +4 -0
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/hooks/delegate-monitor.js +1 -1
- package/dist/src/hooks/delegate-monitor.js.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +17 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts +2 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +19 -2
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/team-monitor.d.ts.map +1 -1
- package/dist/src/hooks/team-monitor.js +17 -0
- package/dist/src/hooks/team-monitor.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +25 -1
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +25 -1
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +22 -0
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
- package/dist/src/mcp/delegate-channel-relay.js +9 -9
- package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +11 -2
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/namespace-guard.d.ts +37 -0
- package/dist/src/tools/namespace-guard.d.ts.map +1 -0
- package/dist/src/tools/namespace-guard.js +126 -0
- package/dist/src/tools/namespace-guard.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +17 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +71 -13
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-members.d.ts +16 -0
- package/dist/src/tools/team-members.d.ts.map +1 -1
- package/dist/src/tools/team-members.js +31 -0
- package/dist/src/tools/team-members.js.map +1 -1
- package/package.json +2 -2
- package/templates/business-test-report.json +68 -0
- package/workflows/delegate-usage.md +330 -0
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
---
|
|
2
|
-
role: generator
|
|
3
|
-
prefix: TESTGEN
|
|
4
|
-
inner_loop: true
|
|
5
|
-
message_types:
|
|
6
|
-
success: tests_generated
|
|
7
|
-
revision: tests_revised
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Test Generator
|
|
12
|
-
|
|
13
|
-
Generate test code by layer (L1 unit / L2 integration / L3 E2E). Acts as the Generator in the Generator-Critic loop. Supports revision mode for GC loop iterations.
|
|
14
|
-
|
|
15
|
-
## Phase 2: Context Loading
|
|
16
|
-
|
|
17
|
-
| Input | Source | Required |
|
|
18
|
-
|-------|--------|----------|
|
|
19
|
-
| Task description | From task subject/description | Yes |
|
|
20
|
-
| Session path | Extracted from task description | Yes |
|
|
21
|
-
| Test strategy | <session>/strategy/test-strategy.md | Yes |
|
|
22
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
23
|
-
|
|
24
|
-
1. Extract session path and layer from task description
|
|
25
|
-
2. Load test specs: Run `ccw spec load --category test` for test framework conventions and coverage targets
|
|
26
|
-
3. Read test strategy:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
Read("<session>/strategy/test-strategy.md")
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
3. Read source files to test (from strategy priority_files, limit 20)
|
|
33
|
-
4. Read .msg/meta.json for framework and scope context
|
|
34
|
-
|
|
35
|
-
5. Detect revision mode:
|
|
36
|
-
|
|
37
|
-
| Condition | Mode |
|
|
38
|
-
|-----------|------|
|
|
39
|
-
| Task subject contains "fix" or "revised" | Revision -- load previous failures |
|
|
40
|
-
| Otherwise | Fresh generation |
|
|
41
|
-
|
|
42
|
-
For revision mode:
|
|
43
|
-
- Read latest result file for failure details
|
|
44
|
-
- Read effective test patterns from .msg/meta.json
|
|
45
|
-
|
|
46
|
-
6. Read wisdom files if available
|
|
47
|
-
|
|
48
|
-
## Phase 3: Test Generation
|
|
49
|
-
|
|
50
|
-
**Strategy selection by complexity**:
|
|
51
|
-
|
|
52
|
-
| File Count | Strategy |
|
|
53
|
-
|------------|----------|
|
|
54
|
-
| <= 3 files | Direct: inline Write/Edit |
|
|
55
|
-
| 3-5 files | Single code-developer agent |
|
|
56
|
-
| > 5 files | Batch: group by module, one agent per batch |
|
|
57
|
-
|
|
58
|
-
**Direct generation** (per source file):
|
|
59
|
-
1. Generate test path: `<session>/tests/<layer>/<test-file>`
|
|
60
|
-
2. Generate test code: happy path, edge cases, error handling
|
|
61
|
-
3. Write test file
|
|
62
|
-
|
|
63
|
-
**CLI delegation** (medium/high complexity):
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
Bash({
|
|
67
|
-
command: `maestro
|
|
68
|
-
TASK: • Analyze source files • Generate test cases (happy path, edge cases, errors) • Write test files with proper structure • Ensure import resolution
|
|
69
|
-
MODE: write
|
|
70
|
-
CONTEXT: @<source-files> @<session>/strategy/test-strategy.md | Memory: Framework: <framework>, Layer: <layer>, Round: <round>
|
|
71
|
-
<if-revision: Previous failures: <failure-details>
|
|
72
|
-
Effective patterns: <patterns-from-meta>>
|
|
73
|
-
EXPECTED: Test files in <session>/tests/<layer>/ with: proper test structure, comprehensive coverage, correct imports, framework conventions
|
|
74
|
-
CONSTRAINTS: Follow test strategy priorities | Use framework best practices | <layer>-appropriate assertions
|
|
75
|
-
Source files to test:
|
|
76
|
-
<file-list-with-content>" --tool gemini --mode write --cd <session>`,
|
|
77
|
-
run_in_background: false
|
|
78
|
-
})
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Output verification**:
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
Glob("<session>/tests/<layer>/**/*")
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Phase 4: Self-Validation & State Update
|
|
88
|
-
|
|
89
|
-
**Validation checks**:
|
|
90
|
-
|
|
91
|
-
| Check | Method | Action on Fail |
|
|
92
|
-
|-------|--------|----------------|
|
|
93
|
-
| Syntax | `tsc --noEmit` or equivalent | Auto-fix imports/types |
|
|
94
|
-
| File count | Count generated files | Report issue |
|
|
95
|
-
| Import resolution | Check broken imports | Fix import paths |
|
|
96
|
-
|
|
97
|
-
Update `<session>/wisdom/.msg/meta.json` under `generator` namespace:
|
|
98
|
-
- Merge `{ "generator": { test_files, layer, round, is_revision } }`
|
|
1
|
+
---
|
|
2
|
+
role: generator
|
|
3
|
+
prefix: TESTGEN
|
|
4
|
+
inner_loop: true
|
|
5
|
+
message_types:
|
|
6
|
+
success: tests_generated
|
|
7
|
+
revision: tests_revised
|
|
8
|
+
error: error
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Test Generator
|
|
12
|
+
|
|
13
|
+
Generate test code by layer (L1 unit / L2 integration / L3 E2E). Acts as the Generator in the Generator-Critic loop. Supports revision mode for GC loop iterations.
|
|
14
|
+
|
|
15
|
+
## Phase 2: Context Loading
|
|
16
|
+
|
|
17
|
+
| Input | Source | Required |
|
|
18
|
+
|-------|--------|----------|
|
|
19
|
+
| Task description | From task subject/description | Yes |
|
|
20
|
+
| Session path | Extracted from task description | Yes |
|
|
21
|
+
| Test strategy | <session>/strategy/test-strategy.md | Yes |
|
|
22
|
+
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
23
|
+
|
|
24
|
+
1. Extract session path and layer from task description
|
|
25
|
+
2. Load test specs: Run `ccw spec load --category test` for test framework conventions and coverage targets
|
|
26
|
+
3. Read test strategy:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Read("<session>/strategy/test-strategy.md")
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
3. Read source files to test (from strategy priority_files, limit 20)
|
|
33
|
+
4. Read .msg/meta.json for framework and scope context
|
|
34
|
+
|
|
35
|
+
5. Detect revision mode:
|
|
36
|
+
|
|
37
|
+
| Condition | Mode |
|
|
38
|
+
|-----------|------|
|
|
39
|
+
| Task subject contains "fix" or "revised" | Revision -- load previous failures |
|
|
40
|
+
| Otherwise | Fresh generation |
|
|
41
|
+
|
|
42
|
+
For revision mode:
|
|
43
|
+
- Read latest result file for failure details
|
|
44
|
+
- Read effective test patterns from .msg/meta.json
|
|
45
|
+
|
|
46
|
+
6. Read wisdom files if available
|
|
47
|
+
|
|
48
|
+
## Phase 3: Test Generation
|
|
49
|
+
|
|
50
|
+
**Strategy selection by complexity**:
|
|
51
|
+
|
|
52
|
+
| File Count | Strategy |
|
|
53
|
+
|------------|----------|
|
|
54
|
+
| <= 3 files | Direct: inline Write/Edit |
|
|
55
|
+
| 3-5 files | Single code-developer agent |
|
|
56
|
+
| > 5 files | Batch: group by module, one agent per batch |
|
|
57
|
+
|
|
58
|
+
**Direct generation** (per source file):
|
|
59
|
+
1. Generate test path: `<session>/tests/<layer>/<test-file>`
|
|
60
|
+
2. Generate test code: happy path, edge cases, error handling
|
|
61
|
+
3. Write test file
|
|
62
|
+
|
|
63
|
+
**CLI delegation** (medium/high complexity):
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Bash({
|
|
67
|
+
command: `maestro delegate "PURPOSE: Generate <layer> tests using <framework> to achieve coverage target; success = all priority files covered with quality tests
|
|
68
|
+
TASK: • Analyze source files • Generate test cases (happy path, edge cases, errors) • Write test files with proper structure • Ensure import resolution
|
|
69
|
+
MODE: write
|
|
70
|
+
CONTEXT: @<source-files> @<session>/strategy/test-strategy.md | Memory: Framework: <framework>, Layer: <layer>, Round: <round>
|
|
71
|
+
<if-revision: Previous failures: <failure-details>
|
|
72
|
+
Effective patterns: <patterns-from-meta>>
|
|
73
|
+
EXPECTED: Test files in <session>/tests/<layer>/ with: proper test structure, comprehensive coverage, correct imports, framework conventions
|
|
74
|
+
CONSTRAINTS: Follow test strategy priorities | Use framework best practices | <layer>-appropriate assertions
|
|
75
|
+
Source files to test:
|
|
76
|
+
<file-list-with-content>" --tool gemini --mode write --cd <session>`,
|
|
77
|
+
run_in_background: false
|
|
78
|
+
})
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Output verification**:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Glob("<session>/tests/<layer>/**/*")
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Phase 4: Self-Validation & State Update
|
|
88
|
+
|
|
89
|
+
**Validation checks**:
|
|
90
|
+
|
|
91
|
+
| Check | Method | Action on Fail |
|
|
92
|
+
|-------|--------|----------------|
|
|
93
|
+
| Syntax | `tsc --noEmit` or equivalent | Auto-fix imports/types |
|
|
94
|
+
| File count | Count generated files | Report issue |
|
|
95
|
+
| Import resolution | Check broken imports | Fix import paths |
|
|
96
|
+
|
|
97
|
+
Update `<session>/wisdom/.msg/meta.json` under `generator` namespace:
|
|
98
|
+
- Merge `{ "generator": { test_files, layer, round, is_revision } }`
|
|
@@ -307,4 +307,4 @@ Resume: $maestro-coordinate --continue
|
|
|
307
307
|
6. **Close before spawn**: Always `close_agent` the current step agent before spawning the next
|
|
308
308
|
7. **Dry-run is read-only**: Stop after displaying the chain plan — never spawn agents
|
|
309
309
|
8. **Timeout handling**: One urge via `send_message`; if still timed out → mark `failed`
|
|
310
|
-
9. **No CLI fallback**: All execution is agent-native — no `exec_command("maestro
|
|
310
|
+
9. **No CLI fallback**: All execution is agent-native — no `exec_command("maestro delegate ...")`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-issue-analyze
|
|
3
|
-
description: Root cause analysis for a specific issue via CLI exploration. Gathers codebase context (grep or semantic deep search), runs maestro
|
|
3
|
+
description: Root cause analysis for a specific issue via CLI exploration. Gathers codebase context (grep or semantic deep search), runs maestro delegate gemini analysis, and attaches a structured analysis record to the issue in issues.jsonl.
|
|
4
4
|
argument-hint: "<ISS-ID> [--tool gemini|qwen] [--depth standard|deep]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
6
6
|
---
|
|
@@ -26,7 +26,7 @@ $maestro-issue-analyze "ISS-20260401-001 --tool qwen --depth standard"
|
|
|
26
26
|
|
|
27
27
|
## Overview
|
|
28
28
|
|
|
29
|
-
Sequential 4-step pipeline: load issue → gather codebase context → run CLI analysis → attach analysis record. The CLI analysis step invokes `maestro
|
|
29
|
+
Sequential 4-step pipeline: load issue → gather codebase context → run CLI analysis → attach analysis record. The CLI analysis step invokes `maestro delegate --to gemini --mode analysis` to produce a structured root-cause record written back into issues.jsonl. This is the first step in the issue resolution workflow: **analyze → plan → execute**.
|
|
30
30
|
|
|
31
31
|
```
|
|
32
32
|
Load Issue → Gather Context → CLI Analysis → Attach Record
|
|
@@ -119,7 +119,7 @@ CONSTRAINTS: Evidence required — file:line for each claim`
|
|
|
119
119
|
|
|
120
120
|
Write(`/tmp/iss-analyze-${issue.id}.txt`, promptContent)
|
|
121
121
|
functions.exec_command({
|
|
122
|
-
cmd: `maestro
|
|
122
|
+
cmd: `maestro delegate "$(cat /tmp/iss-analyze-${issue.id}.txt)" --to ${tool} --mode analysis`,
|
|
123
123
|
workdir: "."
|
|
124
124
|
})
|
|
125
125
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-issue-execute
|
|
3
|
-
description: Execute a planned solution for an issue via dual-mode dispatch. Auto-detects server UP (POST to /api/execution/dispatch) or DOWN (direct maestro
|
|
3
|
+
description: Execute a planned solution for an issue via dual-mode dispatch. Auto-detects server UP (POST to /api/execution/dispatch) or DOWN (direct maestro delegate). Updates issue status on completion with next-step routing to close, debug, or verify.
|
|
4
4
|
argument-hint: "<ISS-ID> [--executor claude-code|codex|gemini] [--dry-run]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
6
6
|
---
|
|
@@ -27,7 +27,7 @@ $maestro-issue-execute "ISS-20260401-001 --executor gemini"
|
|
|
27
27
|
|
|
28
28
|
## Overview
|
|
29
29
|
|
|
30
|
-
Sequential 4-step pipeline with conditional dispatch: load issue → dry-run check → detect mode → execute + update. Server-UP path posts to the orchestration API; Server-DOWN path invokes `maestro
|
|
30
|
+
Sequential 4-step pipeline with conditional dispatch: load issue → dry-run check → detect mode → execute + update. Server-UP path posts to the orchestration API; Server-DOWN path invokes `maestro delegate` directly. This is the third step in the issue resolution workflow: **analyze → plan → execute**.
|
|
31
31
|
|
|
32
32
|
```
|
|
33
33
|
Load Issue → [dry-run?] → Detect Mode → Dispatch → Update Status
|
|
@@ -79,7 +79,7 @@ const serverUp = healthCheck.stdout.trim() === "200"
|
|
|
79
79
|
| Mode | Condition | Action |
|
|
80
80
|
|------|-----------|--------|
|
|
81
81
|
| Server UP | HTTP 200 from /health | POST to `/api/execution/dispatch` |
|
|
82
|
-
| Server DOWN | Any other result | Direct `maestro
|
|
82
|
+
| Server DOWN | Any other result | Direct `maestro delegate` execution |
|
|
83
83
|
|
|
84
84
|
```javascript
|
|
85
85
|
functions.update_plan({
|
|
@@ -124,7 +124,7 @@ functions.exec_command({
|
|
|
124
124
|
// Write prompt to temp file to avoid shell injection
|
|
125
125
|
Write(`/tmp/iss-exec-${issue.id}.txt`, execPrompt)
|
|
126
126
|
functions.exec_command({
|
|
127
|
-
cmd: `maestro
|
|
127
|
+
cmd: `maestro delegate "$(cat /tmp/iss-exec-${issue.id}.txt)" --to ${executor === 'codex' ? 'codex' : 'claude'} --mode write`,
|
|
128
128
|
workdir: "."
|
|
129
129
|
})
|
|
130
130
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-issue-plan
|
|
3
|
-
description: Solution planning for a specific issue. Auto-detects analysis context, runs maestro
|
|
3
|
+
description: Solution planning for a specific issue. Auto-detects analysis context, runs maestro delegate planning, and attaches a structured solution record with ordered steps and verification criteria to the issue in issues.jsonl.
|
|
4
4
|
argument-hint: "<ISS-ID> [--tool gemini|qwen] [--from-analysis]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep
|
|
6
6
|
---
|
|
@@ -82,7 +82,7 @@ CONSTRAINTS: Concrete steps only | File:line references required | No speculativ
|
|
|
82
82
|
// Write prompt to temp file to avoid shell injection
|
|
83
83
|
Write(`/tmp/iss-plan-${issueId}.txt`, prompt)
|
|
84
84
|
functions.exec_command({
|
|
85
|
-
cmd: `maestro
|
|
85
|
+
cmd: `maestro delegate "$(cat /tmp/iss-plan-${issueId}.txt)" --to ${tool} --mode analysis`,
|
|
86
86
|
workdir: "."
|
|
87
87
|
})
|
|
88
88
|
```
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-business-test
|
|
3
|
+
description: PRD-forward business testing with requirement traceability, multi-layer execution (L1 Interface → L2 Business Rule → L3 Scenario), fixture generation, and feedback loop.
|
|
4
|
+
argument-hint: "<phase> [--spec SPEC-xxx] [--layer L1|L2|L3] [--gen-code] [--dry-run] [--re-run] [--auto]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Auto Mode
|
|
9
|
+
|
|
10
|
+
`--auto` skips interactive confirmation of test plan. `--dry-run` extracts scenarios only without execution.
|
|
11
|
+
|
|
12
|
+
# Business Test (PRD-Forward)
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
$maestro-business-test "3" # test phase 3 against PRD
|
|
18
|
+
$maestro-business-test "3 --layer L1" # L1 interface tests only
|
|
19
|
+
$maestro-business-test "3 --gen-code" # generate framework-specific test classes
|
|
20
|
+
$maestro-business-test "3 --dry-run" # extract scenarios only, don't execute
|
|
21
|
+
$maestro-business-test "3 --re-run" # re-run only previously failed scenarios
|
|
22
|
+
$maestro-business-test "3 --spec SPEC-auth-2026-04" # explicit spec reference
|
|
23
|
+
$maestro-business-test "3 --auto" # skip plan confirmation
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Flags**:
|
|
27
|
+
- `<phase>`: Phase number (required)
|
|
28
|
+
- `--spec SPEC-xxx`: Explicit spec package reference (default: auto-detect from index.json)
|
|
29
|
+
- `--layer L1|L2|L3`: Run only specific layer
|
|
30
|
+
- `--gen-code`: Generate framework-specific test classes (JUnit/RestAssured, supertest/vitest, pytest/httpx)
|
|
31
|
+
- `--dry-run`: Extract scenarios and fixtures only, don't execute
|
|
32
|
+
- `--re-run`: Re-run only previously failed/blocked scenarios
|
|
33
|
+
- `--auto`: Skip interactive confirmations
|
|
34
|
+
|
|
35
|
+
**Output**: `{phase_dir}/.tests/business/business-test-plan.json` + `business-test-report.json` + `business-test-summary.md`
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Overview
|
|
40
|
+
|
|
41
|
+
Validate built features against PRD acceptance criteria through automated multi-layer business testing. Unlike quality-test (interactive UAT from code gaps) and quality-test-gen (generate tests from coverage gaps), this starts from REQ-*.md acceptance criteria and works forward.
|
|
42
|
+
|
|
43
|
+
**Three-track testing** (complementary, not replacements):
|
|
44
|
+
|
|
45
|
+
| Command | Input Source | Verification Angle |
|
|
46
|
+
|---------|-------------|-------------------|
|
|
47
|
+
| `quality-business-test` | REQ-*.md acceptance criteria | **PRD-forward** — are business rules satisfied? |
|
|
48
|
+
| `quality-test` | verification.json must_haves | **Code-backward** — does the code work? |
|
|
49
|
+
| `quality-test-gen` | validation.json gaps | **Coverage-backward** — is coverage sufficient? |
|
|
50
|
+
|
|
51
|
+
**Layer definitions:**
|
|
52
|
+
|
|
53
|
+
| Layer | Name | Tests | Source |
|
|
54
|
+
|-------|------|-------|--------|
|
|
55
|
+
| L1 | Interface Contract | Single endpoint request/response, input validation, schema compliance | Architecture API endpoints + REQ AC |
|
|
56
|
+
| L2 | Business Rule | Multi-step logic, state transitions, business constraints, edge cases | REQ acceptance criteria + NFR |
|
|
57
|
+
| L3 | Business Scenario | Full user flows, multi-service chains, error propagation | Epic user stories |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Implementation
|
|
62
|
+
|
|
63
|
+
### Step 1: Resolve Target & Load Spec Package
|
|
64
|
+
|
|
65
|
+
1. Parse `$ARGUMENTS` for phase number and flags
|
|
66
|
+
2. Set `PHASE_DIR = .workflow/phases/{NN}-{slug}/`
|
|
67
|
+
3. Load `index.json` -> find `spec_ref` -> locate `.workflow/.spec/SPEC-xxx/`
|
|
68
|
+
4. **Full mode**: Read `requirements/_index.md` + all `REQ-*.md` + `NFR-*.md` + `architecture/_index.md` + `epics/EPIC-*.md`
|
|
69
|
+
5. **Degraded mode** (no spec package): Read `index.json.success_criteria` + `plan.json` convergence criteria + `.summaries/TASK-*.md`
|
|
70
|
+
6. If `--re-run`: load previous `business-test-report.json`, filter to failed/blocked scenarios
|
|
71
|
+
|
|
72
|
+
### Step 2: Extract Business Test Scenarios from PRD
|
|
73
|
+
|
|
74
|
+
For each `REQ-NNN-{slug}.md`:
|
|
75
|
+
|
|
76
|
+
1. Parse `## Acceptance Criteria` section
|
|
77
|
+
2. Map RFC 2119 keywords to priority:
|
|
78
|
+
|
|
79
|
+
| Keyword | Priority | Failure = |
|
|
80
|
+
|---------|----------|-----------|
|
|
81
|
+
| MUST / SHALL | critical | blocker |
|
|
82
|
+
| SHOULD / RECOMMENDED | high | major |
|
|
83
|
+
| MAY / OPTIONAL | medium | minor |
|
|
84
|
+
|
|
85
|
+
3. Classify scenario into layer:
|
|
86
|
+
|
|
87
|
+
| Source | Layer | Category |
|
|
88
|
+
|--------|-------|----------|
|
|
89
|
+
| Architecture API endpoints + REQ AC about request/response | L1 | api_contract |
|
|
90
|
+
| REQ AC about business logic, validation, state changes | L2 | business_rule |
|
|
91
|
+
| Architecture state machine transitions | L2 | state_transition |
|
|
92
|
+
| Epic user stories (multi-step flows) | L3 | user_flow |
|
|
93
|
+
| NFR performance/security constraints | L2 | non_functional |
|
|
94
|
+
|
|
95
|
+
4. Generate scenario JSON with `id`, `req_ref` (REQ-NNN:AC-N), `layer`, `priority`, `name`, `category`, `endpoint`, `input`, `expected`, `preconditions`, `postconditions`, `mock_services`
|
|
96
|
+
|
|
97
|
+
**Degraded mode**: Extract from success_criteria (each -> L2 scenario), plan.json convergence criteria (each -> L1/L2), all default priority: high. No L3 in degraded mode.
|
|
98
|
+
|
|
99
|
+
### Step 3: Generate Test Data (Fixtures)
|
|
100
|
+
|
|
101
|
+
Three tiers:
|
|
102
|
+
|
|
103
|
+
**Tier 1 — Schema-derived**: From REQ data models, generate valid/invalid/boundary variants per entity:
|
|
104
|
+
- valid: satisfies all constraints
|
|
105
|
+
- invalid: violate each constraint individually (null, empty, overflow, wrong type)
|
|
106
|
+
- boundary: edge values (min, max, min-1, max+1)
|
|
107
|
+
|
|
108
|
+
**Tier 2 — Criteria-derived**: From "MUST return X when Y" -> `{ input: Y, expected: X }`. From "MUST validate Z" -> `{ input: invalid_Z, expected: error }`.
|
|
109
|
+
|
|
110
|
+
**Tier 3 — Scenario-derived (L3 only)**: From Epic user stories -> scenario packs with coordinated entity IDs across steps.
|
|
111
|
+
|
|
112
|
+
**Microservice mocks**: From architecture API contract -> request/response pairs for WireMock stubs.
|
|
113
|
+
|
|
114
|
+
### Step 4: Write Test Plan & Confirm
|
|
115
|
+
|
|
116
|
+
1. Archive previous `business-test-plan.json` to `.history/` if exists
|
|
117
|
+
2. Write `.tests/business/business-test-plan.json` with scenarios, fixtures, mock_contracts, requirement_coverage_plan
|
|
118
|
+
3. Display plan summary (scenario counts per layer, fixture counts, requirement coverage)
|
|
119
|
+
4. If not `--auto`: wait for user confirmation (yes/edit/cancel)
|
|
120
|
+
5. If `--dry-run`: stop here, report plan
|
|
121
|
+
|
|
122
|
+
### Step 5: Generate Test Code (if --gen-code)
|
|
123
|
+
|
|
124
|
+
Detect project tech stack from `.workflow/specs/project-tech.json` or codebase scan.
|
|
125
|
+
|
|
126
|
+
| Stack | L1 | L2 | L3 |
|
|
127
|
+
|-------|----|----|-----|
|
|
128
|
+
| Java/Spring Boot | RestAssured + MockMvc | JUnit 5 Parameterized + WireMock | TestContainers |
|
|
129
|
+
| TypeScript/Node | supertest + vitest | vitest + nock | playwright/cypress |
|
|
130
|
+
| Python | httpx + pytest | pytest + responses | pytest + selenium |
|
|
131
|
+
|
|
132
|
+
Each test method includes REQ-NNN:AC-N reference in display name. Test files placed in `.tests/business/{layer}/`.
|
|
133
|
+
|
|
134
|
+
If no `--gen-code`: scenarios stay as structured JSON for AI agent execution.
|
|
135
|
+
|
|
136
|
+
### Step 6: Execute Tests (Progressive L1 → L2 → L3)
|
|
137
|
+
|
|
138
|
+
**Fail-fast**: L1 critical failures -> STOP (don't run L2). L2 critical failures -> STOP (don't run L3).
|
|
139
|
+
|
|
140
|
+
**Generator-Critic loop per layer (max 3 iterations):**
|
|
141
|
+
|
|
142
|
+
| Iteration | Action |
|
|
143
|
+
|-----------|--------|
|
|
144
|
+
| 1 | Run all scenarios. Critic: classify failures as test_defect / code_defect / env_issue |
|
|
145
|
+
| 2 | Auto-fix test_defects, re-run ALL scenarios |
|
|
146
|
+
| 3 | Final confirmation. Remaining failures = confirmed code_defects |
|
|
147
|
+
|
|
148
|
+
**Execution modes:**
|
|
149
|
+
- `--gen-code`: run via test framework (`mvn test`, `npx vitest`, etc.)
|
|
150
|
+
- default: AI agent executes scenarios against running application
|
|
151
|
+
|
|
152
|
+
Record results in `.tests/business/test-results-iter-{N}.json`.
|
|
153
|
+
|
|
154
|
+
### Step 7: Build Traceability Matrix
|
|
155
|
+
|
|
156
|
+
Map each result to `REQ-NNN:AC-N`:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
FOR each REQ:
|
|
160
|
+
FOR each AC:
|
|
161
|
+
ac_status = "passed" if ALL scenarios passed
|
|
162
|
+
"failed" if ANY failed
|
|
163
|
+
"blocked" if ANY blocked (none failed)
|
|
164
|
+
"untested" if no scenarios mapped
|
|
165
|
+
verdict = "verified" if all MUST+SHOULD passed
|
|
166
|
+
"partial" if some failed
|
|
167
|
+
"unverified" if all failed/untested
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Step 8: Generate Reports
|
|
171
|
+
|
|
172
|
+
1. Archive previous report/summary to `.history/`
|
|
173
|
+
2. Write `.tests/business/business-test-report.json` with:
|
|
174
|
+
- `layers`: per-layer stats (total, passed, failed, blocked, pass_rate)
|
|
175
|
+
- `requirement_coverage`: per-REQ criteria results with failure details
|
|
176
|
+
- `failures`: each with req_ref, severity, expected/actual, fix_suggestion
|
|
177
|
+
- `summary`: total_requirements, fully_verified, partially_verified, unverified, coverage_pct
|
|
178
|
+
3. Write `.tests/business/business-test-summary.md` (human-readable tables)
|
|
179
|
+
4. Update `index.json` with `business_test` section
|
|
180
|
+
|
|
181
|
+
### Step 9: Feedback Loop
|
|
182
|
+
|
|
183
|
+
1. Auto-create issues from failures in `.workflow/issues/issues.jsonl` (each with `req_ref`, `source: "business-test"`)
|
|
184
|
+
2. Report results
|
|
185
|
+
3. Route next step:
|
|
186
|
+
|
|
187
|
+
| Result | Suggestion |
|
|
188
|
+
|--------|------------|
|
|
189
|
+
| All requirements verified | Skill({ skill: "maestro-phase-transition", args: "{phase}" }) |
|
|
190
|
+
| Failures found | Skill({ skill: "quality-debug", args: "--from-business-test {phase}" }) |
|
|
191
|
+
| `--re-run` all pass | Skill({ skill: "maestro-verify", args: "{phase}" }) |
|
|
192
|
+
| Low coverage (< 60%) | Skill({ skill: "quality-test-gen", args: "{phase}" }) |
|
|
193
|
+
|
|
194
|
+
**Closure criteria**: Requirement marked "verified" ONLY when ALL MUST+SHOULD acceptance criteria pass.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Error Handling
|
|
199
|
+
|
|
200
|
+
| Code | Severity | Condition | Recovery |
|
|
201
|
+
|------|----------|-----------|----------|
|
|
202
|
+
| E001 | error | Phase number required | Prompt user for phase number |
|
|
203
|
+
| E002 | error | Phase directory not found | Verify phase exists in .workflow/phases/ |
|
|
204
|
+
| E003 | error | No spec package AND no success_criteria | Run maestro-spec-generate or maestro-plan first |
|
|
205
|
+
| E004 | error | L1 critical failures block L2/L3 | Fix blockers via quality-debug |
|
|
206
|
+
| W001 | warning | Degraded mode (no spec package) | Consider running maestro-spec-generate |
|
|
207
|
+
| W002 | warning | Some REQs have no testable AC | Note in report |
|
|
208
|
+
| W003 | warning | Generator-Critic loop exhausted | Accept current state |
|
|
209
|
+
| W004 | warning | Mock services unavailable for L3 | Skip L3 or use --gen-code |
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Core Rules
|
|
214
|
+
|
|
215
|
+
- **PRD is source of truth** -- business rules drive test scenarios, not code structure
|
|
216
|
+
- **RFC 2119 keyword priority** -- MUST = critical, SHOULD = high, MAY = medium
|
|
217
|
+
- **Fail-fast across layers** -- critical L1 failures block L2/L3
|
|
218
|
+
- **Generator-Critic loop max 3 iterations** per layer
|
|
219
|
+
- **Traceability on every result** -- every pass/fail maps to REQ-NNN:AC-N
|
|
220
|
+
- **Agent calls use `run_in_background: false`** for synchronous execution
|
|
221
|
+
- **Auto-create issues** in `.workflow/issues/issues.jsonl` for every failure
|
|
222
|
+
- **Degraded mode** works without spec package (from success_criteria + plan.json)
|
|
223
|
+
- **Never modify source code** -- this command tests, it doesn't fix
|
|
@@ -28,8 +28,8 @@ Universal team coordination skill: analyze task -> generate role-specs -> dispat
|
|
|
28
28
|
(roles generated at runtime from task analysis)
|
|
29
29
|
|
|
30
30
|
CLI Tools (callable by any worker):
|
|
31
|
-
maestro
|
|
32
|
-
maestro
|
|
31
|
+
maestro delegate --mode analysis - analysis and exploration
|
|
32
|
+
maestro delegate --mode write - code generation and modification
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## Delegation Lock
|
|
@@ -48,7 +48,7 @@ Before calling ANY tool, apply this check:
|
|
|
48
48
|
| `Read` on `roles/`, `commands/`, `specs/` | ALLOWED | Loading own instructions |
|
|
49
49
|
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
50
50
|
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
51
|
-
| `Bash("maestro
|
|
51
|
+
| `Bash("maestro delegate ...")` | BLOCKED | Only workers call CLI |
|
|
52
52
|
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
53
53
|
|
|
54
54
|
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
@@ -65,8 +65,8 @@ Before calling ANY tool, apply this check:
|
|
|
65
65
|
| Session path | `.workflow/.team/TC-<slug>-<date>/` |
|
|
66
66
|
| Worker agent | `team-worker` |
|
|
67
67
|
| Message bus | `mcp__maestro-tools__team_msg(session_id=<session-id>, ...)` |
|
|
68
|
-
| CLI analysis | `maestro
|
|
69
|
-
| CLI write | `maestro
|
|
68
|
+
| CLI analysis | `maestro delegate --mode analysis` |
|
|
69
|
+
| CLI write | `maestro delegate --mode write` |
|
|
70
70
|
| Max roles | 5 |
|
|
71
71
|
|
|
72
72
|
## Role Router
|
|
@@ -92,8 +92,8 @@ Workers can use CLI tools for analysis and code operations:
|
|
|
92
92
|
|
|
93
93
|
| Tool | Purpose |
|
|
94
94
|
|------|---------|
|
|
95
|
-
| maestro
|
|
96
|
-
| maestro
|
|
95
|
+
| maestro delegate --mode analysis | Analysis, exploration, pattern discovery |
|
|
96
|
+
| maestro delegate --mode write | Code generation, modification, refactoring |
|
|
97
97
|
|
|
98
98
|
### Dispatch
|
|
99
99
|
|
|
@@ -18,7 +18,7 @@ Orchestrate the team-coordinate workflow: task analysis, dynamic role-spec gener
|
|
|
18
18
|
```
|
|
19
19
|
WRONG: Read("src/components/Button.tsx") — worker work
|
|
20
20
|
WRONG: Grep(pattern="useState", path="src/") — worker work
|
|
21
|
-
WRONG: Bash("maestro
|
|
21
|
+
WRONG: Bash("maestro delegate '...' --to gemini") — worker work
|
|
22
22
|
WRONG: Edit("src/utils/helper.ts", ...) — worker work
|
|
23
23
|
WRONG: Bash("npm test") — worker work
|
|
24
24
|
WRONG: mcp__ace-tool__search_context(query="...") — worker work
|
|
@@ -71,7 +71,7 @@ Before calling ANY tool, apply this check:
|
|
|
71
71
|
| `Read` on `roles/`, `commands/`, `specs/`, `templates/` | ALLOWED | Loading own instructions |
|
|
72
72
|
| `Read/Grep/Glob` on project source code | BLOCKED | Delegate to worker |
|
|
73
73
|
| `Edit` on any file outside `.workflow/` | BLOCKED | Delegate to worker |
|
|
74
|
-
| `Bash("maestro
|
|
74
|
+
| `Bash("maestro delegate ...")` | BLOCKED | Only workers call CLI |
|
|
75
75
|
| `Bash` running build/test/lint commands | BLOCKED | Delegate to worker |
|
|
76
76
|
|
|
77
77
|
**If a tool call is BLOCKED**: STOP. Create a task, spawn a worker.
|
|
@@ -86,7 +86,7 @@ Before calling ANY tool, apply this check:
|
|
|
86
86
|
- **Session path**: `.workflow/.team/TLV4-<slug>-<date>/`
|
|
87
87
|
- **State file**: `<session>/tasks.json`
|
|
88
88
|
- **Discovery files**: `<session>/discoveries/{task_id}.json`
|
|
89
|
-
- **CLI tools**: `maestro
|
|
89
|
+
- **CLI tools**: `maestro delegate --mode analysis` (read-only), `maestro delegate --mode write` (modifications)
|
|
90
90
|
|
|
91
91
|
## Worker Spawn Template
|
|
92
92
|
|
|
@@ -27,7 +27,7 @@ This instruction is loaded by team-worker agents when spawned with roles: `analy
|
|
|
27
27
|
|
|
28
28
|
2. **Explore domain** (use CLI analysis tools):
|
|
29
29
|
```bash
|
|
30
|
-
maestro
|
|
30
|
+
maestro delegate "PURPOSE: Research domain for {requirement}
|
|
31
31
|
TASK: • Identify problem statement • Define target users • Extract constraints • Map integration points
|
|
32
32
|
CONTEXT: @**/* | Memory: {requirement}
|
|
33
33
|
EXPECTED: Structured research context with problem/users/domain/constraints
|
|
@@ -294,7 +294,7 @@ This instruction is loaded by team-worker agents when spawned with roles: `analy
|
|
|
294
294
|
|
|
295
295
|
2. **Explore codebase** (use CLI analysis tools):
|
|
296
296
|
```bash
|
|
297
|
-
maestro
|
|
297
|
+
maestro delegate "PURPOSE: Explore codebase for {requirement}
|
|
298
298
|
TASK: • Identify relevant files • Find existing patterns • Locate integration points
|
|
299
299
|
CONTEXT: @**/* | Memory: {requirement}
|
|
300
300
|
EXPECTED: Exploration findings with file paths and patterns
|
|
@@ -36,7 +36,7 @@ Research and codebase exploration for context gathering.
|
|
|
36
36
|
4. If topic references file (@path or .md/.txt) -> read it
|
|
37
37
|
5. CLI seed analysis:
|
|
38
38
|
```
|
|
39
|
-
Bash({ command: `maestro
|
|
39
|
+
Bash({ command: `maestro delegate "PURPOSE: Analyze topic, extract structured seed info.
|
|
40
40
|
TASK: * Extract problem statement * Identify target users * Determine domain
|
|
41
41
|
* List constraints * Identify 3-5 exploration dimensions
|
|
42
42
|
TOPIC: <topic-content>
|
|
@@ -54,7 +54,7 @@ Research and codebase exploration for context gathering.
|
|
|
54
54
|
|
|
55
55
|
When project detected:
|
|
56
56
|
```
|
|
57
|
-
Bash({ command: `maestro
|
|
57
|
+
Bash({ command: `maestro delegate "PURPOSE: Explore codebase for context
|
|
58
58
|
TASK: * Identify tech stack * Map architecture patterns * Document conventions * List integration points
|
|
59
59
|
MODE: analysis
|
|
60
60
|
CONTEXT: @**/*
|
|
@@ -14,7 +14,7 @@ Orchestrate team-lifecycle-v4: analyze -> dispatch -> spawn -> monitor -> report
|
|
|
14
14
|
```
|
|
15
15
|
WRONG: Read("src/...") — worker work
|
|
16
16
|
WRONG: Grep/Glob on project source — worker work
|
|
17
|
-
WRONG: Bash("maestro
|
|
17
|
+
WRONG: Bash("maestro delegate '...' --to gemini") — worker work
|
|
18
18
|
WRONG: Edit/Write on project source files — worker work
|
|
19
19
|
WRONG: Bash("npm test"), Bash("tsc"), etc. — worker work
|
|
20
20
|
```
|
|
@@ -47,7 +47,7 @@ WRONG: Bash("npm test"), Bash("tsc"), etc. — worker work
|
|
|
47
47
|
- Modify task output artifacts
|
|
48
48
|
- Spawn workers with general-purpose agent (MUST use team_worker)
|
|
49
49
|
- Generate more than 5 worker roles
|
|
50
|
-
- Call CLI tools (maestro
|
|
50
|
+
- Call CLI tools (maestro delegate) — only workers use CLI
|
|
51
51
|
|
|
52
52
|
## Command Execution Protocol
|
|
53
53
|
When coordinator needs to execute a specific phase:
|
|
@@ -51,7 +51,7 @@ CONSTRAINTS: Only modify listed files | Follow existing patterns
|
|
|
51
51
|
|
|
52
52
|
CLI call:
|
|
53
53
|
```
|
|
54
|
-
Bash(`maestro
|
|
54
|
+
Bash(`maestro delegate "<prompt>" --to <tool> --mode write --rule development-implement-feature`)
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
Resume strategy:
|