Skip to content

agent-quality-controls/fixture3

fixture3

crates.io license rust ci issues

fixture3 is a CLI for fixture-based approval testing in agent-managed codebases.

Install

cargo install cargo-binstall
cargo binstall fixture3
fixture3 --version

Use cargo binstall fixture3 as the install path. The crates.io package is an install stub for cargo-binstall metadata, not the real CLI implementation.

Quick start

fixture3 init
fixture3 doctor
fixture3 check --all

The full agent guide is in fixture3 --help. It covers the model, manifest schema, fixture substitution, files, feature selectors, JSON output, approval flow, and exit codes from the top-level help screen.

Reducer

fixture3 reduce uses DDMin to remove unnecessary fixture content while preserving the same approved result. It can remove directory subtrees and files:

fixture3 reduce --suite my-suite --fixture-root behavior/fixtures/my-suite/project --work-dir .fixture3/reduce/my-suite
fixture3 reduce --suite my-suite --fixture-root behavior/fixtures/my-suite/project --work-dir .fixture3/reduce/my-suite --reducers dirs,files
fixture3 reduce --suite my-suite --fixture-root behavior/fixtures/my-suite/project --work-dir .fixture3/reduce/my-suite --reducers dirs
fixture3 reduce --suite my-suite --fixture-root behavior/fixtures/my-suite/project --work-dir .fixture3/reduce/my-suite --reducers files
fixture3 reduce --suite my-suite --fixture-root behavior/fixtures/my-suite/project --work-dir .fixture3/reduce/my-suite --max-oracle-calls 50

The best report is written under <work-dir>/best/. The active trial is reused at <work-dir>/trial-current/.

DDMin Library

The reducer algorithm is also published as a standalone Rust crate:

cargo add fixture3-ddmin

Use it from Rust as fixture3_ddmin:

use fixture3_ddmin::{DdminInput, DdminOptions, OracleOutcome, ddmin};

Docs: https://docs.rs/fixture3-ddmin

More

  • Philosophy — fixtures vs snapshots, fail-closed semantics, why DDMin reduction.
  • Comparison — fixture3 vs insta, ApprovalTests, expect-test, cargo-insta.
  • The model — fixtures, suites, features, tags, approved and received output.
  • Manifestfixture3.yaml schema with examples.
  • Files — committed vs generated paths.
  • Workflow — init, check, diff, approve, status, reduce.
  • Commands — full CLI reference, exit codes, fail-closed checks.
  • Agent output — JSON output for every command.
  • Verification — repository self-verification scripts.
  • Thanks — DDMin (Zeller and Hildebrandt), ApprovalTests, insta.
  • Contributing — open a detailed issue first; PRs must pass the G3RS pre-commit gate and the verification scripts.

Part of Agent Quality Controls.

License

MIT