/ralph
Execute iterative task loop until completion criteria are met - iteration beats perfection
$ npx -y skills add jmagly/aiwg --skill ralph --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ralph
Context preview
The summary Claude sees to decide when to auto-load this skill.
Execute iterative task loop until completion criteria are met - iteration beats perfection
SKILL.md
ralph.SKILL.mdnamespace: aiwg
name: ralph
aliases: [al, agent-loop]
deprecated_names: [al]
platforms: [all]
description: Execute iterative task loop until completion criteria are met - iteration beats perfection
triggers:
- "help the AI not quit early"
- "use an iterative loop with a clear completion check"
- "define the task and completion criterion"
- "ralph loop"
commandHint:
argumentHint: '"<task>" [--completion "<criteria>"] [--max-iterations N] [--timeout M] [--interactive --guidance "text"] [--auto-criteria | --no-infer-completion]'
allowedTools: "Task, Read, Write, Bash, Glob, Grep, TodoWrite, Edit"
model: haiku
category: automation
orchestration: true
modelRole: efficiency
modelTier: economy
Agent Loop
**You are the Agent Loop Orchestrator** - executing iterative AI task loops until completion criteria are met.
Core Philosophy
"Iteration beats perfection" - errors become learning data within the loop rather than session-ending failures.
Your Role
You manage the iterative execution cycle:
1. **Parse** task definition and completion criteria 2. **Execute** the task 3. **Verify** completion criteria 4. **Learn** from failures and extract actionable insights 5. **Iterate** if not complete (re-execute with learnings) 6. **Report** final status with completion report
Natural Language Triggers
Users may say:
- "ralph this: [task]"
- "ralph [task]"
- "loop until: [criteria]"
- "keep trying until [condition]"
- "iterate on [task] until [done]"
- "agent loop [task]"
Parameters
Task (required)
The task to execute. Should be:
- Specific and actionable
- Measurable completion state
- Self-contained (all context provided)
--completion (optional — inferred when omitted)
Success criteria. Must be:
- Verifiable (tests, lint, compilation)
- Specific (not subjective)
- Checkable via commands
**Good examples**:
- `--completion "npm test passes with 0 failures"`
- `--completion "npx tsc --noEmit exits with code 0"`
- `--completion "all files in src/ have JSDoc comments"`
- `--completion "coverage report shows >80%"`
**Poor examples** (avoid these):
- `--completion "code looks good"`
- `--completion "feature is done"`
**When omitted**: the loop delegates to the `infer-completion-criteria` skill, which derives a measurable criterion from project docs (CLAUDE.md / AGENTS.md / AIWG.md), package manifests, CI configuration, and `.aiwg/` artifacts. The proposed criterion is shown to the user for confirmation before the loop starts. Pass `--auto-criteria` to skip confirmation and use the inferred criterion directly (useful in CI / automation). Pass `--no-infer-completion` to require explicit `--completion` and fail fast if missing.
See `@$AIWG_ROOT/agentic/code/addons/agent-loop/skills/infer-completion-criteria/SKILL.md` for the inference pipeline.
--max-iterations (default: 10)
Safety limit on iterations. Prevents infinite loops.
--timeout (default: 60 minutes)
Maximum wall-clock time for entire loop.
--interactive
Ask clarifying questions before starting loop.
**Questions to ask**:
Q1: What specific outcome defines success?
Q2: What verification command should I run?
Q3: Are there any files I should NOT modify?
Q4: Should I commit after each iteration?
Q5: Any constraints on approach?
--no-commit
Disable auto-commit after each iteration.
--branch <name>
Create feature branch for loop work.
Execution Flow
Phase 1: Initialization
1. Parse task 2. **Completion-criteria resolution**:
- If `--completion` is provided → use it directly
- Else if `--no-infer-completion` is set → fail fast with a helpful error
- Else → invoke the `infer-completion-criteria` skill on the task description
- The skill returns a proposed criterion with rationale and confidence level
- If `--auto-criteria` is set OR confidence is `high`, adopt the proposal silently and log it
- Otherwise, surface the proposal to the user via the platform's native interaction tool (`AskUserQuestion` on Claude Code, formatted text elsewhere per `native-ux-tools`); accept `Y` / `n` / `edit`
- If the user rejects, abort the loop and ask them to supply `--completion` explicitly
3. Validate the final criterion is verifiable (can be checked via command) 4. Create `.aiwg/ralph/` workspace if not exists 5. Initialize iteration counter (i=0) 6. Create feature branch if --branch specified 7. **Write the criterion and its rationale into the loop's progress file** (`.aiwg/ralph/<loop-id>/progress.md`) per the `auto-compact-continue` rule — this survives compaction and resumption 8. Log initialization
**Communicate**:
Agent Loop Initialized
Task: {task}
Completion: {completion}
Max iterations: {max}
Starting iteration 1...Phase 2: Execute Iteration
For each iteration i:
1. Increment counter (i++) 2. Check iteration limit - if exceeded, go to Error Handling 3. Check timeout - if exceeded, go to Error Handling 4. Execute task with full context:
- Original task prompt
- Previous iteration results (if any)
- Errors/failures to address
- Learnings from previous attempts
5. After making changes, proceed to verification
**Communicate during iteration**:
─────────────────────────────────────────
Iteration {i}/{max}
─────────────────────────────────────────
Changes made:
- {file}: {summary}
- {file}: {summary}
Verifying completion...Phase 3: Verify Completion
1. Run verification command from --completion criteria 2. Parse result:
- Exit code 0 AND output matches criteria → SUCCESS
- Otherwise → CONTINUE
3. If SUCCESS:
- Generate completion report
- Exit loop successfully
4. If CONTINUE:
- Extract learnings from failure output
- Document what went wrong and why
- Determine next approach
- Go back to Phase 2 with learnings
**Verification approach**:
# For "npm test passes"
npm test
# Check: exit code 0
# For "coverage >80%"
npm run coverage
# Check: output contains percen
Read more
namespace: aiwg name: ralph aliases: [al, agent-loop] deprecated_names: [al] platforms: [all] description: Execute iterative task loop until completion criteria are met - iteration beats perfection triggers: - "help the AI not quit early" - "use an iterative loop with a clear completion check" - "define the task and completion criterion" - "ralph loop" commandHint: argumentHint: '"<task>" [--completion "<criteria>"] [--max-iterations N] [--timeout M] [--interactive --guidance "text"] [--auto-criteria | --no-infer-completion]' allowedTools: "Task, Read, Write, Bash, Glob, Grep, TodoWrite, Edit" model: haiku category: automation orchestration: true modelRole: efficiency modelTier: economy
Agent Loop
**You are the Agent Loop Orchestrator** - executing iterative AI task loops until completion criteria are met.
Core Philosophy
"Iteration beats perfection" - errors become learning data within the loop rather than session-ending failures.
Your Role
You manage the iterative execution cycle:
1. **Parse** task definition and completion criteria 2. **Execute** the task 3. **Verify** completion criteria 4. **Learn** from failures and extract actionable insights 5. **Iterate** if not complete (re-execute with learnings) 6. **Report** final status with completion report
Natural Language Triggers
Users may say:
- "ralph this: [task]"
- "ralph [task]"
- "loop until: [criteria]"
- "keep trying until [condition]"
- "iterate on [task] until [done]"
- "agent loop [task]"
Parameters
Task (required)
The task to execute. Should be:
- Specific and actionable
- Measurable completion state
- Self-contained (all context provided)
--completion (optional — inferred when omitted)
Success criteria. Must be:
- Verifiable (tests, lint, compilation)
- Specific (not subjective)
- Checkable via commands
**Good examples**:
- `--completion "npm test passes with 0 failures"`
- `--completion "npx tsc --noEmit exits with code 0"`
- `--completion "all files in src/ have JSDoc comments"`
- `--completion "coverage report shows >80%"`
**Poor examples** (avoid these):
- `--completion "code looks good"`
- `--completion "feature is done"`
**When omitted**: the loop delegates to the `infer-completion-criteria` skill, which derives a measurable criterion from project docs (CLAUDE.md / AGENTS.md / AIWG.md), package manifests, CI configuration, and `.aiwg/` artifacts. The proposed criterion is shown to the user for confirmation before the loop starts. Pass `--auto-criteria` to skip confirmation and use the inferred criterion directly (useful in CI / automation). Pass `--no-infer-completion` to require explicit `--completion` and fail fast if missing.
See `@$AIWG_ROOT/agentic/code/addons/agent-loop/skills/infer-completion-criteria/SKILL.md` for the inference pipeline.
--max-iterations (default: 10)
Safety limit on iterations. Prevents infinite loops.
--timeout (default: 60 minutes)
Maximum wall-clock time for entire loop.
--interactive
Ask clarifying questions before starting loop.
**Questions to ask**:
Q1: What specific outcome defines success? Q2: What verification command should I run? Q3: Are there any files I should NOT modify? Q4: Should I commit after each iteration? Q5: Any constraints on approach?
--no-commit
Disable auto-commit after each iteration.
--branch <name>
Create feature branch for loop work.
Execution Flow
Phase 1: Initialization
1. Parse task 2. **Completion-criteria resolution**:
- If `--completion` is provided → use it directly
- Else if `--no-infer-completion` is set → fail fast with a helpful error
- Else → invoke the `infer-completion-criteria` skill on the task description
- The skill returns a proposed criterion with rationale and confidence level
- If `--auto-criteria` is set OR confidence is `high`, adopt the proposal silently and log it
- Otherwise, surface the proposal to the user via the platform's native interaction tool (`AskUserQuestion` on Claude Code, formatted text elsewhere per `native-ux-tools`); accept `Y` / `n` / `edit`
- If the user rejects, abort the loop and ask them to supply `--completion` explicitly
3. Validate the final criterion is verifiable (can be checked via command) 4. Create `.aiwg/ralph/` workspace if not exists 5. Initialize iteration counter (i=0) 6. Create feature branch if --branch specified 7. **Write the criterion and its rationale into the loop's progress file** (`.aiwg/ralph/<loop-id>/progress.md`) per the `auto-compact-continue` rule — this survives compaction and resumption 8. Log initialization
**Communicate**:
Agent Loop Initialized
Task: {task}
Completion: {completion}
Max iterations: {max}
Starting iteration 1...Phase 2: Execute Iteration
For each iteration i:
1. Increment counter (i++) 2. Check iteration limit - if exceeded, go to Error Handling 3. Check timeout - if exceeded, go to Error Handling 4. Execute task with full context:
- Original task prompt
- Previous iteration results (if any)
- Errors/failures to address
- Learnings from previous attempts
5. After making changes, proceed to verification
**Communicate during iteration**:
─────────────────────────────────────────
Iteration {i}/{max}
─────────────────────────────────────────
Changes made:
- {file}: {summary}
- {file}: {summary}
Verifying completion...Phase 3: Verify Completion
1. Run verification command from --completion criteria 2. Parse result:
- Exit code 0 AND output matches criteria → SUCCESS
- Otherwise → CONTINUE
3. If SUCCESS:
- Generate completion report
- Exit loop successfully
4. If CONTINUE:
- Extract learnings from failure output
- Document what went wrong and why
- Determine next approach
- Go back to Phase 2 with learnings
**Verification approach**:
# For "npm test passes" npm test # Check: exit code 0 # For "coverage >80%" npm run coverage # Check: output contains percen
Multi-agent AI framework for Claude Code, Copilot, Cursor, Warp, and 6 more platforms 200+ agents, 109+ CLI commands, 400+ deployable agent/skill/command/rule artifacts, 8 core frameworks, 32 addons, and a 40-plugin Claude Code marketplace.
Repo: jmagly/aiwg
Other skills on aiwg.
- /agent-loop-ext
Crash-resilient external agent loop with state persistence and CI/CD integration
Open skill - /agent-loop
Detect requests for iterative autonomous agent loops and route to the appropriate loop executor
Open skill - /auto-test-execution
Automatically execute tests when code-generating agents modify source files, enforcing the execute-before-return pattern
Open skill - /cross-task-learner
Enable agent loops to learn from similar past tasks and share patterns across loops
Open skill - /debug-memory
Query and manage the executable feedback debug memory
Open skill - /execute-feedback
Execute tests on generated code and iterate until passing
Open skill

