# ralph
> Self-referential loop until task completion with architect verification
- Author: ChudiNnorukam
- Repository: ChudiNnorukam/oh-my-claudecode
- Version: 20260131213148
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-06
- Source: https://github.com/ChudiNnorukam/oh-my-claudecode
- Web: https://mule.run/skillshub/@@ChudiNnorukam/oh-my-claudecode~ralph:20260131213148
---
---
name: ralph
description: Self-referential loop until task completion with architect verification
---
# 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** (`.omc/prd.json` and `.omc/progress.txt`)
2. **Parse the task** (everything after `--prd` flag)
3. **Break down into user stories** with this structure:
```json
{
"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
}
]
}
```
4. **Create progress.txt**:
```
# Ralph Progress Log
Started: [ISO timestamp]
## Codebase Patterns
(No patterns discovered yet)
---
```
5. **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
6. **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 `.omc/prd.json` with user stories
4. Create `.omc/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 agents immediately
### Smart Model Routing (SAVE TOKENS)
| Task Complexity | Model | Examples |
|-----------------|-------|----------|
| Simple lookups | haiku | "What does this function return?", "Find where X is defined" |
| Standard work | sonnet | "Add error handling", "Implement this feature" |
| Complex analysis | opus | "Debug this race condition", "Refactor auth module" |
### Agent Types and Models
| Purpose | Agent Type | Model |
|---------|------------|-------|
| **Codebase Exploration** | `Explore` | haiku or sonnet |
| **Architecture/Planning** | `Plan` | sonnet or opus |
| **Implementation** | `general-purpose` | haiku/sonnet/opus based on complexity |
| **Shell Commands** | `Bash` | N/A |
**CRITICAL: Always pass `model` parameter explicitly!**
```
Task(subagent_type="Explore", model="haiku", prompt="...")
Task(subagent_type="general-purpose", model="sonnet", prompt="...")
Task(subagent_type="Plan", model="opus", 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 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 Plan agent verification
5. THEN completion promise
**Skipping verification = Task NOT complete**
## ARCHITECT VERIFICATION (MANDATORY)
When you believe the task is complete:
1. **First**, spawn Plan agent to verify your work (ALWAYS pass model explicitly!):
```
Task(subagent_type="Plan", model="opus", prompt="Verify this implementation is complete: [describe what you did]")
```
2. **Wait for assessment**
3. **If approved**: Output `{{PROMISE}}`
4. **If issues found**: Fix them, then repeat verification
DO NOT output the completion promise without 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
## Valid Agent Types
| Type | Use For |
|------|---------|
| `general-purpose` | All implementation work (DEFAULT) |
| `Explore` | Codebase exploration, finding files |
| `Plan` | Architecture and planning, verification |
| `Bash` | Shell commands only |
## STATE CLEANUP ON COMPLETION
**IMPORTANT: Delete state files on successful completion - do NOT just set `active: false`**
When outputting the completion promise after verification:
```bash
# Delete ralph state file (and linked ultrawork if applicable)
rm -f .omc/state/ralph-state.json
rm -f .omc/state/ralph-verification.json
rm -f ~/.claude/ralph-state.json
# If ultrawork was linked, delete it too
rm -f .omc/state/ultrawork-state.json
rm -f ~/.claude/ultrawork-state.json
```
This ensures clean state for future sessions. Stale state files with `active: false` should not be left behind.
## INSTRUCTIONS
- Review your progress so far
- Continue from where you left off
- Use parallel execution and background tasks
- When FULLY complete AND verified:
1. Clean up state files (delete ralph-state.json, ultrawork-state.json)
2. Output: {{PROMISE}}
- Do not stop until the task is truly done
Original task:
{{PROMPT}}