fix(render): S4 chunk 1 landing — the four comment sentences the round-2 gate-honesty lens flagged (lead correction; code unchanged)

Round 2 (9ba8f013e) passed the retail and production lenses and every gate
and mutation was reproduced by all three; the gate-honesty lens failed it
on comment truth only: the terrace-edge Fact repeated round 1's false
'PC already matched' sentence, the sixth Fact claimed a 12/4 guard split
and a preamble seed the gate does not evaluate, and WalkVisibilityMath's
scan note cited a pin that does not exist and a callers argument that
was not the real justification. A third implementer round is barred by
the campaign rule, so the lead corrected the sentences at landing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-03 23:40:00 +02:00
parent 323f5a334d
commit 766f9e749d
2 changed files with 26 additions and 16 deletions

View file

@ -341,10 +341,14 @@ public sealed partial class WalkTraceConformanceTests
/// from terrace-edge's own first observed sample (<c>counterBefore=2</c>,
/// carried in the file's pre-"F 1" preamble text — see
/// <see cref="WalkAlphaDepthTrace.LoadInitialCounter"/>'s own doc
/// comment) closes fix round 1's KnownFailure: both of this fixture's
/// PM events now read the correct pre-capture value instead of a cold
/// <c>0</c>, and its PC sequence (<c>ov=0</c> throughout — this pose
/// never runs a qualifying interior turn at all) already matched.
/// comment) closes fix round 1's KnownFailure. Under a cold <c>0</c>
/// BOTH sequences diverged in the counter field — PM expected
/// <c>(1,2),(1,2)</c> and PC expected <c>(0,2,0),(0,2,0)</c> against a
/// cold <c>(1,0)</c>/<c>(0,0,0)</c> — round 1's write-up wrongly called
/// the PC side a match, and round 2's gate-honesty lens caught the same
/// sentence re-worded here (lead correction at landing). Seeded, both
/// sequences match exactly; this pose never runs a qualifying interior
/// turn, so PC stays <c>ov=0</c> with the seeded counter.
/// </summary>
[Fact]
public void AlphaDepthTranscript_TerraceEdge_MatchesRetailFrame2()
@ -354,14 +358,19 @@ public sealed partial class WalkTraceConformanceTests
/// S4-c1 fix round 2, R2-4: the sixth pose (#464 artifact pose, root
/// <c>0xF4180114</c>, seven outside views). Sixteen building punches —
/// all <c>mode=1</c>, all <c>counterBefore=0008</c> (far-Z punches never
/// touch the counter) — of which twelve are guard-rejected on local
/// <c>y=12.000</c> (WalkVisibilityMath's ±12 boundary guard, S4-c1 F1),
/// leaving four admitted; then eight true-depth exit seals with
/// touch the counter) — then eight true-depth exit seals with
/// <c>counterBefore</c> running <c>0..7</c> against the root's own
/// <c>ov=7</c> read-then-zero, settling this fixture's own steady-state
/// counter at <c>8</c> — the same value <see cref="WalkAlphaDepthTrace.LoadInitialCounter"/>
/// reads back out of this fixture's own preamble, confirming the seed
/// and the replay agree on the same persistent value.
/// <c>ov=7</c> read-then-zero. This gate compares only the
/// <c>(mode, counterBefore)</c> and <c>(ov, counter, forceClear)</c>
/// tuples: it does NOT observe which of the sixteen punches the ±12
/// boundary guard rejects (the sink records every attempt before the
/// guard runs; the <c>pmverts</c> capture and the DAT, not this Fact,
/// show twelve of them lying on local <c>y=12.000</c> — S4 packet §9).
/// The seed <c>8</c> is the first PM/PC sample
/// <see cref="WalkAlphaDepthTrace.LoadInitialCounter"/> finds in the
/// file, which for this fixture lies inside frame 1 (this capture has no
/// pre-"F 1" preamble sample); with the priming pass gone, frame 2's PC
/// <c>counter</c> equals that seed by construction in steady state.
/// </summary>
[Fact]
public void AlphaDepthTranscript_CathedralStairArch_MatchesRetailFrame2()