Ralph wiggum loop
Agent Skills for automating GitHub PR code review workflows
npx -y skills add xpepper/pr-review-agent-skill --skill ralph-wiggum-loopAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when context window exhaustion is a concern or when addressing a large volume of PR comments — spawns a fresh agent session per comment via an external shell loop. For an in-session approach, use pr-review-loop or copilot-review-loop instead.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.7 KB, 864 tokens by cl100k_base, as published. Nobody here has run it
Ralph Wiggum Loop
Overview
The Ralph Wiggum pattern: an external shell loop that spawns a fresh agent session per PR comment. Each invocation reads a plan file, does exactly one unit of work (triage or fix), then exits. The shell loop handles repetition.
This avoids context window exhaustion and works with any agent.
How to invoke
This skill is not invoked via chat. Instead, you run a shell loop in your
terminal — the loop pipes CODE_REVIEW_PLAN.md to a fresh agent session for
each iteration:
# Claude
while [ ! -f PR_REVIEW_DONE ]; do
cat CODE_REVIEW_PLAN.md | claude -p --dangerously-skip-permissions
done
# Codex
while [ ! -f PR_REVIEW_DONE ]; do
cat CODE_REVIEW_PLAN.md | codex exec --yolo -
done
See Setup below to get CODE_REVIEW_PLAN.md into your project.
Setup (once per PR)
-
Copy
CODE_REVIEW_PLAN.mdfrom this skill to your project root:# Project-local install (default — installed without --global): cp .agents/skills/ralph-wiggum-loop/CODE_REVIEW_PLAN.md . # Global install (installed with --global): cp ~/.claude/skills/ralph-wiggum-loop/CODE_REVIEW_PLAN.md .The path depends on how the skill was installed. Check
.agents/skills/first (project-local); if not found, use your global skills directory. -
Optionally add both files to
.gitignore:CODE_REVIEW_PLAN.md PR_COMMENTS_PLAN.md PR_REVIEW_DONE .pr-review/ -
Start the loop:
Claude:
while [ ! -f PR_REVIEW_DONE ]; do cat CODE_REVIEW_PLAN.md | claude -p --dangerously-skip-permissions doneCodex:
while [ ! -f PR_REVIEW_DONE ]; do cat CODE_REVIEW_PLAN.md | codex exec --yolo - doneAny agent that accepts stdin:
while [ ! -f PR_REVIEW_DONE ]; do cat CODE_REVIEW_PLAN.md | <agent-command> done
How it works
| Iteration | PR_COMMENTS_PLAN.md exists? | What the agent does |
|---|---|---|
| 1st | No | Fetches all PR comments, triages them, writes the file |
| 2nd–N | Yes | Fixes the topmost unresolved comment, marks it done |
| Final | Yes, all resolved | Writes PR_REVIEW_DONE, loop terminates |
Each session is minimal: one triage pass or one comment fix.
State files (in project root)
CODE_REVIEW_PLAN.md— the instruction file (static, copied once)PR_COMMENTS_PLAN.md— triage + progress state (generated, updated each run)PR_REVIEW_DONE— written by the agent when all comments are addressed; stops the loop.pr-review/plan-<id>.md— per-comment plan for non-trivial fixes (deleted after resolution)
Cleanup
rm -f CODE_REVIEW_PLAN.md PR_COMMENTS_PLAN.md PR_REVIEW_DONE
rm -rf .pr-review/
Do Not
- Run the loop with
--dangerously-skip-permissionson a repository you do not fully trust - Let the loop run unattended past the first few iterations without reviewing what the agent committed
- Bundle all PR feedback into one large commit (each agent session commits at most one fix)
- Delete
PR_COMMENTS_PLAN.mdwhile the loop is running — this is the shared state file