home / skills / richtabor / agent-skills / ralph-github-start-loop

ralph-github-start-loop skill

/skills/ralph-github-start-loop

This skill autonomously loops GitHub Issues PRDs, executes stories, closes tasks, and updates progress to accelerate delivery.

npx playbooks add skill richtabor/agent-skills --skill ralph-github-start-loop

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
3.8 KB
---
name: ralph-github-start-loop
description: Runs autonomous loop fetching stories from GitHub Issues. Implements and closes issues as done. Triggers on "loop through my PRDs", "work on my issues", "start the autonomous loop", "implement my PRDs", or requests to work through GitHub issues autonomously.
disable-model-invocation: true
argument-hint: "[--all] [iterations] [prd-search]"
---

# Loop GitHub Issues

Run the autonomous loop to execute features from GitHub Issues.

## Usage

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

When running non-interactively (background mode), `--all` is auto-enabled.

## Prerequisites

- `gh` CLI authenticated
- PRD issues created via `/ralph-github-create-issues` (reads from `.claude/plans/` or `prds/`)

**Note:** Assume gh extensions are installed. Do NOT try to install them.

## Process

1. Check prerequisites (`gh auth status`)
2. Run the script directly - it handles PRD selection and filtering:

```bash
~/.claude/skills/loop-github-issues/loop-github-issues.sh [iterations] [prd-search-term] [--all]
```

Use `run_in_background: true` to prevent timeout.

**Monitoring progress:**
- Local status: `cat /tmp/ralph-status-{repo}-{prd-number}.txt`
- GitHub: Comments are posted to the PRD issue as stories complete

**Important**: Don't list PRDs separately before running - the script shows available PRDs (excluding those with open PRs) and handles selection.

### What It Does

1. Lists open PRD issues (identified by `prd` label) that don't already have open PRs
2. Prompts user to select which PRD(s) to work on (or auto-selects in background mode)
3. For each selected PRD:
   - Assigns issue to current user (shows as in progress)
   - Creates git worktree at `../{repo}-{feature}/`
   - For each iteration:
     - Passes all open sub-issues to the agent
     - Agent picks the logical next story based on dependencies
     - Implements the story
     - Commits: `feat: Story Title (closes #XXX)`
     - Closes sub-issue with link to commit
   - When all sub-issues closed, creates PR (parent PRD closes on merge)
   - Cleans up worktree

### Differences from `/ralph`

| Aspect | `/ralph` (JSON) | `/loop-github-issues` (GitHub) |
|--------|-----------------|--------------------------|
| Story source | `prds/*.json` | GitHub Issues |
| Status tracking | `passes: true/false` | Issue open/closed |
| Dependencies | `dependsOn` array | Native GitHub blocking |
| Completion | Update JSON | Close issue |
| PRD done | All stories pass | All sub-issues closed |

### Dependencies

Ralph-issues checks GitHub's native blocking relationships. PRDs with open blocking issues are skipped.

The script queries the `blockedBy` field via GraphQL to determine if a PRD is ready to start.

## Issue Conventions

### Finding PRD Issues

```bash
gh issue list --label prd --state open --json number,title,body
```

### Finding Story Sub-Issues

Uses the `gh-sub-issue` extension:
```bash
gh sub-issue list <parent-number> --state open --json number,title,body
```

### Closing Issues

On story completion:
```bash
gh issue close 101 --comment "Implemented in https://github.com/owner/repo/commit/abc123"
```

Parent PRD issues close automatically when the PR is merged (via `Closes #XX` in PR body).

## Branch Naming

Uses conventional prefixes parsed from the PRD issue body:
- `feature/<name>` for enhancements
- `bugfix/<name>` for bug fixes

## Notes

- Run multiple Ralph instances in parallel on independent PRDs (separate terminals)
- Each works in its own worktree, no conflicts
- Commits include `closes #XXX` to auto-close issues on merge

Overview

This skill runs an autonomous loop that fetches product requirements (PRDs) and stories from GitHub Issues and implements them until done. It assigns work, creates a git worktree, runs iterative implementation passes, commits changes that reference and close story issues, and opens a PR when the PRD is complete. It is designed to run interactively or in background mode for continuous progress.

How this skill works

The script lists open PRD issues (labelled prd) that do not already have an open PR and filters out PRDs blocked by other issues. It assigns the PRD to the current user, creates a worktree for the feature, and repeatedly passes open sub-issues to an agent which selects the next logical story, implements it, commits with a message that closes the story, and comments the issue with the commit link. When all sub-issues are closed it opens a pull request and cleans up the worktree.

When to use it

  • Automate implementation of PRDs represented as GitHub issues
  • Run a background worker that cycles through multiple PRDs without manual prompts
  • Process a large backlog of small stories with consistent commit and close behavior
  • Work through PRDs that use GitHub native blocking/dependency relationships
  • Run tests of autonomous coding flows against real GitHub issue structure

Best practices

  • Ensure gh CLI is authenticated and the gh extensions (gh-sub-issue etc.) are available before running
  • Create PRD parent issues with clear sub-issues and use GitHub blocking relationships for dependencies
  • Run non-interactive/background mode with --all and run_in_background:true to avoid timeouts
  • Use conventional branch prefixes (feature/, bugfix/) in PRD bodies so the script can derive branch names
  • Run one Ralph instance per PRD in parallel to avoid workspace overlap; each uses its own worktree

Example use cases

  • Process a specific PRD interactively: select a PRD and let the loop implement each story
  • Bulk run all available PRDs in background to clear many small tasks overnight
  • Filter PRDs by search term to target a specific feature area (e.g., auth-flow)
  • Limit iterations per PRD to experiment with agent behavior and stop after N passes

FAQ

What prerequisites are required?

You must have gh CLI authenticated and the expected gh extensions installed. The script assumes PRDs were created in the repo as issues.

How does the script determine readiness to start a PRD?

It queries GitHub blocking relationships (blockedBy) via GraphQL and skips PRDs that have open blockers.