Check reference

Reaffirm a mirror after content changes

A source and its port can keep identical annotation coverage while their implementations diverge. mirror_stale detects changes to either file set since the mirror was last reaffirmed.

What the check observes

For each declared mirror, Proof hashes the files selected by its source and target paths and compares the two aggregate digests with the saved reaffirmation. A missing record, changed source digest, or changed target digest requires review. Overlapping paths contribute to both file sets. The check does not write a new reaffirmation or change the mirror's lifecycle status.

Example: a source fix adds no new annotation

Illustrative case. The original parser fixes an off-by-one error inside an already annotated function. Annotation parity stays unchanged, but the source content digest changes. The port now needs an impact decision and, where applicable, the corresponding repair.

proof mirror status MIR-3
proof mirror reaffirm MIR-3 --dry-run \
  --reason "Reviewed the parser boundary repair and the target's corresponding regression evidence"

Resolve the finding

  1. Inspect both changed file sets and the obligations the mirror governs.
  2. Port the intended behavior or explain with evidence why the target already meets it. Review regression results and any remaining parity gaps.
  3. Record a substantive reaffirmation only when the actor is authorized by the project's approval policy. Preserve remaining mirror work instead of treating reaffirmation as completion.

Run and interpret

proof audit --check mirror_stale --verbose

This verify-stage check is on by default. Finding severity follows mirror status: planned is informational, in_progress warns, and complete errors. Reaffirmation uses the most restrictive assurance level governed by the mirror and the configured agent delegation policy.

Matching digests show that the reviewed file sets have not changed. They do not prove equivalence between two implementations. Reaffirmation can be recorded with parity gaps still open; it does not complete the mirror. A reason must be substantive, not a replacement for the missing evidence.

Continue from here

Review a migration's behavior. Review source changes against intent.

Bring one source fix and its corresponding port to review the retained guarantees. Bring a change to Proof.