Ralph 是一个用于自主执行功能开发循环的技能,主要用途是读取 prds/ 目录下的 JSON 格式 PRD(产品需求文档),按依赖关系自动挑选并实现其中的功能故事(stories)。
主要能力:
- 展示依赖图,找出下一个可执行的项目。
- 在 ../{repo}-{feature}/ 位置创建 git worktree,为每个项目提供独立工作区。
- 每次迭代挑选第一个 passes 为 false 的故事,实现它并运行质量检查,然后以 feat: [id] - [title] 格式提交。
- 更新 JSON 并将结果同步回主仓库。
- 当所有故事通过后,输出 <promise>COMPLETE</promise>。
- 读取每个 PRD 中的 dependsOn 字段并强制排序,依赖未完成的项目会被阻塞;Ralph 按字母顺序选择第一个就绪的项目。
使用方式: 命令形式包括:
- /ralph:运行下一个可用项目(遵循依赖关系)。
- /ralph 25:以 25 次迭代运行。
- /ralph auth-flow:运行指定项目。
执行时在后台模式运行循环脚本: ~/.claude/skills/ralph/ralph.sh [iterations] [project-name]
使用 run_in_background: true 以防止超时。启动后,提示用户通过 tail -f <worktree>/.ralph-progress.txt 查看进度。
依赖与前置条件:
- 需要在 .claude/plans/、plans/ 或 prds/ 中至少有一个 .json PRD 文件。
- 可使用 plan 模式创建计划,然后运行 /ralph-json-create-issues 进行转换。
适用场景: 适合需要按依赖顺序自动实现多个功能故事的开发流程,尤其是希望并行处理多个独立项目时。
限制与注意事项:
- 可在独立项目上并行运行多个 Ralph(使用不同终端),每个在各自 worktree 中工作,不会产生冲突。
- 关于收费、价格、平台支持范围等信息,资料中暂未提供。