maestro-flow 0.4.13 → 0.4.15
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/maestro/SKILL.md +11 -31
- package/.agents/skills/maestro-brainstorm/SKILL.md +2 -2
- package/.agents/skills/maestro-ralph/SKILL.md +58 -51
- package/.agents/skills/maestro-ralph-execute/SKILL.md +48 -56
- package/.agents/skills/maestro-verify/SKILL.md +1 -1
- package/.agy/skills/maestro/SKILL.md +11 -31
- package/.agy/skills/maestro-brainstorm/SKILL.md +2 -2
- package/.agy/skills/maestro-ralph/SKILL.md +58 -51
- package/.agy/skills/maestro-ralph-execute/SKILL.md +48 -56
- package/.agy/skills/maestro-verify/SKILL.md +1 -1
- package/.claude/commands/maestro-brainstorm.md +2 -2
- package/.claude/commands/maestro-ralph-execute.md +48 -56
- package/.claude/commands/maestro-ralph.md +58 -51
- package/.claude/commands/maestro-verify.md +1 -1
- package/.claude/commands/maestro.md +11 -31
- package/dist/src/commands/hooks.d.ts +30 -3
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +138 -11
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +49 -4
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +163 -53
- 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 +45 -10
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/uninstall.d.ts.map +1 -1
- package/dist/src/commands/uninstall.js +25 -38
- package/dist/src/commands/uninstall.js.map +1 -1
- package/dist/src/core/manifest.d.ts +43 -0
- package/dist/src/core/manifest.d.ts.map +1 -1
- package/dist/src/core/manifest.js +37 -1
- package/dist/src/core/manifest.js.map +1 -1
- package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ExecutionView.js +13 -5
- package/dist/src/tui/install-ui/ExecutionView.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +87 -45
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.js +12 -28
- package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -1
- package/package.json +1 -1
- package/workflows/analyze.md +6 -6
- package/workflows/brainstorm.md +5 -5
- package/workflows/debug.md +4 -4
- package/workflows/harvest.md +1 -1
- package/workflows/init.md +1 -1
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +4 -4
- package/workflows/refactor.md +3 -3
- package/workflows/retrospective.md +3 -3
- package/workflows/ui-design.md +1 -1
- package/workflows/ui-style.md +1 -1
- package/workflows/verify.md +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro
|
|
3
3
|
description: Auto-route intent to optimal command chain
|
|
4
|
-
argument-hint: <intent> [-y] [-c] [--dry-run] [--
|
|
4
|
+
argument-hint: <intent> [-y] [-c] [--dry-run] [--super]
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- ask_question
|
|
7
7
|
- define_subagent
|
|
@@ -41,18 +41,16 @@ $ARGUMENTS — user intent text, or special keywords.
|
|
|
41
41
|
- `-y` / `--yes` — Auto mode: skip clarification, skip confirmation, auto-skip on errors
|
|
42
42
|
- `-c` / `--continue` — Resume previous session
|
|
43
43
|
- `--dry-run` — Show chain without executing
|
|
44
|
-
- `--exec <mode>` — `auto` (default), `cli`, `internal`
|
|
45
|
-
- `--tool <name>` — CLI tool for delegates (default: claude)
|
|
46
44
|
- `--super` — Read and follow `maestro-super.md`
|
|
47
45
|
</context>
|
|
48
46
|
|
|
49
47
|
<invariants>
|
|
50
48
|
1. **All chains dispatch via maestro-ralph-execute** — maestro never executes steps directly
|
|
51
49
|
2. **Session before execution** — status.json created before any step runs
|
|
52
|
-
3. **Auto
|
|
50
|
+
3. **Auto flag pass-through** — 仅当用户传入 `-y` 时透传 `-y` 到 skill args
|
|
53
51
|
4. **Decomposition contract shared with maestro-ralph** — broad/lifecycle intents run S_DECOMPOSE producing the SAME additive block (`boundary_contract`, `execution_criteria`, `task_decomposition`)。Reference maestro-ralph `A_DECOMPOSE_TASKS`
|
|
54
52
|
5. **status.json 唯一真源** — 不生成 `goal-checklist.md` 或外部清单
|
|
55
|
-
6.
|
|
53
|
+
6. **执行步骤统一 Read .md 内联** — chain 内每个执行 step 解析 `command_scope`/`command_path`(全局优先 `~/.claude/commands/{name}.md`,fallback 项目),由 ralph-execute `view_file({command_path})` 内联执行;CLI 仅在 decision 节点做只读分析
|
|
56
54
|
7. **Topology awareness** — chain catalog 含 brainstorm / blueprint / analyze-macro(text) / analyze(numeric phase) / roadmap / plan(三路径) / execute / verify / ...;scope_verdict 路由由 ralph 在 `post-analyze-scope` 决定
|
|
57
55
|
8. **D-007 milestone 反查** — 数字 phase 步骤的 `milestone_id` 由 `state.json.milestones[].phase_slugs` 反查得出
|
|
58
56
|
9. **每个 step 必须 `completion_confirmed: true`** — 基于 `--- COMPLETION STATUS ---` 的 `STATUS: DONE`
|
|
@@ -142,7 +140,7 @@ S_FALLBACK:
|
|
|
142
140
|
- 数字 phase 上下文 → `analyze {phase}` → `plan {phase}` → `execute {phase}` → `verify {phase}` → quality pipeline
|
|
143
141
|
- 已有 analyze artifact 想直达执行 → `plan --from analyze:{ANL_ID}` → execute → verify
|
|
144
142
|
- 已有 blueprint artifact → `plan --from blueprint:{BLP_ID}` → execute → verify
|
|
145
|
-
4.
|
|
143
|
+
4. 执行 step 解析 `command_scope` + `command_path`(全局优先 fallback 项目);写入 `step.stage` / `step.scope` / `step.source_artifact_ref`(如 `--from` 注入时)。decision 节点通过 `step.decision` 字段标识
|
|
146
144
|
|
|
147
145
|
### A_CLARIFY
|
|
148
146
|
|
|
@@ -158,9 +156,9 @@ S_FALLBACK:
|
|
|
158
156
|
3. 派生 `execution_criteria` + `task_decomposition`(每个 sub-goal 含 `done_when` + `evidence` + `lifecycle` + `completion_confirmed: false`)
|
|
159
157
|
4. **status.json 唯一真源**:写入 `boundary_contract` / `execution_criteria` / `task_decomposition`;不生成 markdown 清单
|
|
160
158
|
5. 在最后一个 evidence-producing stage(verify/review/test)之后、`milestone-complete` 之前追加 `decision:post-goal-audit`。ralph-execute 在该节点按需动态生长 `steps[]`
|
|
161
|
-
6. **输出 `/goal`
|
|
159
|
+
6. **输出 `/goal` 绑定提示词(不阻塞,用户可在执行过程中随时输入):**
|
|
162
160
|
```
|
|
163
|
-
📋
|
|
161
|
+
📋 任务分解完成。可随时复制下面一行设定目标(执行过程中输入即可):
|
|
164
162
|
|
|
165
163
|
/goal 目标达成条件: {session_dir}/status.json 中 task_decomposition[*].status == "done" 且 task_decomposition[*].completion_confirmed == true 且 steps[*].completion_confirmed == true。未达成时:阅读 {session_dir}/status.json 取得 execution_criteria / boundary_contract / task_decomposition / steps 作为行动手册,调用 /maestro-ralph continue 推进;严禁手动执行 skill 或越界修改 status.json.boundary_contract.out_of_scope。
|
|
166
164
|
```
|
|
@@ -174,13 +172,14 @@ S_FALLBACK:
|
|
|
174
172
|
"session_id", "source": "maestro", "intent", "task_type", "chain_name",
|
|
175
173
|
"phase", "phase_is_new": false, "milestone": "",
|
|
176
174
|
"scope_verdict": null, "analyze_macro_id": null, "blueprint_id": null,
|
|
177
|
-
"auto_mode": false, "
|
|
175
|
+
"auto_mode": false, "cli_tool": "claude", // cli_tool: decision 节点 delegate 评估时的 CLI 工具
|
|
178
176
|
"context": { "scratch_dir": null, "plan_dir": null, "analysis_dir": null,
|
|
179
177
|
"brainstorm_dir": null, "blueprint_dir": null, "issue_id": null },
|
|
180
178
|
"steps": [{
|
|
181
|
-
"index": 0,
|
|
179
|
+
"index": 0,
|
|
182
180
|
"skill": "", "args": "",
|
|
183
181
|
"stage": "", "scope": null,
|
|
182
|
+
"decision": null, // 非 null → decision 节点;null → 执行节点
|
|
184
183
|
"command_scope": "global|project|missing|null",
|
|
185
184
|
"command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
|
|
186
185
|
"milestone_id": null, "source_artifact_ref": null,
|
|
@@ -204,25 +203,6 @@ S_FALLBACK:
|
|
|
204
203
|
|
|
205
204
|
<appendix>
|
|
206
205
|
|
|
207
|
-
### Auto-Yes Flag Map
|
|
208
|
-
|
|
209
|
-
| Command | Auto Flag | Effect |
|
|
210
|
-
|---------|-----------|--------|
|
|
211
|
-
| maestro-init | `-y` | Skip interactive questioning |
|
|
212
|
-
| maestro-analyze | `-y` | Skip scoping, auto-deepen |
|
|
213
|
-
| maestro-brainstorm | `-y` | Skip questions, use defaults |
|
|
214
|
-
| maestro-blueprint | `-y` | Skip interview, use recommended defaults |
|
|
215
|
-
| maestro-roadmap | `-y` | Skip questions (create/revise/review) |
|
|
216
|
-
| maestro-impeccable | `-y` | Auto-select design variant + skip confirmations |
|
|
217
|
-
| maestro-plan | `-y` | Skip confirmations and clarification |
|
|
218
|
-
| maestro-execute | `-y` | Skip confirmations, blocked auto-continue |
|
|
219
|
-
| quality-auto-test | `-y` | Skip plan confirmation |
|
|
220
|
-
| quality-test | `-y --auto-fix` | Auto-trigger gap-fix loop |
|
|
221
|
-
| quality-retrospective | `-y` | Accept all routing recommendations |
|
|
222
|
-
| maestro-milestone-complete | `-y` | Skip knowledge promotion |
|
|
223
|
-
|
|
224
|
-
Unlisted commands have no auto flags.
|
|
225
|
-
|
|
226
206
|
### Error Codes
|
|
227
207
|
|
|
228
208
|
| Code | Severity | Description | Recovery |
|
|
@@ -247,8 +227,8 @@ Unlisted commands have no auto flags.
|
|
|
247
227
|
- [ ] status.json 唯一真源;无 markdown 清单;post-goal-audit 节点在 decomposed 时追加;/goal 提示词以 status.json 为判据
|
|
248
228
|
- [ ] Chain selected and confirmed (or auto-confirmed)
|
|
249
229
|
- [ ] Session dir created with status.json before execution; decomposition fields additive-only
|
|
250
|
-
- [ ]
|
|
251
|
-
- [ ]
|
|
230
|
+
- [ ] 执行 step 含 `command_scope` + `command_path` + `completion_confirmed` 字段;decision step 通过 `step.decision` 字段标识
|
|
231
|
+
- [ ] 用户传入 `-y` 时透传到 skill args
|
|
252
232
|
- [ ] All chains dispatched via maestro-ralph-execute
|
|
253
233
|
- [ ] Low-complexity intents routed to maestro-quick
|
|
254
234
|
- [ ] (super) Requirements validated before roadmap
|
|
@@ -14,7 +14,7 @@ allowed-tools:
|
|
|
14
14
|
- write_to_file
|
|
15
15
|
---
|
|
16
16
|
<purpose>
|
|
17
|
-
Unified brainstorming combining interactive framework generation, multi-role parallel analysis, cross-role review, and resolution writeback. Two modes: Auto (full pipeline: guidance-specification → parallel {role}/ multi-file analysis → cross-role-reviewer compares Decision Digests for conflicts/gaps/synergies → user-confirmed resolutions patched into role files + logged in guidance §12) and Single Role (individual role analysis for an existing session). Outputs structured artifacts in `.workflow/scratch/brainstorm-{slug}
|
|
17
|
+
Unified brainstorming combining interactive framework generation, multi-role parallel analysis, cross-role review, and resolution writeback. Two modes: Auto (full pipeline: guidance-specification → parallel {role}/ multi-file analysis → cross-role-reviewer compares Decision Digests for conflicts/gaps/synergies → user-confirmed resolutions patched into role files + logged in guidance §12) and Single Role (individual role analysis for an existing session). Outputs structured artifacts in `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/` ready for downstream planning (roadmap / analyze / blueprint consume `guidance-specification.md`).
|
|
18
18
|
</purpose>
|
|
19
19
|
|
|
20
20
|
<required_reading>
|
|
@@ -32,7 +32,7 @@ $ARGUMENTS -- topic text for auto mode, or role name for single role mode.
|
|
|
32
32
|
|
|
33
33
|
**Auto mode**: topic text (e.g., "Build real-time collaboration platform") triggers full pipeline.
|
|
34
34
|
**Single role mode**: valid role name (e.g., "system-architect") runs one role analysis.
|
|
35
|
-
**All output** goes to `.workflow/scratch/brainstorm-{slug}
|
|
35
|
+
**All output** goes to `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/` (orchestrator MUST resolve this to an absolute path before passing to sub-agents).
|
|
36
36
|
**Artifact registration**: On completion, registers artifact (type=brainstorm) in state.json.
|
|
37
37
|
**Output boundary**: ALL file writes MUST target `{output_dir}/` or `.workflow/state.json` only. NEVER modify source code or files outside these paths.
|
|
38
38
|
**Produced files**: `guidance-specification.md`, `design-research.md` (optional), `{role}/analysis.md` + `{role}/analysis-F-*.md` + `{role}/findings-*.md` (per selected role).
|
|
@@ -15,16 +15,17 @@ Closed-loop decision engine for the maestro workflow lifecycle.
|
|
|
15
15
|
Reads project state → infers position → builds adaptive chain → delegates execution.
|
|
16
16
|
|
|
17
17
|
Entry points:
|
|
18
|
-
- **`/maestro-ralph "intent"`** — New session: infer → decompose → build → execute
|
|
19
|
-
- **`/maestro-ralph continue`** —
|
|
18
|
+
- **`/maestro-ralph "intent"`** — New session: infer → decompose → build → emit /goal prompt(如有 decomposition)→ dispatch ralph-execute
|
|
19
|
+
- **`/maestro-ralph continue`** — Wrapper; dispatches to ralph-execute(首选直接 `/maestro-ralph-execute` 推进 step)
|
|
20
20
|
- **`/maestro-ralph status`** — Display session progress
|
|
21
21
|
|
|
22
|
+
> 推进规则:**step 推进由 `/maestro-ralph-execute` 负责**;ralph 仅在 build / decision 评估时介入。decision 节点由 ralph-execute 自动 `Skill("maestro-ralph")` handoff,无需用户手动切换。
|
|
23
|
+
|
|
22
24
|
Initial decomposition (S_DECOMPOSE): boundary-clarified via ≤3 questions for broad intents (重构/全面/迁移/重写). 写入 status.json 的 `boundary_contract` / `execution_criteria` / `task_decomposition`,附 `/goal` prompt。
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
- **decision**:
|
|
27
|
-
- **external**: 仅在显式声明时使用(`maestro delegate --to claude`)
|
|
26
|
+
Step kinds:
|
|
27
|
+
- **执行 step**: ralph-execute `view_file({command_path})` 命令 .md,按内容内联执行
|
|
28
|
+
- **decision step**: `step.decision` 字段非空;回 ralph 评估(CLI 只读分析)
|
|
28
29
|
|
|
29
30
|
Key difference from maestro coordinator:
|
|
30
31
|
- maestro: static chain → one-time selection → runs all steps
|
|
@@ -41,8 +42,8 @@ Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work l
|
|
|
41
42
|
│ writes status.json
|
|
42
43
|
│ emits /goal prompt
|
|
43
44
|
▼
|
|
44
|
-
ralph-execute ◀─┐
|
|
45
|
-
│ │ decision → Skill("maestro-ralph")
|
|
45
|
+
ralph-execute ◀─┐ 执行 step → view_file(command_path) inline
|
|
46
|
+
│ │ decision step → Skill("maestro-ralph")
|
|
46
47
|
└─────────┘ writes step.completion_confirmed
|
|
47
48
|
loop until all completion_confirmed | paused
|
|
48
49
|
```
|
|
@@ -66,15 +67,16 @@ Remaining → intent
|
|
|
66
67
|
|
|
67
68
|
<invariants>
|
|
68
69
|
1. **Ralph never executes steps** — only creates sessions and evaluates decisions
|
|
69
|
-
2. **Handoff via Skill("maestro-ralph-execute")** —
|
|
70
|
+
2. **Handoff via Skill("maestro-ralph-execute")** — 创建 session 后始终自动 handoff;decision 评估后始终 handoff
|
|
70
71
|
3. **Decision delegates read-only** — `maestro delegate --role analyze --mode analysis`
|
|
71
|
-
4.
|
|
72
|
+
4. **执行 step 通过 Read 命令 .md 内联执行**
|
|
72
73
|
5. **status.json 是唯一真源** — 不生成 markdown 清单或侧文件
|
|
73
74
|
6. **每个 step 必须 `completion_confirmed: true`** — 基于 `--- COMPLETION STATUS ---` 的 `STATUS: DONE`;缺失则视为未完成
|
|
74
75
|
7. **command_path 在 A_BUILD_STEPS 解析** — 全局优先 `~/.claude/commands/{name}.md`,fallback 项目 `.claude/commands/{name}.md`,写入 status.json
|
|
75
|
-
8.
|
|
76
|
-
9. **
|
|
77
|
-
10. **
|
|
76
|
+
8. **执行 step 加载契约** — ralph-execute 读 `command_path` 后,必须解析并加载该命令 `<required_reading>` 引用的所有文件("入口 + workflow"形式的核心),并把 `<deferred_reading>` 路径记录到 `step.deferred_reads`;加载完成后输出 `✓ skill {name} 加载完成`。ralph 在 build 阶段只解析路径,不读 .md 内容
|
|
77
|
+
9. **Decomposition is outcome-oriented** — sub-goals 为可观测交付,禁止 lifecycle 复刻;`/goal` 用户绑定,ralph 输出提示词后继续 handoff,用户可在执行过程中随时输入 `/goal`
|
|
78
|
+
10. **planning_mode governs arg granularity** — `unified` → skill args 无 `{phase}`;`independent` → 含 `{phase}`
|
|
79
|
+
11. **task_decomposition 驱动 steps[] 动态生长** — `post-goal-audit` 按 unmet 子目标插入 scoped mini-loop;字段可选/累加,既有字段不删不改
|
|
78
80
|
</invariants>
|
|
79
81
|
|
|
80
82
|
<state_machine>
|
|
@@ -144,8 +146,8 @@ S_BUILD_CHAIN:
|
|
|
144
146
|
→ S_CREATE_SESSION DO: A_BUILD_STEPS
|
|
145
147
|
|
|
146
148
|
S_CREATE_SESSION:
|
|
147
|
-
→ S_CONFIRM WHEN: not auto_confirm
|
|
148
|
-
→ S_DISPATCH WHEN: auto_confirm
|
|
149
|
+
→ S_CONFIRM WHEN: not auto_confirm DO: A_CREATE_SESSION
|
|
150
|
+
→ S_DISPATCH WHEN: auto_confirm DO: A_CREATE_SESSION
|
|
149
151
|
|
|
150
152
|
S_CONFIRM:
|
|
151
153
|
→ S_DISPATCH WHEN: user selects "Proceed"
|
|
@@ -155,7 +157,7 @@ S_CONFIRM:
|
|
|
155
157
|
S_DISPATCH:
|
|
156
158
|
→ END DO: view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph-execute/SKILL.md") + execute inline
|
|
157
159
|
|
|
158
|
-
S_DECISION_EVAL:
|
|
160
|
+
S_DECISION_EVAL: (decision 节点 == `step.decision` 非空,下述 gate 名取自该字段)
|
|
159
161
|
→ S_APPLY_VERDICT WHEN: quality-gate (post-verify, post-business-test, post-review, post-test)
|
|
160
162
|
DO: A_DELEGATE_EVALUATE
|
|
161
163
|
→ S_APPLY_VERDICT WHEN: goal-gate (post-goal-audit)
|
|
@@ -194,7 +196,7 @@ S_FALLBACK:
|
|
|
194
196
|
|
|
195
197
|
1. Find latest ralph session (by created_at)
|
|
196
198
|
2. Display: Session, Status, Position, Progress, Current step
|
|
197
|
-
3. List steps: [✓] completion_confirmed, [▸] current, [ ] pending, [◆] decision
|
|
199
|
+
3. List steps: [✓] completion_confirmed, [▸] current, [ ] pending, [◆] decision(`step.decision` 非空);执行 step 附 `command_scope`(global/project) + `command_path`
|
|
198
200
|
4. If `task_decomposition` present (absent → skip):
|
|
199
201
|
```
|
|
200
202
|
Sub-goals ({done}/{total}) source: {session_dir}/status.json#/task_decomposition
|
|
@@ -374,24 +376,26 @@ narrow → derive defaults from intent + codebase, skip questions.
|
|
|
374
376
|
|
|
375
377
|
Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
376
378
|
|
|
377
|
-
| Stage | Skill (independent) | Skill (unified) |
|
|
378
|
-
|
|
379
|
-
| brainstorm | `maestro-brainstorm "{intent}"` | *(same)* |
|
|
380
|
-
| blueprint | `maestro-blueprint "{intent}"` | *(same)* |
|
|
381
|
-
| init | `maestro-init` | *(same)* |
|
|
382
|
-
| analyze-macro | `maestro-analyze "{intent}"` | *(same)* |
|
|
383
|
-
| roadmap | `maestro-roadmap --from analyze:{analyze_macro_id}` | *(same)* |
|
|
384
|
-
| analyze | `maestro-analyze {phase}` | `maestro-analyze` |
|
|
385
|
-
| plan | `maestro-plan {phase}` *(scope=phase)* / `maestro-plan --from analyze:{analyze_macro_id}` *(scope=standalone)* / `maestro-plan --from blueprint:{blueprint_id}` *(scope=standalone)* | `maestro-plan` |
|
|
386
|
-
| execute | `maestro-execute {phase}` | `maestro-execute` |
|
|
387
|
-
| verify | `maestro-verify {phase}` | `maestro-verify` |
|
|
388
|
-
| business-test | `quality-auto-test {phase}` | `quality-auto-test` |
|
|
389
|
-
| review | `quality-review {phase}` | `quality-review` |
|
|
390
|
-
| test-gen | `quality-auto-test {phase}` | `quality-auto-test` |
|
|
391
|
-
| test | `quality-test {phase}` | `quality-test` |
|
|
392
|
-
| milestone-audit | `maestro-milestone-audit` | *(same)* |
|
|
393
|
-
| goal-audit | *(decision-only)* | *(same)* |
|
|
394
|
-
| milestone-complete | `maestro-milestone-complete` | *(same)* |
|
|
379
|
+
| Stage | Skill (independent) | Skill (unified) | Decision after | quality_mode |
|
|
380
|
+
|-------|---------------------|-----------------|----------------|--------------|
|
|
381
|
+
| brainstorm | `maestro-brainstorm "{intent}"` | *(same)* | — | all |
|
|
382
|
+
| blueprint | `maestro-blueprint "{intent}"` | *(same)* | — | all |
|
|
383
|
+
| init | `maestro-init` | *(same)* | — | all |
|
|
384
|
+
| analyze-macro | `maestro-analyze "{intent}"` | *(same)* | `post-analyze-scope` | all |
|
|
385
|
+
| roadmap | `maestro-roadmap --from analyze:{analyze_macro_id}` | *(same)* | — | all |
|
|
386
|
+
| analyze | `maestro-analyze {phase}` | `maestro-analyze` | — | all |
|
|
387
|
+
| plan | `maestro-plan {phase}` *(scope=phase)* / `maestro-plan --from analyze:{analyze_macro_id}` *(scope=standalone)* / `maestro-plan --from blueprint:{blueprint_id}` *(scope=standalone)* | `maestro-plan` | — | all |
|
|
388
|
+
| execute | `maestro-execute {phase}` | `maestro-execute` | — | all |
|
|
389
|
+
| verify | `maestro-verify {phase}` | `maestro-verify` | `post-verify` | all |
|
|
390
|
+
| business-test | `quality-auto-test {phase}` | `quality-auto-test` | `post-business-test` | full only |
|
|
391
|
+
| review | `quality-review {phase}` | `quality-review` | `post-review` | all (quick: append `--tier quick`) |
|
|
392
|
+
| test-gen | `quality-auto-test {phase}` | `quality-auto-test` | — | full / standard if coverage<80% |
|
|
393
|
+
| test | `quality-test {phase}` | `quality-test` | `post-test` | full, standard |
|
|
394
|
+
| milestone-audit | `maestro-milestone-audit` | *(same)* | — | all |
|
|
395
|
+
| goal-audit | *(decision-only)* | *(same)* | `post-goal-audit` | all (only if decomposed) |
|
|
396
|
+
| milestone-complete | `maestro-milestone-complete` | *(same)* | `post-milestone` | all |
|
|
397
|
+
|
|
398
|
+
> 所有执行 stage 统一通过 Read .md 内联执行;decision 节点单独作为独立 step 插入(见规则 4)。
|
|
395
399
|
|
|
396
400
|
**Build rules (按顺序应用):**
|
|
397
401
|
|
|
@@ -399,17 +403,18 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
399
403
|
1. **起点**:从 `session.lifecycle_position` 开始
|
|
400
404
|
2. **跳过已完成**:跳过当前 milestone+phase 下已有 completed artifact 的 stage(按 `session.phase` 过滤);unified 按 milestone 过滤
|
|
401
405
|
3. **quality_mode 过滤**:按 `session.quality_mode` 排除不匹配 stage
|
|
402
|
-
4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{
|
|
406
|
+
4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ decision: "<gate>", retry_count: 0, max_retries: 2, command_scope: null, command_path: null }`
|
|
403
407
|
5. **goal-audit 插入**:`task_decomposition` 存在时,在最后一个 evidence-producing stage(verify/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
|
|
404
408
|
6. **终点硬约束**:chain 以 `milestone-complete` 结尾
|
|
405
409
|
7. **goal_ref 传播**:`task_decomposition` 存在时,每个 step 按 `step.stage ∈ g.lifecycle` 匹配 `step.goal_ref = g.id`(多匹配取字典序最小);decision 节点不打 goal_ref
|
|
406
410
|
8. **占位符**:independent 保留 `{phase}` `{intent}`;unified 不带 `{phase}`
|
|
407
|
-
9. **command_path
|
|
411
|
+
9. **command_path 解析**(每个执行 step,decision 节点跳过):
|
|
408
412
|
- 取 skill 名(args 前的第一个 token)
|
|
409
413
|
- 全局优先:`~/.claude/commands/{name}.md` 存在 → `command_scope = "global"`
|
|
410
414
|
- Fallback:`.claude/commands/{name}.md` 存在 → `command_scope = "project"`
|
|
411
415
|
- 两者都缺 → `command_scope = "missing"`, `command_path = null`,A_CREATE_SESSION 报错 E006
|
|
412
|
-
|
|
416
|
+
- **不在 build 阶段读取 .md 内容**;`<required_reading>` / `<deferred_reading>` 解析与加载由 ralph-execute A_EXEC_STEP 负责(保持入口/工作流分离)
|
|
417
|
+
10. **每个 step 初始化** `completion_confirmed: false`, `completion_status: null`, `completion_evidence: null`, `deferred_reads: []`
|
|
413
418
|
11. **scope_verdict gating**(仅当 chain 起点 = `analyze-macro`):
|
|
414
419
|
- `scope_verdict ∈ {medium, small}` → 跳过 `roadmap` + `analyze` 两 stage;`plan` 选 standalone 列(`--from analyze:{analyze_macro_id}`),不带 `{phase}`
|
|
415
420
|
- `scope_verdict == large` → 保留 `roadmap` + `analyze`;`plan` 选 phase 列(`{phase}`)
|
|
@@ -427,7 +432,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
427
432
|
1. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 + 列出缺失 skill
|
|
428
433
|
2. Write `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json` (Appendix: Session Schema)
|
|
429
434
|
3. Display chain overview:每步显示 `{index}. {skill} [{type}] [{command_scope}]`
|
|
430
|
-
4. If `task_decomposition` present: display
|
|
435
|
+
4. If `task_decomposition` present: display **Goal Prompt block** (Appendix),不阻塞流程,继续 handoff
|
|
431
436
|
|
|
432
437
|
### A_DELEGATE_EVALUATE
|
|
433
438
|
|
|
@@ -602,12 +607,14 @@ Runs only when `task_decomposition` present.
|
|
|
602
607
|
"analysis_dir": null, "brainstorm_dir": null, "blueprint_dir": null },
|
|
603
608
|
"steps": [{
|
|
604
609
|
"index": 0,
|
|
605
|
-
"
|
|
606
|
-
"skill": "",
|
|
610
|
+
"skill": "", // 执行 step 有值;decision 节点为空字符串/null
|
|
607
611
|
"args": "",
|
|
608
612
|
"stage": "", // brainstorm|blueprint|init|analyze-macro|roadmap|analyze|plan|execute|verify|...
|
|
609
613
|
"scope": null, // "phase"|"standalone"|"milestone"|null(plan 等需要)
|
|
610
|
-
"
|
|
614
|
+
"decision": null, // 非 null → decision 节点(值为 gate 名,如 "post-verify");null → 执行 step
|
|
615
|
+
"retry_count": 0, // decision 节点专用
|
|
616
|
+
"max_retries": 2, // decision 节点专用
|
|
617
|
+
"command_scope": "global|project|missing|null", // 执行 step;decision 节点固定 null
|
|
611
618
|
"command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
|
|
612
619
|
"milestone_id": null, // D-007 反查注入;仅含 {phase} 占位符的 step 有
|
|
613
620
|
"source_artifact_ref": null, // "analyze:ANL-xxx" | "blueprint:BLP-xxx" | null
|
|
@@ -616,7 +623,8 @@ Runs only when `task_decomposition` present.
|
|
|
616
623
|
"completion_confirmed": false,
|
|
617
624
|
"completion_status": null,
|
|
618
625
|
"completion_evidence": null,
|
|
619
|
-
"completed_at": null
|
|
626
|
+
"completed_at": null,
|
|
627
|
+
"deferred_reads": [] // 由 ralph-execute A_EXEC_STEP 解析 .md 时填充
|
|
620
628
|
}],
|
|
621
629
|
"waves": [], "current_step": 0,
|
|
622
630
|
|
|
@@ -638,7 +646,7 @@ Runs only when `task_decomposition` present.
|
|
|
638
646
|
|
|
639
647
|
### Fix-Loop Templates
|
|
640
648
|
|
|
641
|
-
|
|
649
|
+
所有插入的执行 step 按 A_BUILD_STEPS 规则 9 解析 `command_path` + `command_scope`;`decision:*` 条目为 decision 节点(`step.decision` 字段)。
|
|
642
650
|
|
|
643
651
|
**post-verify:**
|
|
644
652
|
```
|
|
@@ -700,14 +708,12 @@ decision:post-goal-audit {retry+1}
|
|
|
700
708
|
链路概览后逐字显示(仅当 decomposition 已产出):
|
|
701
709
|
|
|
702
710
|
```
|
|
703
|
-
📋
|
|
704
|
-
|
|
705
|
-
/goal 目标达成条件: {session_dir}/status.json 中 task_decomposition[*].status == "done" 且 task_decomposition[*].completion_confirmed == true 且 steps[*].completion_confirmed == true。未达成时:阅读 {session_dir}/status.json 取得 execution_criteria / boundary_contract / task_decomposition / steps 作为行动手册,调用 /maestro-ralph continue 推进;严禁手动执行 skill 或越界修改 status.json.boundary_contract.out_of_scope。
|
|
711
|
+
📋 任务分解完成。可随时复制以下 /goal 设定终止条件(执行过程中输入即可):
|
|
706
712
|
|
|
707
|
-
|
|
713
|
+
/goal 直到 {session_dir}/status.json 的 task_decomposition[*] 与 steps[*] 全部 completion_confirmed=true 才停。每轮以 status.json 为唯一行动手册,通过 /maestro-ralph-execute 推进 step;decision 节点由其自动 handoff 回 ralph 评估。禁止手动执行 skill 或修改 boundary_contract.out_of_scope。
|
|
708
714
|
```
|
|
709
715
|
|
|
710
|
-
`/goal` 由用户输入;ralph
|
|
716
|
+
`/goal` 由用户输入;ralph 输出提示词后继续 handoff,不阻塞。
|
|
711
717
|
|
|
712
718
|
### Error Codes
|
|
713
719
|
|
|
@@ -739,8 +745,9 @@ decision:post-goal-audit {retry+1}
|
|
|
739
745
|
- [ ] quality_mode 由 A_DETERMINE_QUALITY_MODE 决定,过滤 build steps
|
|
740
746
|
- [ ] Decomposition: broad intent ≤3 question clarify;narrow auto-derive
|
|
741
747
|
- [ ] status.json 唯一真源:boundary_contract + execution_criteria + task_decomposition;无外部清单
|
|
742
|
-
- [ ]
|
|
743
|
-
- [ ]
|
|
748
|
+
- [ ] 执行 step 含 `command_scope` + `command_path`(全局优先 fallback 项目);decision step 通过 `step.decision` 字段标识
|
|
749
|
+
- [ ] Ralph build 阶段只解析路径,不读 .md 内容;`<required_reading>` 加载由 ralph-execute A_EXEC_STEP 完成
|
|
750
|
+
- [ ] 每个 step 含 `completion_confirmed` + `completion_status` + `completion_evidence` + `deferred_reads`(初始 false/null/[])
|
|
744
751
|
- [ ] 每个 sub-goal 含 `completion_confirmed`(初始 false)
|
|
745
752
|
- [ ] post-goal-audit decision 仅在 decomposed 时插入,位于 milestone-complete 之前
|
|
746
753
|
- [ ] Unmet sub-goals 动态 grow steps[](goal_ref tagged);max retries → escalate
|
|
@@ -27,28 +27,29 @@ Remaining → session_id (if matches maestro-* or ralph-*)
|
|
|
27
27
|
```
|
|
28
28
|
Also read `session.auto_mode` from status.json — if true, treat as `-y`.
|
|
29
29
|
|
|
30
|
-
**
|
|
30
|
+
**Step kinds:**
|
|
31
31
|
|
|
32
|
-
|
|
|
33
|
-
|
|
34
|
-
| decision
|
|
35
|
-
|
|
|
36
|
-
| external (opt-in) | `maestro delegate --to claude --mode write` (STOP → callback) | Self-invoke next |
|
|
32
|
+
| Kind | Identifier | Execution | Flow after |
|
|
33
|
+
|------|-----------|-----------|------------|
|
|
34
|
+
| decision step | `step.decision` 非空 | `Skill("maestro-ralph")` | Execution ends here |
|
|
35
|
+
| 执行 step | `step.decision == null` | `view_file({file_path: step.command_path})` + 内联解释执行 | Self-invoke next |
|
|
37
36
|
|
|
38
37
|
HARD RULES:
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
38
|
+
- 执行 step:通过 `view_file({command_path})` 把命令 .md 加载进当前会话,再按内容执行
|
|
39
|
+
- **必须遵循 `<required_reading>` / `<deferred_reading>` 标签**:命令 .md 通常采用"入口 + workflow"形式,主体逻辑放在 workflow 文件中并通过 `<required_reading>` 引用;缺失 required_reading 视为加载失败
|
|
40
|
+
- decision step:A_EXEC_DECISION 通过 `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` handoff 给 ralph 评估
|
|
41
|
+
- `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json(缺失 → 报错 E002)
|
|
43
42
|
- 每个 step 必须产出 `--- COMPLETION STATUS ---` 块,否则视为 NEEDS_RETRY
|
|
44
43
|
</context>
|
|
45
44
|
|
|
46
45
|
<invariants>
|
|
47
|
-
1.
|
|
48
|
-
2. **
|
|
49
|
-
3.
|
|
50
|
-
4. **
|
|
51
|
-
5. **
|
|
46
|
+
1. **执行 = Read + inline** — 通过 Read 读取 `step.command_path`,按其指令在当前 session 内执行
|
|
47
|
+
2. **Required reading must be loaded** — 命令 .md 中的 `<required_reading>` 引用的所有文件必须立即 Read;缺一 → 视为加载失败,pause session(E007)
|
|
48
|
+
3. **Deferred reading recorded only** — `<deferred_reading>` 列出的文件路径需记录,执行过程按需 Read;不在加载阶段读取
|
|
49
|
+
4. **Skill loaded confirmation** — 所有 required_reading 加载完成后必须输出一行确认:`✓ skill {step.skill} 加载完成 (required: N, deferred: M)`
|
|
50
|
+
5. **必须显式 completion confirmation** — 每个 step 完成时需有 `STATUS: DONE` 且写入 `step.completion_confirmed = true`
|
|
51
|
+
6. **Self-invocation chain** — 持续直到全部 `completion_confirmed` 或 paused
|
|
52
|
+
7. **status.json 每步骤后写盘** — resume-safe
|
|
52
53
|
</invariants>
|
|
53
54
|
|
|
54
55
|
<state_machine>
|
|
@@ -74,11 +75,9 @@ S_RESOLVE_ARGS:
|
|
|
74
75
|
→ S_EXECUTE DO: A_RESOLVE_ARGS
|
|
75
76
|
|
|
76
77
|
S_EXECUTE:
|
|
77
|
-
→ END WHEN: step.
|
|
78
|
-
→ S_POST_EXEC WHEN: step.
|
|
79
|
-
→ S_HANDLE_FAIL WHEN: step.
|
|
80
|
-
→ END WHEN: step.type == "external" DO: A_EXEC_EXTERNAL
|
|
81
|
-
(STOP after background delegate; on callback → S_POST_EXEC or S_HANDLE_FAIL)
|
|
78
|
+
→ END WHEN: step.decision != null DO: A_EXEC_DECISION
|
|
79
|
+
→ S_POST_EXEC WHEN: step.decision == null + success DO: A_EXEC_STEP
|
|
80
|
+
→ S_HANDLE_FAIL WHEN: step.decision == null + failure DO: A_EXEC_STEP
|
|
82
81
|
|
|
83
82
|
S_POST_EXEC:
|
|
84
83
|
→ S_LOCATE DO: A_MARK_COMPLETE + Skill("maestro-ralph-execute")
|
|
@@ -147,40 +146,30 @@ Write enriched args back to status.json.
|
|
|
147
146
|
### A_EXEC_DECISION
|
|
148
147
|
|
|
149
148
|
1. Mark step running, write status.json
|
|
150
|
-
2. Display: `[{index}/{total}] ◆ {decision} Retry: {retry}/{max}`
|
|
149
|
+
2. Display: `[{index}/{total}] ◆ {step.decision} Retry: {retry}/{max}`
|
|
151
150
|
3. `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` — ralph 评估 + handoff
|
|
152
151
|
4. 执行在此结束
|
|
153
152
|
|
|
154
|
-
###
|
|
153
|
+
### A_EXEC_STEP
|
|
155
154
|
|
|
156
155
|
1. Validate `step.command_path != null`;否则 raise E002,pause session
|
|
157
156
|
2. Mark step running, write status.json
|
|
158
|
-
3. Display: `[{index}/{total}] {step.skill} [
|
|
159
|
-
4. `view_file({ file_path: step.command_path })` — 把命令 .md
|
|
160
|
-
5.
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
**Auto flag map**: 所有 lifecycle skill → `-y`; `quality-test` → `-y --auto-fix`; 未列出 → 无 flag
|
|
167
|
-
|
|
168
|
-
### A_EXEC_EXTERNAL
|
|
169
|
-
|
|
170
|
-
仅当 `step.type == "external"` 时使用(默认链路不产生)。
|
|
171
|
-
|
|
172
|
-
1. Mark step running, write status.json
|
|
173
|
-
2. Display: `[{index}/{total}] ⚡ {step.skill} [external]`
|
|
174
|
-
3. 始终在 prompt 内追加 `-y`(delegate session 非交互):`flag = flag_map[step.skill] || "-y"`
|
|
175
|
-
4. Execute:
|
|
157
|
+
3. Display: `[{index}/{total}] {step.skill} [{step.command_scope}]`
|
|
158
|
+
4. `view_file({ file_path: step.command_path })` — 把命令 .md 全文加载进当前会话
|
|
159
|
+
5. **解析 reading 标签**("入口 + workflow"形式核心步骤):
|
|
160
|
+
- 抽取 frontmatter `argument-hint` / `allowed-tools`
|
|
161
|
+
- 抽取 `<required_reading>` 块的所有 `@path` 引用 → 立刻 `view_file({ file_path: <expanded path> })` 加载(`~/` / `@~/` 展开为用户主目录);任一文件缺失或读取失败 → raise E007,pause session
|
|
162
|
+
- 抽取 `<deferred_reading>` 块的所有路径 → 仅记录到 `step.deferred_reads = [...]`,执行阶段按需 Read
|
|
163
|
+
- 抽取 `<purpose>/<context>/<state_machine>/<execution>/<actions>` 等指令块
|
|
164
|
+
6. **加载完成确认**:required_reading 全部成功 Read 后,输出一行:
|
|
176
165
|
```
|
|
177
|
-
|
|
178
|
-
command: `maestro delegate "/${step.skill} ${effective_args}" --to claude --mode write`,
|
|
179
|
-
run_in_background: true, timeout: 600000
|
|
180
|
-
})
|
|
181
|
-
STOP — wait for callback.
|
|
166
|
+
✓ skill {step.skill} 加载完成 (required: {N}, deferred: {M})
|
|
182
167
|
```
|
|
183
|
-
|
|
168
|
+
其中 N = required_reading 引用数,M = deferred_reading 路径数(缺省块按 0 计)
|
|
169
|
+
7. 计算 `effective_args`:`step.args` + (`auto ? " -y" : ""`)
|
|
170
|
+
8. 按读到的指令在本会话中**内联执行**:调用允许的工具完成命令所规定的工作;执行过程中如触发 deferred_reading 引用的资源 → 按需 Read
|
|
171
|
+
9. 执行结束:要求最后一段必须包含 `--- COMPLETION STATUS ---` 块(见 A_MARK_COMPLETE)
|
|
172
|
+
10. Return success / failure
|
|
184
173
|
|
|
185
174
|
### A_MARK_COMPLETE
|
|
186
175
|
|
|
@@ -225,14 +214,14 @@ Write enriched args back to status.json.
|
|
|
225
214
|
Session: {session_id} [{source}]
|
|
226
215
|
Steps: {completed}/{total} confirmed: {confirmed}/{completed}
|
|
227
216
|
|
|
228
|
-
[✓] 0. maestro-plan 1 [
|
|
229
|
-
[✓] 1. maestro-execute 1 [
|
|
230
|
-
[✓] 2. maestro-verify 1 [
|
|
217
|
+
[✓] 0. maestro-plan 1 [global]
|
|
218
|
+
[✓] 1. maestro-execute 1 [project]
|
|
219
|
+
[✓] 2. maestro-verify 1 [global]
|
|
231
220
|
[✓] 3. ◆ post-verify [decision]
|
|
232
221
|
...
|
|
233
222
|
============================================================
|
|
234
223
|
```
|
|
235
|
-
Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision
|
|
224
|
+
Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision
|
|
236
225
|
|
|
237
226
|
</actions>
|
|
238
227
|
|
|
@@ -245,20 +234,23 @@ Write enriched args back to status.json.
|
|
|
245
234
|
| Code | Severity | Description | Recovery |
|
|
246
235
|
|------|----------|-------------|----------|
|
|
247
236
|
| E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
|
|
248
|
-
| E002 | error | step.command_path missing for
|
|
237
|
+
| E002 | error | step.command_path missing for 执行 step | Pause, ask ralph to rebuild step |
|
|
249
238
|
| E003 | error | status.json corrupt | Show path, manual check |
|
|
250
|
-
| E004 | error | Delegate failed + user abort | Mark paused, suggest resume |
|
|
251
239
|
| E005 | error | COMPLETION STATUS block missing | Trigger NEEDS_RETRY |
|
|
240
|
+
| E007 | error | required_reading file 缺失或读取失败 | List missing paths, pause session |
|
|
252
241
|
| W001 | warning | Step completed with concerns | Log and continue |
|
|
242
|
+
| W002 | warning | command .md 无 `<required_reading>` 标签 | 直接执行 .md 主体,跳过加载阶段 |
|
|
253
243
|
|
|
254
244
|
### Success Criteria
|
|
255
245
|
|
|
256
246
|
- [ ] Session discovery covers maestro-* and ralph-*
|
|
257
|
-
- [ ] `-y` parsed from args 或 session.auto_mode
|
|
247
|
+
- [ ] `-y` parsed from args 或 session.auto_mode;auto=true 时透传 `-y` 到 skill args
|
|
258
248
|
- [ ] Placeholders resolved;per-skill enrichment 正确
|
|
259
|
-
- [ ] Decision
|
|
260
|
-
- [ ]
|
|
261
|
-
- [ ]
|
|
249
|
+
- [ ] Decision 节点(`step.decision != null`)Skill("maestro-ralph") handoff
|
|
250
|
+
- [ ] 执行 step 通过 view_file({step.command_path}) 内联执行
|
|
251
|
+
- [ ] 执行 step Read 后必须解析并加载 `<required_reading>` 引用的文件;缺失 → E007 pause
|
|
252
|
+
- [ ] `<deferred_reading>` 仅记录路径到 `step.deferred_reads`,执行阶段按需 Read
|
|
253
|
+
- [ ] required_reading 加载完成后输出 `✓ skill {name} 加载完成 (required: N, deferred: M)`
|
|
262
254
|
- [ ] 每个 step 强制 `--- COMPLETION STATUS ---`;缺失 → NEEDS_RETRY
|
|
263
255
|
- [ ] step.completion_confirmed = true 仅在 STATUS: DONE/DONE_WITH_CONCERNS 时设置
|
|
264
256
|
- [ ] step.completion_evidence 记录 artifact path / 输出节选
|
|
@@ -21,7 +21,7 @@ Verify execution results through three complementary methods:
|
|
|
21
21
|
3. **Nyquist test coverage validation** — requirement-to-test mapping with gap classification
|
|
22
22
|
|
|
23
23
|
Supports dual-level verification:
|
|
24
|
-
- **Single plan**: `verify --dir scratch/plan-xxx` — verifies one plan, writes `verification.json` into plan dir
|
|
24
|
+
- **Single plan**: `verify --dir scratch/{YYYYMMDD}-plan-xxx` — verifies one plan, writes `verification.json` into plan dir
|
|
25
25
|
- **Milestone**: `verify` (no args) — aggregates all execute artifacts for current milestone into `scratch/{YYYYMMDD}-verify-M{N}-{slug}/milestone-verification.json`
|
|
26
26
|
|
|
27
27
|
Registers VRF artifact in state.json on completion.
|
|
@@ -12,7 +12,7 @@ allowed-tools:
|
|
|
12
12
|
- AskUserQuestion
|
|
13
13
|
---
|
|
14
14
|
<purpose>
|
|
15
|
-
Unified brainstorming combining interactive framework generation, multi-role parallel analysis, cross-role review, and resolution writeback. Two modes: Auto (full pipeline: guidance-specification → parallel {role}/ multi-file analysis → cross-role-reviewer compares Decision Digests for conflicts/gaps/synergies → user-confirmed resolutions patched into role files + logged in guidance §12) and Single Role (individual role analysis for an existing session). Outputs structured artifacts in `.workflow/scratch/brainstorm-{slug}
|
|
15
|
+
Unified brainstorming combining interactive framework generation, multi-role parallel analysis, cross-role review, and resolution writeback. Two modes: Auto (full pipeline: guidance-specification → parallel {role}/ multi-file analysis → cross-role-reviewer compares Decision Digests for conflicts/gaps/synergies → user-confirmed resolutions patched into role files + logged in guidance §12) and Single Role (individual role analysis for an existing session). Outputs structured artifacts in `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/` ready for downstream planning (roadmap / analyze / blueprint consume `guidance-specification.md`).
|
|
16
16
|
</purpose>
|
|
17
17
|
|
|
18
18
|
<required_reading>
|
|
@@ -30,7 +30,7 @@ $ARGUMENTS -- topic text for auto mode, or role name for single role mode.
|
|
|
30
30
|
|
|
31
31
|
**Auto mode**: topic text (e.g., "Build real-time collaboration platform") triggers full pipeline.
|
|
32
32
|
**Single role mode**: valid role name (e.g., "system-architect") runs one role analysis.
|
|
33
|
-
**All output** goes to `.workflow/scratch/brainstorm-{slug}
|
|
33
|
+
**All output** goes to `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/` (orchestrator MUST resolve this to an absolute path before passing to sub-agents).
|
|
34
34
|
**Artifact registration**: On completion, registers artifact (type=brainstorm) in state.json.
|
|
35
35
|
**Output boundary**: ALL file writes MUST target `{output_dir}/` or `.workflow/state.json` only. NEVER modify source code or files outside these paths.
|
|
36
36
|
**Produced files**: `guidance-specification.md`, `design-research.md` (optional), `{role}/analysis.md` + `{role}/analysis-F-*.md` + `{role}/findings-*.md` (per selected role).
|