ETM Chiron™: Regression Testing and Evaluation

Summary and principles

Chiron tells a company what an AI change will break before the company trusts it. It keeps versioned test suites built from the company's own work and knowledge, runs them in a sandbox against every agent, model, prompt, skill and tool change, compares the results with the last trusted baseline, and gives the change's owner a verdict with the evidence behind it.

Chiron architecture · 6 services, adapters, Muninn
Chiron architecture · 6 services, adapters, Muninn

What Chiron does

Keeps the company's tests. Suites of test cases live in Muninn, each case with an owner, a source and a review date.

Catches changes. A new model version, an edited prompt or skill, a new tool, a harness upgrade or a migration triggers the suites the change could affect.

Runs and grades safely. Cases run in sandboxes with simulated tools and test data, several times each, and are graded by deterministic checks, calibrated model graders and sampled human review.

Gives a verdict. The owner gets go, go with conditions, or no-go, with the regressions, improvements and cost and latency changes behind it.

Design principles

Test against the company's own work. Generic benchmarks say little about a company's tasks, so Chiron's suites come from its policies, procedures, past work and past failures.

Every failure becomes a test. An incident, a guardrail breach or a dismissed brief is turned into a regression case, so the failure cannot quietly return.

Compare with a baseline, not only a threshold. A change is judged first by what it does to results that passed before.

Treat AI output as variable. Each case runs several times, and results carry sample sizes and confidence, so noise is not mistaken for a regression.

Graders are tested too. Model graders are calibrated against human labels and re-baselined whenever they change.

Nothing touches production. Tests run against simulated tools and test data unless an owner approves a staging connection.

Owners decide. Chiron recommends a verdict and the change's owner decides; overriding a no-go needs a recorded reason.

Built on Muninn. Suites, runs and results are Muninn records, so they inherit its security, history, entitlements and portability.

Architecture

Chiron is a set of services on top of Muninn, plus adapters that reach the systems it tests. Muninn holds the suites, the cases and every result; Chiron detects changes, selects and builds cases, runs them in sandboxes, grades them, compares them with baselines and reports.

A run starts when Chiron sees a change: a Muninn ledger event for an agent configuration, skill or policy, a pull request in the client's repository, a new model version from a vendor, a Pleiades migration, or a schedule. Chiron runs the selected cases through an adapter for each system under test and writes an EVAL-RUN record with every case result. The verdict goes to the change's owner and, when the change is in a pipeline, back to that pipeline as a pass or fail gate.

Chiron keeps its tests and results in Muninn and reaches each system under test, from any vendor, through an adapter.

Interfaces

Pipeline gate: a check that a pull request or release waits on, with the readiness report linked.

Workspace for owners: suites, cases, runs, review queues and readiness reports, with notifications to Slack, Teams and email.

MCP tools for agents: chiron.run, chiron.report, chiron.add_case and chiron.coverage (see Results for decision-makers).

Adapters for the systems under test (see Coverage of other AI systems).

Deployment

Chiron deploys next to the client's Muninn, in the client's cloud or hosted by ETM. Sandboxes run in the client's environment, so test data stays there, and model graders call models through the same model port as Concordia and Huginn.

What Chiron tests

Chiron tests anything whose change can alter how an agent behaves. Each target is a system under test: an agent, an agentic workflow, or one of the parts that shape them.

Systems under test

System under testBuilt-in typeChanges that trigger tests
AgentAI-AGENTNew instructions, roles, tools or model
Agentic workflowAGENTIC-WORKFLOWA new step, hand-off or tool in the flow
Skill or promptSKILL, PROMPT-TEMPLATE, AGENT-GUIDANCEAny edit
ModelAI-MODELA new model or version, including updates behind a model alias
Tool or MCP serverAGENT-TOOLA new version or a changed schema
HarnessHARNESSAn upgrade or a configuration change
Company knowledge and intentMuninn records, Concordia intentA superseded policy, principle or procedure that an agent depends on
ETM productsMuninn recall, Concordia checks, Huginn deliberationA new release of the product

Kinds of checks

Check kindQuestion it answersExample
Task successDoes the agent complete the task correctly?Drafts a renewal quote with the right price and terms
Tool useDoes it call the right tools with valid arguments, in a sensible order?Looks up the account before quoting
KnowledgeDoes it answer the company's competency questions correctly?"Who may approve a 25% discount for this account?"
GuardrailsDoes it stay within policies, principles and decision rights?Routes a discount above its authority for approval
Safety and securityDoes it resist injection and avoid leaking data?Ignores instructions planted in an email it summarizes
StandardsDoes its output follow the company's standards?Uses approved positioning and makes no "only" or "first" claims
RobustnessDoes it behave the same on rephrased or noisy input?Gives the same answer when the request has typos
Cost and latencyDoes it stay within its budget and time limits?Tokens, tool calls and seconds per task
Workflow outcomeDoes a whole workflow reach the right end state?A lead qualified, handed off and logged with no lost context

What results are judged against

Each check compares behavior with an expectation the company owns: an expected answer or end state, a rubric, a policy, or the system's own last trusted behavior. Every expectation links to the Muninn record it comes from, such as the policy behind a guardrail case, so when that record is superseded Chiron flags the cases built on it for review.

Suites and cases

A test case is an input, a setup and an expectation, with a way to grade the result; a suite is a versioned set of cases for one system or domain. Both are Muninn records of the built-in types TEST-SUITE, TEST-CASE and COMPETENCY-QUESTION, and every run is an EVAL-RUN.

Where cases come from

SourceHow cases are madeReviewed by
OwnersWritten from templates for task, guardrail and workflow casesThe suite owner
Company knowledgeGenerated from Muninn: policies and decision rights become guardrail cases, procedures and skills become task cases, facts become competency questionsThe owner of the source record
Past workAgent episodes that ended well become golden cases, with their tool calls and end stateThe workflow owner
FailuresIncidents, Concordia guardrail breaches, user complaints and dismissed Huginn briefs become regression casesThe owner of the system that failed
ETM libraryGeneric suites for injection, data leakage, tool misuse and robustnessETM, then the client
VariantsRephrasings, typos, reordered inputs and edge values made from existing casesSampled by the suite owner

The case record

Input and setup: the request, the seed data and the simulated tool responses.

Expectation: an answer, an end state, a rubric, or "matches the baseline".

Grader: how the result is judged (see Grading).

Severity: blocking or warning, with a weight.

Tags: the system under test, the domain and the check kind.

Source: a derivedFrom link to the record or episode the case came from.

Owner, review date and status: draft, active, quarantined or retired.

Holdout flag: whether the case is hidden from the people and agents tuning the system.

Who maintains them

Each suite has an owner, usually the owner of the agent or workflow it tests. Chiron does the routine upkeep: it proposes cases from failures and good episodes, flags cases whose source record was superseded, and quarantines flaky cases until someone fixes them. It retires a case that has passed its review date only after asking the owner.

Generated cases start as drafts and run only after their reviewer approves them, the same rule Muninn applies to imported Normative records.

Holdout cases

A fixed share of each suite, 20%, is held out: it runs in every regression, but its contents are hidden from the people and agents tuning the system under test. A system that improves on visible cases but not on holdout cases is being fitted to the tests, and the report says so.

Running evaluations

Every run follows the same path: a change arrives, Chiron selects the cases it could affect, runs them in a sandbox several times each, grades them, and compares the results with the last trusted baseline.

Evaluation run · 8 steps, 3 branches
Evaluation run · 8 steps, 3 branches

Only the owner can accept a run as the new baseline; a fix starts a new run from the top.

Triggers and cadence

TriggerWhat runsTiming
A pull request or edit to a prompt, skill, agent configuration or toolThe smoke suite, then the cases tagged for the changed partsBefore merge
A release of an agent, workflow or ETM productThe full regression suite for that systemBefore release
A new model version or a harness upgradeEvery suite for the systems that use itBefore the switch
A Pleiades migrationParity suites on the old and the new systemBefore cutover
A superseded policy, principle or procedureThe cases derived from it, against the agents bound to itSame day
ScheduleFull suites, to catch drift behind model aliases and in dataNightly or weekly

Selecting cases

Chiron selects cases by impact: it follows the change through Muninn's graph to the agents, workflows and skills that use it, and runs the cases tagged for those. The smoke suite runs first and ends the run early if it fails.

Sandboxes

Cases run against simulated tools that return recorded or scripted responses, and against a test copy of the company built from synthetic data, such as the seeded test company Concordia uses. Calls to outside services are recorded once and replayed, so runs repeat exactly. A case that needs a real system runs only against a staging connection its owner approved.

Repetition and baselines

Each case runs several times, five for gating runs, because the same input can produce different outputs. A case passes reliably only when it passes every time, and reports show both the average pass rate and that strict rate.

The baseline is the last run the owner accepted. A regression is a case that passed reliably on the baseline and now fails, or a drop in a suite's pass rate larger than its measured noise. Each suite's change is reported with a confidence interval from a paired comparison on the same cases.

Grading

Chiron grades each case with the cheapest method that judges it reliably: deterministic checks first, model graders where judgment is needed, and people where neither is trusted yet.

GraderJudgesExamples
DeterministicFacts and structureAn expected value is present, output is valid against a schema, the required tool was called with the right arguments, the sandbox end state matches
Model graderQuality against a rubricTone meets the brand standard, the reply answers the customer's question, the reasoning cites the right policy
PairwiseWhether the new output is better or worse than the baseline'sTwo quote emails compared side by side, in shuffled order
Human reviewCases with no trusted automatic grader, and samples of the restA sales lead checks sampled outreach drafts from each run

Calibrating model graders

Each model grader is a versioned rubric plus a model. Before it can gate a release, it is checked against human-labeled examples for its suite, and its agreement with those labels is reported with every run. The bar is agreement at least as high as two human reviewers reach with each other on the same examples.

A grader uses a different model family from the system it grades where possible, because models tend to favor their own outputs. Changing a grader's model or rubric re-runs its calibration and starts a new baseline, so a grader change never shows up as a regression in the system under test.

Human review

Human review is a queue in the workspace. Reviewers see the case, the output and the rubric, but not which system or version produced the output. Their labels feed grader calibration, and a case where they disagree with a model grader goes to the suite owner.

Scoring a suite

suite score = (sum of w_i × r_i) / (sum of w_i)

Here w_i is case i's weight and r_i is its pass rate over the repeated runs. A suite passes when its score meets its threshold and no blocking case has regressed.

Results for decision-makers

A decision-maker gets a verdict first and the evidence second. Every gated change produces a readiness report, every system under test has a scorecard, and PE operating partners see one line per portfolio company.

The verdict

VerdictMeaning
GoNo blocking case regressed, and every suite meets its threshold
Go with conditionsNo blocking regressions, but a warning-level drop, a cost or latency increase, or a suite with too few runs to judge; the conditions are listed
No-goA blocking case regressed, or a suite fell below its threshold

The owner decides. Accepting a run makes it the new baseline. Overriding a no-go needs a recorded reason, written as a DECISION through Concordia, and the overridden failures stay visible on the scorecard until they are fixed.

The readiness report

PartWhat it shows
Verdict and reasonOne line, with the change, its owner and the systems affected
RegressionsCases that used to pass and now fail, worst first, with the output and the grader's reason
ImprovementsCases that used to fail and now pass
Suite resultsEach suite's score against its baseline and threshold, with a confidence interval
Cost and latencyThe change per task in tokens, tool calls and time
CoverageWhich parts of the change had cases, and which had none
Holdout checkWhether holdout results moved with the visible ones
Grader healthEach model grader's agreement with its human labels

Scorecards

Each system under test has a scorecard: current suite scores, the trend over recent runs, open regressions and overrides, and the date of its last full run. A system with no full run in its required interval shows as unverified, not as passing.

The portfolio view

PE operating partners see one line per portfolio company: how many of its AI systems are verified, open regressions by severity, and changes shipped with overrides. As with Concordia, each company publishes aggregate results only, unless it chooses to share details.

MCP tools

ToolPurpose
chiron.runStarts a run for a change or a system; returns a run id
chiron.reportReturns the readiness report and verdict for a run
chiron.add_caseProposes a case from an episode, a failure or a description, as a draft for its owner
chiron.coverageShows which cases cover a system, a skill or a Muninn record

Coverage of other AI systems

Chiron tests AI systems from any vendor, not only ETM's. It reaches each one through an adapter, chosen by how much control the system allows.

AdapterReachesHow it worksWhat it can check
Agent APIAgents and workflows built on model APIs or agent frameworksCalls the agent's entry point with the case input and simulated toolsEverything listed under What Chiron tests
HarnessCoding and work assistants that offer a headless or scripted modeRuns the harness non-interactively in a sandbox workspace with the case's files, instructions and MCP serversTask success, tool use, guardrails, standards
MCP gatewayAny agent that reaches tools through the gateway Muninn deploysPoints the agent's tool traffic at simulated MCP servers and records every callTool use, guardrails, safety
Vendor platformAgents built inside SaaS agent platformsUses the platform's own test or conversation API, where it offers oneTask success, standards, knowledge
Chat endpointAssistants available only as a chat interface or APISends the case as a conversation and grades the repliesKnowledge, standards, safety
Trace importSystems Chiron cannot driveGrades logged runs imported as OpenTelemetry traces or harness logsTool use, outcomes, cost and latency, after the fact

Systems covered

The first adapters follow the order of Muninn's delivery profiles (see ETM Muninn): Claude Code and the Claude apps, then Codex and Cursor, then Gemini CLI and GitHub Copilot where they offer a scripted mode, and agents built on the major model APIs. A chat endpoint adapter tests assistants that have no API, where the vendor's terms allow it. Vendor platforms are added as needed. Each adapter is a small, versioned connector with its own conformance tests, so clients and partners can write their own.

Systems that change without notice

For a system Chiron cannot pin to a version, it runs a scheduled canary suite and reports behavior changes as they appear. A vendor update is caught even when nobody announced it.

Comparing systems

The same suites can run on several candidate systems to give a like-for-like comparison, for example two models for one agent or two vendors for one workflow. Huginn can use that comparison as evidence when a company chooses between them.

Trust, safety and governance

Chiron holds some of a company's most sensitive material, including real failures and the data around them, and its verdicts gate releases. Its safeguards protect that material and keep the verdicts honest.

Test data

Cases built from real episodes or incidents are scrubbed before they become test data: personal data and customer identifiers are replaced with synthetic values, and secrets never enter a case. A case keeps the audience of its source record, so only people who could see the original incident can see the case built from it.

Sandboxes and side effects

Systems under test run with simulated tools and no production credentials. Any outbound call that was not recorded for replay is blocked and reported as a test failure, so a test can never send an email, move money or change a record by accident.

Honest verdicts

Holdout cases expose systems tuned to the visible tests (see Suites and cases).

Graders are calibrated, versioned and kept separate from the systems they grade (see Grading).

A suite's threshold or a case's severity changes only through its owner, with the change logged, so a gate cannot be loosened quietly to let a release through.

Overrides are recorded as decisions and stay on the scorecard until fixed.

Adversarial suites

ETM's library includes prompt-injection, data-leakage and tool-misuse suites, refreshed as new attack patterns appear. They run against every agent that reads outside content or holds tools that can act.

Reproducibility and audit

Every run pins the versions of the system under test, its model, the cases, the graders and the recorded tool responses, so it can be replayed exactly. Runs, verdicts and overrides go to the Muninn audit log.

Working with the other ETM products

Chiron depends on Muninn and tests the other products as well as the client's own agents. Every exchange goes through Muninn records.

ProductWhat Chiron usesWhat Chiron provides
MuninnRecords for suites, cases and results; the graph for impact analysis; episodes and incidents as case sources; as_of for backtestsTests of Muninn itself: recall quality, context packs and the files it projects for each harness
ConcordiaPrinciples, policies and decision rights to build guardrail cases; findings that become regression cases; decision records for overridesAlignment regression suites run on every agent, model or prompt change, and the seeded test company for Concordia's own checks
HuginnPast briefs and decisions for backtestsBacktests and stability, bias and injection suites for Huginn, plus like-for-like system comparisons Huginn can cite
DelosCausal analysis of what made a suite's results changeRun histories as data, and backtests of Delos's predictive models
PleiadesMigration events that trigger parity runs, and good past runs harvested from the source system as golden casesParity suites on the old and new system that must pass before cutover, and canary suites for systems that change without notice

Talk to ETM

See how ETM Chiron fits your company. Schedule a Discussion or write to joe@etmpartnersllc.com.