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