Concepts

Replay Policies

Model, tool, drift, budget, and temperature choices that define the strength and safety of replay evidence.

Replay policy tells isplay what is allowed to happen when a branch is compared to the base run. Policy is evidence metadata. A report that omits policy is incomplete.

Policy Shape

{
  "model": "recorded-only",
  "tool": "pause-for-fixture",
  "drift": "continue_to_terminal",
  "maxSteps": 100,
  "temperatureOverride": 0
}

Model Policies

PolicyMeaningEvidence strength
recorded-onlyCopy captured model outputs.Strongest local default for controlled event transformations.
determinism-probeRepeat execution to measure variance.Useful when an executor is wired; schema-supported.
pinned-liveRe-run with a pinned live model/config.Can test current provider behavior, but introduces drift.
compatible-liveRe-run with a compatible live model.Weaker for RCA because model identity may drift.
provider-fixtureUse provider-supplied fixture output.Depends on provider fixture quality.
blockedDo not allow model execution.Useful safety policy.

The current local replay engine supports recorded model behavior and fails fast on live policies unless an explicit executor is provided.

Tool Policies

PolicyMeaningAdvice
recorded-onlyOnly use captured tool outputs.Good when no branch changes tool args or tool order.
pause-for-fixturePause when a divergent output is missing.Recommended RCA default.
analyst-fixtureAllow analyst-supplied outputs.Keep provenance and author visible.
simulatedAllow simulator outputs.Use for declared simulators only.
live-readonlyAllow live read-only tools.Requires explicit safe executor.
live-explicitAllow live side-effecting tools with explicit approval.Treat as high risk.
blockedBlock tools.Useful for safety tests and negative controls.

Drift Policies

DriftUse when
stop_on_first_divergenceYou only need to isolate the earliest changed event.
continue_to_terminalYou need downstream behavior, metrics, and final output comparison.
continue_until_budgetYou want bounded continuation for long traces. Current local support is limited by maxSteps.

For root-cause analysis:

{
  "model": "recorded-only",
  "tool": "pause-for-fixture",
  "drift": "continue_to_terminal",
  "maxSteps": 100
}

This default avoids unbounded live calls, keeps missing divergent tool output explicit, and still allows downstream comparison when fixtures are available.

On this page