maestro-flow 0.5.39 → 0.5.41
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/.agents/skills/odyssey-debug/SKILL.md +109 -143
- package/.agents/skills/odyssey-improve/SKILL.md +127 -141
- package/.agents/skills/odyssey-planex/SKILL.md +140 -231
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +136 -90
- package/.agents/skills/odyssey-ui/SKILL.md +123 -143
- package/.agy/skills/odyssey-debug/SKILL.md +109 -143
- package/.agy/skills/odyssey-improve/SKILL.md +127 -141
- package/.agy/skills/odyssey-planex/SKILL.md +140 -231
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +136 -90
- package/.agy/skills/odyssey-ui/SKILL.md +123 -143
- package/.claude/commands/odyssey-debug.md +109 -143
- package/.claude/commands/odyssey-improve.md +127 -141
- package/.claude/commands/odyssey-planex.md +140 -231
- package/.claude/commands/odyssey-review-test-fix.md +136 -90
- package/.claude/commands/odyssey-ui.md +123 -143
- package/.codex/agents/cli-explore-agent.toml +181 -0
- package/.codex/agents/cross-role-reviewer.toml +165 -0
- package/.codex/agents/impeccable-agent.toml +89 -0
- package/.codex/agents/role-design-author.toml +213 -0
- package/.codex/agents/team-worker.toml +4 -7
- package/.codex/agents/ui-design-agent.toml +260 -0
- package/.codex/agents/workflow-analyzer.toml +106 -0
- package/.codex/agents/workflow-codebase-mapper.toml +69 -0
- package/.codex/agents/workflow-collab-planner.toml +140 -0
- package/.codex/agents/workflow-debugger.toml +95 -0
- package/.codex/agents/workflow-executor.toml +124 -0
- package/.codex/agents/workflow-external-researcher.toml +80 -0
- package/.codex/agents/workflow-integration-checker.toml +76 -0
- package/.codex/agents/workflow-nyquist-auditor.toml +77 -0
- package/.codex/agents/workflow-phase-researcher.toml +76 -0
- package/.codex/agents/workflow-plan-checker.toml +93 -0
- package/.codex/agents/workflow-planner.toml +192 -0
- package/.codex/agents/workflow-project-researcher.toml +65 -0
- package/.codex/agents/workflow-research-synthesizer.toml +65 -0
- package/.codex/agents/workflow-reviewer.toml +75 -0
- package/.codex/agents/workflow-roadmapper.toml +75 -0
- package/.codex/agents/workflow-verifier.toml +113 -0
- package/.codex/skills/maestro/SKILL.md +1 -0
- package/.codex/skills/maestro-analyze/SKILL.md +33 -15
- package/.codex/skills/maestro-brainstorm/SKILL.md +13 -10
- package/.codex/skills/maestro-collab/SKILL.md +30 -75
- package/.codex/skills/maestro-execute/SKILL.md +19 -12
- package/.codex/skills/maestro-grill/SKILL.md +12 -11
- package/.codex/skills/maestro-next/SKILL.md +3 -3
- package/.codex/skills/maestro-overlay/SKILL.md +1 -1
- package/.codex/skills/maestro-plan/SKILL.md +17 -8
- package/.codex/skills/maestro-ralph/SKILL.md +3 -0
- package/.codex/skills/maestro-ralph-execute/SKILL.md +1 -0
- package/.codex/skills/maestro-roadmap/SKILL.md +14 -8
- package/.codex/skills/manage-learn/SKILL.md +1 -1
- package/.codex/skills/odyssey-debug/SKILL.md +176 -150
- package/.codex/skills/odyssey-improve/SKILL.md +210 -177
- package/.codex/skills/odyssey-planex/SKILL.md +162 -242
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +96 -90
- package/.codex/skills/odyssey-ui/SKILL.md +211 -179
- package/.codex/skills/quality-review/SKILL.md +17 -10
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +6 -12
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +6 -14
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +2 -6
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +6 -14
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +3 -7
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -5
- package/.codex/skills/team-review/roles/reviewer/role.md +2 -5
- package/.codex/skills/team-review/roles/scanner/role.md +2 -5
- package/.codex/skills/team-tech-debt/roles/executor/role.md +3 -7
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +2 -5
- package/.codex/skills/team-tech-debt/roles/validator/role.md +3 -7
- package/.codex/skills/team-testing/roles/executor/role.md +3 -7
- package/.codex/skills/team-testing/roles/generator/role.md +3 -7
- package/dashboard/dist-server/src/commands/install-backend.js +19 -0
- package/dashboard/dist-server/src/commands/install-backend.js.map +1 -1
- package/dashboard/dist-server/src/core/manifest.d.ts +5 -0
- package/dashboard/dist-server/src/core/manifest.js.map +1 -1
- package/dashboard/dist-server/src/core/plugin-bridge.d.ts +59 -0
- package/dashboard/dist-server/src/core/plugin-bridge.js +355 -0
- package/dashboard/dist-server/src/core/plugin-bridge.js.map +1 -0
- package/dashboard/dist-server/src/tools/spec-loader.js +27 -19
- package/dashboard/dist-server/src/tools/spec-loader.js.map +1 -1
- package/dashboard/dist-server/src/tools/spec-seeds.d.ts +8 -0
- package/dashboard/dist-server/src/tools/spec-seeds.js +114 -0
- package/dashboard/dist-server/src/tools/spec-seeds.js.map +1 -1
- package/dist/src/cli.js +19 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +19 -0
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +17 -1
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/plugin.d.ts +3 -0
- package/dist/src/commands/plugin.d.ts.map +1 -0
- package/dist/src/commands/plugin.js +137 -0
- package/dist/src/commands/plugin.js.map +1 -0
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +13 -3
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +23 -0
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/core/install-executor.d.ts +1 -1
- package/dist/src/core/install-executor.d.ts.map +1 -1
- package/dist/src/core/install-executor.js +27 -0
- package/dist/src/core/install-executor.js.map +1 -1
- package/dist/src/core/install-profile.d.ts +5 -0
- package/dist/src/core/install-profile.d.ts.map +1 -1
- package/dist/src/core/install-profile.js +8 -0
- package/dist/src/core/install-profile.js.map +1 -1
- package/dist/src/core/manifest.d.ts +5 -0
- package/dist/src/core/manifest.d.ts.map +1 -1
- package/dist/src/core/manifest.js.map +1 -1
- package/dist/src/core/plugin-bridge.d.ts +60 -0
- package/dist/src/core/plugin-bridge.d.ts.map +1 -0
- package/dist/src/core/plugin-bridge.js +355 -0
- package/dist/src/core/plugin-bridge.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts +4 -3
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +9 -5
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +27 -19
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/spec-seeds.d.ts +8 -0
- package/dist/src/tools/spec-seeds.d.ts.map +1 -1
- package/dist/src/tools/spec-seeds.js +114 -0
- package/dist/src/tools/spec-seeds.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +43 -14
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/types.d.ts +2 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -1
- package/dist/src/tui/install-ui/types.js.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.js +13 -1
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -1
- package/dist/src/utils/update-notices.js +11 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +1 -1
- package/workflows/odyssey-base-codex.md +306 -0
- package/workflows/shell-exec-protocol.md +30 -0
|
@@ -1,259 +1,291 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: odyssey-ui
|
|
3
|
-
description: "Long-running UI optimization cycle — visual survey, multi-dimensional audit, divergent exploration, fix, verify, generalize, and design knowledge persistence"
|
|
3
|
+
description: "Long-running UI optimization cycle — visual survey, multi-dimensional audit, divergent exploration, fix, verify, generalize, discover, and design knowledge persistence"
|
|
4
4
|
argument-hint: '"<target>" [--dimensions <list>] [--skip-fix] [--skip-generalize] [--auto] [-y] [-c] [--heartbeat]'
|
|
5
5
|
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<base>@~/.maestro/workflows/odyssey-base.md</base>
|
|
8
|
+
<base>@~/.maestro/workflows/odyssey-base-codex.md</base>
|
|
9
9
|
|
|
10
10
|
<purpose>
|
|
11
|
-
|
|
12
|
-
fix
|
|
13
|
-
|
|
14
|
-
Core philosophy:
|
|
15
|
-
- **Every pixel tells a story** — subtle details create the experience
|
|
16
|
-
- **Diverge before converge** — explore creatively, then implement methodically
|
|
17
|
-
- **Find one, polish all** — a single improvement reveals a class of opportunities
|
|
18
|
-
- **Browser is truth** — verify in real rendering, not just code
|
|
19
|
-
|
|
20
|
-
**三句哲学约束(穷尽迭代):**
|
|
21
|
-
1. **零遗留** — 每个 finding/idea 必须是 action item(修复 / issue / 决策),不允许只报告不处理
|
|
22
|
-
2. **穷尽迭代** — 按 impact×severity 递降逐轮修复,直到 0 remaining actionable 才退出 fix loop
|
|
23
|
-
3. **改进即标准** — 每次修复后重审同区域,发现新视觉问题继续修,直到该区域无可改善
|
|
11
|
+
survey -> 6-dimension audit -> divergent creative exploration ->
|
|
12
|
+
fix -> verify -> generalize -> discover -> persist.
|
|
13
|
+
Exhaustive iteration until all findings addressed or deferred.
|
|
24
14
|
</purpose>
|
|
25
15
|
|
|
26
16
|
<boundary>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
17
|
+
**In scope:** Target component/page visual experience optimization -- audit 6 dimensions -> divergent exploration -> fix -> generalize to sibling components.
|
|
18
|
+
**Out of scope:** Backend logic / data model / API design -> `$odyssey-planex` | Deep bug investigation -> `$odyssey-debug` | Code quality review -> `$odyssey-review-test-fix`
|
|
19
|
+
|
|
20
|
+
**Exploration freedom:** Maximum freedom within boundary -- S_DIVERGE encourages divergent thinking with no creative ceiling. Audit + diverge may discover any visual/interaction/accessibility detail.
|
|
21
|
+
**Zero-residual:** Every finding/idea MUST have a concrete action (fix / issue / decision). "Pre-existing design debt" is not a valid skip reason.
|
|
22
|
+
|
|
23
|
+
**Decision gate** -- ONLY these qualify as decisions (not fixes):
|
|
24
|
+
- Brand/style direction requiring human creative judgment
|
|
25
|
+
- Layout restructuring that changes user flow significantly
|
|
26
|
+
- Requires new design tokens or breaking component API
|
|
36
27
|
</boundary>
|
|
37
28
|
|
|
38
29
|
<context>
|
|
39
|
-
$ARGUMENTS
|
|
30
|
+
$ARGUMENTS
|
|
40
31
|
|
|
41
|
-
**Target resolution:** Component path
|
|
32
|
+
**Target resolution:** Component path -> audit component | Page/route -> audit page | `staged`/`HEAD` -> diff UI changes | Feature area -> resolve to components/pages
|
|
42
33
|
|
|
43
|
-
**Flags:**
|
|
44
|
-
| Flag | Effect | Default |
|
|
45
|
-
|------|--------|---------|
|
|
46
|
-
| `--dimensions <list>` | Comma-separated subset of 6 dimensions | all 6 |
|
|
47
|
-
| `--fix-threshold <severity>` | 修复到哪个 severity 为止 | all |
|
|
48
|
-
| `--skip-fix` | Audit + diverge only, no code changes | false |
|
|
49
|
-
| `--skip-generalize` | Skip S_GENERALIZE and S_DISCOVER | false |
|
|
50
|
-
| `--auto` | CLI delegates without confirmation | false |
|
|
51
|
-
| `-y` | Auto-confirm all decisions (see appendix) | false |
|
|
52
|
-
| `-c` | Resume most recent session | — |
|
|
53
|
-
| `--heartbeat` | Enable heartbeat progress reporting | false |
|
|
34
|
+
**Flags:** `--dimensions <list>` subset of 6 dims | `--fix-threshold <severity>` | `--skip-fix` audit+diverge only | `--skip-generalize` skip S_GENERALIZE+S_DISCOVER | `--auto` no delegate confirmation | `-y` auto-confirm | `-c` resume | `--heartbeat` /loop heartbeat
|
|
54
35
|
|
|
55
|
-
**Session**:
|
|
36
|
+
**Session**: `.workflow/scratch/{YYYYMMDD}-ui-odyssey-{slug}/`
|
|
37
|
+
**Output**: `session.json` | `evidence.ndjson` | `understanding.md`
|
|
56
38
|
|
|
57
|
-
**
|
|
39
|
+
**session.json -- ui-specific fields:**
|
|
40
|
+
```json
|
|
41
|
+
{ "target": "", "dimensions": [], "audit_result": null, "diverge_result": null,
|
|
42
|
+
"patterns": [], "confirmation": null, "generalization_stats": null }
|
|
43
|
+
```
|
|
58
44
|
|
|
59
|
-
**
|
|
45
|
+
**evidence.ndjson phases:** `survey|audit|diverge|fix|discovery|decision|self-iteration`
|
|
60
46
|
|
|
61
47
|
**phase_goals[]:**
|
|
48
|
+
|
|
62
49
|
| ID | Goal | Phase | skip_when |
|
|
63
50
|
|----|------|-------|-----------|
|
|
64
|
-
| G1 | Survey completed | S_SURVEY |
|
|
65
|
-
| G2 | Audit completed | S_AUDIT |
|
|
66
|
-
| G3 | Divergent exploration done | S_DIVERGE |
|
|
51
|
+
| G1 | Survey completed | S_SURVEY | -- |
|
|
52
|
+
| G2 | Audit completed | S_AUDIT | -- |
|
|
53
|
+
| G3 | Divergent exploration done | S_DIVERGE | -- |
|
|
67
54
|
| G4 | Zero remaining: all findings/ideas fixed and verified | S_VERIFY | skip_fix |
|
|
68
55
|
| G5 | Pattern generalized | S_GENERALIZE | skip_generalize |
|
|
69
56
|
| G6 | Discoveries triaged | S_DISCOVER | skip_generalize |
|
|
70
|
-
| G7 | Learnings persisted | S_RECORD |
|
|
57
|
+
| G7 | Learnings persisted | S_RECORD | -- |
|
|
71
58
|
|
|
72
|
-
**understanding.md
|
|
59
|
+
**understanding.md -- 8 sections:**
|
|
60
|
+
1. Target & Design Context <- S_INTAKE | 2. Survey <- S_SURVEY | 3. Audit <- S_AUDIT | 4. Diverge <- S_DIVERGE
|
|
61
|
+
5. Verify <- S_VERIFY | 6. Generalize <- S_GENERALIZE | 7. Discover <- S_DISCOVER | 8. Learnings <- S_RECORD
|
|
73
62
|
|
|
74
|
-
|
|
75
|
-
ARCHITECTURE.md | `maestro search "<target>" --json` (top 5) | `maestro load --type spec --category ui` | `maestro load --type spec --category coding` | `maestro search --category ui` → load knowhow | Glob prior sessions
|
|
63
|
+
**Knowledge Persistence (S_RECORD writes understanding.md section 8):**
|
|
76
64
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
| 可复用泛化 pattern | pattern 签名 + 应用范围 | `/spec-add coding "..."` |
|
|
65
|
+
| Category | Content | Follow-up |
|
|
66
|
+
|----------|---------|-----------|
|
|
67
|
+
| Design pattern | Component pattern + applicable scenarios + token references | `/spec-add ui "..."` |
|
|
68
|
+
| Interaction spec | State definitions + transition rules + feedback patterns | `/spec-add ui "..."` |
|
|
69
|
+
| Accessibility rules | WCAG requirements + implementation approach | `/spec-add ui "..."` |
|
|
70
|
+
| Reusable generalization pattern | Pattern signature + application scope | `/spec-add coding "..."` |
|
|
84
71
|
</context>
|
|
85
72
|
|
|
73
|
+
<csv_schema>
|
|
74
|
+
|
|
75
|
+
### Shared Output Schema (all waves)
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"type": "object",
|
|
79
|
+
"properties": {
|
|
80
|
+
"id": { "type": "string" },
|
|
81
|
+
"result_status": { "type": "string", "enum": ["completed", "failed"] },
|
|
82
|
+
"findings": { "type": "string", "maxLength": 500 },
|
|
83
|
+
"evidence": { "type": "string" },
|
|
84
|
+
"error": { "type": "string" }
|
|
85
|
+
},
|
|
86
|
+
"required": ["id", "result_status", "findings"]
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Termination contract:** Call `report_agent_job_result` EXACTLY ONCE. Read-only. Do NOT modify source files, tasks.csv, wave-*.csv, results.csv, or call spawn_agents_on_csv.
|
|
91
|
+
|
|
92
|
+
### tasks.csv
|
|
93
|
+
```csv
|
|
94
|
+
id,title,description,task_type,dimension,deps,wave,status,findings,evidence,error
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Waves:**
|
|
98
|
+
| Wave | Tasks | Parallelism |
|
|
99
|
+
|------|-------|-------------|
|
|
100
|
+
| 1 | Survey (design-tokens-audit, pattern-inventory) | 2 agents |
|
|
101
|
+
| 2 | Audit (visual-hierarchy, interaction-states, accessibility, responsiveness, micro-interactions, edge-cases) | 6 agents |
|
|
102
|
+
| 3 | Diverge (polish-agent, delight-agent) | 2 agents |
|
|
103
|
+
| 4 | Generalization (syntax-grep, semantic-scan, structural-match, historical-grep) | 4 agents |
|
|
104
|
+
</csv_schema>
|
|
105
|
+
|
|
106
|
+
<invariants>
|
|
107
|
+
1-5: See base (evidence append-only, session is state, phase goal tracking, auto-commit, zero silent drops).
|
|
108
|
+
6. **Browser is truth** -- verify in real rendering, not just code review
|
|
109
|
+
7. **Diverge before converge** -- explore creatively first, then implement methodically
|
|
110
|
+
</invariants>
|
|
111
|
+
|
|
86
112
|
<self_iteration>
|
|
87
|
-
|
|
113
|
+
Applies to: **S_SURVEY, S_AUDIT, S_DIVERGE, S_GENERALIZE**. Logic in base.
|
|
88
114
|
</self_iteration>
|
|
89
115
|
|
|
90
116
|
<state_machine>
|
|
91
117
|
|
|
92
118
|
<states>
|
|
93
|
-
S_INTAKE
|
|
94
|
-
S_SURVEY — Visual landscape: design tokens, pattern inventory PERSIST: evidence.ndjson (survey) + understanding.md §2
|
|
95
|
-
S_AUDIT — 6-dimension parallel review PERSIST: evidence.ndjson (audit) + understanding.md §3
|
|
96
|
-
S_DIVERGE — Divergent creative exploration: polish + delight PERSIST: evidence.ndjson (diverge) + understanding.md §4
|
|
97
|
-
S_FIX — Implement improvements (skip if --skip-fix) PERSIST: code changes + evidence.ndjson (fix)
|
|
98
|
-
S_VERIFY — Visual verification + test (skip if --skip-fix) PERSIST: session.json.confirmation + understanding.md §5
|
|
99
|
-
S_GENERALIZE — Pattern extraction + 4-agent scan (skip if --skip-gen) PERSIST: session.json.patterns + understanding.md §6
|
|
100
|
-
S_DISCOVER — Classify hits, create issues (skip if --skip-gen) PERSIST: evidence.ndjson (discovery|decision) + understanding.md §7
|
|
101
|
-
S_RECORD — Design knowledge persistence + final report PERSIST: understanding.md §8 + spec entries
|
|
119
|
+
S_INTAKE -> S_SURVEY -> S_AUDIT -> S_DIVERGE -> S_FIX -> S_VERIFY -> S_GENERALIZE -> S_DISCOVER -> S_RECORD -> END
|
|
102
120
|
</states>
|
|
103
121
|
|
|
104
122
|
<transitions>
|
|
105
|
-
S_INTAKE:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
S_DIVERGE:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
S_VERIFY:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
S_DISCOVER → S_FIX : fixable sibling, !skip_fix → cross_phase_loops++
|
|
130
|
-
S_DISCOVER → S_RECORD : remaining_actionable == 0 OR loops >= max_loops (MUST log each unfixed item)
|
|
131
|
-
|
|
132
|
-
S_RECORD → END DO A_RECORD
|
|
123
|
+
S_INTAKE -> S_INTAKE : -c + session found -> A_RESUME
|
|
124
|
+
S_INTAKE -> S_SURVEY : target resolved -> A_INTAKE
|
|
125
|
+
S_INTAKE -> S_INTAKE : no target -> request_user_input
|
|
126
|
+
|
|
127
|
+
S_SURVEY -> S_AUDIT : complete
|
|
128
|
+
S_AUDIT -> S_DIVERGE : complete
|
|
129
|
+
|
|
130
|
+
S_DIVERGE -> S_FIX : !skip_fix AND actionable findings/ideas
|
|
131
|
+
S_DIVERGE -> S_GENERALIZE : (skip_fix OR no actionable) AND !skip_gen
|
|
132
|
+
S_DIVERGE -> S_RECORD : (skip_fix OR no actionable) AND skip_gen
|
|
133
|
+
|
|
134
|
+
S_FIX -> S_VERIFY : fix implemented
|
|
135
|
+
S_VERIFY -> S_GENERALIZE : verified AND !skip_gen
|
|
136
|
+
S_VERIFY -> S_RECORD : verified AND skip_gen
|
|
137
|
+
S_VERIFY -> S_FIX : needs_rework
|
|
138
|
+
|
|
139
|
+
S_GENERALIZE -> S_DISCOVER : hits found
|
|
140
|
+
S_GENERALIZE -> S_RECORD : no hits
|
|
141
|
+
|
|
142
|
+
S_DISCOVER -> S_AUDIT : new component to audit -> cross_phase_loops++
|
|
143
|
+
S_DISCOVER -> S_FIX : fixable sibling, !skip_fix -> cross_phase_loops++
|
|
144
|
+
S_DISCOVER -> S_RECORD : remaining_actionable == 0 OR loops >= max_loops (log per-item reasons)
|
|
145
|
+
|
|
146
|
+
S_RECORD -> END : complete
|
|
133
147
|
</transitions>
|
|
134
148
|
|
|
135
149
|
<actions>
|
|
136
150
|
|
|
137
151
|
### A_INTAKE
|
|
138
152
|
1. Parse arguments: target, flags, `--dimensions` subset
|
|
139
|
-
2. Generate slug, create
|
|
140
|
-
3.
|
|
153
|
+
2. Generate slug, create SESSION_DIR
|
|
154
|
+
3. `maestro search` + Glob prior sessions + ARCHITECTURE.md + spec load ui/coding
|
|
141
155
|
4. Derive `phase_goals[]` from flags (apply `skip_when`)
|
|
142
|
-
5. Write `session.json` + `understanding.md`
|
|
143
|
-
|
|
144
|
-
|
|
156
|
+
5. Write `session.json` + `understanding.md` section 1, emit Goal Prompt
|
|
157
|
+
|
|
158
|
+
Commit: `"odyssey-ui({slug}): INTAKE -- target parsed"`
|
|
145
159
|
|
|
146
160
|
### A_RESUME
|
|
147
|
-
|
|
161
|
+
Glob latest session -> read `session.json` -> jump to `current_state`.
|
|
148
162
|
|
|
149
163
|
### A_SURVEY
|
|
150
|
-
|
|
151
|
-
2. **Current state analysis**: Styling patterns, layout strategy, component hierarchy
|
|
152
|
-
3. **spawn_agents_on_csv (Wave 1)** — 2 agents: design-tokens-audit, pattern-inventory
|
|
153
|
-
4. Append evidence (phase: "survey"). Update §2. Mark G1 done.
|
|
154
|
-
📌 `git commit -m "odyssey-ui({slug}): SURVEY — 视觉调查"`
|
|
164
|
+
**spawn_agents_on_csv (Wave 1):**
|
|
155
165
|
|
|
156
|
-
|
|
157
|
-
|
|
166
|
+
Write `tasks.csv` with Wave 1 rows:
|
|
167
|
+
```csv
|
|
168
|
+
"survey-tokens","Design Token Audit","Scan {target_files} for CSS variables, design tokens, theme values. Return [{token,usage_count,consistency,file,line}].","survey","","","1","pending","","",""
|
|
169
|
+
"survey-patterns","Pattern Inventory","Catalog component patterns, layout, spacing, typography in {target_files}. Return [{pattern,files,consistency}].","survey","","","1","pending","","",""
|
|
170
|
+
```
|
|
171
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:2, max_runtime_seconds:300, output_csv_path:"wave-1-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
172
|
+
|
|
173
|
+
Merge -> evidence (phase: "survey"). Update section 2. Mark G1 done.
|
|
174
|
+
Commit: `"odyssey-ui({slug}): SURVEY -- visual landscape"`
|
|
158
175
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
176
|
+
### A_AUDIT
|
|
177
|
+
**spawn_agents_on_csv (Wave 2)** -- 6 agents (one per dimension, or `--dimensions` subset):
|
|
178
|
+
|
|
179
|
+
Append Wave 2 rows to `tasks.csv`:
|
|
180
|
+
```csv
|
|
181
|
+
"audit-hierarchy","Visual Hierarchy","Spacing, typography scale, contrast, alignment, whitespace, visual weight","audit","visual-hierarchy","","2","pending","","",""
|
|
182
|
+
"audit-interaction","Interaction States","hover/focus/active/disabled/loading/error/empty/selected states","audit","interaction-states","","2","pending","","",""
|
|
183
|
+
"audit-a11y","Accessibility","WCAG AA contrast, focus mgmt, aria, keyboard nav, screen reader","audit","accessibility","","2","pending","","",""
|
|
184
|
+
"audit-responsive","Responsiveness","Breakpoints, overflow, touch targets >=44px, fluid typography","audit","responsiveness","","2","pending","","",""
|
|
185
|
+
"audit-motion","Micro-interactions","Transitions, animations, feedback, loading states, scroll behavior","audit","micro-interactions","","2","pending","","",""
|
|
186
|
+
"audit-edge","Edge Cases","Long text, empty data, error states, extreme values, i18n, RTL","audit","edge-cases","","2","pending","","",""
|
|
187
|
+
```
|
|
188
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:6, max_runtime_seconds:600, output_csv_path:"wave-2-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
167
189
|
|
|
168
190
|
Each returns `[{title, severity, file, line, description, suggestion, dimension}]`.
|
|
169
|
-
Merge
|
|
170
|
-
|
|
191
|
+
Merge -> evidence (phase: "audit"). Write `audit_result` with dimensions, finding count, severity distribution. Update section 3 (severity matrix). Mark G2 done.
|
|
192
|
+
Commit: `"odyssey-ui({slug}): AUDIT -- 6-dimension review"`
|
|
171
193
|
|
|
172
194
|
### A_DIVERGE
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
**Step 1 — spawn_agents_on_csv (Wave 3)** — 2 parallel agents:
|
|
176
|
-
- **Polish Agent**: Shadows, borders, transitions, hover states, feedback, empty states, skeleton loading, scroll behavior
|
|
177
|
-
- **Delight Agent**: Motion design, progressive disclosure, smart defaults, contextual hints, celebratory feedback, personality in copy
|
|
195
|
+
**spawn_agents_on_csv (Wave 3)** -- 2 agents:
|
|
178
196
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
197
|
+
Append Wave 3 rows to `tasks.csv`:
|
|
198
|
+
```csv
|
|
199
|
+
"diverge-polish","Polish Agent","Missing subtle details: shadows, borders, transitions, hover feedback, empty states, skeleton loading, scroll behavior. Return [{idea,category:'polish',impact,effort,description}].","diverge","","","3","pending","","",""
|
|
200
|
+
"diverge-delight","Delight Agent","What makes this memorable: motion design, progressive disclosure, smart defaults, celebratory feedback, personality. Return [{idea,category:'delight',impact,effort,description}].","diverge","","","3","pending","","",""
|
|
201
|
+
```
|
|
202
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:2, max_runtime_seconds:300, output_csv_path:"wave-3-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
203
|
+
|
|
204
|
+
**Optional CLI delegate** for creative review:
|
|
205
|
+
```bash
|
|
206
|
+
maestro delegate "PURPOSE: Creative UI review for: {target}
|
|
207
|
+
TASK: Identify polish opportunities | Suggest delight moments | Evaluate visual rhythm
|
|
208
|
+
MODE: analysis CONTEXT: @{target_files} | Survey: {token_summary} | Audit: {top_findings}
|
|
209
|
+
EXPECTED: JSON [{idea, category, impact, effort, description}]
|
|
210
|
+
CONSTRAINTS: User-perceptible improvements only
|
|
211
|
+
" --role analyze --mode analysis
|
|
212
|
+
```
|
|
213
|
+
Execute with `run_in_background: true`, then wait for callback.
|
|
182
214
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
📌 `git commit -m "odyssey-ui({slug}): DIVERGE — 发散探索"`
|
|
215
|
+
Consolidate: audit findings + divergent ideas -> prioritized improvement list (impact/effort matrix). Write `diverge_result`. Append evidence (phase: "diverge"). Update section 4. Mark G3 done.
|
|
216
|
+
Commit: `"odyssey-ui({slug}): DIVERGE -- creative exploration"`
|
|
186
217
|
|
|
187
218
|
### A_FIX
|
|
188
219
|
Skip if `--skip-fix`.
|
|
189
|
-
1.
|
|
190
|
-
2. Each fix
|
|
191
|
-
3.
|
|
192
|
-
|
|
220
|
+
1. **Exhaustive fix**: ALL findings/ideas by priority tier (critical->high->medium->low + high-impact ideas). After each tier, re-review -- new findings append.
|
|
221
|
+
2. Each fix -> evidence (phase: "fix")
|
|
222
|
+
3. Normal: request_user_input per-fix. `-y`: auto-proceed, record `deferred`.
|
|
223
|
+
|
|
224
|
+
Commit: `"odyssey-ui({slug}): FIX -- improvements applied"`
|
|
193
225
|
|
|
194
226
|
### A_VERIFY
|
|
195
227
|
1. Run tests (lint, unit, visual regression)
|
|
196
|
-
2.
|
|
197
|
-
3. `needs_rework`
|
|
198
|
-
|
|
228
|
+
2. CLI-assisted: `maestro delegate --role review` -- visual correctness, interaction states, accessibility, responsive
|
|
229
|
+
3. `needs_rework` -> S_FIX. `verified` -> mark G4 done. Update section 5, write `confirmation`.
|
|
230
|
+
|
|
231
|
+
Commit: `"odyssey-ui({slug}): VERIFY -- visual verification"`
|
|
199
232
|
|
|
200
233
|
### A_GENERALIZE
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
234
|
+
Skip if `--skip-generalize`. Pattern source: audit findings + diverge ideas (severity >= medium OR impact = high).
|
|
235
|
+
|
|
236
|
+
**Wave 4 -- 4-agent scan (spawn_agents_on_csv):**
|
|
237
|
+
|
|
238
|
+
Append Wave 4 rows to `tasks.csv`:
|
|
239
|
+
```csv
|
|
240
|
+
"gen-syntax","Syntax Grep","Grep CSS/style patterns matching '${signatures}' across project","generalization","syntax","","4","pending","","",""
|
|
241
|
+
"gen-semantic","Semantic Scan","Find components with same interaction pattern but missing states","generalization","semantic","","4","pending","","",""
|
|
242
|
+
"gen-structural","Structural Match","Find structurally similar components, check for same issues","generalization","structural","","4","pending","","",""
|
|
243
|
+
"gen-historical","Historical Grep","git log -S '${signature}' for UI pattern history","generalization","historical","","4","pending","","",""
|
|
244
|
+
```
|
|
245
|
+
`spawn_agents_on_csv({ csv_path:"tasks.csv", max_concurrency:4, max_runtime_seconds:600, output_csv_path:"wave-4-results.csv", output_schema:SHARED_OUTPUT_SCHEMA })`
|
|
246
|
+
|
|
247
|
+
Cross-layer dedup + iterative deepening per base. Update section 6. Mark G5 done.
|
|
248
|
+
Commit: `"odyssey-ui({slug}): GENERALIZE -- pattern scan"`
|
|
249
|
+
|
|
250
|
+
### A_DISCOVER, A_RECORD
|
|
251
|
+
Base shared_actions. UI overrides:
|
|
252
|
+
- **A_DISCOVER** routing per base triage logic
|
|
253
|
+
- **A_RECORD** learnings per Knowledge Persistence table
|
|
254
|
+
|
|
255
|
+
**Completion summary:**
|
|
215
256
|
```
|
|
216
257
|
--- UI ODYSSEY COMPLETE ---
|
|
217
|
-
Target:
|
|
218
|
-
Findings:
|
|
219
|
-
Fix:
|
|
220
|
-
Patterns:
|
|
221
|
-
|
|
222
|
-
|
|
258
|
+
Target: {target} | Dimensions: {dimensions_audited}
|
|
259
|
+
Findings: {C}C {H}H {M}M {L}L | Diverge: {improvements} polish + {creative} delight
|
|
260
|
+
Fix: {fixed_count} applied, verified={yes|skipped}
|
|
261
|
+
Patterns: {extracted} ({by_layer})
|
|
262
|
+
Scan hits: {total} ({cross_layer} cross-layer)
|
|
263
|
+
Issues: {N} created
|
|
264
|
+
Decisions: {N} resolved, {M} pending, {K} deferred
|
|
265
|
+
Learnings: {N} entries
|
|
266
|
+
Self-iter: {N} rounds
|
|
267
|
+
Goals: {done}/{total} ({skipped} skipped)
|
|
223
268
|
---
|
|
224
269
|
```
|
|
225
|
-
📌 `git commit -m "odyssey-ui({slug}): RECORD — 会话总结"`
|
|
226
270
|
|
|
227
271
|
</actions>
|
|
228
272
|
|
|
229
273
|
<appendix>
|
|
230
274
|
|
|
231
|
-
###
|
|
232
|
-
**⚠️ 仅在 A_INTAKE 完成后显示一次。A_RECORD 完成时禁止重新显示。**
|
|
233
|
-
|
|
234
|
-
```
|
|
235
|
-
📋 UI Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
|
|
236
|
-
|
|
237
|
-
/goal 完成以下目标:
|
|
238
|
-
{for each G in phase_goals where status != "skipped":}
|
|
239
|
-
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
240
|
-
{end for}
|
|
241
|
-
穷尽迭代:直到 audit + diverge findings 均已处理(fix/issue/decision)
|
|
242
|
-
且 phase_goals_all_done=true 才停。修复按 impact×severity 逐轮迭代。
|
|
243
|
-
每轮修复后重审修改区域,新发现追加继续修。
|
|
244
|
-
遇到 phase=decision 的 pending 必须 request_user_input。不允许"只报告不处理"。
|
|
245
|
-
```
|
|
275
|
+
### `-y` ui-specific points
|
|
246
276
|
|
|
247
|
-
### `-y` Auto-Confirm (5 decision points)
|
|
248
277
|
| Decision Point | Normal | `-y` |
|
|
249
278
|
|----------------|--------|------|
|
|
250
279
|
| A_FIX improvement confirmation | request_user_input | auto-proceed, `deferred` |
|
|
251
|
-
| A_DISCOVER hit routing | request_user_input | auto create issue, `deferred` |
|
|
252
|
-
| A_DISCOVER ambiguous items | request_user_input | all `deferred` |
|
|
253
|
-
| A_RECORD pending decisions | request_user_input | skip, show deferred count |
|
|
254
|
-
| A_RECORD goal audit | request_user_input | auto accept |
|
|
255
280
|
|
|
256
|
-
|
|
281
|
+
### Goal Prompt convergence rules
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
Exhaustive iteration: process all audit + diverge findings (fix/issue/decision)
|
|
285
|
+
until phase_goals_all_done=true. Fix by impact x severity per tier.
|
|
286
|
+
Re-review modified areas after each fix round -- new findings appended.
|
|
287
|
+
phase=decision pending items MUST request_user_input. No report-only items.
|
|
288
|
+
```
|
|
257
289
|
|
|
258
290
|
</appendix>
|
|
259
291
|
|
|
@@ -273,15 +305,15 @@ Learnings: {N} entries | Self-iter: {N} rounds | Goals: {done}/{total} ({skipped
|
|
|
273
305
|
- [ ] Improvements implemented and verified (unless --skip-fix)
|
|
274
306
|
- [ ] Multi-layer generalization + discoveries classified (unless --skip-generalize)
|
|
275
307
|
- [ ] Every unfixed finding has individual classification and reason
|
|
276
|
-
- [ ] understanding.md
|
|
308
|
+
- [ ] understanding.md section 8 finalized; phase_goals G1-G7 tracked; `-y` no blocking prompts
|
|
277
309
|
</success_criteria>
|
|
278
310
|
|
|
279
311
|
<next_step_routing>
|
|
280
|
-
| Condition | Next
|
|
281
|
-
|
|
312
|
+
| Condition | Next |
|
|
313
|
+
|-----------|------|
|
|
282
314
|
| Finding needs deeper debug | `$odyssey-debug "<finding>"` |
|
|
283
315
|
| Issues created from discoveries | `/manage-issue list --source ui-odyssey` |
|
|
284
316
|
| Design pattern worth documenting | `/spec-add ui "..."` |
|
|
285
|
-
|
|
|
317
|
+
| Full review of changes | `$odyssey-review-test-fix <changed-files>` |
|
|
286
318
|
| Sibling components to polish | `$odyssey-ui "<sibling>"` |
|
|
287
319
|
</next_step_routing>
|
|
@@ -149,9 +149,9 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
|
149
149
|
3. **CSV is Source of Truth**: Master tasks.csv holds all state
|
|
150
150
|
4. **Context Propagation**: prev_context built from master CSV, not from memory
|
|
151
151
|
5. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
|
|
152
|
-
6. **Skip on Failure**: If all dimension agents failed, skip aggregation
|
|
152
|
+
6. **Skip on Failure**: If all dimension agents failed, skip aggregation and flag all downstream outputs as LOW CONFIDENCE. Record `degradation_event` in discoveries.ndjson. **Note**: timed-out workers that report `completed` with empty findings are treated as effectively failed for degradation purposes if `severity_counts` is all-zero AND `findings` is empty. This is a defined degradation path, not a violation of invariant 2.
|
|
153
153
|
7. **Cleanup Temp Files**: Remove wave-{N}.csv and wave-{N}-results.csv after results are merged
|
|
154
|
-
8. **
|
|
154
|
+
8. **Pipeline continuity**: Continuous execution until all waves complete. When invariant 6 (skip on failure) activates, the pipeline continues in degraded mode.
|
|
155
155
|
</invariants>
|
|
156
156
|
|
|
157
157
|
<execution>
|
|
@@ -275,9 +275,9 @@ CONSTRAINTS:
|
|
|
275
275
|
|
|
276
276
|
#### Wave 2: Aggregation + Deep-Dive
|
|
277
277
|
|
|
278
|
-
Filter master `tasks.csv` for `wave == 2 AND status == pending`. If all wave 1 tasks failed, skip aggregation.
|
|
278
|
+
Filter master `tasks.csv` for `wave == 2 AND status == pending`. If all wave 1 tasks failed, skip aggregation (invariant 6).
|
|
279
279
|
|
|
280
|
-
Build `prev_context` from wave 1 findings (format: `[Task N: Title] summary...` per task).
|
|
280
|
+
Build `prev_context` from wave 1 findings (format: `[Task N: Title] summary...` per task). **Failed-dependency handling**: exclude failed task IDs from prev_context. If SOME wave 1 tasks failed, append gap_note listing missing dimensions so the aggregation agent knows its coverage is incomplete.
|
|
281
281
|
Write `wave-2.csv` with `prev_context` column → execute `spawn_agents_on_csv` with `REVIEW_AGGREGATION_INSTRUCTION` (same termination contract; output_schema returns `result_status` enum [completed|failed], findings, plus `verdict` enum [PASS|WARN|BLOCK]) → merge results into master `tasks.csv` (map `result_status` → master `status` column) → delete both `wave-2.csv` and `wave-2-results.csv`.
|
|
282
282
|
|
|
283
283
|
### Phase 3: Results Aggregation
|
|
@@ -344,7 +344,14 @@ Generate `context.md`:
|
|
|
344
344
|
| Medium findings > 5 | WARN |
|
|
345
345
|
| Otherwise | PASS |
|
|
346
346
|
|
|
347
|
-
**
|
|
347
|
+
**Side-effect confirmation gate** (skip when `-y/--yes`):
|
|
348
|
+
Before writing to external stores, present a summary to the user via `request_user_input`:
|
|
349
|
+
- Issues to create (count + severity + titles)
|
|
350
|
+
- Phase index update (artifact dir)
|
|
351
|
+
- Artifact registration in state.json
|
|
352
|
+
The user can approve all, selectively exclude, or skip entirely.
|
|
353
|
+
|
|
354
|
+
**Issue creation** (approved items only) by level threshold:
|
|
348
355
|
|
|
349
356
|
| Level | Create Issues For |
|
|
350
357
|
|-------|------------------|
|
|
@@ -354,11 +361,11 @@ Generate `context.md`:
|
|
|
354
361
|
|
|
355
362
|
**Spec conflict check**: If any finding directly contradicts a loaded spec entry (code behavior ≠ spec rule), suggest `maestro spec conflict mark <file> <line> --note "<evidence>"` on the spec entry. Code is the single source of truth. Log spec conflicts in review.json as `spec_conflicts[]`.
|
|
356
363
|
|
|
357
|
-
**Phase index update
|
|
364
|
+
**Phase index update** (after confirmation): Update `{artifact_dir}/index.json` with review status.
|
|
358
365
|
|
|
359
|
-
**Register artifact
|
|
366
|
+
**Register artifact** (after confirmation): Append to `state.json.artifacts[]` with `type: "review"`, `id: REV-NNN`, `path: "scratch/{YYYYMMDD}-review-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch, not shared with plan.
|
|
360
367
|
|
|
361
|
-
Display summary.
|
|
368
|
+
Display summary. **Next-step suggestion** (suggest only, NEVER auto-execute): if spec conflicts detected, suggest `maestro spec conflict list` → `$manage-knowledge-audit --scope spec`. The user decides whether to proceed.
|
|
362
369
|
|
|
363
370
|
### Shared Discovery Board Protocol
|
|
364
371
|
|
|
@@ -410,8 +417,8 @@ echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"s
|
|
|
410
417
|
- [ ] Aggregation + deep-dive executed (wave 2)
|
|
411
418
|
- [ ] review.json produced with verdict and severity distribution
|
|
412
419
|
- [ ] context.md produced with full review report
|
|
413
|
-
- [ ] Issues
|
|
414
|
-
- [ ] Phase index.json updated with review status
|
|
420
|
+
- [ ] Issues created for qualifying severity findings (after user confirmation in interactive mode; auto in -y mode)
|
|
421
|
+
- [ ] Phase index.json updated with review status (after user confirmation in interactive mode; auto in -y mode)
|
|
415
422
|
- [ ] discoveries.ndjson append-only throughout
|
|
416
423
|
- [ ] Ralph-invoked: `maestro ralph complete <idx> --status {STATUS}` called with correct verdict
|
|
417
424
|
</success_criteria>
|
|
@@ -25,15 +25,12 @@
|
|
|
25
25
|
|
|
26
26
|
2. **Explore domain** (use CLI analysis tools):
|
|
27
27
|
```
|
|
28
|
-
|
|
29
|
-
cmd: `maestro delegate "PURPOSE: Research domain for {requirement}
|
|
28
|
+
shell_exec(`maestro delegate "PURPOSE: Research domain for {requirement}
|
|
30
29
|
TASK: • Identify problem statement • Define target users • Extract constraints • Map integration points
|
|
31
30
|
CONTEXT: @**/* | Memory: {requirement}
|
|
32
31
|
EXPECTED: Structured research context with problem/users/domain/constraints
|
|
33
|
-
CONSTRAINTS: Read-only analysis" --role analyze --mode analysis --rule analysis-trace-code-execution`,
|
|
34
|
-
|
|
35
|
-
})
|
|
36
|
-
// ⚠️ If session_id returned → poll write_stdin until completion (see @~/.maestro/workflows/delegate-protocol.codex.md)
|
|
32
|
+
CONSTRAINTS: Read-only analysis" --role analyze --mode analysis --rule analysis-trace-code-execution`, { timeout: 30000 })
|
|
33
|
+
// Execution mapping: @~/.maestro/workflows/shell-exec-protocol.md
|
|
37
34
|
```
|
|
38
35
|
|
|
39
36
|
3. **Extract structured context**:
|
|
@@ -296,15 +293,12 @@
|
|
|
296
293
|
|
|
297
294
|
2. **Explore codebase** (use CLI analysis tools):
|
|
298
295
|
```
|
|
299
|
-
|
|
300
|
-
cmd: `maestro delegate "PURPOSE: Explore codebase for {requirement}
|
|
296
|
+
shell_exec(`maestro delegate "PURPOSE: Explore codebase for {requirement}
|
|
301
297
|
TASK: • Identify relevant files • Find existing patterns • Locate integration points
|
|
302
298
|
CONTEXT: @**/* | Memory: {requirement}
|
|
303
299
|
EXPECTED: Exploration findings with file paths and patterns
|
|
304
|
-
CONSTRAINTS: Read-only analysis" --role explore --mode analysis --rule analysis-trace-code-execution`,
|
|
305
|
-
|
|
306
|
-
})
|
|
307
|
-
// ⚠️ If session_id returned → poll write_stdin until completion (see @~/.maestro/workflows/delegate-protocol.codex.md)
|
|
300
|
+
CONSTRAINTS: Read-only analysis" --role explore --mode analysis --rule analysis-trace-code-execution`, { timeout: 30000 })
|
|
301
|
+
// Execution mapping: @~/.maestro/workflows/shell-exec-protocol.md
|
|
308
302
|
```
|
|
309
303
|
|
|
310
304
|
3. **Generate implementation plan**:
|