Oh-my-droid ralph

Self-referential loop until task completion with architect verification

install
source · Clone the upstream repo
git clone https://github.com/MeroZemory/oh-my-droid
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/MeroZemory/oh-my-droid "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ralph" ~/.claude/skills/merozemory-oh-my-droid-ralph && rm -rf "$T"
manifest: skills/ralph/SKILL.md
safety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • pip install
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

Ralph Skill

[RALPH + ULTRAWORK - ITERATION {{ITERATION}}/{{MAX}}]

Your previous attempt did not output the completion promise. Continue working on the task.

PRD MODE (OPTIONAL)

If the user provides the

--prd
flag, initialize a PRD (Product Requirements Document) BEFORE starting the ralph loop.

Detecting PRD Mode

Check if

{{PROMPT}}
contains the flag pattern:
--prd
or
--PRD

PRD Initialization Workflow

When

--prd
flag detected:

  1. Create PRD File Structure (
    .omd/prd.json
    and
    .omd/progress.txt
    )
  2. Parse the task (everything after
    --prd
    flag)
  3. Break down into user stories with this structure:
{
  "project": "[Project Name]",
  "branchName": "ralph/[feature-name]",
  "description": "[Feature description]",
  "userStories": [
    {
      "id": "US-001",
      "title": "[Short title]",
      "description": "As a [user], I want to [action] so that [benefit].",
      "acceptanceCriteria": ["Criterion 1", "Typecheck passes"],
      "priority": 1,
      "passes": false
    }
  ]
}
  1. Create progress.txt:
# Ralph Progress Log
Started: [ISO timestamp]

## Codebase Patterns
(No patterns discovered yet)

---
  1. Guidelines for PRD creation:

    • Right-sized stories: Each completable in one focused session
    • Verifiable criteria: Include "Typecheck passes", "Tests pass"
    • Independent stories: Minimize dependencies
    • Priority order: Foundational work (DB, types) before UI
  2. After PRD created: Proceed to normal ralph loop execution using the user stories as your task list

Example Usage

User input:

--prd build a todo app with React and TypeScript

Your workflow:

  1. Detect
    --prd
    flag
  2. Extract task: "build a todo app with React and TypeScript"
  3. Create
    .omd/prd.json
    with user stories
  4. Create
    .omd/progress.txt
  5. Begin ralph loop using user stories as task breakdown

ULTRAWORK MODE (AUTO-ACTIVATED)

Ralph automatically activates Ultrawork for maximum parallel execution. You MUST follow these rules:

Parallel Execution Rules

  • PARALLEL: Fire independent calls simultaneously - NEVER wait sequentially
  • BACKGROUND FIRST: Use Task(run_in_background=true) for long operations (10+ concurrent)
  • DELEGATE: Route tasks to specialist agents immediately

Smart Model Routing (SAVE TOKENS)

Task ComplexityTierExamples
Simple lookupsLOW (haiku)"What does this function return?", "Find where X is defined"
Standard workMEDIUM (sonnet)"Add error handling", "Implement this feature"
Complex analysisHIGH (opus)"Debug this race condition", "Refactor auth module"

Available Agents by Tier

DomainLOW (Haiku)MEDIUM (Sonnet)HIGH (Opus)
Analysis
architect-low
architect-medium
architect
Execution
executor-low
executor
executor-high
Search
explore
explore-medium
-
Research
researcher-low
researcher
-
Frontend
designer-low
designer
designer-high
Docs
writer
--
Visual-
vision
-
Planning--
planner
Critique--
critic
Pre-Planning--
analyst
Testing-
qa-tester
-
Security
security-reviewer-low
-
security-reviewer
Build
build-fixer-low
build-fixer
-
TDD
tdd-guide-low
tdd-guide
-
Code Review
code-reviewer-low
-
code-reviewer

CRITICAL: Always pass

model
parameter explicitly!

Task(subagent_type="oh-my-droid:architect-low", model="claude-haiku-4-5-20251001", prompt="...")
Task(subagent_type="oh-my-droid:executor", model="claude-sonnet-4-5-20250929", prompt="...")
Task(subagent_type="oh-my-droid:architect", model="claude-opus-4-5-20251101", prompt="...")

Background Execution Rules

Run in Background (set

run_in_background: true
):

  • Package installation: npm install, pip install, cargo build
  • Build processes: npm run build, make, tsc
  • Test suites: npm test, pytest, cargo test
  • Docker operations: docker build, docker pull

Run Blocking (foreground):

  • Quick status checks: git status, ls, pwd
  • File reads, edits
  • Simple commands

COMPLETION REQUIREMENTS

Before claiming completion, you MUST:

  1. Verify ALL requirements from the original task are met
  2. Ensure no partial implementations
  3. Check that code compiles/runs without errors
  4. Verify tests pass (if applicable)
  5. TODO LIST: Zero pending/in_progress tasks

VERIFICATION BEFORE COMPLETION (IRON LAW)

NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE

Before outputting the completion promise:

Steps (MANDATORY)

  1. IDENTIFY: What command proves the task is complete?
  2. RUN: Execute verification (test, build, lint)
  3. READ: Check output - did it actually pass?
  4. ONLY THEN: Proceed to Architect verification

Red Flags (STOP and verify)

  • Using "should", "probably", "seems to"
  • About to output completion without fresh evidence
  • Expressing satisfaction before verification

Evidence Chain

  1. Fresh test run output showing pass
  2. Fresh build output showing success
  3. lsp_diagnostics showing 0 errors
  4. THEN Architect verification
  5. THEN completion promise

Skipping verification = Task NOT complete

ARCHITECT VERIFICATION (MANDATORY)

When you believe the task is complete:

  1. First, spawn Architect to verify your work (ALWAYS pass model explicitly!):

    Task(subagent_type="oh-my-droid:architect", model="claude-opus-4-5-20251101", prompt="Verify this implementation is complete: [describe what you did]")
    
  2. Wait for Architect's assessment

  3. If Architect approves: Run

    /cancel
    to cleanly exit ralph mode

  4. If Architect finds issues: Fix them, then repeat verification

DO NOT exit without Architect verification.

ZERO TOLERANCE

  • NO Scope Reduction - deliver FULL implementation
  • NO Partial Completion - finish 100%
  • NO Premature Stopping - ALL TODOs must be complete
  • NO TEST DELETION - fix code, not tests

STATE CLEANUP ON COMPLETION

IMPORTANT: Use the cancel skill for proper state cleanup

When work is complete and Architect verification passes, run

/cancel
to cleanly exit ralph mode. This handles:

  • Deletion of ralph state files (both local and global)
  • Cleanup of linked ultrawork or ecomode state
  • Proper termination of the ralph loop

This ensures clean state for future sessions without leaving stale state files behind.

INSTRUCTIONS

  • Review your progress so far
  • Continue from where you left off
  • Use parallel execution and background tasks
  • When FULLY complete AND Architect verified: Run
    /cancel
    to cleanly exit and clean up all state files
  • Do not stop until the task is truly done

Original task: {{PROMPT}}