agent-harness GitHub

Replay lab

See what a policy change actually changes. Explore 50 recorded public-fixture command cases through two versions of a toy guard. Follow a case, filter the differences, then adjust a sample regression gate.

The corpus has 40 synthetic cases and 10 fully re-authored historical/opaque shapes. This is a teaching example, separate from the current deny floor. It displays checked-in decisions; it does not run commands, contact a model, or measure a live deployment.

RECORDED EVIDENCE / PUBLIC FIXTURE

The interactive report is loading. The recorded summary and reproduction commands below work without JavaScript.

1. Follow a case

Guard v2 exempts help and dry runs, but accidentally drops its git clean rule. Start with the regression, then compare a benign improvement.

Choose a recorded case

2. Try a regression gate

Choose which transitions fail this sample gate. It always checks all 50 cases. These controls change only this browser demonstration.

Fail when a case is…

A transition is not a verdict about safety. Newly allowed help can be an improvement; newly allowed destructive cleanup can be a regression. The case rationale supplies that context.

3. Inspect the evidence

Filter recorded cases

What the recorded run shows

Transition Cases How to read it
Newly allowed 4 Three benign cases improve; one dangerous cleanup case regresses.
Newly denied 1 The candidate catches the corpus’s force-with-lease case.
Unchanged 45 An unchanged decision can still be wrong. Inspect the corpus label.
Newly indeterminate 0 Neither toy hook fails to produce a determinate decision here.

The default gate fails because it rejects any newly allowed case. These are the toy guards’ recorded decisions on charter-v0.1, not measurements of the current floor. The labels describe this teaching corpus; they are not universal shell-command classifications.

Sources: recorded report, toy guard walkthrough, baseline source, candidate source.

Reproduce it locally

From the repository root, Python 3.11 or newer can reproduce the comparison from recorded decisions:

python -m replay_v0.app replay \
  --baseline recorded:examples/toy-guard/report/baseline/decisions.jsonl \
  --candidate recorded:examples/toy-guard/report/candidate/decisions.jsonl \
  --corpus replay_v0/corpora/charter \
  --output reports/toy-guard-recorded

Expect exit 1 with newly-allowed: 4 in summary.json: the comparison ran and its regression gate failed. The toy guard walkthrough also shows how to invoke the two hooks afresh. Replay sends command text to the policies; it does not execute the recorded commands.

Put the tools together

Declare a policy, inspect its wiring, compare decisions and review the evidence

Use doctor and audit to inspect the declaration and wiring. Use replay to measure a proposed policy change on a pinned corpus. Review the changed cases before shipping. Runtime trust and live canaries remain separate evidence; see the floor limits and capability ledger.