关于 ralph
RALPH 是一项技能,可逐个实现存储在 GitHub issues 中的产品需求子任务。它结合自主编码、测试驱动开发和代码审查关卡,并支持人工审核模式或在 Docker 沙盒中运行的 AFK 模式。
主要功能
- 01通过 GitHub CLI 获取 PRD 和子任务
- 02每轮实现一个无阻塞子任务
- 03采用测试驱动开发
- 04提交后执行代码审查
- 05支持人工审核与 AFK 模式
- 06AFK 运行结束后创建 PR
适用场景
- 01将 GitHub PRD 拆分为小任务实现
- 02手动审核每轮实现结果
- 03在沙盒中运行有限轮次的自主实现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thecraighewitt/ skills --skill ralph安装后在 Claude Code 中输入/ralph确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
afk-ralph.shprompt.mdralph-once.shreview-prompt.md详细介绍
RALPH — 自主实现 PRD
RALPH(PRD 处理重复自主循环)会将存储为 GitHub issue 的 PRD 自动实现,并采用 TDD;每次迭代后都会经过代码审查。
工作流
此技能是一个 4 步编码工作流的执行引擎:
| 步骤 | 命令 | 功能 |
|---|---|---|
| 1 | /grill-me | 在开始构建之前,通过一连串深入提问来检验你的想法 |
| 2 | /write-a-prd | 将想法整理成工程规范(PRD),并创建为 GitHub issue |
| 3 | /prd-to-issues | 将 PRD 拆分为具有依赖关系的垂直切片子 issue |
| 4 | /ralph | 使用 TDD 和代码审查自主实现每个子 issue |
步骤 1-3 使用 Matt Pocock 的技能。安装方法:
npx skills@latest add mattpocock/skills -s grill-me
npx skills@latest add mattpocock/skills -s write-a-prd
npx skills@latest add mattpocock/skills -s prd-to-issues
设置
安装此技能后,将 RALPH 脚本复制到项目根目录:
mkdir -p ralph
cp .agents/skills/ralph/afk-ralph.sh ralph/
cp .agents/skills/ralph/ralph-once.sh ralph/
cp .agents/skills/ralph/prompt.md ralph/
cp .agents/skills/ralph/review-prompt.md ralph/
chmod +x ralph/*.sh
要求
- Claude Code CLI
- GitHub CLI(
gh)——已完成身份验证 - 支持 Sandbox 的 Docker Desktop(仅 AFK 模式需要)
- Git
用法
/ralph <issue-number> — 人工参与(从这里开始)
./ralph/ralph-once.sh 42
实现 PRD #42 中的一个子 issue,然后暂停,供你审查。运行命令以继续处理下一个子 issue。建议在最初几次迭代中使用此模式。
/ralph <issue-number> afk [max-iterations] — 自主运行
./ralph/afk-ralph.sh 42 20
在 Docker Sandbox 中最多运行 20 次迭代。每次迭代:实现一个子 issue、运行测试、提交、进行代码审查并关闭 issue。所有子 issue 完成后,推送分支并创建 PR。
指令
用户调用此技能时:
- 解析参数:第一个是 PRD issue 编号(必填),第二个是模式(
once或afk,默认once),第三个是 afk 模式的最大迭代次数(默认 20) - 如果未提供 issue 编号,请向用户询问
- 确认项目根目录中存在
ralph/目录。如果不存在,请引导用户完成设置(从.agents/skills/ralph/复制脚本) - 对于
once模式(默认):./ralph/ralph-once.sh <issue-number> - 对于
afk模式:./ralph/afk-ralph.sh <issue-number> <max-iterations> - 完成后报告结果
工作原理
- 脚本通过
ghCLI 获取 PRD issue 和所有子 issue - 通过在子 issue 正文中搜索
Parent PRD #<number>来查找子 issue - 每次迭代中,Claude 选择一个未关闭且无阻塞的子 issue,并使用 TDD 实现
- 每次提交前都必须通过测试(根据项目配置自动检测)
- 提交后,代码审查关卡会检查 bug、逻辑错误、安全问题和架构违规
- Claude 在 GitHub 上关闭子 issue,并添加链接到提交记录的评论
- 循环持续进行,直到所有子 issue 都已关闭
子 Issue 格式
/prd-to-issues 创建的子 issue 遵循以下格式:
## Parent PRD
#42
## What to build
Description of the work...
## Acceptance criteria
- [ ] Criterion 1
- [ ] Criterion 2
## Blocked by
- #43
提示
- 从
/ralph(once 模式)开始。 先验证第一次迭代,再切换到 AFK。 - 保持子 issue 精简。 每个子 issue 只包含一个合乎逻辑的改动,以避免上下文退化。
- 先使用
/grill-me。 编码前考虑得越充分,RALPH 的效果就越好。 - 使用 blocked-by。 声明依赖关系,让 RALPH 按正确顺序执行。
评论
支持 Markdown