Skip to content

Repository files navigation

Test Harness

A test harness for evaluating Claude Code skills and agents. It measures two things you can improve independently:

  • Trigger accuracy — does Claude call your skill (or delegate to your agent) when it should, and stay quiet when it shouldn't?
  • Effectiveness — once invoked, does the output meet quality criteria you define? An LLM judge scores it against a rubric.

You write evals, run them inside a Test Sandbox, and track trigger accuracy, output quality, and cost over time through a dashboard and analytics. Skills and agents each have their own trigger-accuracy and effectiveness paths — pick the one that matches what you're improving.

Prerequisites

  • Docker Sandboxes (sbx) — the harness runs Claude Code inside Docker Sandboxes via the standalone sbx CLI. Install sbx using Docker's instructions, then run sbx login before creating the harness sandbox.
  • Bun — the CLI and web app are built with Bun. Install from bun.sh.

Setup

All commands run from the repository root.

  1. Build the harness. This installs dependencies and compiles the harness and harness-web binaries:

    make build
  2. Create the Test Sandbox and log in. Authenticate the Sandbox CLI, then create a persistent sandbox and open Claude Code so you can authenticate:

    sbx login
    ./harness sandbox-setup

    Complete the login in the Claude TUI. If you aren't prompted, run /login. When setup finishes, exit with /exit.

You're ready. Now choose what you want to measure.

What do you want to measure?

Pick the path that matches your goal — each is a short, end-to-end guide.

Improving a custom skill

  1. Know when Claude should call my skill — trigger accuracy
  2. Make my skill better at its job — effectiveness

Improving a custom agent

  1. Know when Claude should delegate to my agent — trigger accuracy
  2. Make my agent better at its job — effectiveness

After your first run, view results in the dashboard and query trends with analytics.


Reference

Everything above is all you need for first-time use. The links below are reference material — reach for them when a guide points you here.

Getting Started Guides

Full Workflow Guides

Configuration Reference

  • Test Suite Reference — full tests.json field reference: test types, expectation types, validation
  • Test Scaffolding — how scaffolds provide project context inside the Test Sandbox

Eval Authoring Skills

Claude Code skills that generate eval suites for you:

Deep Dives

Architecture

Package Documentation (contributor)

  • CLI — Yargs command layer and path resolution
  • Execution — test-run pipeline, test-eval, SCIL/ACIL orchestration, error hierarchy
  • Data — shared data layer: types, config parsing, JSONL I/O, DuckDB analytics, SCIL utilities
  • Evals — evaluation engine: boolean evals, LLM judge scoring, rubric parsing, orchestrator
  • Claude Integration — Claude CLI wrapper API, argument construction, sandbox delegation
  • Sandbox Integration Package — Test Sandbox API: full public interface, error handling, testing patterns
  • Web — Hono API server, React SPA, test run and SCIL views, per-test analytics
  • Bun Helpers — cross-runtime path resolution utilities
  • Test Fixtures — shared fixture data, loadFixtures utility, analytics JSONL scenarios

Maintenance and Support

  • Maintenance horizon: Indefinitely maintained, best-effort. No SLA.
  • Project type: Personal project, with some Test Double support.
  • How to report issues: GitHub Issues, with best-effort response within 2 weeks.

Han is an open source product of Test Double, and maintained by the following people:

LEGAL NOTICES

Copyright 2026 Test Double, Inc. Distributed under the MIT license.

About

A test harness for skills files

Resources

Code of conduct

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages