Ralph Init
npx machina-cli add skill stavarengo/ralph-wiggum-loop/ralph-init --openclawralph-init
Initialize Ralph in the current project.
What This Does
This skill sets up Ralph's autonomous development environment in your project by creating the necessary directory structure, copying templates, and configuring tracking files.
Initialization Steps
When you run /ralph:init, Claude will:
1. Create Directory Structure
mkdir -p docs/ai/ralph
Creates the Ralph working directory in your project where all Ralph-related files will live.
2. Copy Templates
Copy all 3 templates from the plugin to your project:
# Get the plugin path
PLUGIN_PATH="$(dirname "$(dirname "$(dirname "$0")")")"
# Copy templates and remove .template extension
cp "$PLUGIN_PATH/templates/PROMPT.md.template" docs/ai/ralph/PROMPT.md
cp "$PLUGIN_PATH/templates/fix_plan.md.template" docs/ai/ralph/fix_plan.md
cp "$PLUGIN_PATH/templates/AGENTS.md.template" docs/ai/ralph/AGENTS.md
Templates copied:
PROMPT.md.template→docs/ai/ralph/PROMPT.md- Ralph's iteration instructionsfix_plan.md.template→docs/ai/ralph/fix_plan.md- Task tracking and prioritiesAGENTS.md.template→docs/ai/ralph/AGENTS.md- Build/test instructions and learnings
3. Create CLAUDE.md Symlink
# Create symlink in project root pointing to AGENTS.md
ln -s docs/ai/ralph/AGENTS.md CLAUDE.md
This allows Claude Code to automatically read Ralph's learnings and build/test instructions when starting any conversation in this project.
4. Initialize status.json
cat > docs/ai/ralph/status.json << 'EOF'
{
"iteration_count": 0,
"started_at": null,
"status": "initialized",
"last_updated": "YYYY-MM-DDTHH:MM:SSZ"
}
EOF
status.json fields:
iteration_count: Number of completed iterations (starts at 0)started_at: ISO 8601 timestamp when/ralph:startwas run (null until started)status: Current state -initialized,running,stopped,complete,resetlast_updated: ISO 8601 timestamp of last status change
5. Update .gitignore
Add Ralph's working directory to .gitignore if not already present:
# Check if docs/ai/ralph/ is already in .gitignore
if ! grep -q "^docs/ai/ralph/" .gitignore 2>/dev/null; then
echo "docs/ai/ralph/" >> .gitignore
fi
This prevents Ralph's iteration files from being committed to version control. Only your actual code changes get committed.
Next Steps
After initialization completes, you can:
-
Customize your setup (optional):
- Edit
docs/ai/ralph/PROMPT.mdto add project-specific instructions - Edit
docs/ai/ralph/AGENTS.mdto add your build/test commands - Edit
docs/ai/ralph/fix_plan.mdto add your initial tasks
- Edit
-
Start autonomous development:
- Run
/ralph:startto begin the autonomous iteration loop - Ralph will pick tasks from
fix_plan.mdand work through them one by one
- Run
-
Manual iteration (if you prefer):
- Run
/ralph:iterateto execute exactly one iteration - Use this for more control over when iterations happen
- Run
Files Created
After running /ralph:init, your project will have:
your-project/
├── docs/ai/ralph/
│ ├── PROMPT.md # Ralph's iteration instructions
│ ├── fix_plan.md # Task list and priorities
│ ├── AGENTS.md # Build/test instructions
│ └── status.json # Iteration tracking
├── CLAUDE.md # Symlink → docs/ai/ralph/AGENTS.md
└── .gitignore # Updated to exclude docs/ai/ralph/
Important Notes
- CLAUDE.md is a symlink: Don't edit it directly. Edit
docs/ai/ralph/AGENTS.mdinstead. - Customize before starting: Review and update the templates with your project's specific build/test commands before running
/ralph:start. - Git integration: Ralph creates commits after each task. Make sure your git config (user.name, user.email) is set.
- Fresh context: Ralph starts each iteration with zero memory, so all important context must be in the template files.
Source
git clone https://github.com/stavarengo/ralph-wiggum-loop/blob/main/skills/ralph-init/SKILL.mdView on GitHub Overview
Ralph Init bootstraps Ralph's autonomous development environment in the current project. It creates the docs/ai/ralph directory, copies the PROMPT.md, fix_plan.md, and AGENTS.md templates, sets up a CLAUDE.md symlink, initializes status.json, and updates .gitignore to keep Ralph artifacts out of version control.
How This Skill Works
Running /ralph:init creates the Ralph workspace, copies the three template files into docs/ai/ralph, creates a CLAUDE.md symlink to AGENTS.md, writes a status.json with iteration_count 0 and status initialized, and updates .gitignore to exclude the Ralph directory from commits.
When to Use It
- Starting a new project that will use Ralph's autonomous development workflow
- Onboarding a repository to Ralph by bootstrapping its templates and tracking
- Preparing the environment before running the first /ralph:start iteration
- Ensuring Ralph's iteration artifacts are ignored by version control
- Customizing Ralph's templates (PROMPT.md, fix_plan.md, AGENTS.md) for the project
Quick Start
- Step 1: Run /ralph:init in the project root
- Step 2: Confirm docs/ai/ralph exists with PROMPT.md, fix_plan.md, AGENTS.md and a status.json; verify CLAUDE.md symlink
- Step 3: Start the loop with /ralph:start or perform a manual iteration with /ralph:iterate
Best Practices
- Run Ralph Init once per project to bootstrap the environment
- Review and customize PROMPT.md, fix_plan.md, and AGENTS.md before starting iterations
- Verify the CLAUDE.md symlink points to AGENTS.md
- Keep status.json updated (started_at, last_updated) as iterations run
- Ensure docs/ai/ralph is in .gitignore to avoid committing iteration data
Example Use Cases
- Bootstrapping a new project with an autonomous development loop
- Standardizing Ralph setup across multiple repositories
- Tailoring iteration templates to fit project-specific tasks and builds
- Using CLAUDE.md as the centralized readout for Ralph learnings
- Keeping Ralph artifacts out of source control while iterating