Runs autonomous loop fetching stories from GitHub Issues. Implements and closes issues as done...
Run the autonomous loop to execute features from 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
When running non-interactively (background mode), --all is auto-enabled.
gh CLI authenticated/ralph-github-create-issues (reads from .claude/plans/ or prds/)Note: Assume gh extensions are installed. Do NOT try to install them.
gh auth status)~/.claude/skills/loop-github-issues/loop-github-issues.sh [iterations] [prd-search-term] [--all]
Use run_in_background: true to prevent timeout.
Monitoring progress:
cat /tmp/ralph-status-{repo}-{prd-number}.txtImportant: Don't list PRDs separately before running - the script shows available PRDs (excluding those with open PRs) and handles selection.
prd label) that don't already have open PRs../{repo}-{feature}/feat: Story Title (closes #XXX)/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 |
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.
gh issue list --label prd --state open --json number,title,body
Uses the gh-sub-issue extension:
gh sub-issue list <parent-number> --state open --json number,title,body
On story completion:
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).
Uses conventional prefixes parsed from the PRD issue body:
feature/<name> for enhancementsbugfix/<name> for bug fixescloses #XXX to auto-close issues on merge