Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/majiayu000-ralph-github-start-loop/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -42% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -21% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 26% | 0% |
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 eachWhen 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)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:
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.
bashgh issue list --label prd --state open --json number,title,body
Uses the gh-sub-issue extension:
bashgh sub-issue list <parent-number> --state open --json number,title,body
On story completion:
bashgh 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| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→fail | 37,004 | 11,350 | -69% | 1 | 1 | 0% | 241 | 1,366 | +467% | 0 | 0 | — |
case-01 | fail→fail | 13,996 | 16,879 | +21% | 1 | 1 | 0% | 1,423 | 1,337 | -6% | 0 | 0 | — |
case-03 | fail→fail | 12,719 | 17,990 | +41% | 1 | 1 | 0% | 2,002 | 1,418 | -29% | 0 | 0 | — |
case-04 | fail→pass | 22,954 | 9,949 | -57% | 1 | 1 | 0% | 3,028 | 1,753 | -42% | 0 | 0 | — |
case-05 | fail→pass | 7,722 | 1,811 | -77% | 1 | 1 | 0% | 1,085 | 1,227 | +13% | 0 | 0 | — |
case-06 | fail→pass | 13,608 | 16,699 | +23% | 1 | 1 | 0% | 2,251 | 2,718 | +21% | 0 | 0 | — |
case-07 | pass→pass | 7,791 | 6,731 | -14% | 1 | 1 | 0% | 439 | 1,123 | +156% | 0 | 0 | — |
case-08 | fail→pass | 21,093 | 8,247 | -61% | 1 | 1 | 0% | 1,848 | 1,464 | -21% | 0 | 0 | — |
case-09 | fail→pass | 31,920 | 8,985 | -72% | 1 | 1 | 0% | 1,303 | 1,642 | +26% | 0 | 0 | — |
case-10 | pass→pass | 17,982 | 7,363 | -59% | 1 | 1 | 0% | 2,009 | 1,253 | -38% | 0 | 0 | — |
case-11 | fail→pass | 14,689 | 8,638 | -41% | 1 | 1 | 0% | 1,423 | 1,560 | +10% | 0 | 0 | — |
case-12 | pass→pass | 18,304 | 7,720 | -58% | 1 | 1 | 0% | 1,719 | 1,402 | -18% | 0 | 0 | — |
case-13 | fail→pass | 26,705 | 1,865 | -93% | 1 | 1 | 0% | 2,690 | 1,197 | -56% | 0 | 0 | — |
case-14 | fail→pass | 14,746 | 7,038 | -52% | 1 | 1 | 0% | 1,582 | 1,218 | -23% | 0 | 0 | — |
case-15 | fail→pass | 15,416 | 2,749 | -82% | 1 | 1 | 0% | 1,695 | 1,353 | -20% | 0 | 0 | — |
case-16 | fail→pass | 15,745 | 8,305 | -47% | 1 | 1 | 0% | 1,840 | 1,546 | -16% | 0 | 0 | — |
case-17 | fail→pass | 13,765 | 2,739 | -80% | 1 | 1 | 0% | 1,385 | 1,344 | -3% | 0 | 0 | — |
case-18 | pass→pass | 9,830 | 7,157 | -27% | 1 | 1 | 0% | 1,521 | 1,254 | -18% | 0 | 0 | — |
case-19 | fail→pass | 21,646 | 1,901 | -91% | 1 | 1 | 0% | 2,826 | 1,214 | -57% | 0 | 0 | — |
case-20 | pass→pass | 9,648 | 6,817 | -29% | 1 | 1 | 0% | 1,537 | 1,122 | -27% | 0 | 0 | — |
case-21 | pass→pass | 16,358 | 6,832 | -58% | 1 | 1 | 0% | 1,680 | 1,175 | -30% | 0 | 0 | — |
case-22 | pass→pass | 19,906 | 7,524 | -62% | 1 | 1 | 0% | 2,241 | 2,003 | -11% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 18 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.