用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/mhenke/claude-code-unplugged --skill ralph-wiggum命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for coding assistant plugins.
Automated PR and code reviewer guidelines
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for coding assistant.
基于 SOC 职业分类
正在显示 SKILL.md
| name | ralph-wiggum |
| description | Iterative feedback loop commands |
Implementation of the Ralph Wiggum technique for iterative, self-referential AI development loops in coding assistant.
Ralph is a development methodology based on continuous AI agent loops. As Geoffrey Huntley describes it: "Ralph is a Bash loop" - a simple while true that repeatedly feeds an AI agent a prompt file, allowing it to iteratively improve its work until completion.
The technique is named after Ralph Wiggum from The Simpsons, embodying the philosophy of persistent iteration despite setbacks.
This plugin implements Ralph using a Stop hook that intercepts Claude's exit attempts:
# You run ONCE:
/ralph-loop "Your task description" --completion-promise "DONE"
# Then coding assistant automatically:
# 1. Works on the task
# 2. Tries to exit
# 3. Stop hook blocks exit
# 4. Stop hook feeds the SAME prompt back
# 5. Repeat until completion
The loop happens inside your current session - you don't need external bash loops. The Stop hook in hooks/stop-hook.sh creates the self-referential feedback loop by blocking normal session exit.
This creates a self-referential feedback loop where:
/ralph-loop "Build a REST API for todos. Requirements: CRUD operations, input validation, tests. Output <promise>COMPLETE</promise> when done." --completion-promise "COMPLETE" --max-iterations 50
Claude will:
Start a Ralph loop in your current session.
Usage:
/ralph-loop "<prompt>" --max-iterations <n> --completion-promise "<text>"
Options:
--max-iterations <n> - Stop after N iterations (default: unlimited)--completion-promise <text> - Phrase that signals completionCancel the active Ralph loop.
Usage:
/cancel-ralph
❌ Bad: "Build a todo API and make it good."
✅ Good:
Build a REST API for todos.
When complete:
- All CRUD endpoints working
- Input validation in place
- Tests passing (coverage > 80%)
- README with API docs
- Output: <promise>COMPLETE</promise>
❌ Bad: "Create a complete e-commerce platform."
✅ Good:
Phase 1: User authentication (JWT, tests)
Phase 2: Product catalog (list/search, tests)
Phase 3: Shopping cart (add/remove, tests)
Output <promise>COMPLETE</promise> when all phases done.
❌ Bad: "Write code for feature X."
✅ Good:
Implement feature X following TDD:
1. Write failing tests
2. Implement feature
3. Run tests
4. If any fail, debug and fix
5. Refactor if needed
6. Repeat until all green
7. Output: <promise>COMPLETE</promise>
Always use --max-iterations as a safety net to prevent infinite loops on impossible tasks:
# Recommended: Always set a reasonable iteration limit
/ralph-loop "Try to implement feature X" --max-iterations 20
# In your prompt, include what to do if stuck:
# "After 15 iterations, if not complete:
# - Document what's blocking progress
# - List what was attempted
# - Suggest alternative approaches"
Note: The --completion-promise uses exact string matching, so you cannot use it for multiple completion conditions (like "SUCCESS" vs "BLOCKED"). Always rely on --max-iterations as your primary safety mechanism.
Ralph embodies several key principles:
Don't aim for perfect on first try. Let the loop refine the work.
"Deterministically bad" means failures are predictable and informative. Use them to tune prompts.
Success depends on writing good prompts, not just having a good model.
Keep trying until success. The loop handles retry logic automatically.
Good for:
Not good for:
Run help in coding assistant for detailed command reference and examples.
cancel-ralphDescription: Cancel active Ralph Wiggum loop
To cancel the Ralph loop:
Check if .agent/ralph-loop.local.md exists using Bash: test -f .agent/ralph-loop.local.md && echo "EXISTS" || echo "NOT_FOUND"
If NOT_FOUND: Say "No active Ralph loop found."
If EXISTS:
.agent/ralph-loop.local.md to get the current iteration number from the iteration: fieldrm .agent/ralph-loop.local.mdhelpDescription: Explain Ralph Wiggum technique and available commands
Please explain the following to the user:
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 | coding-assistant --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:
The technique is described as "deterministically bad in an undeterministic world" - failures are predictable, enabling systematic improvement through prompt tuning.
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 completionHow it works:
.agent/.ralph-loop.local.md state fileCancel an active Ralph loop (removes the loop state file).
Usage:
/cancel-ralph
How it works:
.agent/.ralph-loop.local.mdTo 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.
The "loop" doesn't mean Claude talks to itself. It means:
/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:
Good for:
Not good for:
ralph-loopDescription: Start Ralph Wiggum loop in current session
Execute the setup script to initialize the Ralph loop:
"PLUGIN_ROOT/scripts/setup-ralph-loop.sh" $ARGUMENTS
Please work on the task. When you try to exit, the Ralph loop will feed the SAME PROMPT back to you for the next iteration. You'll see your previous work in files and git history, allowing you to iterate and improve.
CRITICAL RULE: If a completion promise is set, you may ONLY output it when the statement is completely and unequivocally TRUE. Do not output false promises to escape the loop, even if you think you're stuck or should exit for other reasons. The loop is designed to continue until genuine completion.
You are responsible for self-enforcing the Ralph feedback loop within this session:
.agent/ralph-loop.local.md to extract current iteration, max_iterations, and completion_promise.<promise>COMPLETION_PROMISE</promise> and delete the state file using your bash tool.max_iterations > 0 and iteration >= max_iterations, output a completion/termination message and delete the state file.iteration count in the state file using your bash tool or file edits.