# Exact Review

> Bind review to the exact proposed content by digest, so what was accepted is provably what was applied.

**Tier:** 3 · **Normative weight:** implements `TM-CHG-001`
**Requires:** [Change Packet](/docs/truth-machine/kit/change-packet/)

## Problem it removes

Approval attaches to a description — a summary, a conversation, a title —
while the applied content is whatever the working tree held at apply time.
Between review and application the proposal can drift, and no one can later
prove it did not.

## Mechanism

Review binds an identified, exact proposal: the reviewer records the
digest of the precise content reviewed — in the Git-native shape, a
canonical serialization of the packet, or the staged diff — and acceptance
stores that digest in the change packet (`proposal_sha256`) together with
the reviewer and an acceptance evidence packet. At application, the digest
of what is being applied must equal what was accepted; any substitution is
detectable rather than trusted away (`TM-CHG-001`). Expected-state
identity travels with the proposal, so review is also bound to the state
it reasoned against.

Mechanisms vary — content-addressed proposals, signed envelopes, a Git
commit whose parent is verified — and the requirement is on the behavior,
not the mechanism: unreviewed substitution must be detectable.

## Cost

Authoring: a digest command and where to record it. Per change: one hash
at review and one comparison at apply. Per session: none.

## Do not adopt when

There is no reviewer separate from the applier, and no gap between
acceptance and application in which substitution could occur — though even
a single operator gains a self-audit trail from it.

## Evidence

Assessed in [kinra-corpus](/docs/truth-machine/implementations/kinra-corpus/)
and in the reference instance's own frozen standard, which reviews staged
binary diffs by digest.
[Project proposals](/docs/truth-machine/implementations/project-proposals/)
evidences exact-source review of proposal packets.

## Template

None — the fields live in the
[change packet template](/docs/truth-machine/templates/change-packet/change.toml);
the digest discipline is a convention.

## Related patterns

[Atomic Transition](/docs/truth-machine/kit/atomic-transition/) enforces
the matching expected state at apply time.
