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:
parent
323f5a334d
commit
766f9e749d
2 changed files with 26 additions and 16 deletions
|
|
@ -232,17 +232,18 @@ public static class WalkVisibilityMath
|
|||
/// Id range: the full <c>0x0000</c>-<c>0xFFFF</c> landblock-prefix
|
||||
/// space, each landblock's cells enumerated <c>0x0100</c> through
|
||||
/// <c>0x0100 + LandBlockInfo.NumCells - 1</c> (the same range
|
||||
/// <c>CellStructSurfaceConstructionInstalledDatTests</c>' own
|
||||
/// independent OH2 walk uses — its pinned
|
||||
/// <c>landblocksWithCells=3,405</c> diagnostic already agrees). What is
|
||||
/// <c>CellStructSurfaceConstructionInstalledDatTests</c>' own OH2 walk
|
||||
/// enumerates; that test reports its landblock count as a diagnostic
|
||||
/// and does not pin the value). What is
|
||||
/// counted: one entry per <c>CellPortal</c> whose <c>PolygonId</c>
|
||||
/// resolves in its cell's <c>CellStruct.Polygons</c> AND has >=3
|
||||
/// vertex ids that all resolve in <c>CellStruct.VertexArray</c> — an
|
||||
/// unresolvable <c>PolygonId</c>, a <3-vertex polygon, or a cell
|
||||
/// whose own <c>EnvironmentId</c>/<c>CellStructure</c> does not resolve
|
||||
/// is skipped ENTIRELY (not counted toward the total or either plane
|
||||
/// tally, matching this method's own live callers, which never see such
|
||||
/// a polygon in the first place). Under that rule: 3,405 landblocks with
|
||||
/// tally; no authored portal polygon has fewer than three vertices, so
|
||||
/// the rule excludes only unresolvable data, none of which reaches this
|
||||
/// method's live callers). Under that rule: 3,405 landblocks with
|
||||
/// cells, 1,854,237 portal polygons; 2,889 with at least one vertex on a
|
||||
/// +/-12 plane, 2,163 with EVERY vertex on the SAME plane — all 2,163
|
||||
/// are EXIT portals (<c>OtherCellId == 0xFFFF</c>; 0 interior portals
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue