Context
Parent: #8828 (Phase 4 — trust surface). A contributor challenge ("why did you close me?") should be answerable by re-deriving the decision. Hosted inference is not bit-deterministic even at temperature 0, so the model call is treated as the ONE irreducible nondeterministic input, recorded verbatim; everything downstream must replay bit-exactly.
Requirements
- Audit the decision path for hidden nondeterminism: wall-clock reads, map/object iteration order, live GitHub API fetches during evaluation. Snapshot every external input (GitHub API responses included) into the decision record at decision time.
- A replay harness (operator CLI) that takes a persisted decision record and re-executes the deterministic pipeline — rule evaluation, CI parsing, gate logic, disposition — asserting bit-identical verdict and reason codes.
- Where the recorded model output is fed back in, replay MUST NOT re-query the model; a separate optional mode re-queries and reports an action-match rate (never labeled "reproducibility" — the docs state why).
- CI smoke: replay a small fixed corpus every run; full-corpus replay rides the golden-corpus job (sibling sub-issue).
- Divergence found by replay is a bug by definition: the harness exits non-zero with a structured diff of the first divergent stage.
Test Coverage Requirements
99%+ patch coverage, branch-counted, on the harness and any determinism fixes it forces; a seeded regression test per nondeterminism class found in the audit.
Expected Outcome
Every decision can be re-derived from its record; challenges get "replayed, same verdict, here is the clause" or "replayed, divergence found, bug filed" — nothing in between.
Context
Parent: #8828 (Phase 4 — trust surface). A contributor challenge ("why did you close me?") should be answerable by re-deriving the decision. Hosted inference is not bit-deterministic even at temperature 0, so the model call is treated as the ONE irreducible nondeterministic input, recorded verbatim; everything downstream must replay bit-exactly.
Requirements
Test Coverage Requirements
99%+ patch coverage, branch-counted, on the harness and any determinism fixes it forces; a seeded regression test per nondeterminism class found in the audit.
Expected Outcome
Every decision can be re-derived from its record; challenges get "replayed, same verdict, here is the clause" or "replayed, divergence found, bug filed" — nothing in between.