From 5c6e53b0a4168cda482b01e5b3df46401b6e1be6 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 7 Jun 2026 22:12:38 +0200 Subject: [PATCH] docs: add verify-first kickoff prompt to the render-residuals handoff (treat the diagnosis as a suspect statement) Co-Authored-By: Claude Opus 4.8 (1M context) --- ...flip-render-residuals-diagnosis-handoff.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/docs/research/2026-06-07-cutover-flip-render-residuals-diagnosis-handoff.md b/docs/research/2026-06-07-cutover-flip-render-residuals-diagnosis-handoff.md index 4e806859..1f2bb6af 100644 --- a/docs/research/2026-06-07-cutover-flip-render-residuals-diagnosis-handoff.md +++ b/docs/research/2026-06-07-cutover-flip-render-residuals-diagnosis-handoff.md @@ -123,3 +123,76 @@ read. This answers whether F2 is "build back faces" or "restore a pre-flip draw" - Memory: `project_indoor_flap_rootcause` (update with this corrected diagnosis), `reference_render_pipeline_state`, `feedback_render_downstream_of_membership` (the oscillation IS a membership/flood-stability bug, per that note). + +--- + +## 7. Next-session kickoff prompt — VERIFY-FIRST (the diagnosis above is a SUSPECT'S statement) + +This session reached the §3 diagnosis only AFTER three wrong guesses, so the next session must verify it +cold before building any fix. Paste this to start: + +``` +Continue acdream M1.5 render unification. Branch claude/thirsty-goldberg-51bb9b, HEAD 774cb22. +PowerShell on Windows; build before launch; live ACE 127.0.0.1:9000, testaccount/testpassword, char ++Acdream (spawns at the Holtburg/Arcanum cottage, landblock 0xA9B4). + +The render-unification CUTOVER FLIP is committed. It is CLAIMED to have killed the two-branch render +"flap" but left two residuals — see-through building walls and oscillation — and a root-cause diagnosis +was reached. That diagnosis was only reached AFTER THREE WRONG GUESSES in the same session, so DO NOT +trust it. Your FIRST job is to verify it cold, with fresh primary evidence, and you are explicitly +licensed to REFUTE it. + +READ (as a suspect's statement, NOT as truth): +- docs/research/2026-06-07-cutover-flip-render-residuals-diagnosis-handoff.md (claimed diagnosis + + do-not-retry list + the probe numbers it rests on) +- memory project_indoor_flap_rootcause (corrected diagnosis claim) + +=== TASK 1 — UNBIASED VERIFICATION (complete fully BEFORE proposing any fix) === +Do not anchor on the handoff's conclusions — re-derive each from independent evidence. For each claim, +report CONFIRMED / REFUTED / CORRECTED with the evidence. If ANY load-bearing claim is refuted, the +diagnosis is wrong: STOP, re-diagnose, do not build a fix on it. Prefer dispatching the verification to a +fresh subagent that has NOT seen the conclusions, to avoid confirmation bias. + +1.1 "The branch-toggle flap is gone (one render path)." Launch (ACDREAM_PROBE_FLAP=1); walk + indoor<->outdoor and pan the camera at a doorway; RLE the [render-sig] `branch` field. Expected if + true: zero `branch=OutdoorRoot` after spawn. Refute if OutdoorRoot reappears. + +1.2 "Oscillation == outdoor-node flood membership instability." Add a probe logging + pvFrame.OrderedVisibleCells.Count per outdoor-root frame WHILE STANDING PERFECTLY STILL at the + cottage. Swings frame-to-frame (e.g. 1<->13) -> unstable (confirms). Constant while the user still + sees oscillation -> DIFFERENT cause (refute + re-diagnose). Correlate the swings with what visibly + flickers. + +1.3 "See-through == single-sided EnvCell walls." Dump the actual sides_type distribution of a REAL + Holtburg building cell's wall polygons (Environment dat -> CellStruct, focused test/tool over the + cottage cell). Confirm walls are predominantly single-sided AND that PrepareCellStructMeshData + (ObjectMeshManager ~1299-1310) builds a back face only for SidesType None/Clockwise (not + CounterClockwise). FALSIFIABLE cross-check: temporarily force the EnvCell shell pass to CullMode.None + (double-sided) and confirm THAT alone makes the walls solid from outside; revert after. + +1.4 "The building WALLS are the EnvCell shells; the ModelId 'shell' is only a partial frame." Re-add the + [bshell] probe (total/withMesh/inOutdoorPartition/envCellsFlooded). Independently inspect what the + building ModelId Setup geometry IS (poly count, bbox) vs the EnvCell shell. Reproduce or refute the + skip-all-interiors experiment (building went fully see-through). + +1.5 (OPEN, decides the fix shape) "Pre-flip buildings were solid from outside — what drew the walls?" + Check out the pre-flip commit (parent of 445e861), launch, confirm buildings solid from outside, + trace what drew the solid walls (old outdoor `else` block GameWindow.cs ~7557-7663 / + DrawPortal+BuildFromExterior / a global EnvCell-shell render). Decides whether F2 is "build missing + back faces" or "restore a pre-flip draw the flip replaced". + +DO-NOT-RETRY (proven failures last session): the slot-0 skip (made oscillation worse); skipping all +interior shells / gating DrawEnvCellShells off for the outdoor root (building fully see-through — already +ran); any render-side debounce/grace (forbidden, no-workarounds). + +=== TASK 2 — only AFTER Task 1 confirms or corrects the diagnosis === +Implement F1 (stabilise flood membership — e.g. ground building membership in the cell stab_list/PVS +instead of the per-frame portal-side test) and F2 (the verified wall-sidedness fix). TDD where possible; +each lands behind a USER VISUAL GATE at the cottage. Do not delete the dead DrawPortal/BuildFromExterior/ +outdoor-else paths until the residuals are visually confirmed fixed. +``` + +**Why verify-first:** the fastest single decisive test is the §1.3 falsifiable cross-check (force +`CullMode.None`; if walls go solid from outside, the single-sided-wall hypothesis is confirmed and F2 is +"build back faces"). Run the verification under a fresh subagent so it can't rubber-stamp these +conclusions.