agentleFS
jkitchinjkitchin/knowhow/skills/development/ralph-wiggum/SKILL.md

ralph-wiggum

Skill42 starsChanged 17 days agoMITView on GitHub

Autonomous AI coding loop for unattended development - lets Claude work continuously on tasks while you sleep, with mandatory sandbox enforcement for safety

  • Reads credentials

7 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 7 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When context fills up, the loop restarts Claude with fresh context.

    line 25
  2. Distinctive:

    Use Ralph Wiggum mode for:

    line 29
  3. Distinctive:

    Delete files without confirmation

    line 42
  4. Very specific:

    Read credentials (~/.ssh, ~/.aws)

    line 43
  5. Distinctive:

    No access to sensitive paths

    line 51
  6. Distinctive:

    Only for custom sandbox environments you've verified:

    line 212
  7. Very specific:

    Track progress: - Use IMPLEMENTATION_PLAN.md as shared state

    line 225
  8. Distinctive:

    Check sandbox detection output.

    line 273
  9. Distinctive:

    No sensitive path access

    line 277
  10. Very specific:

    Check ralph.log for errors

    line 281
  11. Very specific:

    Update IMPLEMENTATION_PLAN.md to unblock

    line 282
  12. Very specific:

    Add clarifying notes to RALPH_PROMPT.md

    line 283

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Ralph Wiggum Mode

"Me fail English? That's unpossible!" - Ralph Wiggum

Ralph Wiggum Mode is an autonomous AI coding loop that enables Claude Code to work continuously on tasks without human intervention. Named after the persistently optimistic Simpsons character, this technique lets Claude work "overnight shifts" while you sleep.

Key Principle

Progress persists in files and git, not in the LLM's context window.

When context fills up, the loop restarts Claude with fresh context. The new instance picks up from the filesystem state (your code, git history, and task tracking files).

When to Use This Skill

Use Ralph Wiggum mode for:

  • Overnight feature development
  • Bug bashes (fixing multiple issues)
  • Test coverage improvement
  • Refactoring large codebases
  • Documentation generation
  • Any multi-step task you'd like completed while away

Security Model

CRITICAL: Ralph requires a sandboxed environment.

Ralph uses --dangerously-skip-permissions which can:

  • Delete files without confirmation
  • Read credentials (~/.ssh, ~/.aws)
  • Make network requests
  • Run arbitrary commands

Ralph will REFUSE to start unless it detects:

  • Container environment (Docker/Kubernetes)
  • Network isolation (cannot reach internet)
  • Non-root user
  • No access to sensitive paths

Quick Start

1. Initialize Ralph in Your Project

# Run the init script to scaffold Ralph files
./ralph-init.sh

This creates:

  • RALPH_PROMPT.md - The prompt fed to Claude each iteration
  • IMPLEMENTATION_PLAN.md - Task tracking file
  • ralph.sh - The main loop script
  • ralph-sandbox.sh - Docker wrapper
  • Dockerfile.ralph - Sandbox container definition

2. Define Your Work

# Create specs directory for requirements
mkdir -p specs

# Write your requirements
cat > specs/my-feature.md << 'EOF'
## Feature: User Dashboard

### Requirements
- Show user's recent activity
- Display usage statistics
- Allow date range filtering
EOF

# Update the implementation plan
cat > IMPLEMENTATION_PLAN.md << 'EOF'
## Tasks

- [ ] Create Dashboard component
- [ ] Add activity feed API endpoint
- [ ] Implement date range picker
- [ ] Write tests for dashboard
EOF

3. Run Ralph (In Sandbox)

# Recommended: Use the Docker wrapper
./ralph-sandbox.sh

# With iteration limit
./ralph-sandbox.sh . 20

# Check progress from another terminal
tail -f ralph.log
git log --oneline -10

4. Review Results

# See what Ralph did
git log --oneline

# Check task completion
cat IMPLEMENTATION_PLAN.md

# Verify tests pass
pytest

How It Works

┌─────────────────────────────────────────────────────────────────┐
│                    EXTERNAL BASH LOOP                            │
│                                                                  │
│   while :; do                                                    │
│       ┌─────────────────────────────────────────────────┐       │
│       │           CLAUDE SESSION                         │       │
│       │                                                  │       │
│       │  1. Read RALPH_PROMPT.md                        │       │
│       │  2. Check IMPLEMENTATION_PLAN.md                │       │
│       │  3. Pick a task, implement it                   │       │
│       │  4. Run tests, commit changes                   │       │
│       │  5. Context fills → Session ends                │       │
│       └─────────────────────────────────────────────────┘       │
│                           ↓                                      │
│       Git commit saves progress                                  │
│       Loop restarts with fresh context                           │
│   done                                                           │
└─────────────────────────────────────────────────────────────────┘

Files Reference

RALPH_PROMPT.md

The prompt loaded each iteration. Customize this for your use case:

# Ralph Mode Instructions

You are operating in autonomous Ralph mode.

## Each Iteration
1. Read IMPLEMENTATION_PLAN.md and git log
2. Pick ONE pending task, mark it in-progress
3. Implement fully with tests
4. Mark complete, commit changes

## Rules
- Never skip tests
- Commit after each meaningful change
- If blocked, document why and continue

IMPLEMENTATION_PLAN.md

Persistent task tracking (survives context resets):

## Tasks

- [x] Task 1 (completed in iteration 1)
- [x] Task 2 (completed in iteration 2)
- [ ] Task 3 (in progress)
- [ ] Task 4 (pending)

ralph.sh

The main loop with sandbox enforcement. Key features:

  • Refuses to run outside sandbox
  • Configurable iteration limits
  • Git commits after each iteration
  • Graceful shutdown handling

ralph-sandbox.sh

Docker wrapper that:

  • Builds sandbox image if needed
  • Mounts only project directory
  • Disables network (--network none)
  • Sets resource limits (memory, CPU, PIDs)
  • Drops all capabilities

Configuration

Environment Variables

VariableDefaultDescription
RALPH_MAX_ITERATIONS0 (unlimited)Stop after N iterations
RALPH_MODELopusClaude model to use
RALPH_COST_LIMIT50.00Max spend in USD (with cost monitor hook)
ANTHROPIC_API_KEYoptionalAPI key (not needed with Claude Code subscription)

Sandbox Override (Dangerous)

Only for custom sandbox environments you've verified:

RALPH_I_KNOW_WHAT_IM_DOING=sandboxed ./ralph.sh

Best Practices

Prompt Engineering

  1. Be specific - Tell Claude exactly what to do each iteration
  2. Single task focus - "Pick ONE task" prevents context bloat
  3. Require tests - Include testing in the prompt
  4. Track progress - Use IMPLEMENTATION_PLAN.md as shared state

Task Decomposition

Break large tasks into small, atomic pieces:

## Bad
- [ ] Implement user authentication

## Good
- [ ] Create User model with email, password_hash
- [ ] Add POST /api/register endpoint
- [ ] Add POST /api/login endpoint
- [ ] Add password reset flow
- [ ] Add JWT middleware
- [ ] Write auth tests

Monitoring

# Watch iterations in real-time
tail -f ralph.log

# Check commits
watch -n 5 'git log --oneline -10'

# Monitor resource usage
docker stats

Safety Hooks (Recommended)

Install these hooks for additional safety:

# Block dangerous operations
knowhow hooks install ralph-safety-check

# Track API costs
knowhow hooks install ralph-cost-monitor

Troubleshooting

Ralph won't start

Check sandbox detection output. You need at least 3 checks passing:

  • Container detected
  • Network isolated
  • Non-root user
  • No sensitive path access

Ralph gets stuck on a task

  1. Check ralph.log for errors
  2. Update IMPLEMENTATION_PLAN.md to unblock
  3. Add clarifying notes to RALPH_PROMPT.md

Runaway iterations

Set MAX_ITERATIONS or use the cost monitor hook:

./ralph-sandbox.sh . 20  # Stop after 20 iterations

References

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.