ralph
SkillLauncher for the Ralph-style queue drain script — emits the right `node ralph-loop.mjs` invocation based on the user's filter and bounds. The actual loop runs as a Node script that spawns one `claude -p --worktree` per iteration; this skill is the configurator, not the loop. Use when a user says: dr
Install
git clone https://github.com/jpicklyk/task-orchestrator.git ~/.claude/skills/ralphWhat is ralph?
Launcher for the Ralph-style queue drain script — emits the right `node ralph-loop.mjs` invocation based on the user's filter and bounds. The actual loop runs as a Node script that spawns one `claude -p --worktree` per iteration; this skill is the configurator, not the loop. Use when a user says: drain the backlog, ralph the queue, run Ralph loop, work the queue, batch through queue items, autonomous queue worker.
What this can do
Capabilities declared in this component's own frontmatter — not inferred.
Inherit all session tools
Declares no tool restrictions — inherits every session tool
~104 tokens of context used while enabled, before you invoke anything
Documentation
README · ~13 min readralph — Queue Drain Launcher
This skill is a launcher for the Ralph drain script (scripts/ralph-loop.mjs in this plugin). It does not run a loop in the current session. It helps you configure the right invocation, previews what will be processed, and emits the exact command to run.
The actual loop runs as a separate Node process. Each iteration spawns a fresh claude -p in its own git worktree (via Claude Code's -w flag), claims one item from the TO queue, and works it to terminal per the item's schema. Outcome is signaled via a RALPH_OUTCOME: JSON marker that the script parses for circuit-breaker decisions.
Why a separate script, not a slash-command loop? Per Geoff Huntley's canonical Ralph: the value comes from carving off small bits of work into independent context windows. Each iteration is a fresh process — fresh context, fresh worktree, isolated logs, clean exit codes. The skill-as-orchestrator pattern (one session, internal loop) accumulates context within a session and doesn't preserve fresh-context isolation. For autonomous cadence, compose with
/loop:/loop 30m node scripts/ralph-loop.mjs --filter "tag=bug-fix".
Step 1 — Resolve the filter
Determine what subset of the queue to drain.
If $ARGUMENTS is non-empty, parse it as a filter expression. Supported keys:
| Key | Effect |
|---|
Reviews
Log in to leave a review.
No reviews yet — be the first.
Explore related
Other things in this space — across every part of the ecosystem, not just skills.
Skillssimilar to this one
All skills →configuring-airflow-language-sdks
Configures Airflow to run language SDK tasks (Java, Go, and future native SDKs) — register a coordinator, map a queue to it, ensure the runtime/artifact on workers, and tune coordinator options. Use when the user wants Airflow to route a queue to a native-language coordinator, asks about the `[sdk]`
412 stars
dr-jskill
An Agent Skill for creating Spring Boot applications
319 stars
commerce-app-admin-ui
Add or modify Adobe Commerce Admin UI extensions on the commerce/backend-ui/2 extension point: custom grid columns, mass actions, order view buttons, and a custom Admin menu entry. Use whenever the user wants to extend the Commerce Admin — add a column to the order, product, or customer grid, add a
151 stars