Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/jpicklyk/task-orchestratornpx agentmods add skills/jpicklyk/task-orchestrator/ralphWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jpicklyk/task-orchestrator/ralph)<a href="https://agentmods.dev/skills/jpicklyk/task-orchestrator/ralph"><img src="https://agentmods.dev/badge/skills/jpicklyk/task-orchestrator/ralph/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jpicklyk/task-orchestrator/ralph"><img src="https://agentmods.dev/badge/skills/jpicklyk/task-orchestrator/ralph.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00108 | $0.07631 |
| Opus 5.5 | $0.00043 | $0.03052 |
| Sonnet 5.5 | $0.00022 | $0.01526 |
| Haiku 4.5 | $0.00011 | $0.00763 |
Grade A, and why
ralph scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 419 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ralph - 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 that talks to the server over the REST API. It opens one run per loop. Each iteration selects the oldest ready queue item with items_read next, adds it to the run, assigns it an implementer seat, claims it under that seat's token, and spawns a fresh claude -p in its own git worktree (via Claude Code's --worktree flag) to work the item to terminal per its schema. The seat token reaches the iteration only as a file path. The iteration signals its outcome with a RALPH_OUTCOME: JSON marker; the driver then ends the seat, and on exit closes the run.
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".
Requirements. The REST API must be reachable: TASK_ORCHESTRATOR_API_URL (or apiUrl in .taskorchestrator/client.json), plus TASK_ORCHESTRATOR_API_TOKEN when the server requires a credential. The loop also needs a project root: --root, an ancestorId= in the filter, or project.rootId in the project config. Without either the script exits 64.
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 |
|---|---|
tag=<value> |
Items carrying this tag (repeat the key, or comma-separate, for any-of) |
type=<value> |
Items with this exact type |
priority=<value> |
Items at this priority (high, medium, low) |
parentId=<uuid-or-prefix> |
Only direct children of this container |
ancestorId=<uuid-or-prefix> |
Only items anywhere in this ancestor's subtree, any depth - broader than parentId |
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +77 lines · +9 tokens per session a5ca12e5633b
- 20d ago Changed 0de4ae755f77
- 22d ago Changed 8e09c7838220
- 28d ago Changed · +1 lines 7b1171e10211
- 1mo ago Changed · +9 lines 322bbc930099
- 1mo ago First seen · 332 lines · 99 tokens per session scan A 1273b937b612
ralph is a skill published in the GitHub repository jpicklyk/task-orchestrator (209 stars, last pushed yesterday), licensed MIT. It adds 108 tokens to every session and 7,631 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
debugging
Systematic root-cause debugging with verification. Use for errors, stack traces, broken tests, flaky tests, regressions, or anything not working as expected. For validating bug reports before fixing, use bug-reproduction-validator agent.
pinescript
Pine Script v6: syntax, performance, error diagnosis, backtesting, visualization. Use when writing or debugging .pine files or TradingView Pine indicators/strategies.
document-review
Structural and accuracy review of documents: gaps, clarity, completeness, organization, and claims checked against the code. Use when a brainstorm, plan, spec, ADR, or any doc needs polish before the next workflow step. For exploring new ideas from scratch, use brainstorming instead.
reflect
Session retrospective and skill audit. Use when asked to reflect, do a retrospective, review lessons learned, audit what went well or wrong, or review session effectiveness.
cpp-systems
Modern C++ patterns: RAII and ownership, rule of zero/five, exceptions and error handling, API and ABI boundaries, templates, and CMake tooling. Use when writing, reviewing, refactoring, or debugging C++, working with smart pointers, move semantics, memory leaks, template errors, or gtest. For plain C, see…
receiving-code-review
Process code review feedback critically: check correctness before acting, push back on incorrect suggestions, no performative agreement. Use when responding to PR/MR review comments or implementing reviewer suggestions received from others.