SuperAPI AI 工具集

ralph

编程与开发

查看项目

更新于 10-16 02:08

技能介绍

用途

Ralph 是一个用于自主功能开发的技能,覆盖设置与执行两个阶段。它帮助用户把一个功能规划成一组带有依赖关系的小任务,然后通过自主循环逐个实现这些任务。触发词包括:ralph、set up ralph、run ralph、run the loop、implement tasks。

主要能力

阶段一:功能设置

设置阶段提供两种模式:

  • 模式一:新功能。通过对话澄清需求,将功能拆解为小任务,创建 task_list 任务(父任务加子任务,并设置 dependsOn),并配置 ralph 文件(保存父任务 ID、重置 progress.txt)。
  • 模式二:已有任务。查找已有父任务,验证子任务结构(检查 dependsOn 是否正确),配置 ralph 文件,并展示任务状态(哪些就绪、已完成、被阻塞)。

设置流程包括:理解功能(通过提问澄清用户目标、涉及代码库部分、可参考的现有模式、完成标准)、拆解任务(每个任务需能在一次 Ralph 迭代约一个上下文窗口内完成)、按依赖排序(典型顺序为 schema/数据库变更、服务端逻辑、使用后端的 UI 组件、集成/E2E 测试)、创建任务(先创建父任务,再创建带 parentID 和 dependsOn 的子任务)、配置 ralph 文件、确认设置。

任务描述需包含可验证的验收标准,例如“npm run typecheck passes”“npm test passes”。UI/浏览器任务的功能测试建议使用 Chrome DevTools MCP 的 take_snapshot 读取页面内容(而非截图),视觉测试才使用 take_screenshot。

阶段二:执行循环

设置完成后,Ralph 运行自主循环逐个实现任务。循环流程包括:读取父任务 ID、检查是否为新功能(对比 progress.txt 头部)、查找就绪任务(支持嵌套层级,需过滤出叶子任务并跳过仅用于分组的容器任务)、若无就绪任务则检查是否全部完成(全部完成则归档 progress.txt、清空 parent-task-id.txt、提交、标记父任务完成并报告)、若有就绪任务则选取下一个任务并通过 handoff 工具执行。

任务执行时要求:先读取 progress.txt 的 Codebase Patterns 部分;完成后运行质量检查(npm run typecheck 和 npm test),失败则修复并重跑;更新 AGENTS.md(长期记忆);追加更新 progress.txt(短期记忆,仅针对当前功能);提交变更;标记任务完成;再次调用 ralph 技能继续循环。

使用方式

用户可通过“set up ralph”启动设置,通过“run ralph”或“start the loop”启动执行循环。设置阶段会先询问用户属于哪种模式(新功能或已有任务)。执行阶段依赖 scripts/ralph/parent-task-id.txt 和 scripts/ralph/progress.txt 两个文件来管理状态。

适用场景

适用于需要将较大功能分解为有序子任务并自动推进实现的开发工作,尤其是涉及数据库、后端、UI、测试等多环节的功能开发。

限制

Ralph 每次迭代会启动一个全新的 Amp 实例,不保留之前工作的记忆,因此任务必须足够小,能在一次迭代内完成。查询任务时需使用 limit(5-10)以避免上下文溢出。progress.txt 仅作为当前功能的短期记忆。