AgentSkillsCN

ralph-wiggum-loop

当您担心上下文窗口耗尽,或需要处理大量 PR 评论时——可通过外部 Shell 循环,为每条评论启动一个全新的代理会话。若希望在会话内完成操作,则可改用 pr-review-loop 或 copilot-review-loop。

SKILL.md
--- frontmatter
name: ralph-wiggum-loop
description: 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.
license: MIT
compatibility: Requires gh CLI. Works with any agent that accepts piped instructions (claude -p, codex exec, etc.). PR branch must be checked out locally.
metadata:
  author: Pietro Di Bello
  version: "1.0.0"
allowed-tools: Bash(gh:*)

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:

bash
# 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)

  1. Copy CODE_REVIEW_PLAN.md from this skill to your project root:

    bash
    # 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.

  2. Optionally add both files to .gitignore:

    code
    CODE_REVIEW_PLAN.md
    PR_COMMENTS_PLAN.md
    PR_REVIEW_DONE
    .pr-review/
    
  3. Start the loop:

    Claude:

    bash
    while [ ! -f PR_REVIEW_DONE ]; do
      cat CODE_REVIEW_PLAN.md | claude -p --dangerously-skip-permissions
    done
    

    Codex:

    bash
    while [ ! -f PR_REVIEW_DONE ]; do
      cat CODE_REVIEW_PLAN.md | codex exec --yolo -
    done
    

    Any agent that accepts stdin:

    bash
    while [ ! -f PR_REVIEW_DONE ]; do
      cat CODE_REVIEW_PLAN.md | <agent-command>
    done
    

How it works

IterationPR_COMMENTS_PLAN.md exists?What the agent does
1stNoFetches all PR comments, triages them, writes the file
2nd–NYesFixes the topmost unresolved comment, marks it done
FinalYes, all resolvedWrites 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

bash
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-permissions on 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.md while the loop is running — this is the shared state file