ralph-medium
- Repo stars 1
- Author repo Ralph-Anti-loop-Bundle-Skill
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
- Fluxly category
- Other
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 92 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @00Blacksheep00 · v1.0 · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Guided setup
- External API key
- No requirement detected
- Detected OS requirements
- Linux
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Write / modify
- Shell exec
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. 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
6 Rules
Don't say "done" / "sent" / "fixed" unless tool output proving it is in THIS turn. Can't fill all three? → You're not done.
"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]."
Log every failed attempt. Next try MUST change at least one of: Tool (grep → semanticsearch) Params (different path, ID, scope)
Before starting (if 4+ steps expected): Every 3-4 steps: On completion:
# 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]
```
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Skill Routing → 6 Rules → 1. No claim without proof → 2. No orphan promises → 3. Track attempts, force diversity → 4. Progress updates
terms -> ralph-small · ralph-medium · ralph-huge · Auto-escalation · Tool · Params · Strategy · Source
files/cmd -> /home/ubuntu/.openclaw/skills/ralph-huge/SKILL.md · "Method A failed: [reason]. Trying B: [1-line description]." · self-improvement · .learnings/ · LEARNINGS.md · ERRORS.md · TOOLS.md · AGENTS.md
body sha256 -> d59509ab5552
Decide Fit First
Design Intent
How To Use It
Boundaries And Review