mcpField
R
ralph

ralph

github.com/thecraighewittAgent 工作流16980 次安装23 周前更新
代码仓库

关于 ralph

RALPH 是一项技能,可逐个实现存储在 GitHub issues 中的产品需求子任务。它结合自主编码、测试驱动开发和代码审查关卡,并支持人工审核模式或在 Docker 沙盒中运行的 AFK 模式。

主要功能

  1. 01通过 GitHub CLI 获取 PRD 和子任务
  2. 02每轮实现一个无阻塞子任务
  3. 03采用测试驱动开发
  4. 04提交后执行代码审查
  5. 05支持人工审核与 AFK 模式
  6. 06AFK 运行结束后创建 PR

适用场景

  1. 01将 GitHub PRD 拆分为小任务实现
  2. 02手动审核每轮实现结果
  3. 03在沙盒中运行有限轮次的自主实现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thecraighewitt/skills --skill ralph

安装后在 Claude Code 中输入/ralph确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

afk-ralph.sh
prompt.md
ralph-once.sh
review-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
要求

用法

/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。

指令

用户调用此技能时:

  1. 解析参数:第一个是 PRD issue 编号(必填),第二个是模式(once 或 afk,默认 once),第三个是 afk 模式的最大迭代次数(默认 20)
  2. 如果未提供 issue 编号,请向用户询问
  3. 确认项目根目录中存在 ralph/ 目录。如果不存在,请引导用户完成设置(从 .agents/skills/ralph/ 复制脚本)
  4. 对于 once 模式(默认):
    ./ralph/ralph-once.sh <issue-number>
    
  5. 对于 afk 模式:
    ./ralph/afk-ralph.sh <issue-number> <max-iterations>
    
  6. 完成后报告结果

工作原理

  1. 脚本通过 gh CLI 获取 PRD issue 和所有子 issue
  2. 通过在子 issue 正文中搜索 Parent PRD #<number> 来查找子 issue
  3. 每次迭代中,Claude 选择一个未关闭且无阻塞的子 issue,并使用 TDD 实现
  4. 每次提交前都必须通过测试(根据项目配置自动检测)
  5. 提交后,代码审查关卡会检查 bug、逻辑错误、安全问题和架构违规
  6. Claude 在 GitHub 上关闭子 issue,并添加链接到提交记录的评论
  7. 循环持续进行,直到所有子 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