Get the FREE Ultimate OpenClaw Setup Guide →
a

Ralph Loop (Agent Mode)

Scanned

@addozhang

npx machina-cli add skill @addozhang/ralph-loop-agent --openclaw
Files (1)
SKILL.md
8.4 KB

Ralph Loop

Overview

This skill guides OpenClaw agents to execute Ralph Loop workflows using the exec and process tools. The agent orchestrates AI coding agent sessions following the Ralph playbook flow:

  1. Define Requirements → JTBD → Focus Topics → specs/*.md
  2. PLANNING Loop → Create/update IMPLEMENTATION_PLAN.md (do not implement)
  3. BUILDING Loop → Implement tasks, run tests (backpressure), update plan, commit

The loop persists context via PROMPT.md + AGENTS.md (loaded each iteration) and the plan/specs on disk.

How This Skill Works

This skill generates instructions for OpenClaw agents to execute Ralph Loops using the exec and process tools.

  • The agent calls exec tool with the coding agent command
  • Uses pty: true to provide TTY for interactive CLIs
  • Uses background: true for monitoring capabilities
  • Uses process tool to monitor progress and detect completion

Important: Users don't run these scripts directly - the OpenClaw agent executes them using its tool capabilities.


TTY Requirements

Some coding agents require a real terminal (TTY) to work properly, or they will hang:

Interactive CLIs (need TTY):

  • OpenCode, Codex, Claude Code, Pi, Goose

Non-interactive CLIs (file-based):

  • aider, custom scripts

Solution: Use exec + process mode for interactive CLIs, simple loops for file-based tools.


Agent Tool Usage Patterns

Interactive CLIs (Recommended Pattern)

For OpenCode, Codex, Claude Code, Pi, and Goose - these require TTY support:

When I (the agent) receive a Ralph Loop request, I will:

  1. Use exec tool to launch the coding agent:

    exec tool with parameters:
    - command: "opencode run --model <MODEL> \"$(cat PROMPT.md)\""
    - workdir: <project_path>
    - background: true
    - pty: true
    - yieldMs: 60000
    - timeout: 3600
    
  2. Capture session ID from exec tool response

  3. Use process tool to monitor:

    process tool with:
    - action: "poll"
    - sessionId: <captured_session_id>
    
    process tool with:
    - action: "log"
    - sessionId: <captured_session_id>
    - offset: -30  (for recent output)
    
  4. Check completion by reading IMPLEMENTATION_PLAN.md for sentinel text

  5. Clean up with process kill if needed:

    process tool with:
    - action: "kill"
    - sessionId: <session_id>
    

Benefits: TTY support, real-time logs, timeout handling, parallel sessions, workdir isolation


Agent Workflow

1) Gather Inputs

Required:

  • Goal / JTBD
  • CLI (opencode, codex, claude, goose, pi, other)
  • Mode (PLANNING, BUILDING, or BOTH)
  • Max iterations (default: PLANNING=5, BUILDING=10)

Optional:

  • Completion sentinel (default: STATUS: COMPLETE in IMPLEMENTATION_PLAN.md)
  • Working directory (default: $PWD)
  • Timeout per iteration (default: 3600s)
  • Sandbox choice
  • Auto-approval flags (--full-auto, --yolo, --dangerously-skip-permissions)

Auto-detect:

  • If CLI in interactive list → use exec tool with pty: true
  • Extract model flag from CLI requirements

2) Requirements → Specs (Optional)

If requirements are unclear:

  • Break JTBD into focus topics
  • Draft specs/<topic>.md for each
  • Keep specs short and testable

3) PROMPT.md + AGENTS.md

PROMPT.md references:

  • specs/*.md
  • IMPLEMENTATION_PLAN.md
  • Relevant project files

AGENTS.md includes:

  • Test commands (backpressure)
  • Build/run instructions
  • Operational learnings

4) Prompt Templates

PLANNING Prompt (no implementation):

You are running a Ralph PLANNING loop for this goal: <goal>.

Read specs/* and the current codebase. Only update IMPLEMENTATION_PLAN.md.

Rules:
- Do not implement
- Do not commit
- Create a prioritized task list
- Write down questions if unclear

Completion:
When plan is ready, add: STATUS: PLANNING_COMPLETE

BUILDING Prompt:

You are running a Ralph BUILDING loop for this goal: <goal>.

Context: specs/*, IMPLEMENTATION_PLAN.md, AGENTS.md

Tasks:
1) Pick the most important task
2) Investigate code
3) Implement
4) Run backpressure commands from AGENTS.md
5) Update IMPLEMENTATION_PLAN.md
6) Update AGENTS.md with learnings
7) Commit with clear message

Completion:
When all done, add: STATUS: COMPLETE

5) CLI Command Reference

The agent constructs command strings using these patterns:

CLICommand String Pattern
OpenCodeopencode run --model <MODEL> "$(cat PROMPT.md)"
Codexcodex exec <FLAGS> "$(cat PROMPT.md)" (requires git)
Claude Codeclaude <FLAGS> "$(cat PROMPT.md)"
Pipi --provider <PROVIDER> --model <MODEL> -p "$(cat PROMPT.md)"
Goosegoose run "$(cat PROMPT.md)"

Common flags:

  • Codex: --full-auto, --yolo, --model <model>
  • Claude: --dangerously-skip-permissions

Detailed Agent Tool Usage Examples

Example 1: OpenCode Ralph Loop

Agent executes this sequence:

Step 1: Launch OpenCode with exec tool
{
  command: "opencode run --model github-copilot/claude-opus-4.5 \"$(cat PROMPT.md)\"",
  workdir: "/path/to/project",
  background: true,
  pty: true,
  timeout: 3600,
  yieldMs: 60000
}

Step 2: Capture session ID from response
sessionId: "abc123"

Step 3: Monitor with process tool every 10-30 seconds
{
  action: "poll",
  sessionId: "abc123"
}

Step 4: Check recent logs
{
  action: "log",
  sessionId: "abc123",
  offset: -30
}

Step 5: Read IMPLEMENTATION_PLAN.md to check for completion
- Look for: "STATUS: COMPLETE" or "STATUS: PLANNING_COMPLETE"

Step 6: If complete or timeout, cleanup
{
  action: "kill",
  sessionId: "abc123"
}

Example 2: Codex with Full Auto

Agent tool calls:

exec tool:
{
  command: "codex exec --full-auto --model anthropic/claude-opus-4 \"$(cat PROMPT.md)\"",
  workdir: "/path/to/project",
  background: true,
  pty: true,
  timeout: 3600
}

# Then monitor with process tool as above

Completion Detection

Use flexible regex to match variations:

grep -Eq "STATUS:?\s*(PLANNING_)?COMPLETE" IMPLEMENTATION_PLAN.md

Matches:

  • STATUS: COMPLETE
  • STATUS:COMPLETE
  • STATUS: PLANNING_COMPLETE
  • ## Status: PLANNING_COMPLETE

Safety & Safeguards

Auto-Approval Flags (Risky!)

  • Codex: --full-auto (sandboxed, auto-approve) or --yolo (no sandbox!)
  • Claude: --dangerously-skip-permissions
  • Recommendation: Use sandboxes (docker/e2b/fly) and limited credentials

Escape Hatches

  • Stop: Ctrl+C
  • Kill session: process tool with action: "kill"
  • Rollback: git reset --hard HEAD~N

Best Practices

  1. Start small: Test with 1-2 iterations first
  2. Workdir isolation: Prevent reading unrelated files
  3. Set timeouts: Default 1h may not fit all tasks
  4. Monitor actively: Check logs, don't terminate prematurely
  5. Requirements first: Clear specs before building
  6. Backpressure early: Add tests from the start

Troubleshooting

ProblemSolution
OpenCode hangsEnsure agent uses exec tool with pty: true
Session won't startCheck CLI path, git repo, command syntax
Completion not detectedVerify sentinel format in IMPLEMENTATION_PLAN.md
Process timeoutAgent should increase timeout parameter or simplify tasks
Parallel conflictsAgent should use git worktrees for isolation
Can't see progressAgent should use process tool with action: "log"

License

MIT

Credits

This skill builds upon work by:

  • @jordyvandomselaar - Original Ralph Loop concept and workflow design
  • @steipete - Coding agent patterns and exec/process tool usage with pty support

Key improvement: Uses OpenClaw's exec tool with pty: true to provide TTY for interactive CLIs, solving the hanging issue that occurs with simple background bash execution.

Source

git clone https://clawhub.ai/addozhang/ralph-loop-agentView on GitHub

Overview

This skill guides OpenClaw agents to execute Ralph Loop workflows using exec and process tools. It orchestrates coding agents (Codex, Claude Code, OpenCode, Goose) with proper TTY support via pty:true, and persists context across iterations using PROMPT.md and AGENTS.md while coordinating PLANNING vs BUILDING loops and completion conditions using SPECS and IMPLEMENTATION_PLAN.md.

How This Skill Works

The agent generates instructions for OpenClaw to run Ralph Loops with exec and process tools. It launches coding agents with exec, enabling TTY via pty:true and background operation, then monitors progress with process (poll/log) and checks IMPLEMENTATION_PLAN.md for completion signals, updating PROMPT.md and AGENTS.md between iterations to sustain context.

When to Use It

  • When orchestrating multiple coding agents (Codex, Claude Code, OpenCode, Goose) in a Ralph Loop
  • When interactive CLIs require terminal support (TTY) for accurate execution
  • When you need real-time monitoring and logging via the process tool
  • When separating planning and building phases and enforcing backpressure
  • When sandboxing and completion conditions must be enforced to avoid runaway iterations

Quick Start

  1. Step 1: Gather inputs: define Goal/JTBD, select CLI, choose mode (PLANNING, BUILDING, or BOTH), and set max iterations
  2. Step 2: Launch the coding agent with exec (pty: true), capture the sessionId, and run PROMPT.md
  3. Step 3: Use process to poll/log the session, verify completion via IMPLEMENTATION_PLAN.md, and clean up if needed

Best Practices

  • Use exec tool with pty: true for interactive coding agents
  • Monitor progress with process poll and log calls
  • Persist context across iterations by loading PROMPT.md and AGENTS.md each cycle
  • Keep PLANNING and BUILDING loops clearly separated and update IMPLEMENTATION_PLAN.md
  • Define and watch a completion sentinel (default STATUS: COMPLETE) to mark end

Example Use Cases

  • Orchestrate Codex and OpenCode to draft a module by proceeding through PLANNING (JTBD → specs) and then BUILDING, updating IMPLEMENTATION_PLAN.md along the way
  • Use Goose for an interactive CLI task and monitor with process tool until completion
  • Run a sandboxed iteration to prototype a new feature, isolating workdir and sandbox settings
  • Auto-detect interactive CLIs and apply exec with pty: true for accurate terminal behavior
  • Track progress across iterations by consistently loading PROMPT.md and AGENTS.md, then committing updates to the PLAN

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers