# Atomic Transition

> Apply an accepted change so that current truth, its record, and its ancestry advance together or not at all.

**Tier:** 3 · **Normative weight:** implements `TM-CHG-003`–`TM-CHG-008`
**Requires:** [Change Packet](/docs/truth-machine/kit/change-packet/),
[Typed Current Projection](/docs/truth-machine/kit/current-projection/)

## Problem it removes

The change is applied, then the record is updated, then the index —
usually. A crash, interruption, or forgotten step between them leaves
current truth that cannot name its change, or a change record describing a
state that never fully arrived.

## Mechanism

In the Git-native shape, one commit carries the whole coherence boundary:
the accepted change packet, the record it produces, and the updated
current projection. Before that commit, application verifies the expected
state still holds — the proposal's `expected_revision` matches
(`TM-CHG-003`) — and all invariants pass (`TM-CHG-005`), typically by
running the governed read against the staged result. Stale work advances
nothing (`TM-CHG-006`); a proposal whose expected state moved goes back to
reconciliation, never gets rebased through. Invalid work advances nothing
(`TM-CHG-007`). The commit itself is what makes truth and its change
record durable as one recoverable operation (`TM-CHG-004`, `TM-CHG-008`).

A reader can verify atomicity after the fact: the commit that introduces a
record also touches its change packet and the projection, and the commit's
parent is the proposal's expected revision.

## Cost

Authoring: a documented ritual, and optionally a check in the governed
read that asserts past transitions were atomic. Per change: staging
discipline — everything in one commit, verified before push. Per session:
none.

## Do not adopt when

There are no change packets to apply. For source code, Git commits are
already atomic transitions; the pattern adds nothing there.

## Evidence

Assessed in [kinra-corpus](/docs/truth-machine/implementations/kinra-corpus/),
whose reader mechanically verifies that each record, its change, and the
current selection moved in one commit; the reference instance's frozen
history carries the same shape. The
[flow](/docs/truth-machine/implementations/flow/) apply path implements it
transactionally.

## Template

None — adopted by convention; the ritual lives in the packet directories'
scoped guidance.

## Related patterns

[Exact Review](/docs/truth-machine/kit/exact-review/) is the gate this
transition passes through;
[Governed Read](/docs/truth-machine/kit/governed-read/) is the validation
it runs before visibility.
