As a data maintainer, I want the anchor-helper scaffolder to warn (or preserve) when its refresh would discard a value I typed into an eye-read cell, so that a forgotten ! mark cannot silently lose part of a 132-cell read.
What
scaffold_anchor_helpers --write re-runs preserve !/? marks and refresh unmarked cells with the extractor's current prediction (ADR-048). When the maintainer enters a bare value at a cell whose prediction is — (extractor-empty), the refresh clobbers the entered value back to — with no signal. Working as documented, but it is silent data loss for a one-character marking slip.
Concrete case (S207, PR #1378): zeiss-touit-50mm-f2-8-macro max / 14.0 mm / 20S — maintainer entered 0.80 bare; eyeread --apply (run first) captured 0.80 into GT, then the canonicalization refresh reverted the cell to —, leaving file and GT disagreeing until hand-restored as 0.80!.
Why
Eye-reads are the project's Tier 1 ground truth (epic #790 / #1332); the marking convention is easy to slip on exactly the cells where the maintainer disagrees with an empty prediction — which are the highest-value corrections.
Acceptance criteria
As a data maintainer, I want the anchor-helper scaffolder to warn (or preserve) when its refresh would discard a value I typed into an eye-read cell, so that a forgotten
!mark cannot silently lose part of a 132-cell read.What
scaffold_anchor_helpers --writere-runs preserve!/?marks and refresh unmarked cells with the extractor's current prediction (ADR-048). When the maintainer enters a bare value at a cell whose prediction is—(extractor-empty), the refresh clobbers the entered value back to—with no signal. Working as documented, but it is silent data loss for a one-character marking slip.Concrete case (S207, PR #1378):
zeiss-touit-50mm-f2-8-macromax / 14.0 mm / 20S — maintainer entered0.80bare;eyeread --apply(run first) captured 0.80 into GT, then the canonicalization refresh reverted the cell to—, leaving file and GT disagreeing until hand-restored as0.80!.Why
Eye-reads are the project's Tier 1 ground truth (epic #790 / #1332); the marking convention is easy to slip on exactly the cells where the maintainer disagrees with an empty prediction — which are the highest-value corrections.
Acceptance criteria