---
name: omd-ralph
description: "拉夫：持久验证/修复循环，不留静默半成品。显式全新代理迭代用原生 ralph 工具，否则用手动 goal+verify 循环。任务必须完整完成并验证时使用；触发词：ralph / 拉夫 / verify-fix / 必须做完。"
---

# oh-my-dsh · Ralph 持久验证循环

目标必须**完整完成并验证过**，绝不允许静默的半成品。对应 OMC 的 Ralph 模式。DSH 原生就带 `ralph` 工具，所以这里分两条路：原生 Ralph，和手动 verify/fix 循环。

## 何时用

- 用户说"ralph""拉夫""一定要做完""不许半途""fresh-agent 迭代"。
- 任务有硬验收标准，必须验证到全绿。
- 普通的"做一下就完"不要用 Ralph——它重。

## 路线 A：原生 ralph 工具

用户**明确要求 Ralph/fresh-agent 迭代**时，直接调 `ralph` 工具：

```
ralph(objective, { maxRounds })
```

语义（和 goal 不同，务必分清）：

- 每一轮开一个**全新子代理**，不继承任何对话种子。
- **共享工作区是唯一长期记忆**——子代理通过读/写文件在轮次间传递上下文。
- 只有一份**有界结构化报告**跨轮传递，其余什么都不带。
- 返回：某个 worker 报告完成、或报告具体阻塞、或达到轮次上限。
- 完成与阻塞是**worker 的自述报告，不是独立评估**——最后你要自己核验工作区里的真实产物。

用 Ralph 时，你的职责是：写一个**不可变、可验收的 objective**；把验收标准和进度约定写进工作区文件（如 `RALPH.md`）让每轮子代理读到；循环结束后独立检查产物是否真达标。

## 路线 B：手动 verify/fix 循环（原生 ralph 之外的默认）

用户没明说要 fresh-agent 迭代、但任务必须验证到全绿时，用 goal + 验证代理手动循环：

```
1. create_goal(objective)           # 持久目标
2. 实现（主控 or subagent 委托）
3. verify：subagent 验证代理对照验收标准产出"通过/缺陷清单"
4. fix：有缺陷就修，回到第 3 步
5. 全绿 → update_goal complete；同一阻塞 ≥3 轮 → update_goal blocked
```

验证代理的提示词要**硬性**：逐条对照验收标准，只允许"通过"或"具体缺陷"，不允许"看起来没问题"这类模糊结论。

## 与其它模式的关系

- Ralph **包含并行**：执行和验证阶段内部照常并行 `subagent`（`execute` 的并行能力），只是外面多套一层"必须验证到全绿"。
- Ralph 强调**不许静默半成品**；Autopilot 强调**单领导持续到底**。两者常叠加。
- Ralph 的 verify/fix 循环，本质是把 `plan→execute→review→verify` 里的 `verify` 阶段反复执行到全绿。

## 收尾：HUD

每轮 verify/fix 后按 `omd-hud` 输出仪表盘：轮次、通过/缺陷计数、fix loop 次数。让"还剩几个缺陷"始终可见。

## 反模式

- 别把 Ralph 用在琐碎任务上。
- 别把 worker 的"完成报告"当最终结论——你要亲自核验工作区。
- fix loop 必须设上限，且必须有"全绿"这个明确退出条件。
