# Publication Freeze

> Freeze what crossed an outside boundary as an immutable, digest-identified record, separate from the truth that keeps moving.

**Tier:** 4 · **Normative weight:** implements `TM-PUB-001`–`TM-PUB-004`
**Requires:** [Evidence Packet](/docs/truth-machine/kit/evidence-packet/)

## Problem it removes

The site was redeployed, the report re-sent, the artifact rebuilt — and
now nobody can say what any recipient actually received. Regenerating from
later truth and calling it the original quietly rewrites the outward
record.

## Mechanism

A publication packet freezes each deliberate boundary crossing: the exact
artifact digest, file count, and byte size (`TM-PUB-001`); the source
revision and authored material it was produced from (`TM-PUB-002`); the
reviewer, deployment identity, public URL, and the observation that
verified it. The packet is immutable — a later artifact gets a new packet
that may name the exact predecessor it supersedes, and the predecessor
remains the historical account of what it froze (`TM-PUB-003`). Lifecycle
states stay distinct (`TM-PUB-004`): a successful local build proves a
candidate can be constructed, not that it was reviewed, deployed,
reachable, or consumed — each of those is its own recorded observation.

## Cost

Authoring: the packet schema exists; the first freeze is an hour. Per
change: one packet per real publication event — releases, not previews.
Per session: none.

## Do not adopt when

Nothing consequential crosses a boundary: no deployments, no sent
documents, no artifacts a recipient will hold you to.

## Evidence

The reference instance's `TMP-0001` froze this documentation's first
public artifact and recorded its verification (frozen history, per its
charter). Assessed in [flow](/docs/truth-machine/implementations/flow/)
(customer-facing publication freeze) and
[cloud-ops](/docs/truth-machine/implementations/cloud-ops/) (release and
rollback identity). Validated by
[`publication.schema.json`](/docs/truth-machine/schemas/publication.schema.json).

## Template

None this pass — copy the shape from
[`publication.schema.json`](/docs/truth-machine/schemas/publication.schema.json)
and the [publication contract](/docs/truth-machine/reference/publication/).

## Related patterns

[Generated Artifacts](/docs/truth-machine/kit/generated-artifacts/)
produces the deterministic candidate a freeze binds.
[Facets](/docs/truth-machine/patterns/facets/) is the boundary surface a
publication often ships to.
