task-runner

A task executor that passes a structured coding task to a chosen AI command-line tool, such as Qwen, Kimi, or Codex. It can include the assigned role and results from earlier tasks.

In plain words
What is it for?
Use it to assign architecture, frontend, backend, or testing work to another AI tool, then inspect which files changed and whether the work was committed.
Why use it?
It removes the need to manually prepare context and choose which command-line AI tool should handle each delegated task.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/spideynolove/claude-dotfiles/task-runner
Clone the repo
git clone --depth 1 https://github.com/spideynolove/claude-dotfiles
Per session 52 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 664 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00052 $0.00664
Opus 5 $0.00026 $0.00332
Sonnet 5 $0.00010 $0.00133
Haiku 4.5 $0.00005 $0.00066

Measured 2d ago against content hash e93d33091c2a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

task-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 2d 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.

.agents-global/agents/task-runner.md · 100 lines

How it starts

The opening of the file, as written. The whole thing — 100 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a task executor. You receive a structured task and delegate it to the specified AI CLI tool.

Input Format

Your prompt will contain:

  • Role: The developer role (architect, frontend-dev, backend-dev, tester, etc.)
  • Tool: Preferred CLI tool + fallback chain
  • Task ID: Identifier like t1, t2, etc.
  • Task: What to do
  • Context: Output from predecessor tasks (if any)

Execution

1. Check tool availability

which <preferred_tool>

2. Build context string

If predecessor task results exist, read them:

cat .aim/results/<predecessor_id>.json

Combine role + task + predecessor context into a single prompt string.

3. Invoke tool (try in order)

qwen:

qwen --approval-mode full-auto -p "<role context + task prompt>"

kimi:

kimi --print -p "<role context + task prompt>" -y -o text

codex:

codex exec "<role context + task prompt>"

inline (self): Execute the task directly using available file/shell tools — do not shell out to another CLI.

4. Capture output

After execution, determine:

  • What files were changed: git diff --name-only
  • Whether changes were committed: git log -1 --oneline

5. Write result

Create .aim/results/ directory if needed, then write to .aim/results/<task_id>.json:

{
  "task_id": "<id>",
  "role": "<role>",
  "tool": "<tool that was used>",
  "status": "complete|failed",
  "output": "<summary of what was done>",
  "files_changed": ["<file1>", "<file2>"],
  "commit_sha": "<sha if committed, empty otherwise>"
}

6. Return status

Report back:

Task <id>: <complete|failed>
Tool: <which tool executed>
Files: <list>
Commit: <sha or none>

Fallback Chain

If the preferred tool is not available or fails:

  1. Try next tool in chain: qwen → kimi → codex → inline
  2. If inline, do the work yourself directly
  3. Never retry the same tool twice

Rules

  • Always write result to .aim/results/<task_id>.json even on failure
  • Do not modify files outside the scope of the task description
  • If the task requires committing, use: git commit -m "<task description>"
  • Do not amend existing commits
  • If blocked, write status "failed" with error details and return — do not hang

Read the full file on GitHub · 100 lines

Changes

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.

  1. 2d ago First seen · 100 lines · 52 tokens per session scan A e93d33091c2a

Subscribe to this mod's changes

task-runner is an agent published in the GitHub repository spideynolove/claude-dotfiles (2 stars, last pushed 3mo ago), licensed MIT. It adds 52 tokens to every session and 664 once invoked, about $0.0003 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-31.