
Ralph Wiggum plugin implementation that works after the CVE-2025-54795 security patch
Eine funktionierende Implementierung der autonomen Loop-Technik von Ralph Wiggum für Claude Code.
Das offizielle ralph-wiggum-Plugin im Plugin-Marktplatz von Anthropic ist derzeit aufgrund eines Sicherheitsupdates in Claude Code v1.0.20 (August 2025) defekt.
Der Sicherheitspatch (CVE-2025-54795) blockiert korrekt $()-Befehlsersetzung und mehrzeilige Bash-Befehle, um Command-Injection-Angriffe zu verhindern. Allerdings enthält die Befehlsdatei des offiziellen Plugins mehrzeilige Bash-Befehle, die diesen Schutz auslösen:
Error: Bash command permission check failed for pattern "...":
Command contains newlines that could separate multiple commands
Mehrere Probleme wurden gemeldet:
Stand 3. Januar 2026 sind diese weiterhin ungelöst.
Dies ist eine saubere Neuimplementierung, die mit den aktuellen Claude Code-Sicherheitsbeschränkungen funktioniert.
Wichtiger architektonischer Unterschied: Das offizielle Plugin versucht, Bash direkt aus der Befehlsdatei auszuführen. Dieses Plugin weist Claude stattdessen an, die Zustandsdatei mit dem Write-Tool zu erstellen, sodass die Befehlsdatei reines Markdown ohne Bash-Ausführung bleibt. Der Stop-Hook wird als separates Shell-Skript außerhalb des Berechtigungssystems ausgeführt.
claude --plugin-dir /path/to/ralph
# Create marketplace
mkdir -p ~/claude-plugins/.claude-plugin
echo '{"name": "local", "owner": {"name": "You"}}' > ~/claude-plugins/.claude-plugin/marketplace.json
# Move plugin into marketplace
mv /path/to/ralph ~/claude-plugins/
# In Claude Code:
/plugin marketplace add ~/claude-plugins
/plugin install ralph@local
/ralph:ralph-loop "Your task" --max-iterations 30 --completion-promise "DONE"
| Argument | Beschreibung | Standard |
|---|---|---|
| prompt | Die zu erledigende Aufgabe | (erforderlich) |
| --max-iterations N | Sicherheitsgrenze | 30 |
| --completion-promise TEXT | Fertigstellungssignal | TASK_COMPLETE |
/ralph:ralph-loop "Build a REST API with tests" --completion-promise "API_COMPLETE"
/ralph:ralph-loop "Follow the instructions in CLAUDE.md" --max-iterations 50 --completion-promise "BENCHMARK_COMPLETE"
/ralph:cancel-ralph
.claude/ralph-loop.local.md mit Aufgabe und Konfiguration zu erstellen<promise>COMPLETION_PROMISE</promise>{"decision": "block", "reason": "..."} zurück, Claude fährt fortjq (für JSON-Parsing im Stop-Hook)MIT