Fix CI Until Green
Fetch the latest failed CI run, reproduce the failure locally, fix it, and repeat until checks pass.
3 copies · 17 views
by loops!
Use loop copies the kickoff. Share copies the loop link. Open in Cursor / Claude Code only pre-fill that prompt — they do not install hook files. Download loop saves a README and kickoff into .cursor/loops/fix-ci-until-green/ — no hooks required. Full install guide
- Do not modify the check command or exit criteria to force success
- Do not skip, disable, or bypass checks to pass the exit condition
- If stuck after several iterations, stop and report blockers instead of gaming metrics
Two separate pieces
- Kickoff prompt — tells the agent the goal, check command, exit condition, and how to self-pace between passes.
- 1
Copy or open the kickoff prompt
Click Use loop to copy the kickoff into your clipboard. Open in Cursor and Open in Claude Code only open the agent with that prompt — they do not configure automation for you.
- 2
Paste into your coding agent
Start a chat in Cursor, Claude Code, Codex, or any agent. Paste the kickoff. The prompt includes the goal, iteration limit, shell check, and first step.
- 3
Agent self-paces until done
The agent runs the loop: act → run check command → read output → repeat until the exit condition is met or max iterations is reached. No install step is required for prompt-only loops.
Full guide with Cursor /loop notes: How to install loops
1. Fetch failed run
Use gh to find the latest failed CI run on this branch. Pull logs for the failing job.
gh run list --branch $(git branch --show-current) --status failure --limit 1
2. Reproduce locally
Run the failing CI step locally (test, lint, build). Confirm you can reproduce the error.
3. Apply fix
Fix the root cause with a minimal diff. Avoid unrelated refactors.
4. Push and verify
Push the fix and wait for CI. Re-check status before the next iteration.
gh run list --branch $(git branch --show-current) --limit 1 --json conclusion -q '.[0].conclusion'
Start the "Fix CI Until Green" loop. Goal: latest CI run on this branch passes Max iterations: 8 Between iterations run: gh run list --branch $(git branch --show-current) --limit 1 --json conclusion -q '.[0].conclusion' Exit when: latest run conclusion is success Step 1: Find the latest failed CI run, read logs, reproduce locally, fix root cause, push, and verify. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
Related loops
Start the "Ship PR Until Green" loop. Goal: PR is open with all CI checks passing Max iterations: 10 Between iterations run: gh pr checks Exit when: all PR checks are success Step 1: Implement the change, test locally, push, open PR, and fix CI until green. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
/loop 15m Start the "PR Babysitter" loop. Goal: open PRs labeled codex-watch are healthy (CI green, rebased, not stale). Max iterations: 20. Between iterations run: gh pr list --label "codex-watch" Exit when: each watched PR is green and current, or escalated. Step 1: List watched PRs. Fix CI once, rebase if behind, comment if stale. Escalate repeated failures.
Start the "Build Until Green" loop. Goal: production build succeeds Max iterations: 10 Between iterations run: npm run build Exit when: npm run build exits 0 Step 1: Run the build. If it fails, fix the first error, then repeat until green. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.