Rendered from docs/obligations/0200-three-graded-regression-runs-are-owed-a-fresh-recording-against-a-moved-taxonomy-lock.md in the Headwater corpus. Every document on this half of the site is typed by the taxonomy the descriptor names: corpus.json.

Three graded regression runs are owed a fresh recording against a moved taxonomy lock

Context

PR #963 (issue #935) declares a verification kind and a relation over it. That change moves .headwater/taxonomy.lock. Three probe-run transcripts stood at current and pinned the digest from before that move: 2026-09-16, 2026-09-17, and 2026-09-17-after-the-probe-corrections. headwater generate --check refuses to regenerate a current transcript's result against a digest the transcript was not planned against. Its own refusal names two remedies: record the session again, or retire the transcript to a terminal state. This corpus took the second remedy, so all three now stand at deprecated.

The remedy taken says nothing was re-verified. It says only that nobody may rely on the old recording anymore. HW-DR-0062 separates a transcript's state from a re-run of it. This record states the second half that ruling implies: a state change is not a measurement.

Obligation

Two live artifacts in this corpus depend on evidence one of the three retired runs carries, and no later run has repeated it. HW-OBL-0198 traces to the 2026-09-16 recording. The pointer-probe evaluation traces to the 2026-09-17-after-the-probe-corrections recording. Neither claim is false because its recording moved to deprecated, but neither has been checked against the tree this corpus now carries.

This corpus owes a fresh regression recording, run with tools/probe/probe-record.sh, over the same eight probes the retired runs graded. That recording runs against the lock verification and proven_by now carry. A later taxonomy change repeats this obligation for whatever it retires in turn. No mechanism today assigns that recording to a person or a stage of the build order, before or after such a change lands.

Discharge

A new docs/probe-runs/ transcript, status: current, planned against the lock this corpus carries once #935 merges, with a docs/probe-results/ projection headwater generate writes from it. The two artifacts named above are read again by that recording's own grading, and this record is discharged when they are.

A fresh recording must now run in a sealed workspace (#1229). tools/probe/seal.sh removes the three probe shelves and .headwater/export.json. It removes every document under docs/ that names a selected probe, and every answer key that .headwater/probe.yml declares for one. For each document that it removes, it also removes the identifier claim under .headwater/ids/. It also removes each line, in any file of the workspace, that holds the identifier or the file name of that document. A JSON file loses the array element that names the document. A slug of one word, or a file name that another file shares such as README, removes no line. It removes every file outside docs/ that names a selected probe, unless folds: in .headwater/probe.yml declares the file a fold. A fold stays as a file. tools/probe/probe-record.sh refuses a workspace that still holds the instrument, or a file that names the probe and is not a fold. The three runs that this record names ran before the seal existed. So a recording that repeats them as they ran does not discharge this record.