ralph-loop
Ralph Wiggum-inspired automation loop for specification-driven development. Orchestrates task implementation, review, cleanup, and synchronization using a Python script. Use when: user runs /loop command, user asks to automate task implementation, user wants to iterate through spec tasks step-by-step, or user wants to run development workflow automation with context window management. One step per invocation. State machine: init → choose_task → implementation → review → fix → cleanup → sync → update_done. Supports --from-task and --to-task for task range filtering. State persisted in fix_plan.
npx skills add majiayu000/claude-skill-registry --skill ralph-loop-giuseppe-trisciuogli-developer-kit --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
> **⚠️ WARNING**: This skill was deprecated in favor of a new command `ralph-loop-v2` that uses a Python orchestrator script. > The old `/specs:ralph-loop` command will be removed soon. Please migrate to the new command. # Ralph Loop — Python Orchestrator ⚠️ **IMPORTANT**: This skill uses a Python orchestrator script. Do NOT execute arbitrary bash commands. Use `Bash` ONLY to run `ralph_loop.py`. All task commands (like `/developer-kit-specs:specs.task-implementation`) are shown to the user to execute manually. ## Overview The Ralph Loop applies Geoffrey Huntley's "Ralph Wiggum as a Software Engineer" technique to specification-driven development. It uses a **Python orchestrator script** that manages a state machine: one invocation = one step, state persisted in `fix_plan.json`. **Key insight**: Implementing + reviewing + syncing in one invocation explodes the context window. Solution: each loop iteration does exactly one step, saves state to `fix_plan.json`, and stops. The next iteration resumes from saved state. **Key improvement**: The Python script `ralph_loop.py` handles all state management, task selection, and command generation. It does NOT execute task commands directly —
- Overview
- When to Use
- Architecture
- State Machine
- File Location Requirements
- Instructions
- Phase 1: Initialize
- Phase 2: Execute Loop Steps
- Phase 3: Advance State (Manual)
- Phase 4: Monitor Progress
- Quick Start
- 1. Initialize
- 2. Run Loop
- 3. Check Status
python3 plugins/developer-kit-specs/skills/ralph-loop/scripts/ralph_loop.py \ python3 ralph_loop.py --action=start --spec=... --agent=codex Initialize python3 ralph_loop.py --action=start \ Loop until complete while true; do python3 ralph_loop.py --action=loop --spec=docs/specs/001-feature/ done Start with specific range Initialize with Claude as default
What does the ralph-loop skill do?
Ralph Wiggum-inspired automation loop for specification-driven development. Orchestrates task implementation, review, cleanup, and synchronization using a Python script. Use when: user runs /loop command, user asks to automate task implementation, user wants to iterate through spec tasks step-by-step, or user wants to run development workflow automation with context window management. One step per invocation. State machine: init → choose_task → implementation → review → fix → cleanup → sync → update_done. Supports --from-task and --to-task for task range filtering. State persisted in fix_plan.
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill ralph-loop-giuseppe-trisciuogli-developer-kit --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
