Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add paulbaranowski/wild-horses/plugin install harnessWrote 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/paulbaranowski/wild-horses/task-list-runner)<a href="https://agentmods.dev/skills/paulbaranowski/wild-horses/task-list-runner"><img src="https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/task-list-runner/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/paulbaranowski/wild-horses/task-list-runner"><img src="https://agentmods.dev/badge/skills/paulbaranowski/wild-horses/task-list-runner.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.05444 |
| Opus 5 | $0.00054 | $0.02722 |
| Sonnet 5 | $0.00022 | $0.01089 |
| Haiku 4.5 | $0.00011 | $0.00544 |
Grade A, and why
task-list-runner 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 9d ago.
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 — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
task-list-runner
Drive a harness task list (JSON file matching the task-list-schema.md schema) to completion by dispatching each task to a foreground Agent tool call, one at a time. Pairs with task-list-builder, which produces the JSON.
The schema this skill consumes is defined in ${CLAUDE_PLUGIN_ROOT}/task-list-schema.md. Re-read that file rather than relying on memory.
Arguments: $ARGUMENTS
CLI reference — task_list_cli.py
The bundled CLI at ${CLAUDE_PLUGIN_ROOT}/skills/task-list-runner/task_list_cli.py is the canonical interface to the task file.
Invocation form (always): python3 "${CLAUDE_PLUGIN_ROOT}/skills/task-list-runner/task_list_cli.py" <subcommand> --file <path>. Never run the bare script path (.../task_list_cli.py <subcommand>): the file ships without an executable bit, so a bare-path invocation dies with exit 126 (permission denied) and forces a wasted retry. It also won't be auto-approved — the PreToolUse allow-list hook only matches commands that start with python3, so the bare path additionally eats a permission prompt. Every bare task_list_cli.py ... reference below is shorthand for this full python3 "<path>" ... form — expand it when you build the actual Bash call.
Subcommands: next, start, set-status, draft, publish, get, list, status, remaining, verify. All take --file <task-file-path>. Don't invent verbs like show, inspect, info, or view — argparse rejects anything outside the list above and prints the full subcommand help on rejection, so a wrong guess costs one wasted call but the right verb is always one of the ten names just enumerated.
next— atomically claim and print the next task. Resumes in-progress, else flips first pending → in-progress. Exits 14 if no tasks remain. Exits 11 if any task is currentlydrafted— resolve viapublishorset-status failedfirst. Output omitsagentValidationsby design: the implementation agent callsnextto claim its task and must not pre-read the validator's checklist (getandlistreturn the full object — they're for the runner's validator-dispatch and status-display callers). Redaction is at print time only; the on-disk file is unchanged.start --id <N>— flip task N from pending → in-progress.draft --id <N> --commit-msg "<subject>" --log-file <path|->— flip in-progress task N todrafted; writes the log into the task and parks the commit subject in a per-task/tmpstaging file. Does NOT touch git. This is the implementation agent's terminal step within an iteration — the runner takes over and dispatches the validation agent before eitherpublishorset-status failedresolves the draft. Same--log-file -+ quoted-heredoc convention asset-status(use stdin to keep it one Bash call).publish --id <N>— flip drafted task N tocompleteby runninggit commitagainst the already-staged git index using the staged subject. Verifies the index is non-empty before committing. On success, removes the staging file. On commit failure (e.g., a pre-commit hook rejects), the task staysdraftedand the staging file stays put — the runner can fix the underlying cause and re-runpublish --id N. Only the runner calls this (post-validation), never the implementation agent.set-status --id <N> --status complete|failed --log-file <path|->— flip task N to a terminal status without touching git. Allowed transitions:in-progress → complete(no-code completion, e.g., investigation tasks),in-progress → failed(implementation gave up),drafted → failed(validation rejected the draft after retries).drafted → completeis forbidden — force the happy path throughpublishso a task cannot reachcompletewithout a commit. Same--log-file -+ quoted-heredoc convention asdraft(the stdin path is preferred in the dispatched-agent flow because it's one Bash call, not two tool calls each gated separately by the auto-mode classifier).get --id <N>— print one task as pretty JSON. Unlikenext, returns the full object includingagentValidations— called by the runner during Phase 4 step 7 to source the validation agent's checklist. The implementation agent must not callgetfor its own task (usenextto claim it instead); doing so would surface the validator-only field the redaction is structurally preventing.list [--status <s>]— print all tasks (or filtered) as a JSON array.status— print task counts (including adraftedcount) + a precomputedremaininginteger (pending + in_progress + drafted, the halt-gate's one number) +planpath. Use this for Phase 5 summary displays AND as the between-iteration halt-gate (it runsload_and_validatelike every other command, so a non-zero exit means the file is corrupt). Drafted is non-terminal and counts towardremaining— a draft awaiting publish-or-fail still owes the runner work.remaining— print non-terminal tasks (pending + in-progress + drafted) as a compact JSON array — each entry has justid,title,effort,status. Use for Phase 3's user-facing summary table. The hot-path halt-gate usesstatus.remaining(the integer) instead so a 30–50-task file doesn't pay an O(N) array on every iteration.verify --id <N>— execute the resolvedverifyStepsfor task N in order, capturing each step's stdout+stderr to/tmp/verify-<id>-step<i>-<slug>.log, stopping on the first failure with that step's exit code, and printing oneverify[i/n] <slug> exit=<EX> log=<path>line per executed step. Resolution rule: if task N declares its ownverifyStepsarray, those run (total replacement, not a merge); otherwise the top-levelverifyStepsruns. So--idselects both the log-file slug and the resolved-steps source — different tasks may run different steps. Auto-approved through the harness PreToolUse hook, so per-task verification runs without per-call prompts; trust for verifySteps content is upstream (task-list-builder).
What ships with it
5 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.
- 9d ago First seen · 178 lines · 108 tokens per session scan A eb1e42f19f59
task-list-runner is a skill published in the GitHub repository paulbaranowski/wild-horses (12 stars, last pushed 21d ago), licensed MIT. It adds 108 tokens to every session and 5,444 once invoked, about $0.0005 per session on Opus 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
recipe-create-meet-space
Create a Google Meet meeting space and share the join link.
workthreads
SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more). It groups the window's sessions into threads of work per project and labels each new / open / recently closed, so a lead sees what shipped, what is still…
atmos-config
Atmos root configuration: atmos.yaml discovery, precedence, deep merging, basepath, imports, minimal bootstrap, and routing to narrower Atmos skills.
story-readiness
Validate that a story file is implementation-ready. Checks for embedded GDD requirements, ADR references, engine notes, clear acceptance criteria, and no open design questions. Produces READY / NEEDS WORK / BLOCKED verdict with specific gaps. Use when user says 'is this story ready', 'can I start on this story', 'is…
autotask-creator
Rules for automation CRUD from the group-chat commander. The commander does not call mutation tools and does not edit cloud/autotasks files directly. It emits one or more top-level ... containers in its final text; the bus parses and applies them after the turn.
monorepo-management
Master monorepo management with Turborepo, Nx, and pnpm workspaces to build efficient, scalable multi-package repositories with optimized builds and dependency management. Use when setting up monorepos, optimizing builds, or managing shared dependencies.