From d01286360ee88046e06b80d840fc303a71e0d661 Mon Sep 17 00:00:00 2001 From: Agent Control Runner Date: Wed, 14 Oct 2026 05:51:27 +0900 Subject: [PATCH] =?UTF-8?q?P08-03:=20=E9=85=8D=E7=BD=AE=E3=81=AE=E9=80=9A?= =?UTF-8?q?=E5=B8=B8=E6=93=8D=E4=BD=9C=E5=8F=97=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../execution/p08-03/CONDITION_MATRIX.md | 41 +- ...OOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json | 23 + .../execution/p08-03/ROOT_COLLECTION.md | 9 + .../ROOT_OS_R05_GUIDE_INTERCEPTION.json | 38 + .../p08-03/ROOT_R05_READER_CHECKPOINT.json.gz | Bin 0 -> 49774 bytes ...ROOT_R05_READER_CHECKPOINT_PROVENANCE.json | 9 + .../historical-r04-local-source-manifest.json | 5330 +++++++++++++++++ .../historical-r04-local-validation.json | 38 + ...historical-r05-first-local-validation.json | 37 + ...5-first-repair-r05-local-checker-tests.log | 25 + .../execution/p08-03/implementation.json | 83 +- .../p08-03/local-source-manifest.json | 1377 ++++- .../execution/p08-03/local-validation.json | 26 +- .../p08-03/repair-r05-local-checker-tests.log | 5 + tests/fixtures/p08-03/checker_fixture.py | 36 +- tests/fixtures/p08-03/passive_placement.gd | 28 +- tests/fixtures/p08-03/placement.gd | 7 +- .../r05-reader-checkpoint-provenance.json | 9 + .../p08-03/r05-reader-checkpoint.json.gz | Bin 0 -> 49774 bytes tools/check_p08_normal_placement_evidence.py | 97 +- tools/test_p08_normal_placement_evidence.py | 86 + 21 files changed, 7225 insertions(+), 79 deletions(-) create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_OS_R05_GUIDE_INTERCEPTION.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT.json.gz create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT_PROVENANCE.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/historical-r04-local-source-manifest.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/historical-r04-local-validation.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/historical-r05-first-local-validation.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/historical-r05-first-repair-r05-local-checker-tests.log create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/repair-r05-local-checker-tests.log create mode 100644 tests/fixtures/p08-03/r05-reader-checkpoint-provenance.json create mode 100644 tests/fixtures/p08-03/r05-reader-checkpoint.json.gz diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md b/docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md index 2aa1cb6..b3e2d74 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md @@ -135,7 +135,7 @@ P08 package remain open. Windows same-distribution/device evidence remains open; Mac/Linux results cannot substitute for it. No outside-scope service defect or required permission change has been demonstrated by this worker. -## r04 initial OS load oracle repair (current submitted candidate) +## r04 initial OS load oracle repair (retained earlier submission) The supplied OS_R04_INITIAL_LOAD_ORACLE_FINDING.json and os-r04-writer-engine.log identify the bootstrap-only simple equality failure. @@ -166,3 +166,42 @@ Root native/OS collection for this candidate, final full regression after freeze, separate Opus review and integration/current final verification remain open. All five conditions and the 30/88 denominator are unchanged. No Runtime, UI, SaveService, collector, specification or historical evidence edits. + +## R05 consolidated repair (current submission) + +The supplied ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json and +ROOT_OS_R05_GUIDE_INTERCEPTION.json are failure authorities, not acceptance. +The original failed OS request and all supplied raw files remain untouched. +The complete gzipped reader checkpoint is copied byte-for-byte into the fixture +suite with its provenance. Tests verify the decompressed 2120352 bytes and +SHA `304d97de8051d5e74c6e32c4482a3cb183b0172d7671088fdc40469cc3448c0d`. +It is actual native input from candidate 4a17d0e0f589fa76d81f1d4630ec45c63bac21ab, +not proof of acceptance for the changed candidate. + +Runtime _on_facility_completed and FacilityInfrastructureProjector define the +split: ordinary construction instances require operational membership; supported +schema proxies require exact infrastructure membership. The checker preserves +completed-job, occupation, demolition and refusal invariants, and now checks +projection identity/cells/definition/fingerprint, managed ROUTE and connector +membership, exact stair connector fields and lower landing, and projected +walkable/path topology. Actual checkpoint corruption tests exercise missing, +extra and incorrect topology, ordinary facility loss and proxy occupation loss. +Whole-checker synthetic controls now represent stairs in the infrastructure +projector and retain every earlier test. + +The handler unsupported target is (4,4,0). The passive observer independently +chooses a visible cell with the unchanged UNSUPPORTED predicate outside the +opening guide rectangle after normal palette selection. It reads bounds, +preview and guide geometry; it does not suppress the guide or mutate models. +Cell requests include viewport-to-screen affine mapping derived from existing +Godot transforms, including stretch and window translation, and current guide +geometry. The checker recomputes the mapping and rejects guide interception. +Root must retain actual CUA coordinates, screenshots and raw receipts and check +the mapping against the real window; no OS success is claimed by this worker. + +Bootstrap repair, all five facets, product UI and driver progress are preserved. +Python syntax/checker execution and exact source/input manifests are recorded in +local-validation.json and implementation.json. Godot parsing, fresh native and +OS collection, final full regression, independent review, integration/current +verification and Windows device evidence remain pending. No context gap or +outside-scope service defect has been demonstrated in this batch. diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json new file mode 100644 index 0000000..c1d97db --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_CHECKER_R05_INFRASTRUCTURE_ORACLE.json @@ -0,0 +1,23 @@ +{ + "unit": "P08-03", + "candidate": "4a17d0e0f589fa76d81f1d4630ec45c63bac21ab", + "registered_validation": "89dfca90b9d64eb780460589144837ee-validation.json", + "actual_deficits": [ + "partial demolition/completion" + ], + "cause_evidence": { + "checker": "tools/check_p08_normal_placement_evidence.py:173 unconditionally requires construction facility IDs == FacilityService operational IDs", + "raw_snapshot": "pair/reader-checkpoint.json", + "construction_only_ids": [ + "facility_00000002", + "facility_00000003" + ], + "definitions": [ + "guest_stairs", + "guest_stairs" + ], + "runtime_source": "autoload/simulation_runtime.gd:10682-10720 separates supported schema proxies into infrastructure projector and ordinary facilities into operational service" + }, + "requested_action": "Verify current intended proxy projection contract from source, then make checker faithfully require operational membership for ordinary definitions and exact projected topology for supported infrastructure proxies. Do not simply skip stairs or drop occupancy/loss/demolition invariants. Add real-snapshot and missing/extra/wrong projected topology negative tests. Same targeted fixture repair batch; no product scope expansion.", + "formal_acceptance": false +} \ No newline at end of file diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md index c04245b..0e0e0cc 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_COLLECTION.md @@ -125,3 +125,12 @@ Keep final requests (including save/load) as well as row-specific requests. Do not edit evidence after collection to force a pass. Correct source/input defects through the fixed repair workflow. GDScript parsing, actual native and OS success, full regression, review and integration are all pending. + +R05 repair: cell requests now retain `viewport_to_screen` as six affine entries +`[a,b,c,d,tx,ty]`. Apply it to viewport `(x,y)` to obtain screen +`(a*x+c*y+tx, b*x+d*y+ty)`; retain the actual CUA coordinate in the raw receipt +and compare against screenshots/window geometry, including titlebar and stretch. +Do not multiply by canvas scale a second time. `guide_rect` is in viewport +coordinates and `guide_visible` records interception geometry. The unsupported +target is chosen by read-only production preview inspection outside that guide; +the failed R05 request is historical evidence and must remain preserved. diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_OS_R05_GUIDE_INTERCEPTION.json b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_OS_R05_GUIDE_INTERCEPTION.json new file mode 100644 index 0000000..c105d82 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_OS_R05_GUIDE_INTERCEPTION.json @@ -0,0 +1,38 @@ +{ + "unit": "P08-03", + "candidate": "4a17d0e0f589fa76d81f1d4630ec45c63bac21ab", + "formal_acceptance": false, + "OS_completed": false, + "successful_requests": [ + 1, + 2, + 3, + 4 + ], + "unacknowledged_request": 5, + "required_world_cell": [ + -8, + 4, + 0 + ], + "viewport": [ + 242.0, + 180.0 + ], + "actual_coordinate": [ + 215, + 192 + ], + "canvas_scale": 0.8888888888888888, + "titlebar_pixels": 32, + "observed": "Open-business guide intercepts unsupported target cell click and selects reception; no unsupported placement interaction occurred", + "actual_tool_call": "call_bc7eaed7c8ca4b82b53e15166d6ec0f3", + "screenshots": [ + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-handler-r05/os-pair/writer-request-0005/screen-before.png", + "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-handler-r05/os-pair/writer-request-0005/screen-after.png" + ], + "requested_fix": "Keep unsupported predicate; choose visible unsupported target outside normal guide. Derive/record stretch-to-window CUA coordinate mapping. No guide suppression/model injection/criteria weakening. Preserve good bootstrap/native code and raw failed attempt.", + "owned_engine_ended": true, + "cleanup_errors": [], + "guard_errors": [] +} \ No newline at end of file diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT.json.gz b/docs/plans/original-completion-2026-10-02/execution/p08-03/ROOT_R05_READER_CHECKPOINT.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..7de7699e2254eef408a1cc3f1e565bec25ebac08 GIT binary patch literal 49774 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 OVMU;D?PuvxBK#Mrs void: func point(node: Control) -> Dictionary: var viewport: Vector2 = node.get_global_transform_with_canvas() * (node.size * 0.5) var screen: Vector2 = node.get_screen_transform() * (node.size * 0.5) - return {"node": String(node.get_path()), "viewport": [viewport.x, viewport.y], "screen": [screen.x, screen.y], "window_id": node.get_window().get_window_id()} + return {"node": String(node.get_path()), "viewport": [viewport.x, viewport.y], "screen": [screen.x, screen.y], "window_id": node.get_window().get_window_id(), + "viewport_to_screen": affine(node.get_screen_transform() * node.get_global_transform_with_canvas().affine_inverse())} + +func unsupported_cell() -> Vector3i: + # Read-only selection: retain the production predicate and avoid the guide. + var view: WorldPreview = main.world_preview + var bounds: Dictionary = runtime.world_service.get_bounds() + for y: int in range(4, int(bounds[&"max_y"]) + 1): + for x: int in range(int(bounds[&"max_x"]) - 1, int(bounds[&"min_x"]) - 1, -1): + var cell := Vector3i(x, y, 0) + var local := view.cell_to_canvas(cell) + var viewport := view.get_global_transform_with_canvas() * local + if not Rect2(Vector2.ZERO, view.size).has_point(local): + continue + if main.opening_guide.visible and main.opening_guide.get_global_rect().has_point(viewport): + continue + if "UNSUPPORTED" in view.get_build_preview_report(cell).get("error_codes", []): + return cell + expect(false, "visible unsupported target outside opening guide") + return Vector3i(4, 4, 0) func setup() -> void: input_method = "native_os" @@ -125,9 +144,14 @@ func click(cell: Vector3i) -> Dictionary: var local := view.cell_to_canvas(cell) var viewport := view.get_global_transform_with_canvas() * local var screen := view.get_screen_transform() * local + var mapping := affine(view.get_screen_transform() * view.get_global_transform_with_canvas().affine_inverse()) + var guide_rect: Rect2 = main.opening_guide.get_global_rect() observed_cell = null await request({"action": "cell", "world_cell": vector(cell), "viewport": [viewport.x, viewport.y], - "screen": [screen.x, screen.y], "instructions": "Click this transformed world-cell center. If clipped, use normal zoom/pan first and request a new collection; never substitute fixed pixels."}) + "screen": [screen.x, screen.y], "viewport_to_screen": mapping, + "guide_rect": [guide_rect.position.x, guide_rect.position.y, guide_rect.size.x, guide_rect.size.y], + "guide_visible": main.opening_guide.visible, + "instructions": "Click screen coordinates derived from viewport_to_screen (includes canvas stretch and window translation). Retain actual CUA coordinates and screenshots. If clipped or intercepted, recollect; never substitute fixed pixels."}) var selected: Variant = observed_cell if not selected is Vector3i: # With no active build tool, the normal preview selects a facility. diff --git a/tests/fixtures/p08-03/placement.gd b/tests/fixtures/p08-03/placement.gd index 92f944e..f3c0e89 100644 --- a/tests/fixtures/p08-03/placement.gd +++ b/tests/fixtures/p08-03/placement.gd @@ -111,6 +111,8 @@ func click(cell: Vector3i) -> Dictionary: func build(id: StringName, cell: Vector3i, label: String, expected: String = "") -> void: await choose(id) + if label == "unsupported": + cell = unsupported_cell() var report: Dictionary = main.world_preview.get_build_preview_report(cell) var before := capture(label + "-before") results.clear() @@ -132,6 +134,9 @@ func build(id: StringName, cell: Vector3i, label: String, expected: String = "") await complete_build(id) row["completed"] = capture(label + "-completed") +func unsupported_cell() -> Vector3i: + return Vector3i(4, 4, 0) + func demolish(cell: Vector3i, label: String, cancel := false, expected := "") -> void: if not main.palette_scroll.visible: await button(main.palette_toggle_button) @@ -216,7 +221,7 @@ func diagnostic_budget() -> void: func writer() -> void: diagnostic_budget() await save_initial_fixture() - await build(&"standard_room", Vector3i(-8, 4, 0), "unsupported", "UNSUPPORTED") + await build(&"standard_room", Vector3i(4, 4, 0), "unsupported", "UNSUPPORTED") await build(&"reception", Vector3i(runtime.world_service.get_bounds()[&"max_x"], 0, 0), "out_of_bounds", "OUT_OF_BOUNDS") await build(&"reception", target, "supported_connected") await build(&"reception", target, "overlap", "OVERLAP") diff --git a/tests/fixtures/p08-03/r05-reader-checkpoint-provenance.json b/tests/fixtures/p08-03/r05-reader-checkpoint-provenance.json new file mode 100644 index 0000000..945969a --- /dev/null +++ b/tests/fixtures/p08-03/r05-reader-checkpoint-provenance.json @@ -0,0 +1,9 @@ +{ + "raw_path": "/Users/korizatou114/Projects/\u3068\u308a\u306b\u304f\u5de5\u623f\u30b2\u30fc\u30e0\u5236\u4f5c\u90e8/artifacts/original-completion-2026-10-02/p08-03-native-handler-r05/pair/reader-checkpoint.json", + "raw_sha256": "304d97de8051d5e74c6e32c4482a3cb183b0172d7671088fdc40469cc3448c0d", + "raw_bytes": 2120352, + "compressed_path": "ROOT_R05_READER_CHECKPOINT.json.gz", + "candidate": "4a17d0e0f589fa76d81f1d4630ec45c63bac21ab", + "complete_raw_preserved": true, + "scope": "actual native reader snapshot, not synthetic acceptance proof" +} \ No newline at end of file diff --git a/tests/fixtures/p08-03/r05-reader-checkpoint.json.gz b/tests/fixtures/p08-03/r05-reader-checkpoint.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..7de7699e2254eef408a1cc3f1e565bec25ebac08 GIT binary patch literal 49774 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 OVMU;D?PuvxBK#Mrs