1 minute read

如果你用过各种 AI 编程工具,大概率遇到过同一种憋屈:它写完一段代码、改完几个文件,就觉得差不多完成了,然后停下,留你一个人面对构建没过、测试红了一片、UI 细节还差一口气、某个边界 case 依然崩。

真实开发从来不是一次性写完,而是写一点 → 跑一下 → 报错 → 修 → 再跑 → 再修,循环往复,直到达标。

Ralph Wiggum 这个 Claude Code 官方插件的厉害之处就在于:它不试图更聪明地写代码,而是把 Claude Code 变成一个可控的持续迭代执行器。你设定规则,它就按回合制一直推进,直到满足退出条件才停。

🚀本篇笔记所对应的视频:


1)Ralph Wiggum 是什么:不是新模型,而是一个外部控制回路

Ralph 的本质非常朴素:Claude 每次想退出时,把它拦下来,再把同一个任务喂回去继续做。

它依赖的是 Claude Code 的 Stop hook 机制:当 Claude 觉得自己做完了准备结束,插件的 stop hook 会介入,阻止退出并触发下一轮。

所以 Ralph 的核心价值不是灵感,而是节奏。它把复杂工程变成稳定的回合制推进:

  • 本轮做什么
  • 本轮怎么验证
  • 不达标就下一轮继续修
  • 达标才允许结束

2)它为什么叫 Ralph Wiggum:幼稚,但非常有效的坚持

这个名字来自辛普森一家里的 Ralph Wiggum:经常犯错、经常翻车,但也会像小孩一样继续尝试,直到把事情做对。很多人第一次看到这个名字会觉得离谱,但用过之后反而会觉得贴切。工程里最稀缺的不是聪明,是不停下来把烂尾收掉的耐心。


3)怎么用:三条命令 + 两个关键参数

不同环境里你可能看到简写,但更稳的理解方式是按命名空间写法来记。Claude Code 的插件命令通常以 插件名: 作为前缀。

常见命令是这三条:

  • 启动循环:/ralph-wiggum:ralph-loop 提示词 –max-iterations N
  • 取消循环:/ralph-wiggum:cancel-ralph
  • 查看说明:/ralph-wiggum:help

然后是两个你一定会用上的参数。

max-iterations 给循环加保险丝。否则任务一旦写得太泛、验收条件不清晰,就可能跑很久。这个参数让它最多迭代 N 轮,到点强制停。

completion-promise 这是 Ralph 的灵魂:明确什么情况下算完成。插件会盯着 Claude 的输出,一旦出现你指定的完成标记,就允许退出。

你会发现,这里真正让循环可控的不是迭代次数,而是验收口径。


4)最重要的一点:Ralph 不会替你想清楚验收标准

很多人第一次用 Ralph,会把提示词写成一句话:把项目变好、修复 bug、优化一下 UI。然后跑到第 10 轮,发现效果并不稳定。不是 Ralph 不行,而是你给了一个无法验证的目标。

Ralph 的正确打开方式是:把开发任务写成可验证的交付清单。

比如你可以这样表达:

  • 把登录页做得更专业
  • 页面在移动端和桌面端都不溢出
  • 表单校验:邮箱格式不对时提示;密码少于 8 位提示
  • 交互:按钮有 hover 与 disabled 状态
  • 跑测试全绿或构建通过
  • 满足以上条件后输出指定的完成标记

注意完成标记最好写得不容易误判,比如用一个很独特的字符串,而不是随口就可能出现的 done。


5)哪些场景最适合:Ralph 的强项其实是收尾活

Ralph 把 Claude Code 变成持续循环,特别适合那些需要多轮纠错的任务。

我建议你优先把 Ralph 用在这四类最折磨人的真实场景:

A. Bug 修复 尤其是修了又冒出来的那种。让它每轮都复现 → 定位 → 修复 → 运行测试或构建 → 再复现确认。你只需要把复现步骤和通过条件写清楚。

B. 补测试与回归 这类任务天然需要循环:补一个测试 → 失败 → 修实现 → 再补下一个。测试全绿本身就是最清晰的完成信号。

C. 依赖迁移与大版本升级 比如测试框架迁移、路由升级、构建工具替换。迁移最怕半吊子:能编译但跑不起来。循环跑构建和测试,才会把尾巴收干净。

D. 重构 重构最需要节奏:改一部分 → 验证 → 再改一部分。Ralph 的回合制非常适合把重构拆成稳定推进的工程动作。


6)它为什么有效:因为它把反馈变成了下一轮的燃料

很多 AI 编程失败,并不是因为模型不会写,而是因为它拿不到足够强的反馈闭环。写完就停,等于把最关键的报错信息、测试结果、构建日志丢掉了。

Ralph 强制你进入一种更接近现实开发的流程:

  • 这轮做了什么
  • 这轮验证结果是什么
  • 下一轮必须基于这些反馈继续修正

反馈越具体,下一轮越准。这种机制在工程里当然有效,因为我们人类就是这么迭代出来的。


7)你需要提前知道的坑:它很强,但也不是无脑开挂

坑 1:安全限制导致的换行报错 有些环境里,Ralph 可能触发 Claude Code 对多行命令的安全检查,导致无法启动循环。通常的规避方式是把提示词写成单行,把长要求放到文件里,再让 Claude 去读。

坑 2:Windows 环境依赖问题 有人在 Windows 或某些 shell 环境里遇到 stop hook 因为缺少依赖而失败。遇到这类问题,优先检查运行环境和常用命令是否齐全。

坑 3:忘记加保险丝,成本会飙 不开 max-iterations,再配上模糊的验收条件,跑着跑着就会变成自动烧钱烧时间的机器。正确姿势永远是上限 + 明确验收。


8)最后给一个公众号式结论:Ralph 的核心理念是什么?

一句话概括:

让 Claude Code 负责写代码,让 Ralph Wiggum 负责让它别停,直到你定义的完成真的完成。

它把 AI 编程从一次性回答拉回到工程迭代,把最现实、最关键、也最容易烂尾的那部分工作:测试、修错、收尾,变成了可以自动推进的流程。

如果你曾经被差一点就好了的 AI 编程体验气到,那 Ralph 很可能会让你第一次觉得:AI 不是写完就走,而是能把项目真正跑通。

🚀命令

# 启动Claude Code
claude --dangerously-skip-permissions

/plugin marketplace add anthropics/claude-code

/plugin install ralph-wiggum@claude-code-plugins

# 最多迭代 N 次
/ralph-wiggum:ralph-loop "<prompt>" --max-iterations N

/ralph-wiggum:ralph-loop "Make the app better" --max-iterations 20

# 当输出出现指定文本才允许退出
/ralph-wiggum:ralph-loop "<prompt>" --max-iterations N --completion-promise "TEXT"

/ralph-wiggum:ralph-loop "把这个项目的 UI/UX 做得更像一款精致的、移动端优先的语言学习 App(基于 Chakra UI):统一间距与留白、建立清晰的字体层级(标题/正文/辅助信息)、统一卡片/列表等组件样式,并为核心模块添加底部导航(例如:主页/Home、学习/Learn、测验/Quiz、进度/Progress、设置/Settings)。整体改动要保持一致性、克制且可维护。确保最终可以成功 build。完成后只输出:__RALPH_DONE__" --max-iterations 15 --completion-promise "__RALPH_DONE__"

/ralph-wiggum:ralph-loop "提升主题与无障碍体验:加入/完善 Chakra 的颜色模式切换(浅色/深色),保证整体对比度和可读性;为图标按钮等关键交互补充 aria-label;确保核心流程支持键盘操作与焦点可见(可 Tab 导航、可触发主要按钮/输入等)。请在关键页面里检查并修复你能发现的无障碍问题,改动要尽量小且不破坏现有功能。确保最终可以成功 build。完成后只输出:__RALPH_DONE__" --max-iterations 14 --completion-promise "__RALPH_DONE__"

# 随时强制停止循环
/ralph-wiggum:cancel-ralph

Comments