Files
ralph-workplan/plugin/ralph-workplan.md
tegwick f3174cebc9 feat: initial ralph-workplan skill
Standalone Claude Code skill that ties a ralph loop to a workplan file.
Retires automatically when all tasks are done — no external dependencies.

- plugin/ralph-workplan.md      skill entrypoint
- plugin/scripts/check-done.sh  pre-start guard (reads workplan status)
- plugin/scripts/setup.sh       writes ralph state file with workplan-aware prompt
- install.sh                    copies plugin files to ~/.claude/plugins/
- workplan-spec.md              workplan file format reference
- README.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 19:16:57 +01:00

2.2 KiB

description, argument-hint, allowed-tools, hide-from-slash-command-tool
description argument-hint allowed-tools hide-from-slash-command-tool
Start a Ralph loop tied to a workplan file — retires automatically when all tasks are done <workplan-file> [--max-iterations N]
Read
Bash(${CLAUDE_PLUGIN_ROOT}/scripts/check-done.sh:*)
Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh:*)
true

Ralph Workplan

Start a ralph loop driven by a workplan file. The loop retires automatically when all tasks in the workplan are marked done.

Usage

/ralph-workplan workplans/WP-0001-my-task.md
/ralph-workplan workplans/WP-0001-my-task.md --max-iterations 15

The workplan file must follow the format described in workplan-spec.md (YAML frontmatter with id, title, status fields; tasks as fenced task code blocks with id and status).

Steps

Parse $ARGUMENTS to extract:

  • WORKPLAN_FILE — the positional argument (required)
  • MAX_ITERATIONS — value after --max-iterations (default: 20)

Step 1 — Validate the workplan file exists

If the file does not exist:

" Workplan file not found: $WORKPLAN_FILE"

Stop.

Step 2 — Read the workplan frontmatter

Read $WORKPLAN_FILE. Extract from the YAML frontmatter:

  • id — workplan identifier
  • title — workplan title
  • status — current status

Step 3 — Guard: check if already done

Run:

"${CLAUDE_PLUGIN_ROOT}/scripts/check-done.sh" "$WORKPLAN_FILE"

Exit code 0 means the workplan is already done. If so:

" Workplan $ID ('$TITLE') is already done — all tasks complete. Nothing to do. No ralph loop started."

Stop.

Step 4 — Show current task summary

Count the task blocks in the file (fenced blocks with language tag task). Report:

"📋 $ID — $TITLE Tasks: X done, Y in progress, Z todo (N total) Starting ralph loop (max $MAX_ITERATIONS iterations)..."

Step 5 — Start the loop

Run:

"${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh" \
  "$WORKPLAN_FILE" "$ID" "$TITLE" "$MAX_ITERATIONS"

Then report:

"🔄 Ralph loop active. The loop will feed the workplan prompt back on every iteration. It retires when all tasks are done and the workplan status is updated to 'done' in the file."