agentsclimarketplace

Ralph loop

Skill carinyaparc/skills/skills/ralph-loop

Carinya Parc Agent Skills

Install
npx -y skills add carinyaparc/skills --skill ralph-loop

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use to start, inspect, or stop a Ralph loop: an autonomous self-referential loop where a stop hook re-feeds the same prompt every turn until a completion promise is emitted or a safety rail fires (ralph-loop start, ralph-loop status, ralph-loop cancel). Works for any repeating multi-step job via presets, including full epic delivery through implement, review, validate, and merge request. Do NOT use to seed or configure a loop (ralph-loop-setup), implement a single task once (implement), review a diff (code-review), or sign off an epic (validate) — the loop orchestrates those skills.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.6 KB, as published. Nobody here has run it

Ralph loop

Run an autonomous loop. The plugin's stop hook re-feeds the loop prompt after every turn, the agent executes exactly one step per iteration, and the loop ends only when the completion promise is genuinely true or a safety rail fires.

Seeding is a separate skill: ralph-loop-setup. This skill assumes a seeded loop, except for a quick inline ad-hoc start.

How the loop works

  1. /ralph-loop-setup resolves configuration and runs scripts/seed-ralph-loop.sh, which writes {base}/active.md plus a run directory. {base} is .claude/loop or .cursor/loop, resolved from the agent, with no pointer file.
  2. /ralph-loop start verifies the seeded files and executes iteration 1.
  3. The plugin hooks take over. After every turn the stop hook re-feeds the body of active.md; the agent reads its own state and runs the next step.
  4. The loop ends when the agent emits <promise>TEXT</promise> matching the configured promise, max_iterations is reached, the 200-iteration hard ceiling is hit, or the stall guard sees no state change for 3 consecutive iterations.

Safety rails

RailDefaultEnforced by
max_iterations50stop hook, from frontmatter
hard ceiling200stop hook, applies even when unlimited
stall guard3 unchanged iterationsstop hook, watches the state file
session isolationowning session onlystop hook, from session_id
fix budgetsper presetloop state counters

Exhausting a budget never fails the loop: the step advances and the unresolved findings are recorded under ## Notes so a human sees them.

References

Assets

Router

Mode is start, status, or cancel. If no mode is given: a seeded {base}/active.md implies start; otherwise say the loop needs seeding and point at /ralph-loop-setup.

startprompts/start.prompt.md. Verify the seeded loop, confirm the branch where the preset needs one, execute iteration

  1. With --prompt "..." and no seeded loop, seed an ad-hoc loop first.

statusprompts/status.prompt.md. Report iteration, current step, budgets used, completed items, and artefacts. Read-only.

cancelprompts/cancel.prompt.md. Stop the loop and archive the run directory as a record.

Ground rules

  • Only output <promise>TEXT</promise> when the statement is completely and genuinely true. Never to escape the loop, never because progress is slow.
  • Exactly ONE step per iteration. State lives in files, not in memory.
  • Every skill step runs in a fresh sub-agent. Context isolation per step is what keeps a long run sharp.
  • Where a preset commits, verify the branch with git branch --show-current first. No Co-authored-by trailers, no emojis in commits.
  • If the external ralph-loop-plugin is installed, disable it. This plugin ships its own hooks and running both double-fires the stop hook.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.