test-audit

test-audit is a skill for Claude Code, Codex from get-bb/bb. It costs 45 tokens per session (2,791 once invoked), scanned A, original, MIT.

A test-review skill that checks new and existing tests for useful, independent coverage. It looks for tests that merely repeat source code, duplicate stronger tests, depend too closely on implementation details, or require test-only production code.

In plain words
What is it for?
Use it while writing or changing tests, auditing a focused group of tests, or pruning a complete subsystem's test surface. TDD, or test-driven development, is not explicitly required by the description.
Why use it?
It helps teams avoid a large test suite that adds maintenance cost without catching credible regressions. It also asks what behavior each test protects and why existing tests are insufficient.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions AGENTS.md.

Good fit Use it while writing or changing tests, auditing a focused group of tests, or pruning a complete subsystem's test surface. TDD, or test-driven development, is not explicitly required by the description.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/get-bb/bb/test-audit
About the project

bb is an agentic IDE that lets users control, customize, and automate a software-development environment through a desktop app, web app, command-line interface, or HTTP API. Developers use it to run work in observable threads that can be steered or handed off to other agents. Its catalogue add-ons provide skills and instructions for working with bb.

get-bb/bb · 4,324 stars · on GitHub · getbb.app

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.

Any agent
npx skills add get-bb/bb --skill test-audit
Clone the repo
git clone --depth 1 https://github.com/get-bb/bb

Made for: Claude Code, Codex.

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-audit

README.md
[![agentmods](https://agentmods.dev/badge/skills/get-bb/bb/test-audit/github.svg)](https://agentmods.dev/skills/get-bb/bb/test-audit)
Your own site
<a href="https://agentmods.dev/skills/get-bb/bb/test-audit"><img src="https://agentmods.dev/badge/skills/get-bb/bb/test-audit/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.

agentmods 80×15 button for test-audit

Your own site · 80×15
<a href="https://agentmods.dev/skills/get-bb/bb/test-audit"><img src="https://agentmods.dev/badge/skills/get-bb/bb/test-audit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 45 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,791 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00045 $0.02791
Opus 5.5 $0.00018 $0.01116
Sonnet 5.5 $0.00009 $0.00558
Haiku 4.5 $0.00005 $0.00279

Measured yesterday against content hash 44e8ae940218, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

test-audit 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.

.bb/skills/test-audit/SKILL.md · 233 lines

How it starts

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

Test Audit

Three modes, one value bar. Authoring mode gates every new or changed test at write time. Audit mode runs focused sweeps of tests that re-assert source, duplicate stronger proof, couple behavior to implementation, or keep test-only production seams alive. Continue broad audits as separate coherent follow-up PRs; optimize for confidence, not deletion count. Campaign mode prunes one whole subsystem's test surface (every test file a plugin, app, or package owns); before starting one, read CAMPAIGN.md.

Authoring gate

Before adding any test, answer four questions; a missing answer means do not add it yet:

  1. What observable behavior, invariant, or independent contract does it protect?
  2. What credible regression makes it fail?
  3. Why does existing coverage not already catch that failure? Each contract has one primary test owner at the strongest boundary; another layer needs its own distinct risk, such as a transport or lifecycle failure the owner cannot reach. Prefer extending a table-driven case or shared fixture over a near-duplicate test; consolidate duplicated setup in the same change.
  4. Does it need a production seam (export, flag, wrapper, injection hook) that no production caller needs? If yes, move the test to the real boundary instead.

Then check the test against every junk pattern; a match fails the gate unless the retention bar names the contract it independently guards. A test that would break under behavior-preserving refactoring is asserting implementation, not behavior; rewrite it at the owning boundary before landing it.

Bug regression tests must fail on the pre-fix code for the intended reason and pass after the owner-boundary repair. A regression test that never demonstrably failed proves the mock, not the fix. One regression at the owner boundary covers the bug; do not replay the same scenario at every layer it crosses.

bb test rules: never mock the database; use createMigratedConnection() from @bb/db/testing, which copies a template built by the real migrations. Vitest projects come from sharedWorkerProjects in vitest.shared.ts: Node test files share workers (isolate: false), and files that use vi.mock, vi.stubGlobal, fake timers, process.env writes, or global assignments are isolated automatically. Restore any other global state a test changes. Tests follow the no-comments rule.

Read the full file on GitHub · 233 lines

Files

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.

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. yesterday Changed 44e8ae940218
  2. 20d ago First seen · 233 lines · 45 tokens per session scan A d7fe154129a8

Subscribe to this mod's changes

test-audit is a skill published in the GitHub repository get-bb/bb (4,324 stars, last pushed today), licensed MIT. It adds 45 tokens to every session and 2,791 once invoked, about $0.0002 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-09-26.

Related

Other skills, from other repositories

mirrord-prev-env

Help users create and manage mirrord preview environments — running a modified service as an isolated pod in a shared Kubernetes cluster, scoped by an environment key and HTTP/queue traffic filtering, so teams can validate and review changes against real traffic without affecting live services. Use when a developer…

metalbear-co/mirrord · 122 tokens

mirrord-chaos

Help users chaos test their app with mirrord: inject artificial latency or connection errors into a mirrord session's outgoing traffic via per-session chaos rules managed with the mirrord chaos CLI. Use when a user wants to add latency or delay to outgoing connections or a dependency (e.g. a slow database), simulate…

metalbear-co/mirrord · 119 tokens

test-gen

Generate comprehensive unit tests for code files.

phodal/auto-dev · 10 tokens

coding-guard

Compact coding guidelines for the explyt/spring-plugin repository - covers process rules (think first, simplicity, surgical changes), module layout, IntelliJ Platform threading and PSI rules, inspection and test conventions, message bundles, statistics tracking, and PR hygiene. You must call this skill before any code…

explyt/spring-plugin · 67 tokens

review-core-correctness

Normative mandatory reviewer for correctness, contracts, architecture sanity, UX behavior, code quality and tests in the explyt spring-plugin codebase. Use during orchestrated code review of a PR, diff, commit or branch, or when asked to review correctness, logic, architecture or test coverage of plugin changes.

explyt/spring-plugin · 67 tokens

develop-gutter-navigation-feature

End-to-end workflow for adding or repairing a navigation gutter / line marker in the explyt/spring-plugin repository: the two independent provider entry points, the lazy-targets contract of NavigationGutterIconBuilder, module resolution and search scope for library PSI, honest empty-state wording, target renderers for…

explyt/spring-plugin · 142 tokens