Migrates the ralph-wiggum plugin from internal marketplace to public marketplace. Implements Geoffrey Huntley's "Ralph Wiggum" technique using Claude Code's Stop hook mechanism for continuous iterative development loops. Key features: - Interactive self-referential AI loops in current session - Stop hook intercepts exit and feeds same prompt back - Iteration tracking and completion promise detection - Max iterations safety limits Changes: - Remove all tmux dependencies and background execution mode - Simplify to interactive-only mode using Stop hooks - Add comprehensive error handling with clear messages - Fix documentation to accurately describe Stop hook mechanism - Add input validation for all command-line arguments - Register plugin in public marketplace Security fixes: - Remove eval usage (command injection vulnerability) - Add numeric validation before arithmetic operations - Remove silent error suppression 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.2 KiB
| description |
|---|
| Explain Ralph Wiggum technique and available commands |
Ralph Wiggum Plugin Help
Please explain the following to the user:
What is the Ralph Wiggum Technique?
The Ralph Wiggum technique is an iterative development methodology based on continuous AI loops, pioneered by Geoffrey Huntley.
Core concept:
while :; do
cat PROMPT.md | claude-code --continue
done
The same prompt is fed to Claude repeatedly. The "self-referential" aspect comes from Claude seeing its own previous work in the files and git history, not from feeding output back as input.
Each iteration:
- Claude receives the SAME prompt
- Works on the task, modifying files
- Tries to exit
- Stop hook intercepts and feeds the same prompt again
- Claude sees its previous work in the files
- Iteratively improves until completion
The technique is described as "deterministically bad in an undeterministic world" - failures are predictable, enabling systematic improvement through prompt tuning.
Available Commands
/ralph-loop [OPTIONS]
Start a Ralph loop in your current session.
Usage:
/ralph-loop "Refactor the cache layer" --max-iterations 20
/ralph-loop "Add tests" --completion-promise "TESTS COMPLETE"
Options:
--max-iterations <n>- Max iterations before auto-stop--completion-promise <text>- Promise phrase to signal completion
How it works:
- Creates
.claude/.ralph-loop.local.mdstate file - You work on the task
- When you try to exit, stop hook intercepts
- Same prompt fed back
- You see your previous work
- Continues until promise detected or max iterations
/cancel-ralph
Cancel an active Ralph loop (removes the loop state file).
Usage:
/cancel-ralph
How it works:
- Checks for active loop state file
- Removes
.claude/.ralph-loop.local.md - Reports cancellation with iteration count
Key Concepts
Completion Promises
To signal completion, Claude must output a <promise> tag:
<promise>TASK COMPLETE</promise>
The stop hook looks for this specific tag. Without it (or --max-iterations), Ralph runs infinitely.
Self-Reference Mechanism
The "loop" doesn't mean Claude talks to itself. It means:
- Same prompt repeated
- Claude's work persists in files
- Each iteration sees previous attempts
- Builds incrementally toward goal
Example
Interactive Bug Fix
/ralph-loop "Fix the token refresh logic in auth.ts. Output <promise>FIXED</promise> when all tests pass." --completion-promise "FIXED" --max-iterations 10
You'll see Ralph:
- Attempt fixes
- Run tests
- See failures
- Iterate on solution
- In your current session
When to Use Ralph
Good for:
- Well-defined tasks with clear success criteria
- Tasks requiring iteration and refinement
- Iterative development with self-correction
- Greenfield projects
Not good for:
- Tasks requiring human judgment or design decisions
- One-shot operations
- Tasks with unclear success criteria
- Debugging production issues (use targeted debugging instead)
Learn More
- Original technique: https://ghuntley.com/ralph/
- Ralph Orchestrator: https://github.com/mikeyobrien/ralph-orchestrator