关于 ralph
ralph 是一种让 AI 编码 Agent 按 PRD 分轮开发的技能。它可生成项目文件、跟踪故事进度,并通过迭代上限和检查结果控制执行。
主要功能
- 01生成循环、PRD 和进度文件
- 02交互式创建自定义 PRD
- 03通过命令运行编码循环
- 04跟踪故事和迭代进度
- 05设置迭代上限并要求检查通过
适用场景
- 01搭建迭代式编码项目
- 02将功能计划拆分为可测试故事
- 03让 Agent 按优先级逐项开发
- 04跟踪 PRD 完成进度
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kv0906/ cc-skills --skill ralph安装后在 Claude Code 中输入/ralph确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdtemplates/prd.jsonprogress.txtralph-loop.shREADME-RALPH.md详细介绍
Ralph Wiggum 循环技能
一种自主 AI 编码模式,让 Agent 在每次迭代中使用干净的上下文运行,开发由 PRD 驱动的功能,同时保持 CI 通过。
命令
| 命令 | 操作 |
|---|---|
/ralph | 显示帮助菜单 |
/ralph setup | 创建 Ralph 基础文件 |
/ralph init | 交互式构建自定义 PRD |
/ralph run | 执行自主循环 |
/ralph setup
在当前目录中创建所有 Ralph 文件。
步骤:
-
从此技能的
templates/文件夹读取并复制模板:- templates/ralph-loop.sh →
./ralph-loop.sh - templates/prd.json →
./prd.json - templates/progress.txt →
./progress.txt - templates/README-RALPH.md →
./README-RALPH.md
- templates/ralph-loop.sh →
-
将脚本设为可执行:
chmod +x ralph-loop.sh -
检测项目上下文并进行自定义:
- 检查是否存在
package.json→ 确定包管理器(pnpm/npm/yarn) - 检查是否存在
tsconfig.json→ 确认是否为 TypeScript 项目 - 相应地更新 ralph-loop.sh 中的测试命令
- 检查是否存在
-
显示完成消息和后续步骤
/ralph init
引导用户通过交互方式创建自定义 PRD。
要询问的问题:
- 项目名称?
- 想要构建哪些功能?(收集 3-5 条用户故事)
- 对于每条故事:
- 标题?
- 描述?
- 验收标准?(3-5 条具体、可测试的标准)
输出: 根据用户输入生成 prd.json。如果其他 Ralph 文件不存在,则询问是否创建。
/ralph run
执行 Ralph 循环。
运行前检查:
- 确认
ralph-loop.sh存在 - 确认
prd.json存在 - 显示摘要:
- 用户故事总数
- 未完成的故事(其中
passes: false) - 已配置的最大迭代次数
- 请求确认
- 执行:
./ralph-loop.sh
/ralph(无参数)
显示帮助菜单:
Ralph Wiggum Loop - Autonomous AI Coding
Commands:
/ralph setup - Create Ralph infrastructure in this directory
/ralph init - Create a new PRD from scratch
/ralph run - Run the Ralph loop
What would you like to do?
核心原则
- 每次迭代重新开始 - 使用全新的上下文,不带任何负担
- 一次处理一个功能 - 防止范围蔓延
- CI 必须保持通过 - 每次提交都要通过测试和类型检查
- 跟踪进度 - 每次迭代都追加内容到 progress.txt
- 明确的停止条件 - 所有故事通过后输出
<promise>COMPLETE</promise> - 安全限制 - 设置最大迭代次数,防止无限循环
PRD 质量检查清单
好的用户故事应当:
- ✅ 具体且范围明确(可在一次迭代中完成)
- ✅ 验收标准清晰(可测试、无歧义)
- ✅ 优先级恰当(1 = 最高)
- ✅ 初始值为
"passes": false
不好的用户故事包括:
- ❌ 过于模糊(“构建 UI”)
- ❌ 规模过大(涉及多个系统)
- ❌ 标准不明确(“让它更好看”)
评论
支持 Markdown