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.
npx skills add tdimino/claude-code-minoan --skill test-harness-auditorgit clone --depth 1 https://github.com/tdimino/claude-code-minoanWrote 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/tdimino/claude-code-minoan/test-harness-auditor)<a href="https://agentmods.dev/skills/tdimino/claude-code-minoan/test-harness-auditor"><img src="https://agentmods.dev/badge/skills/tdimino/claude-code-minoan/test-harness-auditor/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/tdimino/claude-code-minoan/test-harness-auditor"><img src="https://agentmods.dev/badge/skills/tdimino/claude-code-minoan/test-harness-auditor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 3 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 129 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
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.00065 | $0.01920 |
| Opus 5 | $0.00032 | $0.00960 |
| Sonnet 5 | $0.00013 | $0.00384 |
| Haiku 4.5 | $0.00006 | $0.00192 |
Grade A, and why
test-harness-auditor 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 12d 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 — 173 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Test Harness Auditor
Audit any repo's feedback infrastructure across six layers and generate optimized configs for AI coding agents.
When to Run
- Entering a new repo with no
.claude/lint-rules.json - User asks to audit tests, lint setup, or agent infrastructure
- After cloning a repo to check what feedback loops exist
- Periodically to catch configuration drift
Two-Phase Workflow
Phase 1: Audit (read-only)
Run the audit script to scan the current repo:
uv run ~/.claude/skills/test-harness-auditor/scripts/audit.py
Or target a specific directory:
uv run ~/.claude/skills/test-harness-auditor/scripts/audit.py /path/to/repo
For machine-readable output (consumed by Phase 2):
uv run ~/.claude/skills/test-harness-auditor/scripts/audit.py --json > /tmp/audit.json
To save a snapshot for drift detection (tracks score changes over time):
uv run ~/.claude/skills/test-harness-auditor/scripts/audit.py --save
Combine flags: --json --save saves the snapshot AND outputs JSON. On subsequent --save runs, the report includes a drift section showing score regressions, config changes, and residue file changes.
The script produces a structured Markdown report (or JSON with --json) with:
- Stack summary: detected language, frameworks, package manager, actual scripts from package.json
- Scorecard: 0-3 score for each of the six layers (test, lint, type-check, SA, build, debug)
- Findings: per-layer details on what was detected
- Debugging residue: files matching
*_v2.*,*_backup.*,*_fixed.*patterns - Recommendations: prioritized by impact on agent feedback quality (P0-P3)
Present the report to the user. Ask which recommendations to implement before proceeding to Phase 2.
Phase 1.5: Convention Extraction (optional)
Extract "never X"/"always Y" constraints from CLAUDE.md into candidate lint rules:
uv run ~/.claude/skills/test-harness-auditor/scripts/extract_conventions.py
What ships with it
12 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.
- README.md 2.6 KB
- references/anti-patterns.md 7.8 KB
- references/factory-lint-categories.md 6.8 KB
- references/stack-profiles.md 6.4 KB
- rule-library/functional-ts.json 5.6 KB
- rule-library/INDEX.md 5.2 KB
- rule-library/python-cli.json 4.9 KB
- rule-library/react.json 4.2 KB
- rule-library/rust-workspace.json 3.0 KB
- scripts/audit.py 37 KB runs code
- scripts/extract_conventions.py 8.0 KB runs code
- scripts/generate.py 21 KB runs code
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.
- 12d ago First seen · 173 lines · 65 tokens per session scan A 7f3cb513c70c
test-harness-auditor is a skill published in the GitHub repository tdimino/claude-code-minoan (41 stars, last pushed yesterday), licensed MIT. It adds 65 tokens to every session and 1,920 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-30.
Other skills, from other repositories
test-native-extension
Validate a third-party control repo across four automated layers plus one printed manual recipe. Layer 1 asserts native-source structure (Android getName() and iOS +moduleName to manifest nativeModule; @ReactMethod / RCTEXPORTMETHOD to methods; no @ReactModule) plus load/init readiness (ReactPackage public no-arg…
test-site
Tests a deployed, activated Power Pages site at runtime using browser-based navigation, page crawling, and API request verification via Playwright. Use when the user wants to test, verify, or smoke-test their deployed site.
simulation-study
Scaffold and run a reproducible Monte Carlo simulation study in R — a declared assumption regime, a parameterized DGP, an estimator grid, a seeded replication loop, and a summary of bias, RMSE, empirical SE, coverage, size/power with Monte Carlo standard errors. Use when the user says "run a Monte Carlo simulation"…
test-quality
Write high-quality JUnit 5 tests with AssertJ assertions. Use when user says "add tests", "write tests", "improve test coverage", or when reviewing/creating test classes for Java code.
voice-agent-test-harness
Drive a fixed suite of spoken tests against a voice agent ("subject") from a co-located machine ("prober"), measure response latency / clarity / accuracy, diff against baseline, and report to the owner over Telegram.
702-technologies-wiremock
Use when you need framework-agnostic WireMock guidance — stub design, JSON or programmatic mappings, precise request matching, response bodies and faults, classpath fixtures, isolation and reset between tests, verification of calls, dynamic ports and base URLs, and avoiding flaky stubs — without choosing Spring Boot…