We graded the 5 most-starred agent-loop repos
97 loops from five of the most-starred public repos that ship Claude Code and Codex loops, run through the same deterministic grader that decides what goes on looprepo. 5 reach B. None reach A. Each repo's flagship loop gets to B or A with one to three added lines.
| Repo | B or better | Best | Flagship loop → with fix | Loops graded | Stars |
|---|---|---|---|---|---|
| superpowers | 0 | F | F A | 1 | 300,649 |
| ECC (everything-claude-code) | 1 | B | F A | 7 | 281,442 |
| Ralph | 0 | C | C B | 1 | 21,984 |
| ralph-claude-code | 1 | B | F B | 3 | 9,703 |
| Loopy (Forward Future) | 3 | B | F A | 85 | 3,185 |
What the grade checks
The Safety Score asks five things of a loop before you hand it the keys: does it know when it is done (a check a script can run, not a feeling), does it give up after a fixed number of turns, does it run a real check every pass, does it limit what it can touch, and does a person sign off before anything ships. It is deterministic — no model in the loop — and it fails by default. Read the full rubric.
The pattern
- 96 of 97 carry no turn cap in the prompt itself. Runners like Ralph cap in the shell script, but the prompt is what people copy.
- 64 of 97 have no exit a script could check — they stop when the agent decides it is done.
- 76 of 97 never run a check each pass; they name tests without running them.
- 20 of 97 fail the gate outright.
Loopy is 85 of the 97, so these totals mostly describe its catalog; the table above shows each repo on its own.
None of this means these repos are bad — several are excellent, and loops are a small part of what some of them do. It means a loop copied out of them will usually run until it is stopped by hand.
superpowers · 300,649 stars
superpowers ships workflow skills rather than standalone loop prompts. Its loop is the review-and-fix cycle inside subagent-driven development, which is carefully written: it runs real tests every round and has a breaker. It says "Five rounds maximum", but our grader does not read "N rounds maximum" as a cap (it does read "stop after 5 rounds" or "max 5 turns"), so it does not count it — a gap on our side, not theirs. The excerpt ends at the breaker rule; the adjudication list after it is left out so the excerpt plus the fix fits the grader's length limit. The other miss is real: nothing says what "done" looks like in a way a script could check.
Flagship: Subagent-driven development: the fix loop (lines 354–413) — F 0/100. Missing: an exit a script can check, a turn cap.
The fix — these lines added to the end, nothing else changed:
Stop after 5 rounds. Exit when the re-review reports no open Critical or Important findings and the task tests pass.
Graded again: A 85/100.
ECC (everything-claude-code) · 281,442 stars
ECC's /santa-loop ties for the top grade in the whole set: a B, with a hard round limit and an escalation path instead of a blind retry. The rest are thinner: 5 of 7 fail the gate outright because nothing in them says when to stop (three of those are skills that describe loop patterns rather than run one — we graded every ECC file that calls itself a loop). /loop-start, the command that sets up ECC loops, lists an explicit stop condition as a required safety check but leaves the condition to the runbook it writes, so the text you copy has none.
Flagship: /loop-start — F 0/100. Missing: an exit a script can check, a turn cap, a scope limit.
The fix — these lines added to the end, nothing else changed:
Stop when `npm test` exits 0, or after 10 turns, whichever comes first. Only touch files in the task scope. Never push or merge: open a PR for review.
Graded again: A 85/100.
Ralph · 21,984 stars
The original Ralph prompt has a real exit: reply COMPLETE when every story passes. The cap lives in ralph.sh (a max-iterations argument), not in the prompt, so anyone who copies the prompt into their own runner gets a loop that never gives up.
Flagship: Ralph agent prompt (task, quality, stop condition) (lines 1–17 and 76–108) — C 65/100. Missing: a turn cap, a human gate before shipping.
The fix — these lines added to the end, nothing else changed:
Stop after 10 iterations even if stories remain, and report which are left.
Graded again: B 80/100.
ralph-claude-code · 9,703 stars
The PROMPT.md template is a B — it spells out exactly when to set EXIT_SIGNAL and runs tests each pass. The two shipped example prompts score far lower: no exit, no cap, no scope.
Flagship: Example: simple CLI tool — F 0/100. Missing: an exit a script can check, a turn cap, a scope limit, a human gate before shipping.
The fix — these lines added to the end, nothing else changed:
Set EXIT_SIGNAL: true when every item in fix_plan.md is done and the test suite passes. Stop after 15 loops. Only touch src/ and tests/; never push.
Graded again: B 80/100.
Loopy (Forward Future) · 3,185 stars
Loopy is the largest set by far: every loop in Forward Future's live catalog. They are graded through the same door looprepo uses for the Forward Future loops it carries, which is the kinder of the two (see How we did it). Most are clear, well-written prose, but most stop "when done" — a judgment call, not a test the agent can run — and few run a check each pass.
Flagship: The docs sweep — F 0/100. Missing: an exit a script can check, a turn cap, a check that runs each pass, a scope limit.
The fix — these lines added to the end, nothing else changed:
Stop when every doc example runs and `npm run docs:check` exits 0, or after 10 turns. Only touch docs/ and README files. Open a PR for review; never merge.
Graded again: A 85/100.
How we did it
- Repos: five of the most-starred public repos that ship agent-loop prompts for Claude Code or Codex, by GitHub stars on 2026-10-17. The Claude Code repo itself is left out — it is the runtime, not a loop. If we missed a bigger one, tell us and we will grade it the same way.
- Flagship = the first loop a new user meets in that repo (the entry-point command, the shipped example, loop #001), not its best-scoring one. The Best column shows the best.
- Each repo is pinned to a commit; every loop links to the exact file and lines graded.
- The grader takes up to 4,000 characters. Where a file is longer, we graded its loop instructions — what to do each pass, when to stop, what to check — verbatim, and left out examples and formatting sections. Nothing was rewritten.
- Loopy is graded from Forward Future's live catalog through the door looprepo uses for the Forward Future loops it lists: the
promptfield only (the text Loopy tells you to paste, not the steps and verification notes printed beside it), typed loop, goal or schedule by our importer. That door is the kinder one: graded prompt-only like the GitHub repos, 60 of Loopy's 85 would fail the gate instead of 13. - Grader: Safety Score v2, the code behind looprepo.dev/grade and the loops_grade MCP tool. Paste any loop above into either and you get the same grade.
- The script and raw results are in the looprepo repo:
scripts/reports/grade-top-repos.mjsanddata/reports/top-loop-repos-2026-10.json.
Grade yours
Paste a loop into the grader and see what it is missing, or browse the A and B shelf — every loop on it already stops on its own.