maestro-flow 0.3.18 → 0.3.19
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.
|
@@ -28,7 +28,7 @@ $ARGUMENTS — user intent text, or special flags.
|
|
|
28
28
|
- `--dry-run` — Display planned chain without executing
|
|
29
29
|
- `--chain <name>` — Force specific chain (skips intent classification)
|
|
30
30
|
|
|
31
|
-
**Session state**: `.workflow/.maestro
|
|
31
|
+
**Session state**: `.workflow/.maestro/{session-id}/`
|
|
32
32
|
**Core output**: `tasks.csv` (master) + `wave-{N}-results.csv` (per wave) + `context.md` (report)
|
|
33
33
|
</context>
|
|
34
34
|
|
|
@@ -94,7 +94,7 @@ After each barrier skill completes, read its artifacts and update `state.context
|
|
|
94
94
|
|
|
95
95
|
### Phase 1: Resolve Intent and Chain
|
|
96
96
|
|
|
97
|
-
**`--continue`**: Glob `.workflow/.maestro
|
|
97
|
+
**`--continue`**: Glob `.workflow/.maestro/maestro-*/status.json` sorted desc; load most recent; resume from first pending wave.
|
|
98
98
|
|
|
99
99
|
**Fresh mode**:
|
|
100
100
|
1. Read `.workflow/state.json` for project context (derive current phase from artifact registry, `workflow_name`)
|
|
@@ -102,16 +102,27 @@ After each barrier skill completes, read its artifacts and update `state.context
|
|
|
102
102
|
3. Otherwise classify intent via keyword heuristics (see chain_map)
|
|
103
103
|
4. No match + not AUTO_YES → one clarifying question via `AskUserQuestion`
|
|
104
104
|
5. Resolve chain's skill list
|
|
105
|
-
6. Create session dir `.workflow/.maestro
|
|
105
|
+
6. Create session dir `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/` and write `status.json`:
|
|
106
106
|
|
|
107
107
|
```json
|
|
108
108
|
{
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
109
|
+
"session_id": "maestro-{YYYYMMDD-HHMMSS}",
|
|
110
|
+
"created_at": "ISO",
|
|
111
|
+
"intent": "...",
|
|
112
|
+
"task_type": "...",
|
|
113
|
+
"chain_name": "...",
|
|
114
|
+
"phase": null,
|
|
115
|
+
"auto_mode": false,
|
|
116
|
+
"exec_mode": "auto",
|
|
117
|
+
"cli_tool": "codex",
|
|
118
|
+
"gemini_session_id": null,
|
|
119
|
+
"step_analyses": [],
|
|
120
|
+
"context": { "plan_dir": null, "analysis_dir": null,
|
|
112
121
|
"brainstorm_dir": null, "spec_session_id": null, "gaps": null },
|
|
113
122
|
"waves": [],
|
|
114
|
-
"steps": [{ "
|
|
123
|
+
"steps": [{ "index": 0, "skill": "...", "args": "", "engine": null, "status": "pending", "started_at": null, "completed_at": null, "wave_n": null }],
|
|
124
|
+
"current_step": 0,
|
|
125
|
+
"status": "running"
|
|
115
126
|
}
|
|
116
127
|
```
|
|
117
128
|
|
|
@@ -135,16 +146,16 @@ After each barrier skill completes, read its artifacts and update `state.context
|
|
|
135
146
|
output_schema: RESULT_SCHEMA
|
|
136
147
|
})
|
|
137
148
|
```
|
|
138
|
-
4. **Read results**: Update each step's `status`, `
|
|
149
|
+
4. **Read results**: Update each step's `status`, `wave_n` from results CSV
|
|
139
150
|
5. **Barrier check**: If wave was a barrier skill, run barrier analysis logic (read artifacts, update context)
|
|
140
|
-
6. **Persist**: Append wave to `state.waves[]`, write `
|
|
151
|
+
6. **Persist**: Append wave to `state.waves[]`, write `status.json`
|
|
141
152
|
7. **Abort on failure**: If any result `status === 'failed'` → mark remaining steps `skipped`, set `state.status = 'aborted'`, break
|
|
142
153
|
|
|
143
154
|
### Skill Call Assembly
|
|
144
155
|
|
|
145
156
|
**Barrier skills**: `maestro-analyze`, `maestro-plan`, `maestro-brainstorm`, `maestro-spec-generate`, `maestro-execute`
|
|
146
157
|
|
|
147
|
-
**Auto-yes flag map** (appended when `
|
|
158
|
+
**Auto-yes flag map** (appended when `status.auto_mode` is true):
|
|
148
159
|
|
|
149
160
|
| Skill | Flag |
|
|
150
161
|
|-------|------|
|
|
@@ -169,7 +180,7 @@ After each barrier skill completes, read its artifacts and update `state.context
|
|
|
169
180
|
{topic}
|
|
170
181
|
|
|
171
182
|
限制:
|
|
172
|
-
- 不要修改 .workflow/.maestro
|
|
183
|
+
- 不要修改 .workflow/.maestro/ 下的 status 文件
|
|
173
184
|
- skill 内部有自己的 session 管理,按 skill SKILL.md 执行即可
|
|
174
185
|
|
|
175
186
|
最后必须调用 `report_agent_job_result`,返回 JSON:
|
|
@@ -195,7 +206,7 @@ WAVE RESULTS:
|
|
|
195
206
|
[W3] $maestro-execute → ✓ 12/12 tasks done
|
|
196
207
|
[W4] $maestro-verify → ✓ all criteria met
|
|
197
208
|
|
|
198
|
-
State: .workflow/.maestro
|
|
209
|
+
State: .workflow/.maestro/<sessionId>/status.json
|
|
199
210
|
Resume: $maestro --continue
|
|
200
211
|
```
|
|
201
212
|
</execution>
|
|
@@ -236,7 +247,7 @@ Accumulated across all waves. Updated after each wave completes.
|
|
|
236
247
|
|
|
237
248
|
<success_criteria>
|
|
238
249
|
- [ ] Intent classified and chain resolved (keyword heuristics or `--chain`)
|
|
239
|
-
- [ ] Session dir initialized with `
|
|
250
|
+
- [ ] Session dir initialized with `status.json` before first wave
|
|
240
251
|
- [ ] Every skill invocation goes through `spawn_agents_on_csv` — none executed in coordinator
|
|
241
252
|
- [ ] Barrier skills execute solo in their wave; coordinator only reads artifacts afterward
|
|
242
253
|
- [ ] Non-barrier skills grouped into parallel waves where possible
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@ Extract from `$ARGUMENTS`:
|
|
|
12
12
|
- Flags: `-y`/`--yes` (autoYes), `-c`/`--continue` (resumeMode), `--dry-run`, `--chain <name>`, `--tool <name>` (default: codex)
|
|
13
13
|
- `intent` = remaining text after flag removal
|
|
14
14
|
|
|
15
|
-
**If resumeMode:** Load latest `.workflow/.maestro
|
|
15
|
+
**If resumeMode:** Load latest `.workflow/.maestro/*/status.json`, set `current_step` to first non-completed step, jump to **Step 6**.
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -194,7 +194,7 @@ MAESTRO-COORDINATE: {chain_name} (dry run)
|
|
|
194
194
|
|
|
195
195
|
## Step 5: Setup Session
|
|
196
196
|
|
|
197
|
-
Create session directory `.workflow/.maestro
|
|
197
|
+
Create session directory `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/`.
|
|
198
198
|
|
|
199
199
|
Initialize `status.json` with: session_id, intent, task_type, chain_name, tool, auto_mode, phase, current_step=0, gemini_session_id=null, step_analyses=[], steps[] (each: index, skill, args, status=pending, exec_id=null, analysis=null).
|
|
200
200
|
|