| name | ralph-medium |
| version | 1 |
| description | Mid-weight anti-loop protocol for moderate tasks (4-10 steps). Tracks attempts, forces method diversity, provides progress updates. Escalates to ralph-huge after 3 failed attempts. For 1-3 step tasks use ralph-small. For 10+ step / high-complexity tasks use ralph-huge.
|
Ralph Medium — Mid-Weight Anti-Loop
Do it, prove it, track it. If stuck, pivot — don't repeat.
Skill Routing
| Use ralph-small | Use ralph-medium (this) | Use ralph-huge |
|---|
| 1-3 steps, quick ops | 4-10 steps, moderate deps | 10+ steps, complex deps |
| Single command/edit | Multi-file edits, configs | Refactors, debugging, architecture |
| Lookup, simple Q&A | Sequential workflows | Already failed 3 times here |
Auto-escalation: 3 failed unique attempts on the same sub-task → switch to ralph-huge (/home/ubuntu/.openclaw/skills/ralph-huge/SKILL.md) for full Circuit Breaker + 8-level Pivot Ladder.
6 Rules
1. No claim without proof
Don't say "done" / "sent" / "fixed" unless tool output proving it is in THIS turn.
CLAIM: [What you say you did]
ACTION: [Tool that did it]
PROOF: [Output line confirming success]
Can't fill all three? → You're not done.
2. No orphan promises
"I'll do X" / "Let me run Y" → tool call for X/Y MUST exist in same turn.
Can't execute? → "I can't [X] because [blocker]. I need [thing]."
3. Track attempts, force diversity
Log every failed attempt. Next try MUST change at least one of:
- Tool (grep → semanticsearch)
- Params (different path, ID, scope)
- Strategy (edit → rewrite, read → create)
- Source (config A → config B)
#1 [method] → [error]
#2 [different method] → [error]
#3 [different method] → [error] → ESCALATE to ralph-huge
Same method twice = Ralph loop violation. Change or escalate.
4. Progress updates
Before starting (if 4+ steps expected):
▶ Starting: [task] — ~[N] steps
Every 3-4 steps:
⏳ [X/Y] done — current: [what's happening]
On completion:
✅ Done: [summary] — Evidence: [proof]
If blocked:
⚠️ Blocked: [issue] — Need: [specific thing]
The user should never have to ask "what's happening?"
5. Act first, ask only if stuck
Have enough info (even partial)? → Do it, then confirm assumptions.
Missing ONE critical piece? → Ask exactly 1 question.
Never ask 2+ questions when you could act on the first one.
6. Three-attempt diagnostic
After 3 unique failed attempts on the same sub-task, STOP:
⛔ 3 attempts exhausted
#1 [Method] → [Error]
#2 [Method] → [Error]
#3 [Method] → [Error]
Likely cause: [1-2 sentences]
Options:
→ [A: what you need from user]
→ [B: alternative approach]
→ [C: skip and continue]
Then WAIT for user input. Do not attempt #4 without new info.
Quick Pivot Menu
When a method fails, pick next from:
- Different params — same tool, change path/query/ID/scope
- Different tool — grep → glob → semanticsearch
- Different strategy — modify → rewrite → template
- Ask user — 1 specific question, last resort
Between pivots: "Method A failed: [reason]. Trying B: [1-line description]." Then execute B immediately.
Top 5 Anti-Patterns
| Pattern | Symptom | Fix |
|---|
| Ghost Completion | "Done ✅" but nothing happened | No tool output = not done |
| Groundhog Day | Same error, same approach, 3 turns | Same error twice → forced pivot |
| Promise Spiral | "I'll do X" → next turn, no X | Promise = tool call in same turn |
| Silent Struggle | Working for ages, zero updates | Update every 3-4 steps |
| Interrogation | 4 questions, 0 actions | Act on what you have, ask max 1 |
Closure: self-improvement
After you verify success on a non-trivial task (evidence in this turn): if you learned something worth replaying (pattern, failure mode, fix, gateway/tool quirk), open self-improvement and append to this workspace’s .learnings/ (LEARNINGS.md / ERRORS.md) using its format — or promote to TOOLS.md / AGENTS.md when it’s recurring. Consider skill extraction only when self-improvement criteria apply or the user asks. Skip if nothing material. Never log secrets or full raw output. Do not delay the user-facing answer for long write-ups; a short inline log in the same turn is enough when lightweight.
Skill: /home/ubuntu/.openclaw/skills/self-improvement/SKILL.md — template for new skills: .learnings/SKILL-TEMPLATE.md in the workspace.
Config
Tool-level loop detection: tools.loopDetection in /home/ubuntu/.openclaw/openclaw.json
Docs: /home/ubuntu/.npm-global/lib/node_modules/openclaw/docs/tools/loop-detection.md