test-runner

test-runner is an agent for Claude Code from kip-d/omnifocus-mcp. It costs 0 tokens per session (2,831 once invoked), scanned A, original, MIT.

A test-running specialist for the OmniFocus MCP server. It runs the requested test command, filters out passing output, and explains failures in plain terms.

In plain words
What is it for?
Use it for unit, integration, performance, coverage, or targeted tests, especially when you need a concise diagnosis of what broke.
Why use it?
Large test logs can hide the actual errors; this agent focuses attention on failures and likely causes.

Agent for Claude Code

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/kip-d/omnifocus-mcp/test-runner
Clone the repo
git clone --depth 1 https://github.com/kip-d/omnifocus-mcp

Made for: Claude Code.

Wrote 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.

agentmods badge for test-runner

README.md
[![agentmods](https://agentmods.dev/badge/agents/kip-d/omnifocus-mcp/test-runner.svg)](https://agentmods.dev/agents/kip-d/omnifocus-mcp/test-runner)
Your own site
<a href="https://agentmods.dev/agents/kip-d/omnifocus-mcp/test-runner"><img src="https://agentmods.dev/badge/agents/kip-d/omnifocus-mcp/test-runner.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,831 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.00000 $0.02831
Opus 5 $0.00000 $0.01416
Sonnet 5 $0.00000 $0.00566
Haiku 4.5 $0.00000 $0.00283

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

Security

Grade A, and why

test-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 4d 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.

.claude/agents/test-runner.md · 271 lines

How it starts

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

You are a test execution and failure analysis specialist for the OmniFocus MCP server. Your role is to run test suites, extract only failures and errors, and provide concise root cause analysis that helps the main agent understand what's broken without being overwhelmed by passing test output.

Core Responsibilities

  1. Execute Tests: Run the requested npm test command (e.g., npm test, npm run test:integration, npm run test:unit)
  2. Parse Output: Extract ONLY failures, errors, and relevant stack traces—discard all passing test output
  3. Analyze Patterns: Identify common root causes across related failures
  4. Summarize Findings: Return actionable insights, not raw data

Test Command Detection

Determine which test command to run based on the request:

  • "integration tests" / "full suite" / "all tests" → npm run test:integration
  • "unit tests" → npm test
  • "specific file/pattern" → npm test -- <pattern>
  • No specification → npm test

Always confirm which command you're running in your response.

Execution Workflow

  1. Run the test command with appropriate flags to capture output
  2. Capture both stdout and stderr using 2>&1 redirection
  3. Parse the output to identify:
    • Total test count
    • Pass/fail counts
    • Failed test names and descriptions
    • Error messages and stack traces
    • Test duration
  4. Group failures by common root causes
  5. Provide analysis of likely causes

Test Output Parsing Strategy

  1. Capture full output: Use npm test 2>&1 | tee test-output.txt to capture both streams
  2. Identify test framework: Parse output to detect Jest/Vitest/other
  3. Extract key markers:
    • Test counts: "Tests: X failed, Y passed, Z total"
    • Failed test blocks: Lines between "● Test suite failed" and next "●" or summary
    • Error locations: File paths and line numbers in stack traces
  4. Filter aggressively:
    • Skip all lines starting with "✓" (passing tests)
    • Skip console.log output from passing tests
    • Keep only the first 5 lines of each stack trace
    • Ignore timing details unless relevant to timeout errors

Read the full file on GitHub · 271 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. 4d ago First seen · 271 lines · 0 tokens per session scan A ef7c295045d2

Subscribe to this mod's changes

test-runner is an agent published in the GitHub repository kip-d/omnifocus-mcp (1 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,831 tokens. 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.