Skip to content

Bind review conclusions to evidence and reject stale submissions - #5

Merged
dev-belly merged 1 commit into
mainfrom
codex/evidence-bound-review-20261012
Oct 12, 2026
Merged

dev-belly merged 1 commit into
mainfrom
codex/evidence-bound-review-20261012

Conversation

@dev-belly

Copy link
Copy Markdown
Owner

Problem and result

A finding can retain its stable ID when linked source values change. Its last closed review previously remained current after a rule rerun, even though that decision assessed different evidence.

Bind each new review to the complete automated finding fingerprint and keep every earlier review in history. Changed evidence now returns the current finding to pending; identical reruns preserve its decision. The workbench records the displayed review revision and requires an explicit reload after another review or evidence change. Revision validation, review insertion and evidence binding commit atomically, with a real per-finding write increment rejecting simultaneous saves of the same revision.

Portable evidence and compatibility

Format 3 bundles include review evidence bindings. Verification replays source rows, recomputes the current fingerprint and derives the applicable decision before comparing CSV and workpapers. Format 2 / version 0.2.7 remains verifiable and is explicitly reported as unbound. Legacy databases keep their review history but require reassessment because their original evidence fingerprint was never recorded. Historical source snapshots, reviewer authentication and signatures remain outside scope; this is a local synthetic audit workbench.

Validation

  • Windows / Python 3.12.13: full pytest suite, 90 passed; Ruff and git diff --check pass.
  • Actual CLI export and verify replay 12 findings across 28 source files.
  • Regression tests cover CH002 approval-time correction with unchanged finding ID, unaffected findings, stale forms, simultaneous reviewers, atomic rollback, migration, legacy bundle compatibility and a rehashed export falsely claiming an old closed decision.

@dev-belly
dev-belly merged commit 58b03c1 into main Oct 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant