Continuous Claude — PR-gated Ralph loop

The Ralph loop for teams: every iteration ships as a pull request that must pass CI before merging, giving each cycle a verifiable checkpoint. Keep branch protection and human PR approval enabled rather than letting it auto-merge to main unattended.

prompt
→ Claude Code
Run Claude Code in a continuous loop that opens a PR per iteration, waits for CI checks, and merges when green, then starts the next iteration. Cap the run at 25 iterations; leave remaining work for the next session.
claude-code

Implementation note

When to use: running a Ralph-style loop inside a team codebase, where unreviewed commits landing on a shared branch is unacceptable — this variant makes every iteration legible to normal team process. How it works: Claude Code runs in a continuous loop where each iteration opens a pull request, waits for CI checks, merges when green, and then starts the next iteration. The PR-per-iteration structure gives every cycle a verifiable checkpoint: CI is the objective gate, and the PR trail is the audit log of what the loop did and when. Safety: the recommended configuration is to keep branch protection and human PR approval enabled rather than letting the loop auto-merge to main unattended — CI-green means the checks passed, not that the change is wanted. With approval required, the loop becomes a proposal generator; without it, you have effectively granted an agent merge rights to main.

Source: AnandChowdhary/continuous-claude ↗graded C · 70/100 — how grades work →

More ci loops

Get the build green

Loop/goalcommunityB

Run the build, fix the first error, and repeat until npm run build exits 0, with a 10-turn cap.

prompt
→ Claude Code
/goal `npm run build` exits 0 — run the build, fix the first error, repeat until it succeeds; stop after 10 turns

Get the build green, every time

Loop/goalGitHubB

Work through each task in .toh/plan.md, fix blockers, until the build command succeeds or you hit 40 turns.

prompt
→ Claude Code
/goal every task in .toh/plan.md is checked and the build command exits 0 — or stop after 40 turns . A Haiku evaluator judges the condition FROM THE TRANSCRIPT — one more reason the QC gate quotes actual output: unquoted results are invisible to the evaluator. |

Get lint and E2E tests passing

Loop/goalGitHubA

Execute work from PLAN.md until npm run lint and npm run test:e2e pass, scoping changes per AGENTS.md.

prompt
→ Claude Code
/goal Implement the work described in PLAN.md. Stop only when npm run lint and npm run test:e2e pass. Follow AGENTS.md, keep changes scoped, and report verification evidence Stop after 25 turns even if the goal is not reached.
cimedium risk