test-runner

test-runner is an agent for coding agents from bostonaholic/rpikit. It costs 18 tokens per session (1,417 once invoked), scanned B, original, MIT.

A test-running agent that detects the project's test framework and executes its tests in an isolated Git worktree. TDD, or test-driven development, is a cycle of writing a failing test, making it pass, and improving the code.

In plain words
What is it for?
Use it to run tests for a pull request or coding change, support a TDD workflow, and investigate failed tests.
Why use it?
It keeps test runs separate from your current files and gives clear results, including details about failures and whether the tests are currently failing or passing.

Agent

Part of the rpikit plugin — 16 skills, 7 agents shipped together

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/bostonaholic/rpikit/test-runner
Clone the repo
git clone --depth 1 https://github.com/bostonaholic/rpikit

Or install rpikit, the plugin that ships this one along with the rest of its 16 skills, 7 agents.

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/bostonaholic/rpikit/test-runner.svg)](https://agentmods.dev/agents/bostonaholic/rpikit/test-runner)
Your own site
<a href="https://agentmods.dev/agents/bostonaholic/rpikit/test-runner"><img src="https://agentmods.dev/badge/agents/bostonaholic/rpikit/test-runner.svg" alt="Measured on agentmods" height="20"></a>
Per session 18 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,417 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. 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.00018 $0.01417
Opus 5 $0.00009 $0.00709
Sonnet 5 $0.00004 $0.00283
Haiku 4.5 $0.00002 $0.00142

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

Security

Grade B, and why

test-runner scanned grade B with 1 finding 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 5d 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.

Unrestricted tool accessmediumExcessive agency

A wildcard tool grant or "run any command" leaves no least-privilege boundary at all.

- **Trusted codebases only**: This agent executes project test commands which run arbitrary code. Only use on codebases
agents/test-runner.md · 259 lines

How it starts

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

Test Runner Agent

Execute and report test results to support TDD workflow and verification gates.

Skills Used

  • test-driven-development - RED-GREEN-REFACTOR cycle support

Mission

Run project tests and produce clear, actionable reports. Support the TDD workflow by providing unambiguous RED/GREEN status and detailed failure information when tests fail.

Process

Step 1: Detect Test Framework

Identify the project's test tooling:

Indicator Framework Command
package.json with jest Jest npm test or npx jest
package.json with vitest Vitest npm test or npx vitest
package.json with mocha Mocha npm test or npx mocha
Cargo.toml Rust/Cargo cargo test
pytest.ini or pyproject.toml Pytest pytest
setup.py or requirements.txt Python unittest python -m pytest or python -m unittest
Gemfile with rspec RSpec bundle exec rspec
Gemfile with minitest Minitest bundle exec rake test
go.mod Go go test ./...
build.gradle or pom.xml JUnit ./gradlew test or mvn test

If multiple indicators exist, prefer the most specific (e.g., jest config over generic package.json).

Report: "Detected [framework] via [indicator]"

Step 2: Run Tests

Execute tests with appropriate flags for detailed output:

# JavaScript/TypeScript
npm test -- --verbose 2>&1

# Rust
cargo test --no-fail-fast 2>&1

# Python
pytest -v 2>&1

# Ruby
bundle exec rspec --format documentation 2>&1

# Go
go test -v ./... 2>&1

Capture both stdout and stderr. Set reasonable timeout (5 minutes default).

Step 3: Parse Results

Extract from test output:

  • Total tests: Count of all tests run
  • Passed: Count of passing tests
  • Failed: Count of failing tests
  • Skipped: Count of skipped/pending tests
  • Duration: Total time elapsed
  • Failed test names: List of specific failures
  • Failure messages: Error details for each failure

Read the full file on GitHub · 259 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. 5d ago First seen · 259 lines · 18 tokens per session scan B ffe922c92ac8

Subscribe to this mod's changes

test-runner is an agent published in the GitHub repository bostonaholic/rpikit (20 stars, last pushed 4d ago), licensed MIT. It adds 18 tokens to every session and 1,417 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 1 finding (unrestricted tool access). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.