maestro-flow 0.5.47 → 0.5.48

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.
Files changed (127) hide show
  1. package/.agents/agents/ralph-executor.md +14 -24
  2. package/.agents/skills/maestro-analyze/SKILL.md +13 -13
  3. package/.agents/skills/maestro-composer/SKILL.md +1 -1
  4. package/.agents/skills/maestro-help/SKILL.md +2 -0
  5. package/.agents/skills/maestro-help/index/catalog.json +7 -7
  6. package/.agents/skills/maestro-init/SKILL.md +1 -1
  7. package/.agents/skills/maestro-milestone-audit/SKILL.md +2 -2
  8. package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
  9. package/.agents/skills/maestro-next/SKILL.md +2 -2
  10. package/.agents/skills/maestro-plan/SKILL.md +31 -9
  11. package/.agents/skills/maestro-ralph-v2/SKILL.md +26 -50
  12. package/.agents/skills/maestro-roadmap/SKILL.md +2 -2
  13. package/.agents/skills/quality-auto-test/SKILL.md +1 -1
  14. package/.agy/agents/ralph-executor.md +14 -23
  15. package/.agy/skills/maestro-analyze/SKILL.md +13 -13
  16. package/.agy/skills/maestro-composer/SKILL.md +1 -1
  17. package/.agy/skills/maestro-help/SKILL.md +2 -0
  18. package/.agy/skills/maestro-help/index/catalog.json +7 -7
  19. package/.agy/skills/maestro-init/SKILL.md +1 -1
  20. package/.agy/skills/maestro-milestone-audit/SKILL.md +2 -2
  21. package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
  22. package/.agy/skills/maestro-next/SKILL.md +2 -2
  23. package/.agy/skills/maestro-plan/SKILL.md +31 -9
  24. package/.agy/skills/maestro-ralph-v2/SKILL.md +26 -50
  25. package/.agy/skills/maestro-roadmap/SKILL.md +2 -2
  26. package/.agy/skills/quality-auto-test/SKILL.md +1 -1
  27. package/.claude/agents/ralph-executor.md +14 -24
  28. package/.claude/commands/maestro-analyze.md +13 -13
  29. package/.claude/commands/maestro-composer.md +1 -1
  30. package/.claude/commands/maestro-init.md +1 -1
  31. package/.claude/commands/maestro-milestone-audit.md +2 -2
  32. package/.claude/commands/maestro-milestone-release.md +1 -1
  33. package/.claude/commands/maestro-next.md +2 -2
  34. package/.claude/commands/maestro-plan.md +31 -9
  35. package/.claude/commands/maestro-ralph-v2.md +26 -50
  36. package/.claude/commands/maestro-roadmap.md +2 -2
  37. package/.claude/commands/quality-auto-test.md +1 -1
  38. package/.claude/skills/maestro-help/SKILL.md +2 -0
  39. package/.claude/skills/maestro-help/index/catalog.json +7 -7
  40. package/.codex/skills/maestro/SKILL.md +6 -5
  41. package/.codex/skills/maestro-analyze/SKILL.md +13 -18
  42. package/.codex/skills/maestro-help/catalog.json +7 -7
  43. package/.codex/skills/maestro-next/SKILL.md +2 -2
  44. package/.codex/skills/maestro-plan/SKILL.md +13 -16
  45. package/.codex/skills/maestro-ralph/SKILL.md +11 -11
  46. package/.codex/skills/maestro-ralph-execute/SKILL.md +8 -8
  47. package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js +17 -0
  48. package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js.map +1 -1
  49. package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js +2 -0
  50. package/dashboard/dist-server/src/graph/kg/embedding/code-embedding.js.map +1 -1
  51. package/dashboard/dist-server/src/graph/kg/engine.js +5 -1
  52. package/dashboard/dist-server/src/graph/kg/engine.js.map +1 -1
  53. package/dashboard/dist-server/src/hooks/kg-sync-hook.js +5 -3
  54. package/dashboard/dist-server/src/hooks/kg-sync-hook.js.map +1 -1
  55. package/dashboard/dist-server/src/hooks/session-context.js +3 -1
  56. package/dashboard/dist-server/src/hooks/session-context.js.map +1 -1
  57. package/dist/src/agents/api-explore/circuit-breaker.d.ts +41 -0
  58. package/dist/src/agents/api-explore/circuit-breaker.d.ts.map +1 -0
  59. package/dist/src/agents/api-explore/circuit-breaker.js +82 -0
  60. package/dist/src/agents/api-explore/circuit-breaker.js.map +1 -0
  61. package/dist/src/agents/api-explore/config.d.ts +10 -39
  62. package/dist/src/agents/api-explore/config.d.ts.map +1 -1
  63. package/dist/src/agents/api-explore/config.js +7 -33
  64. package/dist/src/agents/api-explore/config.js.map +1 -1
  65. package/dist/src/agents/api-explore/index.js +2 -2
  66. package/dist/src/agents/api-explore/index.js.map +1 -1
  67. package/dist/src/agents/api-explore/runner.d.ts +5 -0
  68. package/dist/src/agents/api-explore/runner.d.ts.map +1 -1
  69. package/dist/src/agents/api-explore/runner.js +51 -4
  70. package/dist/src/agents/api-explore/runner.js.map +1 -1
  71. package/dist/src/commands/explore.d.ts.map +1 -1
  72. package/dist/src/commands/explore.js +4 -2
  73. package/dist/src/commands/explore.js.map +1 -1
  74. package/dist/src/commands/install.d.ts.map +1 -1
  75. package/dist/src/commands/install.js +59 -4
  76. package/dist/src/commands/install.js.map +1 -1
  77. package/dist/src/commands/moa.js +1 -1
  78. package/dist/src/commands/moa.js.map +1 -1
  79. package/dist/src/config/api-config.d.ts +61 -0
  80. package/dist/src/config/api-config.d.ts.map +1 -0
  81. package/dist/src/config/api-config.js +59 -0
  82. package/dist/src/config/api-config.js.map +1 -0
  83. package/dist/src/config/cli-tools-config.d.ts +1 -0
  84. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  85. package/dist/src/config/cli-tools-config.js +22 -1
  86. package/dist/src/config/cli-tools-config.js.map +1 -1
  87. package/dist/src/graph/kg/embedding/code-embedding.d.ts.map +1 -1
  88. package/dist/src/graph/kg/embedding/code-embedding.js +2 -0
  89. package/dist/src/graph/kg/embedding/code-embedding.js.map +1 -1
  90. package/dist/src/graph/kg/engine.d.ts.map +1 -1
  91. package/dist/src/graph/kg/engine.js +5 -1
  92. package/dist/src/graph/kg/engine.js.map +1 -1
  93. package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
  94. package/dist/src/hooks/kg-sync-hook.js +5 -3
  95. package/dist/src/hooks/kg-sync-hook.js.map +1 -1
  96. package/dist/src/hooks/session-context.js +3 -1
  97. package/dist/src/hooks/session-context.js.map +1 -1
  98. package/dist/src/tui/install-ui/EmbeddingConfig.d.ts +25 -0
  99. package/dist/src/tui/install-ui/EmbeddingConfig.d.ts.map +1 -0
  100. package/dist/src/tui/install-ui/EmbeddingConfig.js +58 -0
  101. package/dist/src/tui/install-ui/EmbeddingConfig.js.map +1 -0
  102. package/dist/src/tui/install-ui/EmbeddingPanel.d.ts +6 -0
  103. package/dist/src/tui/install-ui/EmbeddingPanel.d.ts.map +1 -0
  104. package/dist/src/tui/install-ui/EmbeddingPanel.js +101 -0
  105. package/dist/src/tui/install-ui/EmbeddingPanel.js.map +1 -0
  106. package/dist/src/tui/install-ui/GroupedHub.d.ts +2 -0
  107. package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -1
  108. package/dist/src/tui/install-ui/GroupedHub.js +8 -1
  109. package/dist/src/tui/install-ui/GroupedHub.js.map +1 -1
  110. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  111. package/dist/src/tui/install-ui/InstallFlow.js +4 -2
  112. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  113. package/dist/src/tui/install-ui/embedding-status.d.ts +12 -0
  114. package/dist/src/tui/install-ui/embedding-status.d.ts.map +1 -0
  115. package/dist/src/tui/install-ui/embedding-status.js +82 -0
  116. package/dist/src/tui/install-ui/embedding-status.js.map +1 -0
  117. package/dist/src/tui/install-ui/useInstallFlowState.d.ts +1 -1
  118. package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -1
  119. package/dist/src/tui/install-ui/useInstallFlowState.js +52 -2
  120. package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -1
  121. package/dist/src/tui/shared/tokens.d.ts +1 -1
  122. package/dist/src/tui/shared/tokens.js +1 -1
  123. package/dist/src/utils/update-notices.js +11 -0
  124. package/dist/src/utils/update-notices.js.map +1 -1
  125. package/package.json +1 -1
  126. package/workflows/analyze.md +13 -15
  127. package/workflows/plan.md +33 -21
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ralph-executor
3
- description: Single-step executor — ralph next + inline skill execution, multi-agent orchestration via SendMessage
3
+ description: Single-step executor — ralph next + inline skill execution, unnamed nesting for multi-agent orchestration
4
4
  allowed-tools:
5
5
  - Read
6
6
  - Write
@@ -10,48 +10,42 @@ allowed-tools:
10
10
  - Grep
11
11
  - Skill
12
12
  - Agent
13
- - SendMessage
14
13
  ---
15
14
 
16
15
  # Ralph Executor
17
16
 
18
17
  ## Role
19
18
 
20
- Single-step skill executor with multi-agent orchestration capability. Call `maestro ralph next` to load the skill prompt, execute it inline, return execution output via SendMessage. You are a sandboxed executor — arg resolution, context assembly, signal extraction, drift analysis, and session management are handled by the orchestrator.
19
+ Single-step skill executor with multi-agent orchestration capability. Call `maestro ralph next` to load the skill prompt, execute it inline, return execution output as final text. You are a sandboxed executor — arg resolution, context assembly, signal extraction, drift analysis, and session management are handled by the orchestrator.
21
20
 
22
21
  ## Process
23
22
 
24
- **立即自启动**:你是 named mailbox teammate。收到含 `session_id` 和 `agent_name` 的 dispatch prompt 后,MUST 立即从 step 1 开始执行——禁止等待 mailbox 后续指令,禁止发送 idle notification。
23
+ **立即自启动**:收到含 `session_id` 的 dispatch prompt 后,MUST 立即从 step 1 开始执行。
25
24
 
26
25
  1. Call `Bash("maestro ralph next --session {session_id}")` — **全量捕获 stdout,严禁截断管道**
27
26
  - Exit 0 → skill_prompt = stdout,继续执行
28
- - Exit 1 → SendMessage 错误信息给 main,结束
29
- - Exit 2 → SendMessage "所有 step 已完成" 给 main,结束
30
- - Exit 3 → SendMessage "并发冲突" 给 main,结束
27
+ - Exit 1 → 返回错误信息,结束
28
+ - Exit 2 → 返回 "所有 step 已完成",结束
29
+ - Exit 3 → 返回 "并发冲突",结束
31
30
  2. Execute the skill prompt inline — follow all instructions faithfully
32
31
  3. Handle `<deferred_reading>` paths: Read files on demand during execution, do not batch-load upfront
33
- 4. SendMessage({to: "main"}) 返回执行产物路径 + 摘要
32
+ 4. 返回执行产物路径 + 摘要作为最终输出文本(主流程通过 task-notification `<result>` 接收)
34
33
 
35
34
  ## Multi-Agent Orchestration
36
35
 
37
36
  当 skill prompt 需要多 agent 编排时(如 `maestro-execute` 的 wave 并行派发):
38
37
 
39
- 1. **派发 named worker**:调用 `Agent({name})` 派发 worker 为 named teammate,确保长时间任务存活:
40
- ```
41
- worker name 格式: {agent_name}-w{index}(如 exe-v2-001-w1, exe-v2-001-w2)
42
- ```
43
- > **必须传 name**:匿名 agent 执行完当前任务会 came to rest(死亡),后台任务完成通知无法唤醒。Named teammate 只会 idle,可被后台任务通知或 SendMessage 唤醒。
44
- 2. **等待结果**:worker 通过 SendMessage 回传结果到 executor 的 mailbox
45
- 3. **收集汇总**:接收所有 worker 的 SendMessage,汇总执行结果
46
- 4. **回报主流程**:通过 `SendMessage({to: "main"})` 返回最终执行输出
38
+ 1. **派发 unnamed worker**:调用 `Agent()` 不传 name,子结果自动回流给本 executor(嵌套套娃模型)
39
+ 2. **等待结果**:子 Agent 的 task-notification 会自动回流到本 executor,可直接使用返回的 `<result>`
40
+ 3. **收集汇总**:汇总所有子 Agent 的执行结果
41
+ 4. **返回**:将最终执行输出作为文本返回(主流程通过 task-notification 接收)
47
42
 
48
43
  ### Worker Dispatch Template
49
44
 
50
45
  ```
51
46
  Agent({
52
- name: "{agent_name}-w{index}",
53
47
  description: "执行子任务: {task_description}",
54
- prompt: "你是 worker agent。执行以下任务:\n{task_content}\n\n完成后必须调用 SendMessage({to: \"{agent_name}\", summary: \"worker完成\", message: \"WORKER_RESULT: [执行结果摘要 + 产物路径]\"})。"
48
+ prompt: "执行以下任务:\n{task_content}\n\n返回执行结果摘要 + 产物路径。"
55
49
  })
56
50
  ```
57
51
 
@@ -62,12 +56,11 @@ Agent({
62
56
  | Field | Required | Description |
63
57
  |-------|----------|-------------|
64
58
  | `session_id` | Yes | ralph session ID |
65
- | `agent_name` | Yes | 本 agent 的 name,用于 sub-agent SendMessage 回传 |
66
59
  | execution context | No | 编排器注入的上下文(intent、boundary、goals、prior steps 等) |
67
60
 
68
61
  ## Output
69
62
 
70
- 通过 `SendMessage({to: "main"})` 返回,格式:
63
+ 返回最终文本(主流程通过 task-notification `<result>` 接收),格式:
71
64
 
72
65
  ```
73
66
  EXECUTOR_OUTPUT:
@@ -78,14 +71,11 @@ EXECUTOR_OUTPUT:
78
71
  - error: <错误信息,仅 ERROR 时>
79
72
  ```
80
73
 
81
- 失败时也必须 SendMessage,禁止静默崩溃。
82
-
83
74
  ## Constraints
84
75
 
85
- - 禁止无故空转——收到 session_id 即开始执行,不等待编排器的后续 mailbox 指令。等待 worker SendMessage 回传期间的 idle 是正常行为(平台自动触发 idle_notification,不可抑制)
76
+ - 收到 session_id 即开始执行
86
77
  - Execute exactly one step per invocation
87
78
  - Do not call `maestro ralph complete` — completion is handled by the orchestrator
88
79
  - Do not read or modify `status.json` — session management is the orchestrator's responsibility
89
80
  - Do not skip execution steps or short-circuit — execute the full skill content
90
81
  - Do not insert/delete/reorder steps or evaluate decision nodes
91
- - 所有执行结果必须通过 SendMessage({to: "main"}) 回报,直接文本输出主流程看不到
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: maestro-analyze
3
3
  description: Use when a topic needs structured multi-dimensional investigation before planning or decision-making
4
- argument-hint: "[phase|topic] [-y] [-c] [-q] [--gaps [ISS-ID]]"
4
+ argument-hint: "[milestone|topic] [-y] [-c] [-q] [--gaps [ISS-ID]]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Write
@@ -27,17 +27,17 @@ Multi-dimensional analysis of a proposal, decision, or architecture choice via C
27
27
  </deferred_reading>
28
28
 
29
29
  <context>
30
- $ARGUMENTS -- phase number for micro mode, topic text for macro/adhoc mode, no args for milestone-wide.
30
+ $ARGUMENTS -- milestone number for micro mode, topic text for macro/adhoc mode, no args for current milestone.
31
31
 
32
32
  **Dual-layer mode:**
33
33
  - **Macro mode** (text argument): Explore impact surface of a topic/requirement. Produces coarse-grained context with `scope_verdict` to route next step. Use before roadmap or for standalone analysis.
34
- - **Micro mode** (numeric argument): Phase-level deep analysis within an existing roadmap. Produces fine-grained context for plan consumption. `analyze 1` = Phase 1 of current milestone.
34
+ - **Micro mode** (numeric argument): Milestone-level deep analysis within an existing roadmap. Covers all phases under the milestone. Same analysis depth, broader scope. `analyze 1` = Milestone 1.
35
35
 
36
36
  **Disambiguation rule (mode selection):**
37
- - First positional arg matches `^\d+$` (pure digits, e.g. `1`, `42`) → **micro mode** (treat as phase number)
37
+ - First positional arg matches `^\d+$` (pure digits, e.g. `1`, `42`) → **micro mode** (treat as milestone number)
38
38
  - First positional arg is non-numeric text (e.g. `auth-refactor`, `improve search`) → **macro mode** (treat as topic)
39
- - No positional arg → milestone-wide micro mode (when roadmap present) else macro fallback
40
- - Mixed input like `"1 phase"` is treated as text → macro mode (only bare numerics trigger micro)
39
+ - No positional arg → current milestone micro mode (when roadmap present) else macro fallback
40
+ - Mixed input like `"1 milestone"` is treated as text → macro mode (only bare numerics trigger micro)
41
41
 
42
42
  **Flags:**
43
43
 
@@ -52,9 +52,9 @@ $ARGUMENTS -- phase number for micro mode, topic text for macro/adhoc mode, no a
52
52
  **Scope routing:**
53
53
  | Input | Mode | Scope |
54
54
  |-------|------|-------|
55
- | Pure digits (e.g. `1`, `42`) | micro | Phase-level deep analysis |
55
+ | Pure digits (e.g. `1`, `42`) | micro | Milestone-level deep analysis |
56
56
  | Non-numeric text (e.g. `auth-refactor`) | macro | Topic impact surface |
57
- | No positional arg + roadmap | micro | Milestone-wide |
57
+ | No positional arg + roadmap | micro | Current milestone |
58
58
  | No positional arg + no roadmap | macro | Fallback |
59
59
  | `--gaps [ISS-ID]` | gaps | Issue root cause analysis |
60
60
 
@@ -79,7 +79,7 @@ Follows @~/.maestro/workflows/interview-mechanics.md standard.
79
79
  **Scope guard**: only analyze decisions; do not prejudge plan/execute concerns
80
80
  **Writeback target**: discussion.md (top table) + context.md "Interview Decisions"
81
81
  **Additional search sources**: issues.jsonl (--gaps mode), roadmap.md
82
- **Additional skip conditions**: input is already specific (explicit phase number or unambiguous topic)
82
+ **Additional skip conditions**: input is already specific (explicit milestone number or unambiguous topic)
83
83
  **Exit condition**: all decision points settled → finalize session metadata
84
84
  </interview_protocol>
85
85
 
@@ -122,9 +122,9 @@ Status verdicts:
122
122
 
123
123
  | Condition | Suggestion |
124
124
  |-----------|-----------|
125
- | Phase/Milestone scope, Go, UI work needed | `/maestro-impeccable build {target}` |
126
- | Phase/Milestone scope, Go, ready to plan | `/maestro-plan` or `/maestro-plan {phase}` |
127
- | Phase/Milestone scope, No-Go | Revisit requirements or `/maestro-brainstorm {topic}` |
125
+ | Milestone scope, Go, UI work needed | `/maestro-impeccable build {target}` |
126
+ | Milestone scope, Go, ready to plan | `/maestro-plan` or `/maestro-plan {milestone}` |
127
+ | Milestone scope, No-Go | Revisit requirements or `/maestro-brainstorm {topic}` |
128
128
  | Macro/Adhoc, scope_verdict = large | `/maestro-roadmap --from analyze:ANL-xxx` |
129
129
  | Macro/Adhoc, scope_verdict = medium/small | `/maestro-plan --from analyze:ANL-xxx` |
130
130
  | Need more exploration | `/maestro-analyze {topic} -c` |
@@ -175,7 +175,7 @@ Both modes (full + quick):
175
175
  - [ ] Decision Recording Protocol applied to all decisions
176
176
  - [ ] Scope creep redirected to Deferred section
177
177
  - [ ] Deferred items auto-created as issues (if any)
178
- - [ ] Artifact registered in state.json with correct scope/milestone/phase
178
+ - [ ] Artifact registered in state.json with correct scope/milestone
179
179
  - [ ] Next step routed (impeccable/plan for Go, brainstorm for No-Go)
180
180
  - [ ] Session sealed via finish-work (archive.json written, optional spec/knowhow extraction)
181
181
  </success_criteria>
@@ -152,7 +152,7 @@ Write `nodes.json`. Display resolved node list.
152
152
  |------|-----------|
153
153
  | Artifact boundary | Source outputs plan/spec/analysis/review |
154
154
  | Execution gate | Target contains `execute` |
155
- | Long-running | Target is maestro-plan, maestro-roadmap --mode full |
155
+ | Long-running | Target is maestro-plan, maestro-blueprint |
156
156
  | Post-testing | Source contains `test` or `auto-test` |
157
157
  | User-defined | type_hint == checkpoint |
158
158
 
@@ -132,7 +132,7 @@ Status verdicts:
132
132
  | Condition | Suggestion |
133
133
  |-----------|-----------|
134
134
  | Roadmap needed (default light) | `/maestro-roadmap <requirement>` |
135
- | Full spec package + roadmap | `/maestro-roadmap --mode full <idea>` |
135
+ | Full spec package | `/maestro-blueprint <idea>` |
136
136
  | Explore ideas first | `/maestro-brainstorm <topic>` |
137
137
  | View project dashboard | `/manage-status` |
138
138
  | Quick ad-hoc task | `/maestro-quick <task>` |
@@ -56,7 +56,7 @@ Audit checklist steps (phase coverage, ad-hoc completeness, execution completene
56
56
 
57
57
  **GATE 1: Load → Phase Coverage Check**
58
58
  - REQUIRED: state.json loaded with artifacts[] filtered by target milestone.
59
- - REQUIRED: Milestone phases identified from roadmap (standard) or milestone_obj.phases (adhoc).
59
+ - REQUIRED: Milestone phases identified from the PLN artifact's plan.json (standard) or milestone_obj.phases (adhoc). Phase coverage is verified from the PLN artifact's plan.json, not from roadmap.
60
60
  - BLOCKED if no execute artifacts found: error E003.
61
61
 
62
62
  **GATE 2: Phase Coverage → Integration Check**
@@ -116,7 +116,7 @@ Status verdicts:
116
116
  </error_codes>
117
117
 
118
118
  <success_criteria>
119
- - [ ] All phases in milestone identified from roadmap (standard) or milestone_obj.phases (adhoc)
119
+ - [ ] All phases in milestone identified from the PLN artifact's plan.json (standard) or milestone_obj.phases (adhoc)
120
120
  - [ ] Artifact chains verified: ANL→PLN→EXC per phase (standard) or PLN→EXC exists (adhoc)
121
121
  - [ ] Ad-hoc artifacts checked for completion
122
122
  - [ ] Integration check completed (shared interfaces, data contracts)
@@ -111,7 +111,7 @@ Status verdicts:
111
111
 
112
112
  | Condition | Suggestion |
113
113
  |-----------|-----------|
114
- | Release successful, starting next milestone | `/maestro-plan {next_phase}` |
114
+ | Release successful, starting next milestone | `/maestro-plan {next_milestone}` |
115
115
  | Want to view project dashboard | `/manage-status` |
116
116
  </completion>
117
117
 
@@ -105,8 +105,8 @@ ls -la .workflow/.maestro/ 2>/dev/null | head -5 # 进行中的 session
105
105
  | 无 `.workflow/` + 有源码 | init | `maestro-init` |
106
106
  | 有 state.json,无 roadmap,无 milestones | analyze-macro | `maestro-analyze` (宏观调研) |
107
107
  | 有 macro analyze artifact,无 roadmap | roadmap | `maestro-roadmap` |
108
- | 有 roadmap,未启动 phase | analyze | `maestro-analyze {phase}` |
109
- | 最新 artifact = analyze | plan | `maestro-plan {phase}` |
108
+ | 有 roadmap,未启动 phase | analyze | `maestro-analyze {milestone}` |
109
+ | 最新 artifact = analyze | plan | `maestro-plan {milestone}` |
110
110
  | 最新 artifact = plan | execute | `maestro-execute {phase}` |
111
111
  | 最新 artifact = execute | review | `quality-review {phase}` |
112
112
  | review verdict=PASS | test-gen | `quality-auto-test {phase}` |
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: maestro-plan
3
- description: Use when creating, revising, or verifying an execution plan for a phase or task
4
- argument-hint: "[phase] [--collab] [--spec SPEC-xxx] [-y] [--gaps] [--tdd] [--dir <path>] [--from <source>] [--revise [instructions]] [--check <plan-dir>]"
3
+ description: Use when creating, revising, or verifying an execution plan for a milestone or task
4
+ argument-hint: "[milestone] [--spec SPEC-xxx] [-y] [--gaps] [--tdd] [--dir <path>] [--from <source>] [--revise [instructions]] [--check <plan-dir>]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Write
@@ -29,9 +29,9 @@ Produces plan.json + TASK files; registers PLN artifact in state.json.
29
29
  </deferred_reading>
30
30
 
31
31
  <context>
32
- $ARGUMENTS — phase number, or no args for milestone-wide planning, with optional flags.
32
+ $ARGUMENTS — milestone number, or no args for current milestone, with optional flags.
33
33
 
34
- Scope routing, base flags (`--collab`, `--spec`, `-y`, `--gaps`, `--dir`), output directory format, and artifact registration are defined in workflow plan.md.
34
+ Scope routing, base flags (`--spec`, `-y`, `--gaps`, `--dir`), output directory format, and artifact registration are defined in workflow plan.md.
35
35
 
36
36
  **Command-level flags** (extensions beyond workflow base):
37
37
  - `--from <source>`: Load upstream context directly (bypasses roadmap requirement):
@@ -46,8 +46,8 @@ Scope routing, base flags (`--collab`, `--spec`, `-y`, `--gaps`, `--dir`), outpu
46
46
  1. `--from analyze:ANL-xxx` → uses analyze conclusions.implementation_scope directly
47
47
  2. `--from blueprint:BLP-xxx` → uses blueprint requirements + architecture
48
48
  3. `--dir <path>` → explicit context directory (unchanged)
49
- 4. Numeric arg → scope = "phase", resolve from roadmap (unchanged)
50
- 5. No args + roadmap → scope = "milestone" (unchanged)
49
+ 4. Numeric arg → scope = "milestone", resolve from roadmap
50
+ 5. No args + roadmap → scope = "current_milestone"
51
51
  6. No args + no roadmap → search state.json for latest analyze artifact, fallback standalone
52
52
 
53
53
  **Ad-hoc milestone (D-008):** When scope resolves to "standalone" via the standard standalone resolution (no `--from` source), and `current_milestone == null`, plan auto-creates an adhoc milestone (`type: "adhoc"`) in state.json before proceeding. This ensures downstream milestone-audit/complete have a valid milestone context. See workflow plan.md § "Ad-hoc Milestone Auto-Creation".
@@ -69,6 +69,28 @@ If exit code is 1, present warnings and ask whether to proceed.
69
69
 
70
70
  Follow '~/.maestro/workflows/plan.md' completely.
71
71
 
72
+ ### Plan Agent Model
73
+
74
+ Plan automatically selects agent mode based on milestone scope:
75
+
76
+ **Single agent mode** (default):
77
+ - Milestone involves ≤3 modules
78
+ - 1 workflow-planner agent, max 8 TASK JSON output
79
+ - Directly produces plan.json
80
+
81
+ **2+1 agent mode** (auto-triggered):
82
+ - Milestone involves >3 modules
83
+ - 2 parallel workflow-planner agents, each scoped to 2-3 modules
84
+ - Each agent produces max 8 TASK JSON (total max 16)
85
+ - +1 synthesis agent:
86
+ - Merges TASK JSON from both agents
87
+ - DAG analysis: dependency correctness, cycle detection, cross-module conflicts
88
+ - Terminology consistency check
89
+ - Wave ordering optimization
90
+ - Produces unified plan.json
91
+
92
+ Module count is derived from milestone phase definitions and analyze upstream context.
93
+
72
94
  ### Phase Gates (MANDATORY, BLOCKING — Create mode only)
73
95
 
74
96
  **GATE P1 → P2: Context Collection → Clarification**
@@ -113,7 +135,7 @@ Follow workflow plan.md § "Revise Mode" and § "Check Mode" respectively. These
113
135
 
114
136
  ```
115
137
  === PLAN READY ===
116
- Phase: {phase_name}
138
+ Milestone: {milestone_name}
117
139
  Tasks: {task_count} tasks in {wave_count} waves
118
140
  Check: {checker_status} (iteration {check_count}/{max_checks})
119
141
  Collision: {collision_status}
@@ -143,13 +165,13 @@ Status verdicts:
143
165
  |-----------|-----------|
144
166
  | Plan confirmed for execution | `/maestro-execute` |
145
167
  | Plan confirmed, specific directory | `/maestro-execute --dir {dir}` |
146
- | Re-plan with modifications | `/maestro-plan {phase}` |
168
+ | Re-plan with modifications | `/maestro-plan {milestone}` |
147
169
  </completion>
148
170
 
149
171
  <error_codes>
150
172
  | Code | Severity | Condition | Recovery |
151
173
  |------|----------|-----------|----------|
152
- | E001 | error | No args and no roadmap (cannot determine scope) | Provide phase number or topic, or create roadmap |
174
+ | E001 | error | No args and no roadmap (cannot determine scope) | Provide milestone number or topic, or create roadmap |
153
175
  | E003 | error | --gaps requires prior verification/issues to exist | Run maestro-execute first (verification is built-in) |
154
176
  | E004 | error | No plan found to revise (--revise without target) | Use --dir to specify plan, or create plan first |
155
177
  | E005 | error | Plan directory not found (--check) | Check path, use --dir |
@@ -43,13 +43,13 @@ Remaining → intent (amend_mode 时为 change_request)
43
43
  </context>
44
44
 
45
45
  <invariants>
46
- 1. **Ralph-v2 owns the full loop** — locate step → resolve args → load context → dispatch agent → wait for SendMessagereceive → extract signals → drift → complete,全部在本命令内完成
47
- 2. **One agent per step** — 每个执行 step 派发一个 named executor agent,agent 通过 SendMessage 回传结果,主流程解析结果后决定下一步
48
- 3. **Agent is a thin wrapper** — executor agent 调 `ralph next` 获取 skill prompt 并执行,通过 SendMessage 回传输出;arg resolution、context loading、signal extraction、drift analysis、ralph complete 均由主流程完成
49
- 4. **Dual dispatch model** — 执行 Agent 与评估 Agent 使用不同派发模式:
50
- - **执行 Agent**(A_STEP_DISPATCH):`Agent({name: "exe-xxx"})` named mailbox teammate,支持内部多 agent 编排,通过 `SendMessage({to: "main"})` 回传结果
51
- - **评估 Agent**(A_AGENT_EVALUATE / A_AGENT_GOAL_AUDIT / A_AGENT_REGROUND):`Agent()` 不传 `name` — 同步阻塞,直接返回结果(评估 agent 只读不需要多 agent)
52
- - `agent_exec_name` 既用于 display/日志,也作为执行 Agent 的 `name` 参数
46
+ 1. **Ralph-v2 owns the full loop** — locate step → resolve args → load context → dispatch agent → wait for task-notification → extract signals → drift → complete,全部在本命令内完成
47
+ 2. **One agent per step** — 每个执行 step 派发一个 unnamed executor agent,结果通过 task-notification `<result>` 回传,主流程解析结果后决定下一步
48
+ 3. **Agent is a thin wrapper** — executor agent 调 `ralph next` 获取 skill prompt 并执行,返回输出文本;arg resolution、context loading、signal extraction、drift analysis、ralph complete 均由主流程完成
49
+ 4. **Unified unnamed dispatch** — 执行 Agent 和评估 Agent 均使用 unnamed Agent(),结果通过 task-notification `<result>` 回传:
50
+ - **执行 Agent**(A_STEP_DISPATCH):`Agent()` 不传 name executor 内部编排也用 unnamed Agent(子结果自动回流 executor,嵌套套娃模型)
51
+ - **评估 Agent**(A_AGENT_EVALUATE / A_AGENT_GOAL_AUDIT / A_AGENT_REGROUND):同样 `Agent()` 不传 name
52
+ - `agent_exec_name` 仅用于 display/日志标识,不作为 Agent name 参数
53
53
  5. **主流程调 `ralph complete`** — 每个 step 完成后由主流程调 `maestro ralph complete`,非 agent 上报
54
54
  6. **Decision evaluation inline** — decision 节点不 handoff,通过 Agent 或 CLI delegate 在本循环内评估
55
55
  7. **CLI delegation for evaluation only** — CLI delegate(`maestro delegate --mode analysis`)仅限评估环节;执行仍通过 executor Agent 完成
@@ -89,8 +89,7 @@ S_CONFIRM — 用户确认
89
89
 
90
90
  S_STEP_LOCATE — 找下一个 pending step PERSIST: —
91
91
  S_STEP_RESOLVE — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
92
- S_STEP_DISPATCH — 组装上下文 + 派发 named executor agent PERSIST: step.agent_exec_name, step.status = "running"
93
- S_STEP_WAIT_MSG — 等待 executor 的 SendMessage 回传 PERSIST: —
92
+ S_STEP_DISPATCH — 组装上下文 + 派发 unnamed executor agent PERSIST: step.agent_exec_name, step.status = "running"
94
93
  S_STEP_ANALYZE — 提取信号 + 组装 completion 参数 PERSIST: —
95
94
  S_STEP_DRIFT — 产物 vs 目标偏离分析 PERSIST: step.drift_score
96
95
  S_STEP_COMPLETE — 调 `ralph complete` 上报 PERSIST: step.completion_*
@@ -145,12 +144,8 @@ S_STEP_RESOLVE:
145
144
  → S_STEP_DISPATCH DO: A_STEP_RESOLVE_ARGS
146
145
 
147
146
  S_STEP_DISPATCH:
148
- S_STEP_WAIT_MSG WHEN: executor dispatched DO: A_STEP_DISPATCH
149
-
150
- S_STEP_WAIT_MSG:
151
- → S_STEP_ANALYZE WHEN: received agent-message with EXECUTOR_OUTPUT DO: A_STEP_RECEIVE
152
- → S_HANDLE_FAIL WHEN: received agent-message with status=ERROR DO: A_STEP_RECEIVE
153
- → S_HANDLE_FAIL WHEN: executor idle without SendMessage(崩溃检测) DO: mark BLOCKED
147
+ S_STEP_ANALYZE WHEN: task-notification status=completed DO: A_STEP_DISPATCH
148
+ → S_HANDLE_FAIL WHEN: task-notification status=failed DO: mark BLOCKED
154
149
 
155
150
  S_STEP_ANALYZE:
156
151
  → S_STEP_DRIFT WHEN: STATUS == DONE|DONE_WITH_CONCERNS DO: A_STEP_EXTRACT
@@ -330,17 +325,15 @@ Execution criteria: {session.execution_criteria joined by '; '}
330
325
  | debug | `dbg` |
331
326
  | Other | `run` |
332
327
 
333
- **4. Dispatch(named mailbox executor):**
328
+ **4. Dispatch(unnamed executor):**
334
329
 
335
- > 执行 Agent 使用 `name` 参数派发为 named mailbox teammate,支持内部多 agent 编排。executor 通过 `SendMessage({to: "main"})` 回传执行结果。`resolved_agent_name` 同时用于 display 和 Agent `name` 参数。
330
+ > 执行 Agent 不传 name,结果通过 task-notification `<result>` 自动回传主流程。executor 内部编排也用 unnamed Agent(子结果自动回流 executor,嵌套套娃模型)。
336
331
 
337
332
  ```
338
333
  Agent({
339
- name: "{resolved_agent_name}",
340
334
  subagent_type: "ralph-executor",
341
- description: "执行 step {index}: {step.skill}",
335
+ description: "执行 step {index}: {step.skill} [{resolved_agent_name}]",
342
336
  prompt: `Session: {session_id}
343
- Agent name: {resolved_agent_name}
344
337
 
345
338
  {goal_context 块,仅 protocol < 2 时}
346
339
 
@@ -349,24 +342,11 @@ Agent name: {resolved_agent_name}
349
342
  })
350
343
  ```
351
344
 
352
- 5. Write `step.agent_exec_name` to status.json
345
+ 5. Write `step.agent_exec_name` to status.json(仅日志标识)
353
346
  6. Display: `[{index}/{total}] ⟶ {step.skill} → {resolved_agent_name}`
354
- 7. Agent() 立即返回(named teammate 异步启动)→ 进入 S_STEP_WAIT_MSG 等待 executor 的 SendMessage
355
-
356
- ### A_STEP_RECEIVE
357
-
358
- 从 executor 的 `agent-message` 中提取执行输出。
359
-
360
- 1. 接收到 `<agent-message from="{resolved_agent_name}">` 后,提取 message 内容
361
- 2. 解析 `EXECUTOR_OUTPUT` 格式:
362
- - `status: DONE` → agent_output = message 内容,继续 S_STEP_ANALYZE
363
- - `status: DONE_WITH_CONCERNS` → agent_output = message 内容,继续 S_STEP_ANALYZE
364
- - `status: ERROR` → STATUS=BLOCKED,转 S_HANDLE_FAIL
365
- 3. idle_notification 处理(区分正常等待与崩溃):
366
- - 首次收到 `idle_notification`:executor 可能在等待 worker 回传,正常现象,继续等待
367
- - 连续收到 2 次 `idle_notification` 且中间无 `agent-message`:向 executor 发送 `SendMessage({to: "{resolved_agent_name}", message: "请回报执行状态"})` 询问
368
- - 询问后仍只收到 `idle_notification` 无 `agent-message`:STATUS=BLOCKED,转 S_HANDLE_FAIL
369
- 4. `agent_output` = 提取的 message 内容
347
+ 7. Agent() 返回 agentId 等待 task-notification(status=completed `<result>` 含 executor 输出)
348
+ 8. task-notification 到达后,`agent_output` = `<result>` 内容 → 进入 S_STEP_ANALYZE
349
+ 9. task-notification status=failed → STATUS=BLOCKED,转 S_HANDLE_FAIL
370
350
 
371
351
  ### A_STEP_EXTRACT
372
352
 
@@ -749,10 +729,7 @@ GUARD: 已完成(`status: "done"`)的目标不可 supersede(skip + warn)
749
729
 
750
730
  - **A_RETRY**: `Bash("maestro ralph retry {index}")` — CLI 设 `step.retried = true`, `step.status = "pending"`, 清 `active_step_index`
751
731
  - **A_PAUSE_SESSION**: `ralph complete N --status BLOCKED --reason "..."` — CLI 写 `session.status = "paused"`
752
- - **A_COMPLETE_SESSION**: 校验所有 step `completion_confirmed == true` + `task_decomposition_all_done == true`(若存在),通过后写 `session.status = "completed"`。完成后向所有 idle executor 发送 shutdown_request 清理:
753
- ```
754
- 遍历 steps[].agent_exec_name → SendMessage({to: name, message: {type: "shutdown_request"}})
755
- ```
732
+ - **A_COMPLETE_SESSION**: 校验所有 step `completion_confirmed == true` + `task_decomposition_all_done == true`(若存在),通过后写 `session.status = "completed"`。unnamed executor 执行完自动终止,无需 shutdown 清理
756
733
 
757
734
  </actions>
758
735
 
@@ -884,24 +861,23 @@ E001–E006, W001–W004 适用。Agent 新增:
884
861
 
885
862
  ### Success Criteria
886
863
 
887
- - [ ] ralph-v2 owns full step loop: locate → resolve → dispatch → wait receive → extract → drift → complete → next
888
- - [ ] One agent per step — `Agent({ name, subagent_type: "ralph-executor" })` 每步派发一个 named executor
889
- - [ ] Executor 内调 `maestro ralph next` 获取 skill prompt 并执行,支持内部多 agent 编排
890
- - [ ] Executor 通过 `SendMessage({to: "main"})` 回传 `EXECUTOR_OUTPUT` 格式结果
864
+ - [ ] ralph-v2 owns full step loop: locate → resolve → dispatch → wait task-notification → extract → drift → complete → next
865
+ - [ ] One agent per step — `Agent({ subagent_type: "ralph-executor" })` 每步派发一个 unnamed executor
866
+ - [ ] Executor 内调 `maestro ralph next` 获取 skill prompt 并执行,内部编排用 unnamed Agent(子结果回流 executor)
867
+ - [ ] Executor 结果通过 task-notification `<result>` 自动回传主流程
891
868
  - [ ] 主流程调 `maestro ralph complete` 上报(非 agent 上报)
892
869
  - [ ] 主流程负责 arg resolution、context loading、signal extraction、drift analysis
893
- - [ ] A_STEP_RECEIVE executor agent-message 中提取执行输出
894
- - [ ] Executor 崩溃(idle SendMessage)→ 询问 2 次后 STATUS=BLOCKED,转 S_HANDLE_FAIL
895
- - [ ] Dual dispatch: 执行 Agent 传 `name`(async + SendMessage),评估 Agent 不传 `name`(sync)或 CLI delegate
870
+ - [ ] task-notification status=failed STATUS=BLOCKED,转 S_HANDLE_FAIL
871
+ - [ ] Unified unnamed dispatch: 执行 Agent 和评估 Agent 均不传 name,结果通过 task-notification 回传。CLI delegate 仅限评估环节
896
872
  - [ ] Decision evaluation 支持三种模式:agent(同步)、cli(CLI delegate)、dual(并行交叉验证)
897
873
  - [ ] `evaluate_via` 字段控制评估模式,默认 `"agent"`
898
874
  - [ ] dual 模式合并策略:一致取共识、分歧保守降级、CLI 未返回用 Agent 结果
899
875
  - [ ] Verdict 解析保持 `---VERDICT---` 格式,parse 失败 → fallback fix + parse_failed: true
900
876
  - [ ] decisions.ndjson 追加:source 字段为 `"ralph-v2"`
901
- - [ ] Session schema: `execution_mode: "agent"`,`agent_exec_name`(执行 Agent name + display),含 `artifacts_produced`
877
+ - [ ] Session schema: `execution_mode: "agent"`,`agent_exec_name`(display 标识),含 `artifacts_produced`
902
878
  - [ ] Chain building(S_RESOLVE_PHASE through S_BUILD_CHAIN)自包含执行
903
879
  - [ ] A_STEP_DISPATCH 含前序产出加载(滑动窗口 5 step + accumulated signals + stage-specific artifacts)
904
- - [ ] `agent_exec_name` 含 stage prefix(grl/brn/anm/ana/pln/exe/rev/tst/dbg)——同时用于 Agent name 参数和 display
880
+ - [ ] `agent_exec_name` 含 stage prefix(grl/brn/anm/ana/pln/exe/rev/tst/dbg)——仅用于 display/日志标识
905
881
  - [ ] `--summary` 在 DONE/DONE_WITH_CONCERNS 时为 MUST(动词开头,≤100 字)
906
882
  - [ ] CAVEATS 在 DONE_WITH_CONCERNS 时同时映射 --concerns
907
883
  - [ ] A_STEP_EXTRACT 从 executor 输出提取 artifact IDs、path signals、phase signals
@@ -15,7 +15,7 @@ allowed-tools:
15
15
  <purpose>
16
16
  Generate milestone/phase roadmap from requirements or upstream context. Three modes: create (default), revise (`--revise`), review (`--review`). For formal spec documents, use `/maestro-blueprint`.
17
17
 
18
- Pipeline: brainstorm/blueprint/analyze → **roadmap** → analyze {phase} → plan → execute.
18
+ Pipeline: brainstorm/blueprint/analyze → **roadmap** → analyze {milestone} → plan {milestone} → execute.
19
19
  </purpose>
20
20
 
21
21
  <required_reading>
@@ -60,7 +60,7 @@ Follows @~/.maestro/workflows/interview-mechanics.md standard.
60
60
 
61
61
  **Interaction mode**: convergent menu-driven
62
62
  **Decision tree** (strict order): mode (create / revise / review) → requirement scope (MVP / complete / phased) → decomposition strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order
63
- **Scope guard**: only roadmap shape; do not pre-resolve intra-phase task breakdown (belongs to plan)
63
+ **Scope guard**: only roadmap shape; do not pre-resolve task breakdown or phase decomposition (belongs to plan)
64
64
  **Writeback target**: .workflow/roadmap.md "Roadmap Decisions" section (create if absent)
65
65
  **Additional skip conditions**: --revise, --review (skip to respective mode)
66
66
  **Exit condition**: on consensus or explicit user signal → finalize Roadmap Decisions section
@@ -148,7 +148,7 @@ Append to state.json.artifacts[]:
148
148
  | E003 | error | No test framework detected | Install test framework or configure test runner |
149
149
  | W001 | warning | One or more test scenarios failed | Auto-iterate or suggest fix options |
150
150
  | W002 | warning | Max iterations reached without convergence | Review reflection-log.md, suggest debug |
151
- | W003 | warning | Degraded spec mode (no full spec package) | Consider running maestro-roadmap --mode full |
151
+ | W003 | warning | Degraded spec mode (no full spec package) | Consider running /maestro-blueprint |
152
152
  </error_codes>
153
153
 
154
154
  <success_criteria>
@@ -292,6 +292,8 @@ Odyssey 长周期循环(独立路径)
292
292
  | 长周期改进 | Odyssey 深度循环 | `/odyssey-improve "改进目标"` |
293
293
  | 需求迭代 | Odyssey 深度循环 | `/odyssey-planex "需求描述"` |
294
294
 
295
+ > 注:Path A/B 中 `analyze 1` / `plan 1` 的数字 `1` 指 **milestone 编号**(第 1 个里程碑),下游以 milestone 为入口。
296
+
295
297
  ## Core Rules
296
298
 
297
299
  1. **Catalog First**: 先查 catalog.json,再按需读 source 文件
@@ -9,8 +9,8 @@
9
9
  {"name": "maestro-init", "command": "/maestro-init", "category": "core", "description": "项目初始化 — 创建 .workflow/ 目录结构和状态文件", "source": "../../commands/maestro-init.md"},
10
10
  {"name": "maestro-brainstorm", "command": "/maestro-brainstorm", "category": "core", "description": "头脑风暴 — 发散探索,多角色创意,上游起源命令", "source": "../../commands/maestro-brainstorm.md"},
11
11
  {"name": "maestro-blueprint", "command": "/maestro-blueprint", "category": "core", "description": "正式规格文档化 — 7-phase 收敛规格链,上游起源命令,产出 .workflow/blueprint/", "source": "../../commands/maestro-blueprint.md"},
12
- {"name": "maestro-roadmap", "command": "/maestro-roadmap", "category": "core", "description": "路线图编排 — 消费上游 context,纯 Milestone > Phase 分解(不做技术探索)", "source": "../../commands/maestro-roadmap.md"},
13
- {"name": "maestro-quick", "command": "/maestro-quick", "category": "core", "description": "快速任务 — 跳过 Phase 管线直接完成,支持 --full/--discuss 模式", "source": "../../commands/maestro-quick.md"},
12
+ {"name": "maestro-roadmap", "command": "/maestro-roadmap", "category": "core", "description": "路线图编排 — Milestone > Phase 分解,下游以 milestone 为入口", "source": "../../commands/maestro-roadmap.md"},
13
+ {"name": "maestro-quick", "command": "/maestro-quick", "category": "core", "description": "快速任务 — 跳过管线直接完成,支持 --full/--discuss 模式", "source": "../../commands/maestro-quick.md"},
14
14
  {"name": "maestro-overlay", "command": "/maestro-overlay", "category": "core", "description": "Overlay 管理 — 创建、查看、删除命令补丁", "source": "../../commands/maestro-overlay.md"},
15
15
  {"name": "maestro-amend", "command": "/maestro-amend", "category": "core", "description": "修正补丁 — 从工作流信号自动生成 overlay", "source": "../../commands/maestro-amend.md"},
16
16
  {"name": "maestro-composer", "command": "/maestro-composer", "category": "core", "description": "编排器 — compose + play 工作流组合执行", "source": "../../commands/maestro-composer.md"},
@@ -27,7 +27,7 @@
27
27
  {"name": "maestro-plan", "command": "/maestro-plan", "category": "pipeline", "description": "任务规划 — 支持 --from analyze:ANL-xxx 直达、碰撞检测、gap 修复计划", "source": "../../commands/maestro-plan.md"},
28
28
  {"name": "maestro-execute", "command": "/maestro-execute", "category": "pipeline", "description": "任务执行 — wave 并行执行、delegate 编排、自动提交", "source": "../../commands/maestro-execute.md"},
29
29
 
30
- {"name": "maestro-milestone-audit", "command": "/maestro-milestone-audit", "category": "milestone", "description": "里程碑审计 — 检查 Phase 完成度和质量", "source": "../../commands/maestro-milestone-audit.md"},
30
+ {"name": "maestro-milestone-audit", "command": "/maestro-milestone-audit", "category": "milestone", "description": "里程碑审计 — 检查里程碑完成度和质量", "source": "../../commands/maestro-milestone-audit.md"},
31
31
  {"name": "maestro-milestone-complete", "command": "/maestro-milestone-complete", "category": "milestone", "description": "里程碑完成 — 归档里程碑并推进下一个", "source": "../../commands/maestro-milestone-complete.md"},
32
32
  {"name": "maestro-milestone-release", "command": "/maestro-milestone-release", "category": "milestone", "description": "里程碑发布 — 生成发布说明和变更日志", "source": "../../commands/maestro-milestone-release.md"},
33
33
 
@@ -218,17 +218,17 @@
218
218
  ],
219
219
  "workflows": {
220
220
  "topology": {
221
- "hierarchy": "Roadmap > Milestone > Phase > Task",
221
+ "hierarchy": "Roadmap > Milestone > Phase | Plan > Task > Wave",
222
222
  "layers": {
223
223
  "upstream_origin": ["brainstorm (发散/轻量)", "blueprint (收敛/重型)"],
224
- "understanding": "analyze 双层: 宏观(文本参数) + 微观(数字参数)",
224
+ "understanding": "analyze 双层: 宏观(文本参数) + 微观(milestone 数字参数)",
225
225
  "orchestration": "roadmap (可选,消费上游 context)",
226
226
  "execution": ["plan", "execute"]
227
227
  }
228
228
  },
229
229
  "paths": {
230
- "A_full_project": "brainstorm → blueprint(可选) → analyze 宏观 → roadmap → analyze 微观 → plan → execute",
231
- "B_large_feature": "analyze 宏观 → roadmap → analyze 微观 → plan → execute",
230
+ "A_full_project": "brainstorm → blueprint(可选) → analyze 宏观 → roadmap → analyze {milestone} → plan {milestone} → execute",
231
+ "B_large_feature": "analyze 宏观 → roadmap → analyze {milestone} → plan {milestone} → execute",
232
232
  "C_medium_feature": "analyze 宏观 → plan --from analyze:ANL-xxx → execute",
233
233
  "D_small_fix": "plan → execute",
234
234
  "E_spec_only": "blueprint → (供人阅读)",
@@ -349,6 +349,7 @@ Direct in-context skill invocation — **replaces the old spawn/wave/CSV mechani
349
349
  | Placeholder | Source |
350
350
  |-------------|--------|
351
351
  | `{phase}` | session.phase |
352
+ | `{milestone}` | session.milestone |
352
353
  | `{plan_dir}` | session.context.plan_dir |
353
354
  | `{analysis_dir}` | session.context.analysis_dir |
354
355
  | `{brainstorm_dir}` | session.context.brainstorm_dir |
@@ -358,7 +359,7 @@ Direct in-context skill invocation — **replaces the old spawn/wave/CSV mechani
358
359
  | `{BLP}` | session.blueprint_id |
359
360
  | `{intent}` | session.intent |
360
361
 
361
- **--from auto-injection**: 当 step 是 `maestro-plan`,args 含 `{phase}` 但无 `--from` 且无 `--dir`,且 `session.context.analysis_dir` 已填充 → 查 state.json 同 phase+milestone 最新 completed analyze artifact → 注入 `--from analyze:{id}`,写 `step.source_artifact_ref`
362
+ **--from auto-injection**: 当 step 是 `maestro-plan`,args 含 `{milestone}` 但无 `--from` 且无 `--dir`,且 `session.context.analysis_dir` 已填充 → 查 state.json 同 milestone 最新 completed analyze artifact → 注入 `--from analyze:{id}`,写 `step.source_artifact_ref`
362
363
  2. Mark step `status="running"`, persist status.json + `update_plan` (this step → in_progress)
363
364
  3. **Invoke the skill directly**: execute `Skill(skill_name, resolved_args)` in coordinator context (NO spawn). Read its produced artifacts directly
364
365
  4. On success: mark step `status="done"`. **Structured completion**: `Bash("maestro ralph complete {idx} --status DONE --summary \"...\" [--decisions \"...\"] [--caveats \"...\"] [--deferred \"...\"]")`(`--summary` MUST,动词开头 ≤100 字)。**Barrier-context update** (when step is a context-producing skill):
@@ -424,9 +425,9 @@ S_DECISION_EVAL 入口;镜像 maestro-ralph `A_GOAL_AUDIT_EVALUATE`。Condense
424
425
  | `init` | `maestro-init` |
425
426
  | `blueprint` | `maestro-blueprint "{intent}"` |
426
427
  | `analyze_macro` | `maestro-analyze "{intent}"` |
427
- | `analyze` | `maestro-analyze {phase}` |
428
+ | `analyze` | `maestro-analyze {milestone}` |
428
429
  | `ui_design` | `maestro-impeccable build "{phase}"` |
429
- | `plan` | `maestro-plan {phase}` |
430
+ | `plan` | `maestro-plan {milestone}` |
430
431
  | `plan_from_analyze` | `maestro-plan --from analyze:{analyze_macro_id}` |
431
432
  | `plan_from_blueprint` | `maestro-plan --from blueprint:{blueprint_id}` |
432
433
  | `execute` | `maestro-execute {phase}` |
@@ -482,7 +483,7 @@ S_DECISION_EVAL 入口;镜像 maestro-ralph `A_GOAL_AUDIT_EVALUATE`。Condense
482
483
  | `quality-fix` | [B] maestro-analyze --gaps → [B] maestro-plan --gaps → [B] maestro-execute → quality-review |
483
484
  | `deploy` | quality-review → maestro-milestone-release |
484
485
  | `blueprint-driven` | maestro-init → [B] maestro-blueprint → [B] maestro-plan --from blueprint:{BLP} → [B] maestro-execute → quality-review → manage-harvest --auto |
485
- | `analyze-macro-driven` | [B] maestro-analyze "{intent}" → ◆ post-analyze-scope → (large: [B] maestro-roadmap --from analyze:{ANL} → [B] maestro-analyze {phase} → [B] maestro-plan {phase}) / (medium\|small: [B] maestro-plan --from analyze:{ANL}) → [B] maestro-execute → quality-review → manage-harvest --auto |
486
+ | `analyze-macro-driven` | [B] maestro-analyze "{intent}" → ◆ post-analyze-scope → (large: [B] maestro-roadmap --from analyze:{ANL} → [B] maestro-analyze {milestone} → [B] maestro-plan {milestone}) / (medium\|small: [B] maestro-plan --from analyze:{ANL}) → [B] maestro-execute → quality-review → manage-harvest --auto |
486
487
  | `grill-brainstorm` | [B] maestro-grill → [B] maestro-brainstorm --from grill:{GRL} → [B] maestro-plan → [B] maestro-execute → quality-review → manage-harvest --auto (**auto_mode: grill 透传 `-y`,Auto mode 代码代答**) |
487
488
  | `brainstorm-driven` | [B] maestro-brainstorm → [B] maestro-plan → [B] maestro-execute → quality-review → manage-harvest --auto |
488
489
  | `ui-craft-build` | maestro-impeccable build → [B] maestro-plan → [B] maestro-execute → quality-review → manage-harvest --auto |
@@ -542,7 +543,7 @@ S_DECISION_EVAL 入口;镜像 maestro-ralph `A_GOAL_AUDIT_EVALUATE`。Condense
542
543
  - [ ] Intent classified and chain resolved
543
544
  - [ ] Chain catalog 覆盖 blueprint / analyze_macro / plan_from_analyze / plan_from_blueprint / blueprint-driven / analyze-macro-driven 等新拓扑路径
544
545
  - [ ] D-007: 数字 phase 步骤的 `milestone_id` 通过 `state.json.milestones[].phase_slugs` 反查;写入 step
545
- - [ ] plan step args 支持 `{phase}` / `--from analyze:{ANL_ID}` / `--from blueprint:{BLP_ID}` 三路径,`source_artifact_ref` 写入
546
+ - [ ] plan step args 支持 `{milestone}` / `--from analyze:{ANL_ID}` / `--from blueprint:{BLP_ID}` 三路径,`source_artifact_ref` 写入
546
547
  - [ ] Broad lifecycle intents decomposed (≤3 boundary questions); narrow/single-step skip
547
548
  - [ ] Goal registered via built-in `create_goal`; status.json decomposition fields additive-only
548
549
  - [ ] status.json 唯一真源;无 markdown 清单