# Test refinement execution record Completed 11 October 2026 (Sydney); implementation began 10 October. Changes remain uncommitted in the existing checkout to preserve the unrelated uncommitted foundation/terrain work. No push or blanket staging. Authorized by the user's implementation request on 10 October 2026. Plan: [test suite and agent guidance](superpowers/plans/2026-10-10-test-suite-and-agent-guidance.md). ## Boundaries and preflight Work in the existing `prototype-foundation` checkout because the connected Editor and current uncommitted gameplay/map repairs are the required baseline. Preserve all preexisting edits, GUIDs, rebaked navigation, pins and scene content. No gameplay, prefab, package, bake or tuning change is authorized by this slice. No push or blanket staging. Preflight interfaces: Tasks 2–3 produce the exact fixture API and immutable runner reports consumed by Tasks 1/6 documentation. Task 4 produces a sidecar without replacing historical result schemas. Task 7 validates their integrated behavior. Documentation must describe implemented APIs, not aspirational signatures. Verification packet: Slice A affects Editor request ownership, discovery, report publication and fixture metadata/timing. Required: runner contracts RED/GREEN, exact discovery membership, focused native/request checks, then one integrated EditMode/PlayMode pass. Slice B affects launcher evidence and cleanup scheduling. Required: controlled helper contracts RED/GREEN, parser checks, affected two/four arena cohorts and representative owner-input cohort. Existing player builds are eligible only if their actual managed/assets identities match and no runtime source changes. Player rebuild/release gates are conditional on compiled player footprint, which this plan does not intentionally change. ## Design decisions Three independent technical/gameplay/UX reviews approve the bounded approach. Public Unity 1.8.0 callbacks have no job GUID; monitor observed starts and exact leaf identities, persist state across reload and fail closed on observed conflicts. Never call internal active-run APIs or cancel unrelated jobs. A timeout does not release ownership. Reports use unique directories; legacy copies are create-only. Preserve arena assertions, deadlines, default ten reset cycles and lifecycle checks; recommend explicit two-cycle routine runs. Ruling: retain the existing non-main checkout rather than moving to a clean worktree, which would omit the uncommitted accepted repairs and disconnect the actual Editor baseline. Cost if wrong: changes must be separated by explicit file/diff review; no blanket commit is allowed. Ruling: defer optional Task 5 early-stop. Retained campaign has nineteen attempts/forty-four captures, four incomplete cells and no demonstrated useful surplus qualified observation. Preserve the existing predicate, budgets and provenance; no new attempts. Cost if wrong: a future genuinely qualified run may observe longer than necessary. ## Progress - Preimplementation reviews complete for Slice A and Slice B; independent recommendations retained in task conversation. - Tasks 1/6: catalogue/procedure/policy implemented and linked; final source-link refresh/check records the delivered status. - Tasks 2/3: runner, rules/tests and fixture metadata/timing implemented; ownership/reload/recovery, full EditMode and the repaired native fixture verified. - Task 4: helper and both harnesses implemented; controlled23/23 and representative live two/four arena plus two-owner checks pass. - Task 5: deferred under its explicit conditional acceptance. - Task 7: completed scoped integrated verification: full EditMode1298; original full PlayMode193passes/one retained failure, then repaired arena9/9GREEN. All194 original PlayMode leaves remain accounted for; this is explicitly compatible aggregate evidence, not one fresh full-suite GREEN. Three final perspectives approve. Historical evidence remains historical. New verification results and limitations are appended below as they become available. ## Fresh controlled and launcher evidence - Helper contracts: missing functionality produced RED; cleanup ordering added two RED cases, and failure classification added three RED cases, followed by **20 passed / 0 failed**. Three later protocol/build cases bring the final controlled total to23 below. Rejection checks refuse command-not-found errors so absent functions cannot masquerade as valid rejection. Fixtures live in unique temporary directories; no players launched by these contracts. - Both launchers' missing-build paths exit1, finalize unavailable/nonpassing identity and cleanup/timing evidence: `TestResults/debug-arena-bc6069ba0f134074a3e97bc56bd6a142` and `owner-arrival-input-e8d75d364b8e46379262ecf5ad442c3e`. These earlier artifacts precede the export-phase naming correction and are failure-path proof, not final timing samples. - Actual two-player arena: `TestResults/debug-arena-1f9a2a7d062a4a50a5dd2932db794f3a`, application build `2a758c5985b64455a8e2a6f6cecaa5bc`, managed SHA256 `6F82ABC62CC08435F4B29F3BC866A61241D59DE9759A8C3D2DE82635E2AD6CB4`,75/15/1, explicit reset2. **11 reports, 3 lifecycle checks, zero cleanup errors**, exit0 and sidecar accepted. Total203.587s, setup19.516s, cleanup0.082s, final identity recheck0.391s. The first uncached identity scan measured14.60s separately; hashing overhead is real, not a promised saving. A later timing-only correction moves publication-phase start after identity recheck; this two-player report's0.403s publication phase includes0.391s identity recheck and must not be summed. Gameplay/cleanup assertions are compatible with that final correction; four-player final source verifies the corrected phase boundary. - Documentation collector/artwork contracts: **30 passed**,9.532s, using the existing pinned Wiki venv. Final snapshot freshness/link verification waits for source freeze. ## Review decisions and remaining verification Independent gameplay/UX delta reviews found misleading launcher failure classes and export phases ending before result publication. Corrected explicit assertion/identity/launcher classification with controlled RED→GREEN, and separate identity/result-publication timings. Total timing excludes the sidecar's own final serialization/write, stated in report/procedure. Corrected the catalogue's display-selection row: it launches graphical players and depends on actual Windows displays, rather than being a no-player contract. Fresh technical review identified unsafe generic-terminal recovery and missing compiled runtime identity in SliceA; both were corrected before final acceptance. Original discovery was1277 EditMode/194 PlayMode; the initial sixteen runner rules produced1293/194, then five outcome cases produced1298/194, with no original leaves removed. The first PlayMode coordinator run completed native work but retained an unmatched-callback lease; that invalid attempt is preserved and is not accepted as a runner pass. The preceding progress notes describe intermediate evidence and are superseded by the final verification below. No historical or invalid attempt is relabelled as a fresh pass. ## Final verification - **23 controlled evidence contracts pass**, including three additional fail-fast build/protocol cases proved RED→GREEN. The final player-identity guard was replayed against retained per-peer session reports from both live arena cohorts; that replay is guard compatibility proof, not a fresh final-guard live arena cohort. The final owner-input live cohort includes the guard. - **Full EditMode1298/1298 GREEN**,0fail/skip/inconclusive: `TestResults/foundation-runs/refinement-integrated-editmode-d26985c3f4544aa5a771740ccf8ce16c`. Exact original1277 leaves retained,21new outcome/selection/label cases added,0removed. Discovery1.571s, execution17.728s, publication1.121s on this machine. These runner phases include their validation work and are not the NUnit leaf-only duration. - **Full PlayMode193passed/1failed**,0skip/inconclusive, completed/non-GREEN: `refinement-integrated-playmode-5f2e7f7d1e9b4f808971bb3beba7cb5c`. The sole failure is `DebugArenaScenarioTests.Arena_FixedAndOrdinaryProductionScenarios`: actual crawler ramp-endpoint deadline. Discovery2.258s, execution370.756s, publication0.887s. This failed run is preserved, not relabelled GREEN; the focused fixture replacement below is the only invalidated gate. - Frozen focused21rules GREEN: `foundation-runs/refinement-frozen-rules-green-0ba03decd53840958c41b8e8ad3cd7f2`. Actual normal-domain-reload coordinator5GREEN/reloads1: `refinement-frozen-domain-reload-daac6307aaba420caca99e993c45b045`. Pinned adaptors require stable `UniqueName` rather than per-run `Id`; compiled dependency membership is frozen at start. Framework-owned enter-play-options are normalized only for fingerprinting, recorded separately and restored to original True/DisableDomainReload|DisableSceneReload. No EditorSettings/pin diff remains. - Unknown/empty/mixed-mode requests retain invalid/no-execution manifests; actual overlap preserves the original owner; repeated-label XML hashes prove legacy evidence was not overwritten. Fresh post-restart namespace request `refinement-namespace-rejected-a78cb2156b944cb7b8990f2dedcd777a` is invalid0executed because a namespace is not a fixture. - Actual owned cancellation `refinement-owned-cancellation-1537c6b051544a8bbab74372a86a05ad` retained its lease because pinned PlayMode cancellation emits no terminal callback. Supported shutdown saved **interrupted/green=false**; shutdown hung after its clean window closed, requiring explicitly approved termination of only that verified closing Editor. Fresh pinned Editor/session has empty ownership and accepts new requests, proving safe recovery. A duplicate startup attempt was stopped without altering authoring. MCP retained the old pipe; supported CLI now drives the restored Editor. **The interrupted artifact's1373.885s publicationSeconds is abandonment elapsed, not measured publication cost; its execution/publication performance is unavailable.** Do not compare it with completed runs. - **Four-player arena** `debug-arena-bed2f23ede404e45b9c27a4fa78763ea`:11reports,3actual lifecycle checks,0cleanup errors, exit0/sidecar accepted, same application/managed identity as the two-player cohort,75/15/1, explicit reset2/failure-proof on. Total203.211s, setup19.344s, cleanup0.145s, final identity0.539s, result publication0.014s. Every original scenario/failure/disconnect/rehost assertion remains. - **Two-owner input** `owner-arrival-input-cd28d5adeed0484d82baf7f996f710df`:7phases,0cleanup errors, exit0/sidecar accepted, application build `599ffcccd8504caf873adf86b5595588`. Total53.017s, cleanup0.251s, final identity0.404s, result publication0.001s. Actual motion, expiry/replay/scope/refusal, accepted displacement, HUD artifact and normal disconnect remain; `naturalCampaign=false`. - Equivalent retained four-player arena `debug-arena-cc5bbb1aaeb14df281b3082989299374` has the same application build and11scenario reports. Scenario duration sum159.758s versus new157.314s. This small single-sample difference is not a proven speedup; historical full setup/export/cleanup wall time is unknown. New phase measurements explain cost. Expected savings are avoided unrelated arena/full-suite repetitions, not faster gameplay deadlines. - Documentation: existing Wiki contracts **30/30**, then **91entities,156linked sources** pass hash/identity/link/anchor checks. Final source-link refresh follows the final status update; no gameplay launched by documentation checks. - All three independent final perspectives approve the bounded runner/report delta. Technical recovery/interruption/runtime-identity findings and gameplay/UX classification/publication/display-catalogue findings were fixed. The subsequent arena failure receives a compact independent fixture delta check rather than another broad review. ## Arena fixture failure and bounded repair The full-run traversal report is `arena-fixture-2dc1c2e967b74a8993b84cb7ca3e5c29/debug-live-traversal.json`: player route/step/ramp passed by8.054s; crawler missed endpoint at90.007s, no console errors, cleanup succeeded. An isolated passive reproduction retained real host health57.5/shield50 and accepted endpoint(-38,2.58,10.68); the crawler acquired sight, repeatedly lost it near the ramp side, then advanced to a coarse area(-33.12,.0833,11.8) without a target. The scenario's off-axis spawn(-32,.1,26) mixed ramp traversal with cover loss behavior; current production intentionally does not guarantee a hidden fine endpoint after contact/grace expires. No production sight/grace/speed/deadline change is justified by that fixture. The same isolated run exposed a separate lifecycle defect: its previous scene was UTF's `Assets/InitTestScene*.unity`; restoring it loaded its saved `PlaymodeTestsController` and started reentrant tests. Pinned bootstrap/controller source and actual log sequence confirm this. The zero-case callback is retained under `refinement-arena-repro-5ad8c7c57c0a4dceaa1340e7ded4f011/unmatched-*.xml`, correctly rejected/non-GREEN with lease retained. Supported clean shutdown finalizes that request interrupted; fresh Editor process/session ends orphaned in-Editor work. The diagnostic sample's Unity realtime spans separate executions, not one scenario exceeding its deadline. Three compact independent perspectives approve a fixture-only correction: exclude UTF's identified `Assets/InitTestScene*.unity` bootstrap from manual restoration, preserving all other prior authored scene paths; clone the runtime marker array for traversal, set only crawler start to supported ramp centreline(-38,.1,26) facing back, and restore the exact original reference in finally. Actual normal-agent type/all-area native support and static ground are checked before spawn. All original route/step/ramp,90s, endpoint distance, native path, failure-proof and cleanup assertions remain. No live-actor teleport, fake contact, serialized authoring or gameplay change occurs. The correction isolates full16m ramp traversal; it does not validate the original off-axis solo pursuit behavior. Focused repaired arena **9/9GREEN**,0fail/skip/inconclusive, matched terminal: `foundation-runs/refinement-arena-fixed-280c3a7c4f5f49b092b83f2415776fbc`. Discovery1.845s, execution124.519s, publication0.659s. Native report directory `arena-fixture-df4f4357a6e74d3ab9bb5b9cf1a2b9e1` retains all seven scenario reports, marker/preflight/restoration and setup2.958s/scenario102.126s/cleanup0.160s timing. Traversal passes in11.141s with actual crawler endpoint(-38,2.5432,12.9860), owner0 and cleanup success. Passive `arena-repro-f72850189e5d4e0b8ebd61e529965c83.jsonl` shows initial(-38,.1667,26), genuine sight/Engage/complete path and actual upward motion through y.3468/.8848/1.5076/2.1392. Exact original marker array is restored in finally; no reentrant bootstrap execution occurs. The first restoration repair used an overly narrow authored-folder whitelist. Final UX review correctly required retaining other authored paths such as Assets/Scenes/SampleScene.unity. The final one-condition delta excludes only the known bootstrap prefix and arena; its branches for the tested bootstrap/current authored scene are unchanged. Supported import/live compilation and independent inspection validate that scope-preserving delta; it is not represented as another fresh native run. Source compatibility is explicit: the final source delta after full suites is confined to this one PlayMode fixture's setup/restoration. Its nine leaves are freshly verified; the193 full-run passes include eight of those same helper leaves, and the other185 unaffected leaves retain unchanged test/product behavior. Full EditMode's1298 cases are unaffected by the test-only geometry/restoration delta. No source/build identities are silently combined or failed report rewritten. Original membership1277→1298EditMode (+21only),194→194PlayMode (0removed/unexpected) is verified against saved exact names. `dotnet build ...PlayModeTests --no-restore` after Editor shutdown could not run because Unity removed Temp's NuGet assets; this is a tooling/setup failure, not RED. Reopened Editor import/live compilation and the native execution are the supported compile checks. Final Editor: request empty/status idle, stopped, VerdantRelay clean, original enter-play options restored. Three independent final perspectives approve the bounded fixture delta; no further review rounds requested. ## Omissions and limits No fresh normal-menu/full-stage matrix: production/progression paths did not change, and common-regression scheduling is proved by controlled cleanup ordering and source review. Existing menu/stage reports remain historical and are not merged into this fresh checkpoint; their older formats do not supply the new complete build fingerprint. No normal/debug/release player rebuild: changed C# is Editor/test-assembly-only; actual player binaries/assets are independently identified and unchanged. Editor tooling compilation succeeds with0errors/249existing warnings. No natural campaign attempts, qualification relaxation, gameplay/scene/prefab/tuning/package changes or manual terrain rebake. Optional early-stop is deferred. Natural coverage, human feel/readability, hardware and separate-network acceptance remain open. Public callback IDs cannot authenticate an unobserved identical manual job; coordinate the manual Test Runner and retain ambiguous operations rather than infer ownership.