re: the coverage fix moved 29 anchors, 22 of which carried another resource's geometry

Whole-disc comparison at XBG7_COVER_SLACK=4 vs =1: 29 resources changed anchor,
3 stopped decoding, 6207 unchanged. Of the moved ones present in several
containers, 0 matched the sibling consensus before and 9 after -- it moved them
onto the block their own copies agree on and none away. 22 of 29 were carrying
ANOTHER resource's geometry under their own name, including a shift chain in
Stage_S28 where n054_bdy_l held n056_bdy_l's mesh and n056_bdy_l held
n055_bdy_l's. Confidently-wrong-under-the-right-name is invisible to every
count-based metric; the coverage invariant is what separated them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 17:40:22 +00:00
parent 095816834a
commit 0625976ed7

View File

@@ -1097,6 +1097,33 @@ that carry it) and `t901_e01_D` is 58×59×3013 (a mast). And `f101_bdy_01` flag
at 6× while being **capture-verified exact** in the truth table — a useful at 6× while being **capture-verified exact** in the truth table — a useful
reminder that a bulky hull is not a bug. reminder that a bulky hull is not a bug.
### What the exact-coverage fix actually reached
The fix was justified on one resource (`e106_bdy_03`) and one render. Comparing
whole-disc decodes at `XBG7_COVER_SLACK=4` and `=1` shows what else moved:
- **29 resources changed anchor**, 3 stopped decoding, 6 207 unchanged.
- Of the moved ones that appear in several containers, **0 matched the sibling
consensus before the fix and 9 match it after** — the fix moved them onto the
block their own copies agree on, and moved none away from it.
- **22 of the 29 were carrying another resource's geometry** under their own
name.
The clearest case is a **shift chain** in `Stage_S28`: `n054_bdy_l` was decoding
`n056_bdy_l`'s geometry, and `n056_bdy_l` was decoding `n055_bdy_l`'s — each
resource landing on a neighbour's block, all of them plausible-looking meshes of
the right vertex count. `n054_bdy_l` decoded `(396, 315, 328)` in four containers
where its own copies agree on `(439, 284, 270)`.
That is the failure mode that matters for a reimplementation: not a missing
decode, but a **confidently wrong one under the right name** — and no
count-based metric can see it, because every count is correct. It took the
coverage invariant (real blocks reach their pool's last vertex) to separate them.
(Seven of the 29 carried geometry no resource claims. And the `ptc_pack.xpr`
`eff_*` entries in the list are small effect quads that all share one span, so
their "owner" attribution is weak — noted rather than counted.)
### The containment screen, and a correction: the assembler is NOT at fault ### The containment screen, and a correction: the assembler is NOT at fault
`examples/envelope_screen.rs` is the metric the eye actually used: assemble a `examples/envelope_screen.rs` is the metric the eye actually used: assemble a