ralph-mode

Ralph is an autonomous AI coding loop that spawns fresh context windows repeatedly until all tasks are complete. Memory persists via git history and text files while each iteration starts fresh.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ralph-mode" with this command: npx skills add wodsmith/thewodapp/wodsmith-thewodapp-ralph-mode

Ralph Mode

Ralph is an autonomous AI coding loop that spawns fresh context windows repeatedly until all tasks are complete. Memory persists via git history and text files while each iteration starts fresh.

Named after Ralph Wiggum from The Simpsons - perpetually confused, always making mistakes, but never stopping. The philosophy: iteration beats perfection.

Two Execution Modes

Ralph works in two environments:

Mode Environment How It Works Fresh Context Via

Local CLI terminal Bash loop spawns claude -p

New CLI process

Remote Web/API/Agent SDK Controller spawns Task subagents New Task call

Both achieve the same goal: fresh context per iteration to avoid context rot.

Quick Start

Initialize Ralph

bun .claude/skills/ralph-mode/scripts/init-ralph.ts

This creates scripts/ralph/ with all necessary files.

Populate PRD

Edit scripts/ralph/prd.json with your user stories (see prd-guide.md).

Run Ralph

Local Mode (CLI):

./scripts/ralph/ralph.sh 20 # AFK: 20 iterations max ./scripts/ralph/ralph-once.sh # HITL: single iteration

Remote Mode (Web/API): Load scripts/ralph/ralph-controller.md and follow its instructions. The controller will spawn Task subagents for each story.

How It Works

Local Mode (Bash Loop)

┌─────────────────────────────────────────┐ │ ralph.sh (bash loop) │ │ └─▶ claude -p < prompt.md │ │ └─▶ Implements ONE story │ │ └─▶ Commits if passing │ │ └─▶ Updates state files │ │ └─▶ Loop until done or max iterations │ └─────────────────────────────────────────┘

Remote Mode (Task-Based)

┌─────────────────────────────────────────┐ │ Ralph Controller (you or outer agent) │ │ └─▶ Reads prd.json, progress.txt │ │ └─▶ Selects next story │ │ └─▶ Task(general-purpose) ────────────────┐ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────┐ │ │ │ Ralph Worker (subagent) │ │ │ │ - Fresh context window │ │ │ │ - Implements ONE story │ │ │ │ - Runs feedback loops │ │ │ │ - Commits if passing │ │ │ │ - Updates state files │ │ │ └─────────────────────────────────────┘ │ │ │ │ │ ◀────────────────────────────────────┘ │ └─▶ Verifies result │ │ └─▶ Loop until done or max iterations │ └─────────────────────────────────────────┘

Key insight: Each Task() call creates a fresh context window - exactly what Ralph needs.

File Structure

scripts/ralph/ ├── ralph.sh # Local: AFK mode loop ├── ralph-once.sh # Local: HITL single iteration ├── ralph-controller.md # Remote: Controller instructions ├── ralph-worker.md # Remote: Worker template ├── prompt.md # Local: Iteration prompt ├── prd.json # User stories with completion status └── progress.txt # Accumulated learnings

Remote Mode: Enforced Subagent Use

In remote mode, the controller MUST NOT implement code directly:

❌ Controller writes code → Context rot, defeats purpose ✅ Controller spawns workers → Fresh context per story

The controller only:

  • Reads state files

  • Selects next story

  • Spawns Task subagents

  • Verifies results

  • Loops

All implementation happens in subagents with fresh context.

Spawning a Worker

Task({ subagent_type: "general-purpose", description: "Implement US-003: Add email validation", prompt: [contents of ralph-worker.md with story details filled in] })

Worker Responsibilities

Each worker subagent:

  • Loads context (progress.txt, AGENTS.md)

  • Implements ONE story

  • Runs feedback loops (typecheck, lint, test)

  • Commits only if ALL pass

  • Updates prd.json and progress.txt

  • Reports results back to controller

Memory Persistence

Ralph forgets everything between iterations. Memory persists ONLY through:

File Purpose

prd.json

Task status (passes field)

progress.txt

Learnings, patterns, gotchas

Git commits Implementation history

AGENTS.md

Permanent project patterns

The 11 Tips for Success

  1. Ralph Is A Loop

The agent chooses tasks, not you. Define the end state. Ralph gets there.

  1. Start With HITL, Then Go AFK
  • HITL: Watch, intervene, refine prompts

  • AFK: Bulk work once foundation is solid

  1. Define The Scope

PRD items with explicit passes field and acceptance criteria.

  1. Track Progress

progress.txt IS the memory. Codebase Patterns at the TOP.

  1. Use Feedback Loops

Block commits unless typecheck/lint/test all pass.

  1. Take Small Steps

One story per iteration. Context rot is real.

  1. Prioritize Risky Tasks

Architecture → Integration → Features → Polish

  1. Define Quality Expectations

Tell Ralph: prototype vs production vs library.

  1. Use Sandboxes

Docker for local AFK. Isolated environments for remote.

  1. Pay To Play

Even HITL Ralph beats manual multi-phase prompting.

  1. Make It Your Own

Ralph is just a loop. Adapt for coverage, linting, refactoring, etc.

Usage Examples

Local HITL (Learning)

./scripts/ralph/ralph-once.sh

Watch output, intervene if needed

Run again when ready

Local AFK (Overnight)

./scripts/ralph/ralph.sh 50 # Let it run

Remote HITL (Web Session)

  • Read ralph-controller.md

  • Read prd.json and progress.txt

  • Select a story

  • Spawn ONE Task subagent with worker prompt

  • Verify result

  • Repeat manually

Remote AFK (Agent-to-Agent)

An outer agent or Agent SDK program runs the controller loop, spawning subagents until all stories pass.

Monitoring Progress

Story status

cat scripts/ralph/prd.json | jq '.userStories[] | {id, title, passes}'

Learnings

cat scripts/ralph/progress.txt

Recent commits

git log --oneline -10

Safety

  • Local AFK uses --dangerously-skip-permissions

  • Use Docker sandboxes when possible

  • Always cap iterations

  • Ctrl+C stops local loops immediately

  • git reset --hard reverts uncommitted changes

When NOT to Use

  • Exploratory work without clear outcomes

  • Major refactors without explicit criteria

  • Security-critical code needing human review

  • Early architectural decisions (use HITL)

References

  • prd-guide.md - Writing effective user stories

  • patterns.md - Common patterns and gotchas

  • ralph-controller.md - Remote controller instructions

  • ralph-worker.md - Worker subagent template

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

drag-and-drop

No summary provided by upstream source.

Repository SourceNeeds Review
General

Csv Analyzer Cn

CSV数据分析工具。数据统计摘要、SVG图表生成、条件筛选、文件合并、数据清洗、格式转换(JSON/HTML/Markdown/SQL)、HTML分析报告。CSV analyzer with stats, SVG charts, filtering, merging, cleaning, format conve...

Registry SourceRecently Updated
General

Tripit Calendar

Read upcoming TripIt travel plans from a TripIt iCal feed; use for next trip, upcoming travel, itinerary, flight or hotel bookings already in TripIt; do not...

Registry SourceRecently Updated
General

Css Helper

CSS代码生成助手。Flexbox布局、Grid布局、CSS动画、渐变色、阴影、响应式断点。CSS helper for flexbox, grid, animation, gradient, shadow, responsive breakpoints. Use when you need css helper...

Registry SourceRecently Updated