Help us improve
Share bugs, ideas, or general feedback.
From loop-core
User-friendly wrapper for Ralph-style autonomous development loops with automatic plan resolution
npx claudepluginhub enduser123/loop-coreHow this skill is triggered — by the user, by Claude, or both
Slash command
/loop-core:ralph-loopThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
User-friendly wrapper for Ralph-style autonomous development loops that automatically resolves plan file paths and delegates to `/loop-code`.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
User-friendly wrapper for Ralph-style autonomous development loops that automatically resolves plan file paths and delegates to /loop-code.
Provides a simplified interface to the Ralph-style autonomous development loop by:
/loop-code for actual loop executionUse /ralph-loop when you want to:
.claude/loop/plan.md locationplan.{terminal_id}.mdplan.md as a fallback/ralph-loop uses a 4-tier priority system to resolve plan paths:
.claude/loop/plan.md (standard location)plan.{terminal_id}.md (multi-terminal isolation)plan.md in project root (backward compatibility)# Explicit path (highest priority)
/ralph-loop path/to/custom.md
# Default .claude/loop/plan.md
/ralph-loop
# Per-terminal plan (e.g., plan.console_abc123.md)
/ralph-loop
# Root plan.md fallback
/ralph-loop
When running multiple loops in parallel terminals, each terminal can have its own plan:
project/
├── .claude/loop/plan.md # Default plan (shared)
├── plan.console_abc123.md # Terminal-specific plan A
├── plan.console_xyz789.md # Terminal-specific plan B
└── plan.md # Root fallback (shared)
Terminal A (console_abc123): Uses plan.console_abc123.md
Terminal B (console_xyz789): Uses plan.console_xyz789.md
Other terminals: Use .claude/loop/plan.md or plan.md
# Auto-resolve plan path (checks default, per-terminal, root)
/ralph-loop
# Explicit plan path
/ralph-loop path/to/custom.md
# With description
/ralph-loop "Implement user authentication with OAuth2"
# Feature: User Authentication
## RALPH_STATUS
- EXIT_SIGNAL: false
- completion_indicators: 0
- current_task: TASK-001
## Tasks
- [ ] TASK-001 Design database schema for users table
- [ ] TASK-002 Implement password hashing utility
- [ ] TASK-003 Create login endpoint
- [ ] TASK-004 Write unit tests for auth module
- [ ] TASK-005 Verify all tests pass and document API
/ralph-loop (with optional path/description)/loop-code with resolved plan pathproject/
└── .claude/loop/plan.md # Single shared plan
Best for: Single-terminal workflows, standard development
project/
├── plan.console_abc123.md # Terminal A plan
├── plan.console_xyz789.md # Terminal B plan
Best for: Parallel feature development, testing isolation
project/
└── plan.md # Root-level plan
Best for: Simple projects, backward compatibility
project/
├── .claude/loop/plan.md # Shared baseline
├── plan.console_abc123.md # Terminal A overrides
└── plan.console_xyz789.md # Terminal B overrides
Best for: Multi-terminal with shared baseline
/ralph-loop is a thin wrapper that:
scripts.plan_resolution.resolve_plan_path()/loop-code/loop-code with resolved plan path┌─────────────────────────────────────────────────────┐
│ /ralph-loop Skill │
├─────────────────────────────────────────────────────┤
│ │
│ 1. Parse arguments (path, description) │
│ 2. Resolve plan path (4-tier priority) │
│ 3. Validate plan exists │
│ 4. Delegate to /loop-code │
│ │
└─────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ /loop-code Skill │
├─────────────────────────────────────────────────────┤
│ │
│ - Detect terminal_id │
│ - Parse plan tasks │
│ - Execute /code for each task │
│ - Track completion state │
│ - Exit based on policy │
│ │
└─────────────────────────────────────────────────────┘
If no plan file is found after resolution:
Error: No plan file found in project.
Searched locations (in priority order):
1. .claude/loop/plan.md
2. plan.{terminal_id}.md
3. plan.md
Solution: Create a plan file or use explicit path:
/ralph-loop path/to/plan.md
If explicit path doesn't exist:
Error: Plan file not found: path/to/plan.md
Solution: Check the path or create the file:
touch path/to/plan.md
If plan file has invalid format:
Error: Failed to parse plan file: plan.md
This usually means:
- No tasks found (need "- [ ] TASK-XXX" format)
- Invalid markdown structure
Solution: Check plan format matches examples.
/ralph-loop inherits exit conditions from /loop-code:
require_exit_signal enabled)require_all_tasks_complete enabled)require_verification_pass enabled)See /loop-code documentation for exit policy configuration.
/ralph-loop uses the same state management as /loop-code:
~/.claude/state/terminals/<terminal_id>/
├── loop_state.json # Current loop state
├── loop_metrics.json # Performance metrics
└── logs/
└── decision.log # Decision log
Each terminal has isolated state, enabling parallel loops.
# Create plan
mkdir -p .claude/loop
cat > .claude/loop/plan.md << 'EOF'
# Feature: Add User Registration
## RALPH_STATUS
- EXIT_SIGNAL: false
- completion_indicators: 0
## Tasks
- [ ] TASK-001 Design registration form
- [ ] TASK-002 Implement form validation
- [ ] TASK-003 Add database storage
- [ ] TASK-004 Write tests
EOF
# Run loop
/ralph-loop
# Terminal 1: Feature development
cat > plan.console_abc123.md << 'EOF'
# Feature: Authentication
## Tasks
- [ ] TASK-001 Implement login
EOF
/ralph-loop # Uses plan.console_abc123.md
# Terminal 2: Bug fixes (simultaneous)
cat > plan.console_xyz789.md << 'EOF'
# Feature: Bug Fixes
## Tasks
- [ ] TASK-001 Fix navigation bug
EOF
/ralph-loop # Uses plan.console_xyz789.md
# Run with custom plan location
/ralph-loop docs/my_feature_plan.md
# Run with description
/ralph-loop "Implement OAuth2 authentication"
# Simple project with root-level plan
cat > plan.md << 'EOF'
# Project Tasks
## Tasks
- [ ] TASK-001 Setup project
- [ ] TASK-002 Implement feature
EOF
/ralph-loop # Automatically finds plan.md
| Feature | /ralph-loop | /loop-code |
|---|---|---|
| Plan resolution | Automatic (4-tier) | Manual (explicit path) |
| Use case | User-friendly, flexible | Precise control |
| Per-terminal plans | Supported (auto-detected) | Manual specification |
| Error messages | User-friendly diagnostics | Technical errors |
| Arguments | Optional path/description | Required plan path |
When to use /ralph-loop:
When to use /loop-code:
/ralph-loop)P:/packages/loop-core/skills/ralph-loop/SKILL.mdP:/packages/loop-core/scripts/plan_resolution.pyP:/packages/loop-core/skills/loop-code/SKILL.mdP:/packages/loop-core/tests/test_ralph_loop_plan_resolution.pyThe /ralph-loop skill delegates to /loop-code for actual loop execution. The key differences are:
resolve_plan_path() to auto-detect plans/loop-codeThe core loop logic, state management, and exit conditions are identical to /loop-code.
ralph-loop, autonomous-development, plan-resolution, multi-terminal, wrapper, convenience