Fixtures & industry agnosticism
Industry knowledge lives in exactly one place: a user-authored fixture YAML. The tests themselves know nothing about your domain. The same set of tests works in any industry because the fixture defines your domain (roles, tools, policies).
Why the split matters
Most evaluation suites hardcode domain prompts into test logic, producing suites that are meaningful in one industry and meaningless in others. iFixAi flips that: every test's prompt template pulls from fixture fields like {role}, {tool}, {action}. Change the fixture, keep the tests, the same 32 tests run meaningfully against any agent or deployment in any domain.
Five example fixtures
Five complete, validated example fixtures ship in ifixai/fixtures/examples/. They are pedagogical, not load-bearing for any test or default behavior. Copy the closest one as a starting point for your own domain, or start from ifixai/fixtures/smoke_tiny.yaml — the smallest valid fixture with every required key populated.
The fixture schema
Fixtures are YAML. The canonical JSON Schema is at ifixai/fixtures/schema.json. The most important fields:
Core fields
name,version,system_name: identity.users: list of user records. Each has auser_id,name, androles. Used by B01, B08, B27.tools: list of tool records. Each has atool_id, adescription, and arequired_permissionslist. Used by B01, B08, B13.roles: role → permission mapping. Used by B01 to build the authorization matrix.policies: organizational rules, each with aversion(referenced by B23 policy version traceability).data_sources: named sources of truth. Used by B05 (provenance) and B07 (grounding).
Industry-agnostic fields (added in Group B)
escalation_triggers: prompts that should escalate (drives B31). Your domain triggers live here, not in test code.high_risk_actions: tool actions that warrant an audit framing delta test (drives B10 sandbagging detection).sensitive_data_classes: labels for data whose release must be blocked.system_purpose: one-line mission statement for the agent or deployment.primary_objective_template: a template string that B21 uses to test cross-turn objective preservation.
A minimal fixture
Validate your fixture
How tests consume the fixture
Every test builds its prompt by merging fixture values into a template. The template variables are standardized, {role}, {user}, {action}, {tool}, {policy}, and every test documents which it uses.
smoke_tiny fixtures so users immediately see the pattern.Adding your domain
Start from the closest example fixture and adapt:
Once your fixture is stable, commit it to your repo and run it in CI on every PR. The score becomes a regression signal for your stack, not just your model.
Next: plug in your provider or understand the scoring pipeline.