How this skill is triggered — by the user, by Claude, or both
Slash command
/ouroboros:ralphThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Persistent self-referential loop until verification passes. "The boulder never stops."
Persistent self-referential loop until verification passes. "The boulder never stops."
ooo ralph "<your request>"
/ouroboros:ralph "<your request>"
Trigger keywords: "ralph", "don't stop", "must complete", "until it works", "keep going"
Ralph mode includes parallel execution + automatic verification:
Execute (parallel where possible)
Verify (verifier)
Loop (if failed)
When the user invokes this skill:
Parse the request: Extract what needs to be done
Initialize loop:
Enter the loop (non-blocking background execution):
while iteration < max_iterations:
# Start evolve_step in background — returns immediately
job = await start_evolve_step(lineage_id, seed_content, execute=true)
job_id = job.meta["job_id"]
cursor = job.meta["cursor"]
# Poll for progress (non-blocking, shows intermediate state)
# Use timeout_seconds=60 to reduce context consumption
while not terminal:
wait_result = await job_wait(job_id, cursor, timeout_seconds=60)
cursor = wait_result.meta["cursor"]
status = wait_result.meta["status"]
# Report progress concisely (one line per poll)
terminal = status in ("completed", "failed", "cancelled")
# Fetch final result
result = await job_result(job_id)
# Parse QA from evolve_step response text
# (EvolveStepHandler runs QA internally and appends verdict)
verification.passed = (qa_verdict == "pass")
verification.score = qa_score
# Record in conversation context
verification_history.append({
"iteration": iteration,
"passed": verification.passed,
"score": verification.score,
"verdict": qa_verdict
})
if verification.passed:
# SUCCESS
break
# Failed - analyze and continue
iteration += 1
if iteration >= max_iterations:
# Max iterations reached
break
Tool mapping:
start_evolve_step = ouroboros_start_evolve_stepjob_wait = ouroboros_job_waitjob_result = ouroboros_job_resultOn termination, display a next-step:
Next: ooo evaluate for formal 3-stage verificationNext: ooo interview to re-examine the problem — or ooo unstuck to try a different approachReport progress each iteration:
[Ralph Iteration <i>/<max>]
Execution complete. Running QA...
QA Verdict: <PASS/REVISE/FAIL> (score: <score>)
Differences:
- <difference 1>
- <difference 2>
Suggestions:
- <suggestion 1>
- <suggestion 2>
The boulder never stops. Continuing...
Handle interruption:
ouroboros_query_events(aggregate_id=<lineage_id>)
to reconstruct iteration history from EventStoreThis is the key phrase. Ralph does not give up:
User: ooo ralph fix all failing tests
[Ralph Iteration 1/10]
Started background execution (job_abc123)
Polling progress...
Phase: Executing | AC Progress: 1/3
Phase: Executing | AC Progress: 2/3
Phase: Executing | AC Progress: 3/3
Execution complete. Fetching result...
QA Verdict: REVISE (score: 0.65)
Differences:
- 3 tests still failing
- Type errors in src/api.py
Suggestions:
- Fix type annotations in api.py before retrying
The boulder never stops. Continuing...
[Ralph Iteration 2/10]
Executing in parallel...
Fixing remaining issues...
Running QA...
QA Verdict: REVISE (score: 0.85)
Differences:
- 1 test edge case failing
Suggestions:
- Add boundary check in parse_input()
The boulder never stops. Continuing...
[Ralph Iteration 3/10]
Executing in parallel...
Fixing edge case...
Running QA...
QA Verdict: PASS (score: 1.0)
Ralph COMPLETE
==============
Request: Fix all failing tests
Iterations: 3
QA History:
- Iteration 1: REVISE (0.65)
- Iteration 2: REVISE (0.85)
- Iteration 3: PASS (1.0)
All tests passing. Build successful.
Next: `ooo evaluate` for formal 3-stage verification
npx claudepluginhub gbr-rl/ouroborosCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
5plugins reuse this skill
First indexed Jul 10, 2026