mcpField
R
ralph-github-start-loop

ralph-github-start-loop

github.com/richtaborAgent 工作流7341 次安装29 周前更新
代码仓库

关于 ralph-github-start-loop

面向使用 GitHub 跟踪开发任务的 Agent 技能,可自动循环实现 PRD 和故事子议题,并以议题依赖、提交和拉取请求记录进度。

主要功能

  1. 01交互选择或搜索 PRD
  2. 02后台模式运行所有可执行 PRD
  3. 03按设定迭代次数实现故事
  4. 04通过 GitHub 议题跟踪依赖
  5. 05使用独立 worktree 并创建拉取请求

适用场景

  1. 01实现以 GitHub 议题跟踪的功能计划
  2. 02并行运行互不依赖的 PRD
  3. 03通过议题评论和状态文件监控故事进度

安装

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

$npx skills add https://github.com/richtabor/agent-skills --skill ralph-github-start-loop

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

附带文件loop-github-issues.shreferences/prompt.md

详细介绍

循环处理 GitHub Issues

运行自主循环,执行 GitHub Issues 中的功能。

用法

/loop-github-issues              # Interactive: shows available PRDs and asks which to run
/loop-github-issues --all        # Run all available PRDs (no prompt)
/loop-github-issues auth-flow    # Run PRDs matching search term
/loop-github-issues 25           # Run with 25 iterations per PRD
/loop-github-issues --all 25     # Run all PRDs with 25 iterations each

以非交互方式(后台模式)运行时,会自动启用 --all。

前置条件

  • 已通过 gh CLI 完成身份验证
  • 已通过 /ralph-github-create-issues 创建 PRD issues(从 .claude/plans/ 或 prds/ 读取)

**注意:**假设已安装 gh 扩展。请勿尝试安装。

流程

  1. 检查前置条件(gh auth status)
  2. 直接运行脚本——脚本会处理 PRD 的选择和筛选:
~/.claude/skills/loop-github-issues/loop-github-issues.sh [iterations] [prd-search-term] [--all]

使用 run_in_background: true 避免超时。

监控进度:

  • 本地状态:cat /tmp/ralph-status-{repo}-{prd-number}.txt
  • GitHub:每完成一个故事,都会在 PRD issue 下发布评论

**重要:**运行前不要单独列出 PRD——脚本会显示可用的 PRD(排除已有打开的 PR 的 PRD)并处理选择。

功能说明
  1. 列出尚无打开 PR 的打开 PRD issues(通过 prd 标签识别)
  2. 提示用户选择要处理的 PRD(后台模式下自动选择)
  3. 对每个选定的 PRD:
    • 将 issue 指派给当前用户(显示为进行中)
    • 在 ../{repo}-{feature}/ 创建 Git worktree
    • 对每次迭代:
      • 将所有打开的子 issues 传递给 Agent
      • Agent 根据依赖关系选择逻辑上接下来要处理的故事
      • 实现该故事
      • 提交:feat: Story Title (closes #XXX)
      • 关闭子 issue 并附上提交链接
    • 所有子 issues 关闭后,创建 PR(合并时关闭父 PRD)
    • 清理 worktree
与 /ralph 的区别
方面/ralph(JSON)/loop-github-issues(GitHub)
故事来源prds/*.jsonGitHub Issues
状态跟踪passes: true/falseIssue 打开/关闭
依赖关系dependsOn 数组GitHub 原生阻塞关系
完成方式更新 JSON关闭 issue
PRD 完成所有故事均通过所有子 issues 均关闭
依赖关系

Ralph-issues 会检查 GitHub 原生阻塞关系。存在尚未关闭的阻塞 issue 的 PRD 会被跳过。

脚本通过 GraphQL 查询 blockedBy 字段,以判断 PRD 是否可以开始处理。

Issue 约定

查找 PRD Issues
gh issue list --label prd --state open --json number,title,body
查找故事子 Issues

使用 gh-sub-issue 扩展:

gh sub-issue list <parent-number> --state open --json number,title,body
关闭 Issues

故事完成时:

gh issue close 101 --comment "Implemented in https://github.com/owner/repo/commit/abc123"

合并 PR 后,父 PRD issues 会自动关闭(通过 PR 正文中的 Closes #XX)。

分支命名

使用从 PRD issue 正文中解析出的约定式前缀:

  • feature/<name> 用于功能增强
  • bugfix/<name> 用于错误修复

备注

  • 在互相独立的 PRD 上并行运行多个 Ralph 实例(使用不同终端)
  • 每个实例都在自己的 worktree 中工作,不会发生冲突
  • 提交中包含 closes #XXX,以便在合并时自动关闭 issues

评论

支持 Markdown