Reconstruct the attributed mutation history from the stamps.

derive-changelog (reconstruct mutations)

Intent — A command that reconstructs the document's mutation history from the embedded stamp registry, turning the attribution stamps into a readable, attributed ChangeLog after the fact.

SummaryReconstruct the attributed mutation history from the stamps.
TargetProduct · Provenance & attribution
Formaudit-trail
EnforcementHard (deterministic) · audit record — a reproducible reconstruction from the embedded stamps

Motivation — the failure it kills

The stamps are embedded in the artifact, but embedded data isn't useful until it can be read back into a coherent history. Without a reader, attribution is present but inert — you have the evidence and no way to assemble it into "pass X made change Y." The failure is attribution that exists but can't be consumed, which shows up exactly when someone needs the history for RCA or user transparency.

Why it's not just "read the stamps by hand" (or "diff input vs output")

Reading raw stamps by hand is tedious and error-prone, and an input-vs-output *diff shows what changed but not who (which pass) or why. derive-changelog reconstructs the attributed* history from the stamp registry: pass → change, each entry carrying its visibility. An attributed reconstruction from provenance answers questions a raw diff cannot. It is the consumer that makes emitting the stamps worthwhile: no reader, no reason to stamp.

Mechanism

derive-changelog reads the embedded stamp registry and emits a ChangeLog JSON: each entry is a mutation attributed to its pass, with its visibility (Debug / Preserved). It runs after remediation against the produced artifact.

Prerequisites

Consequences & costs

Known uses

Related mechanisms