maestro-flow 0.4.15 → 0.4.17

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 (104) hide show
  1. package/.agents/skills/maestro/SKILL.md +17 -17
  2. package/.agents/skills/maestro-init/SKILL.md +1 -1
  3. package/.agents/skills/maestro-plan/SKILL.md +10 -9
  4. package/.agents/skills/maestro-ralph/SKILL.md +21 -17
  5. package/.agents/skills/maestro-ralph-beta/SKILL.md +893 -0
  6. package/.agents/skills/maestro-ralph-execute/SKILL.md +54 -71
  7. package/.agents/skills/manage-knowledge-audit/SKILL.md +90 -0
  8. package/.agy/skills/maestro/SKILL.md +17 -17
  9. package/.agy/skills/maestro-init/SKILL.md +1 -1
  10. package/.agy/skills/maestro-plan/SKILL.md +10 -9
  11. package/.agy/skills/maestro-ralph/SKILL.md +21 -17
  12. package/.agy/skills/maestro-ralph-beta/SKILL.md +889 -0
  13. package/.agy/skills/maestro-ralph-execute/SKILL.md +54 -71
  14. package/.agy/skills/manage-knowledge-audit/SKILL.md +90 -0
  15. package/.claude/commands/maestro-init.md +1 -1
  16. package/.claude/commands/maestro-plan.md +10 -9
  17. package/.claude/commands/maestro-ralph-beta.md +891 -0
  18. package/.claude/commands/maestro-ralph-execute.md +54 -71
  19. package/.claude/commands/maestro-ralph.md +21 -17
  20. package/.claude/commands/maestro.md +17 -17
  21. package/.claude/commands/manage-knowledge-audit.md +88 -0
  22. package/.codex/skills/maestro-ralph/SKILL.md +93 -73
  23. package/.codex/skills/maestro-ralph-beta/SKILL.md +891 -0
  24. package/.codex/skills/maestro-ralph-execute/SKILL.md +243 -0
  25. package/dist/src/cli.js +1 -0
  26. package/dist/src/cli.js.map +1 -1
  27. package/dist/src/commands/font-guide.d.ts +13 -0
  28. package/dist/src/commands/font-guide.d.ts.map +1 -0
  29. package/dist/src/commands/font-guide.js +114 -0
  30. package/dist/src/commands/font-guide.js.map +1 -0
  31. package/dist/src/commands/install-backend.d.ts.map +1 -1
  32. package/dist/src/commands/install-backend.js +23 -4
  33. package/dist/src/commands/install-backend.js.map +1 -1
  34. package/dist/src/commands/install.d.ts.map +1 -1
  35. package/dist/src/commands/install.js +5 -0
  36. package/dist/src/commands/install.js.map +1 -1
  37. package/dist/src/commands/ralph.d.ts +6 -0
  38. package/dist/src/commands/ralph.d.ts.map +1 -0
  39. package/dist/src/commands/ralph.js +135 -0
  40. package/dist/src/commands/ralph.js.map +1 -0
  41. package/dist/src/core/manifest.d.ts +2 -0
  42. package/dist/src/core/manifest.d.ts.map +1 -1
  43. package/dist/src/core/manifest.js.map +1 -1
  44. package/dist/src/hooks/statusline.d.ts.map +1 -1
  45. package/dist/src/hooks/statusline.js +189 -81
  46. package/dist/src/hooks/statusline.js.map +1 -1
  47. package/dist/src/ralph/cmd-check.d.ts +9 -0
  48. package/dist/src/ralph/cmd-check.d.ts.map +1 -0
  49. package/dist/src/ralph/cmd-check.js +53 -0
  50. package/dist/src/ralph/cmd-check.js.map +1 -0
  51. package/dist/src/ralph/cmd-complete.d.ts +10 -0
  52. package/dist/src/ralph/cmd-complete.d.ts.map +1 -0
  53. package/dist/src/ralph/cmd-complete.js +91 -0
  54. package/dist/src/ralph/cmd-complete.js.map +1 -0
  55. package/dist/src/ralph/cmd-next.d.ts +5 -0
  56. package/dist/src/ralph/cmd-next.d.ts.map +1 -0
  57. package/dist/src/ralph/cmd-next.js +201 -0
  58. package/dist/src/ralph/cmd-next.js.map +1 -0
  59. package/dist/src/ralph/cmd-session.d.ts +5 -0
  60. package/dist/src/ralph/cmd-session.d.ts.map +1 -0
  61. package/dist/src/ralph/cmd-session.js +52 -0
  62. package/dist/src/ralph/cmd-session.js.map +1 -0
  63. package/dist/src/ralph/cmd-skills.d.ts +8 -0
  64. package/dist/src/ralph/cmd-skills.d.ts.map +1 -0
  65. package/dist/src/ralph/cmd-skills.js +62 -0
  66. package/dist/src/ralph/cmd-skills.js.map +1 -0
  67. package/dist/src/ralph/skill-resolver.d.ts +40 -0
  68. package/dist/src/ralph/skill-resolver.d.ts.map +1 -0
  69. package/dist/src/ralph/skill-resolver.js +162 -0
  70. package/dist/src/ralph/skill-resolver.js.map +1 -0
  71. package/dist/src/ralph/skill-scanner.d.ts +20 -0
  72. package/dist/src/ralph/skill-scanner.d.ts.map +1 -0
  73. package/dist/src/ralph/skill-scanner.js +137 -0
  74. package/dist/src/ralph/skill-scanner.js.map +1 -0
  75. package/dist/src/ralph/status-checker.d.ts +7 -0
  76. package/dist/src/ralph/status-checker.d.ts.map +1 -0
  77. package/dist/src/ralph/status-checker.js +139 -0
  78. package/dist/src/ralph/status-checker.js.map +1 -0
  79. package/dist/src/ralph/status-schema.d.ts +96 -0
  80. package/dist/src/ralph/status-schema.d.ts.map +1 -0
  81. package/dist/src/ralph/status-schema.js +9 -0
  82. package/dist/src/ralph/status-schema.js.map +1 -0
  83. package/dist/src/ralph/status-store.d.ts +20 -0
  84. package/dist/src/ralph/status-store.d.ts.map +1 -0
  85. package/dist/src/ralph/status-store.js +70 -0
  86. package/dist/src/ralph/status-store.js.map +1 -0
  87. package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -1
  88. package/dist/src/tui/install-ui/ExecutionView.js +1 -0
  89. package/dist/src/tui/install-ui/ExecutionView.js.map +1 -1
  90. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  91. package/dist/src/tui/install-ui/InstallExecution.js +2 -0
  92. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  93. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  94. package/dist/src/tui/install-ui/InstallFlow.js +28 -14
  95. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  96. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  97. package/dist/src/tui/install-ui/InstallResult.js +1 -1
  98. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  99. package/dist/src/utils/update-notices.js +12 -0
  100. package/dist/src/utils/update-notices.js.map +1 -1
  101. package/package.json +1 -1
  102. package/templates/config.json +21 -33
  103. package/workflows/init.md +11 -11
  104. package/workflows/knowledge-audit.md +358 -0
@@ -51,11 +51,11 @@ $ARGUMENTS — user intent text, or special keywords.
51
51
  3. **Auto flag pass-through** — 仅当用户传入 `-y` 时透传 `-y` 到 skill args
52
52
  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`
53
53
  5. **status.json 唯一真源** — 不生成 `goal-checklist.md` 或外部清单
54
- 6. **执行步骤统一 Read .md 内联**chain 内每个执行 step 解析 `command_scope`/`command_path`(全局优先 `~/.claude/commands/{name}.md`,fallback 项目),由 ralph-execute `read_file({command_path})` 内联执行;CLI 仅在 decision 节点做只读分析
55
- 7. **Topology awareness** — chain catalog 含 brainstorm / blueprint / analyze-macro(text) / analyze(numeric phase) / roadmap / plan(三路径) / execute / verify / ...;scope_verdict 路由由 ralph 在 `post-analyze-scope` 决定
56
- 8. **D-007 milestone 反查** — 数字 phase 步骤的 `milestone_id` 由 `state.json.milestones[].phase_slugs` 反查得出
57
- 9. **每个 step 必须 `completion_confirmed: true`** — 基于 `--- COMPLETION STATUS ---` `STATUS: DONE`
58
- 10. **schema 向后兼容** 新增字段全部可选;既有字段名不删不改
54
+ 6. **执行步骤统一通过 `maestro ralph next` 加载** — `command_scope`/`command_path` `maestro ralph skills --json --quiet` 预校验(project 覆盖 global);decision 节点不走 CLI,走 `invoke_skill("maestro-ralph")` handoff
55
+ 7. **Topology awareness** — chain catalog 含 brainstorm / blueprint / analyze-macro / analyze / roadmap / plan(三路径) / execute / verify / ...;scope_verdict ralph 在 `post-analyze-scope` 决定
56
+ 8. **D-007 milestone 反查** — 数字 phase `milestone_id` 由 `state.json.milestones[].phase_slugs` 反查
57
+ 9. **每个 step 必须 `completion_confirmed: true`** — `maestro ralph complete N --status DONE|DONE_WITH_CONCERNS` 写入
58
+ 10. **schema**`ralph_protocol_version: "1"` 标记 CLI-driven session;新增字段全部可选
59
59
  </invariants>
60
60
 
61
61
  <state_machine>
@@ -141,7 +141,7 @@ S_FALLBACK:
141
141
  - 数字 phase 上下文 → `analyze {phase}` → `plan {phase}` → `execute {phase}` → `verify {phase}` → quality pipeline
142
142
  - 已有 analyze artifact 想直达执行 → `plan --from analyze:{ANL_ID}` → execute → verify
143
143
  - 已有 blueprint artifact → `plan --from blueprint:{BLP_ID}` → execute → verify
144
- 4. 执行 step 解析 `command_scope` + `command_path`(全局优先 fallback 项目);写入 `step.stage` / `step.scope` / `step.source_artifact_ref`(如 `--from` 注入时)。decision 节点通过 `step.decision` 字段标识
144
+ 4. 执行 step:`shell("maestro ralph skills --json --quiet")` 预校验 skill 名,命中写绝对路径到 `command_path`,未命中标 `missing`;同时写 `step.stage` / `step.scope` / `step.source_artifact_ref`。decision 节点不解析 command_path
145
145
 
146
146
  ### A_CLARIFY
147
147
 
@@ -171,30 +171,28 @@ S_FALLBACK:
171
171
  ```json
172
172
  {
173
173
  "session_id", "source": "maestro", "intent", "task_type", "chain_name",
174
+ "ralph_protocol_version": "1", "active_step_index": null,
174
175
  "phase", "phase_is_new": false, "milestone": "",
175
176
  "scope_verdict": null, "analyze_macro_id": null, "blueprint_id": null,
176
- "auto_mode": false, "cli_tool": "claude", // cli_tool: decision 节点 delegate 评估时的 CLI 工具
177
+ "auto_mode": false, "cli_tool": "claude",
177
178
  "context": { "scratch_dir": null, "plan_dir": null, "analysis_dir": null,
178
179
  "brainstorm_dir": null, "blueprint_dir": null, "issue_id": null },
179
180
  "steps": [{
180
- "index": 0,
181
- "skill": "", "args": "",
182
- "stage": "", "scope": null,
183
- "decision": null, // 非 null → decision 节点;null → 执行节点
184
- "command_scope": "global|project|missing|null",
185
- "command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
181
+ "index": 0, "skill": "", "args": "",
182
+ "stage": "", "scope": null, "decision": null,
183
+ "command_scope": "global|project|missing|null", "command_path": "<abs> | null",
186
184
  "milestone_id": null, "source_artifact_ref": null,
187
185
  "status": "pending", "goal_ref": null,
188
186
  "completion_confirmed": false, "completion_status": null,
189
- "completion_evidence": null, "completed_at": null
187
+ "completion_evidence": null, "completed_at": null,
188
+ "deferred_reads": [], "load": null
190
189
  }],
191
190
  "waves": [], "current_step": 0, "status": "running",
192
191
  "boundary_contract": {}, "execution_criteria": [],
193
192
  "task_decomposition": [], "task_decomposition_all_done": false
194
193
  }
195
194
  ```
196
- Decomposition 字段仅在 A_DECOMPOSE_TASKS 产出时写入(additive)
197
- 3. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E005 列出缺失 skill
195
+ 3. Validate: 所有 step 的 `command_scope != "missing"`,否则 raise E005 列出缺失 skill
198
196
  4. Initialize tracking via `track_tasks`
199
197
  5. If `--super`: read `maestro-super.md`, follow it completely
200
198
 
@@ -228,7 +226,9 @@ S_FALLBACK:
228
226
  - [ ] status.json 唯一真源;无 markdown 清单;post-goal-audit 节点在 decomposed 时追加;/goal 提示词以 status.json 为判据
229
227
  - [ ] Chain selected and confirmed (or auto-confirmed)
230
228
  - [ ] Session dir created with status.json before execution; decomposition fields additive-only
231
- - [ ] 执行 step 含 `command_scope` + `command_path` + `completion_confirmed` 字段;decision step 通过 `step.decision` 字段标识
229
+ - [ ] 执行 step 含 `command_scope` + `command_path` + `completion_confirmed`;decision step `step.decision` 标识
230
+ - [ ] `command_scope`/`command_path` 由 `maestro ralph skills --json --quiet` 预校验(project 覆盖 global)
231
+ - [ ] Session schema 含 `ralph_protocol_version: "1"` + `active_step_index: null` + step.load 占位
232
232
  - [ ] 用户传入 `-y` 时透传到 skill args
233
233
  - [ ] All chains dispatched via maestro-ralph-execute
234
234
  - [ ] Low-complexity intents routed to maestro-quick
@@ -73,7 +73,7 @@ Other commands:
73
73
  - [ ] Deep questioning completed (threads followed, not rushed) — or extracted from document/brainstorm
74
74
  - [ ] `.workflow/project.md` created with Core Value, Requirements (Validated/Active/Out of Scope), Key Decisions
75
75
  - [ ] `.workflow/state.json` created with artifacts[] array, initialized to idle state
76
- - [ ] `.workflow/config.json` created with user-selected granularity, workflow agents, gate preferences
76
+ - [ ] `.workflow/config.json` created with workflow / execution / git / gates / codebase / guard / collab / specInjection / dashboard segments
77
77
  - [ ] `.workflow/specs/` initialized with convention files
78
78
  - [ ] Research completed (if enabled) — 4 parallel agents spawned
79
79
  - [ ] User knows next step is `/maestro-roadmap` (light) or `/maestro-roadmap --mode full` (spec package)
@@ -136,18 +136,19 @@ Next steps:
136
136
  /maestro-plan {phase} -- Re-plan with modifications
137
137
  ```
138
138
 
139
- **Completion status:**
139
+ **Completion (when invoked from ralph):**
140
+ End the step by calling the CLI (no `--- COMPLETION STATUS ---` text block):
140
141
  ```
141
- --- COMPLETION STATUS ---
142
- STATUS: DONE|NEEDS_CONTEXT
143
- CONCERNS: {description if applicable}
144
- NEXT: /maestro-execute
145
- --- END STATUS ---
142
+ maestro ralph complete <idx> --status DONE [--evidence scratch/{YYYYMMDD}-plan-P{N}-{slug}/plan.json]
146
143
  ```
147
144
 
148
- Status mapping:
149
- - **DONE** — Plan created/revised and confirmed → NEXT: /maestro-execute
150
- - **NEEDS_CONTEXT** — Ambiguous requirements, insufficient context to produce plan
145
+ STATUS verdicts (CLI-enforced enum):
146
+ - **DONE** — Plan created/revised and confirmed → next step picks up automatically
147
+ - **DONE_WITH_CONCERNS** — Plan produced but with explicit caveats; pass `--concerns "..."`
148
+ - **NEEDS_RETRY** — Plan failed (tooling error, transient issue); ralph will retry
149
+ - **BLOCKED** — External hard blocker (e.g., upstream artifact missing, dependency unavailable); pass `--reason "..."`
150
+
151
+ > Ambiguous requirements are NOT a completion status — resolve them in-place via `ask_user` during planning (≤3 rounds), then proceed to DONE. `NEEDS_CONTEXT` has been removed; context shortage is handled by the harness's automatic compaction.
151
152
 
152
153
  ### Mode: Revise / Check
153
154
 
@@ -28,7 +28,7 @@ Entry points:
28
28
  Initial decomposition (S_DECOMPOSE): boundary-clarified via ≤3 questions for broad intents (重构/全面/迁移/重写). 写入 status.json 的 `boundary_contract` / `execution_criteria` / `task_decomposition`,附 `/goal` prompt。
29
29
 
30
30
  Step kinds:
31
- - **执行 step**: ralph-execute `read_file({command_path})` 命令 .md,按内容内联执行
31
+ - **执行 step**: ralph-execute `shell("maestro ralph next")` 加载 command .md + required_reading 全文,按 stdout 内联执行
32
32
  - **decision step**: `step.decision` 字段非空;回 ralph 评估(CLI 只读分析)
33
33
 
34
34
  Key difference from maestro coordinator:
@@ -46,9 +46,9 @@ Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work l
46
46
  │ writes status.json
47
47
  │ emits /goal prompt
48
48
 
49
- ralph-execute ◀─┐ 执行 step → read_file(command_path) inline
49
+ ralph-execute ◀─┐ 执行 step → `maestro ralph next` + inline + `ralph complete`
50
50
  │ │ decision step → invoke_skill("maestro-ralph")
51
- └─────────┘ writes step.completion_confirmed
51
+ └─────────┘ CLI writes step.completion_confirmed
52
52
  loop until all completion_confirmed | paused
53
53
  ```
54
54
  </purpose>
@@ -73,11 +73,11 @@ Remaining → intent
73
73
  1. **Ralph never executes steps** — only creates sessions and evaluates decisions
74
74
  2. **Handoff via invoke_skill("maestro-ralph-execute")** — 创建 session 后始终自动 handoff;decision 评估后始终 handoff
75
75
  3. **Decision delegates read-only** — `maestro delegate --role analyze --mode analysis`
76
- 4. **执行 step 通过 Read 命令 .md 内联执行**
76
+ 4. **执行 step 通过 `maestro ralph next` CLI 加载并内联执行**(详见 invariant 8)
77
77
  5. **status.json 是唯一真源** — 不生成 markdown 清单或侧文件
78
- 6. **每个 step 必须 `completion_confirmed: true`** — 基于 `--- COMPLETION STATUS ---` `STATUS: DONE`;缺失则视为未完成
79
- 7. **command_path 在 A_BUILD_STEPS 解析** — 全局优先 `~/.claude/commands/{name}.md`,fallback 项目 `.claude/commands/{name}.md`,写入 status.json
80
- 8. **执行 step 加载契约** — ralph-execute `command_path` 后,必须解析并加载该命令 `<required_reading>` 引用的所有文件("入口 + workflow"形式的核心),并把 `<deferred_reading>` 路径记录到 `step.deferred_reads`;加载完成后输出 `✓ skill {name} 加载完成`。ralph build 阶段只解析路径,不读 .md 内容
78
+ 6. **每个 step 必须 `completion_confirmed: true`** — `maestro ralph complete N --status DONE`(或 DONE_WITH_CONCERNS)写入;CLI 是唯一合法写入路径
79
+ 7. **command_path 在 A_BUILD_STEPS 解析** — 通过 `maestro ralph skills --json --quiet` 预校验(project 覆盖 global),命中即写绝对路径到 status.json;未命中标 `command_scope = "missing"`
80
+ 8. **执行 step 加载契约** — 由 `maestro ralph next` CLI 在执行期完成:解析 frontmatter + `<required_reading>` + `<deferred_reading>`,自动读取 required 文件全文并拼入 prompt;缺失 required 退出码 1(E007),pause session。ralph build 阶段只通过 `maestro ralph skills` 校验路径存在性,不读 .md 内容
81
81
  9. **Decomposition is outcome-oriented** — sub-goals 为可观测交付,禁止 lifecycle 复刻;`/goal` 用户绑定,ralph 输出提示词后继续 handoff,用户可在执行过程中随时输入 `/goal`
82
82
  10. **planning_mode governs arg granularity** — `unified` → skill args 无 `{phase}`;`independent` → 含 `{phase}`
83
83
  11. **task_decomposition 驱动 steps[] 动态生长** — `post-goal-audit` 按 unmet 子目标插入 scoped mini-loop;字段可选/累加,既有字段不删不改
@@ -399,7 +399,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
399
399
  | goal-audit | *(decision-only)* | *(same)* | `post-goal-audit` | all (only if decomposed) |
400
400
  | milestone-complete | `maestro-milestone-complete` | *(same)* | `post-milestone` | all |
401
401
 
402
- > 所有执行 stage 统一通过 Read .md 内联执行;decision 节点单独作为独立 step 插入(见规则 4)。
402
+ > 所有执行 stage 统一通过 `maestro ralph next` CLI 加载 + 内联执行;decision 节点单独作为独立 step 插入(见规则 4)。
403
403
 
404
404
  **Build rules (按顺序应用):**
405
405
 
@@ -414,11 +414,12 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
414
414
  8. **占位符**:independent 保留 `{phase}` `{intent}`;unified 不带 `{phase}`
415
415
  9. **command_path 解析**(每个执行 step,decision 节点跳过):
416
416
  - 取 skill 名(args 前的第一个 token)
417
- - 全局优先:`~/.claude/commands/{name}.md` 存在 `command_scope = "global"`
418
- - Fallback:`.claude/commands/{name}.md` 存在 → `command_scope = "project"`
419
- - 两者都缺`command_scope = "missing"`, `command_path = null`,A_CREATE_SESSION 报错 E006
420
- - **不在 build 阶段读取 .md 内容**;`<required_reading>` / `<deferred_reading>` 解析与加载由 ralph-execute A_EXEC_STEP 负责(保持入口/工作流分离)
421
- 10. **每个 step 初始化** `completion_confirmed: false`, `completion_status: null`, `completion_evidence: null`, `deferred_reads: []`
417
+ - **预校验通过 `shell("maestro ralph skills --json --quiet")`** 一次性拉取所有可用 commands + skills(global + project,project 覆盖 global),匹配 skill 名得到:
418
+ - 命中 commands → `command_scope = "global" | "project"`,`command_path = <绝对路径>`
419
+ - 命中 skills 同上(type=skill)
420
+ - 未命中 `command_scope = "missing"`, `command_path = null`,A_CREATE_SESSION 报错 E006
421
+ - **不在 build 阶段读取 .md 内容**;`<required_reading>` / `<deferred_reading>` 解析与加载由 `maestro ralph next` CLI 在执行期完成
422
+ 10. **每个 step 初始化** `completion_confirmed: false`, `completion_status: null`, `completion_evidence: null`, `deferred_reads: []`, `load: null`(由 `ralph next` 写入)
422
423
  11. **scope_verdict gating**(仅当 chain 起点 = `analyze-macro`):
423
424
  - `scope_verdict ∈ {medium, small}` → 跳过 `roadmap` + `analyze` 两 stage;`plan` 选 standalone 列(`--from analyze:{analyze_macro_id}`),不带 `{phase}`
424
425
  - `scope_verdict == large` → 保留 `roadmap` + `analyze`;`plan` 选 phase 列(`{phase}`)
@@ -597,6 +598,8 @@ Runs only when `task_decomposition` present.
597
598
  {
598
599
  "session_id": "ralph-{YYYYMMDD-HHmmss}",
599
600
  "source": "ralph", "status": "running",
601
+ "ralph_protocol_version": "1", // CLI-driven; absent/0 → legacy inline ralph-execute
602
+ "active_step_index": null, // CLI-managed; only one step held at a time
600
603
  "intent": "", "lifecycle_position": "",
601
604
  "phase": null, "phase_is_new": false,
602
605
  "milestone": "", // D-007 反查结果,禁止读 current_milestone
@@ -619,7 +622,7 @@ Runs only when `task_decomposition` present.
619
622
  "retry_count": 0, // decision 节点专用
620
623
  "max_retries": 2, // decision 节点专用
621
624
  "command_scope": "global|project|missing|null", // 执行 step;decision 节点固定 null
622
- "command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
625
+ "command_path": "<absolute path resolved by `maestro ralph skills --json --quiet`> | null",
623
626
  "milestone_id": null, // D-007 反查注入;仅含 {phase} 占位符的 step 有
624
627
  "source_artifact_ref": null, // "analyze:ANL-xxx" | "blueprint:BLP-xxx" | null
625
628
  "status": "pending|running|completed|skipped|failed",
@@ -628,7 +631,8 @@ Runs only when `task_decomposition` present.
628
631
  "completion_status": null,
629
632
  "completion_evidence": null,
630
633
  "completed_at": null,
631
- "deferred_reads": [] // 由 ralph-execute A_EXEC_STEP 解析 .md 时填充
634
+ "deferred_reads": [], // 由 ralph next CLI 解析 .md 时填充
635
+ "load": null // { loaded_at, required_files[], deferred_files[], resolve_version } —— 由 ralph next 写入
632
636
  }],
633
637
  "waves": [], "current_step": 0,
634
638
 
@@ -749,8 +753,8 @@ decision:post-goal-audit {retry+1}
749
753
  - [ ] quality_mode 由 A_DETERMINE_QUALITY_MODE 决定,过滤 build steps
750
754
  - [ ] Decomposition: broad intent ≤3 question clarify;narrow auto-derive
751
755
  - [ ] status.json 唯一真源:boundary_contract + execution_criteria + task_decomposition;无外部清单
752
- - [ ] 执行 step 含 `command_scope` + `command_path`(全局优先 fallback 项目);decision step 通过 `step.decision` 字段标识
753
- - [ ] Ralph build 阶段只解析路径,不读 .md 内容;`<required_reading>` 加载由 ralph-execute A_EXEC_STEP 完成
756
+ - [ ] 执行 step 含 `command_scope` + `command_path`(通过 `maestro ralph skills --json --quiet` 预校验,project 覆盖 global);decision step 通过 `step.decision` 字段标识
757
+ - [ ] Ralph build 阶段只通过 `ralph skills` 校验路径存在性,不读 .md 内容;`<required_reading>` 加载由 `maestro ralph next` CLI 完成
754
758
  - [ ] 每个 step 含 `completion_confirmed` + `completion_status` + `completion_evidence` + `deferred_reads`(初始 false/null/[])
755
759
  - [ ] 每个 sub-goal 含 `completion_confirmed`(初始 false)
756
760
  - [ ] post-goal-audit decision 仅在 decomposed 时插入,位于 milestone-complete 之前