Every removal is recorded in provenance — what was removed, by whom, why.
RetentionPolicy.record_removals is a property that is always True: no configuration turns
auditability off.Always plan first
Dropping canonical evidence is privileged: it cascades to everything derived from it, because a claim whose source was removed can no longer be justified.Drop
Batch invalidation
When a producer turns out to have been wrong — a bad model version, a broken pipeline run — drop everything it made:Producer records a version: without it, invalidating one model release would mean
invalidating every one.
Re-derivation instead of loss
Naming a replacement makes the difference between a deletion and a re-derivation:Supersede and demote
Two gentler options, which change accessibility rather than membership. The block stays in the composition and keeps proving into the root.Prune
Pruning never decides what to forget; a drop already did. It reclaims what no retained composition still needs.v1 keeps the manifest and layers v1 points at.
Redact
For law and safety, not for cleanup. Wrong or obsolete knowledge is dropped; redaction destroys bytes that a retained root still names.RetentionPolicyError.