Preserve P23-03 initial implementation and continue exact unfinished work

This commit is contained in:
Takeshi
2026-10-15 07:53:55 +09:00
parent 729df14dae
commit cc72d70946
5 changed files with 141 additions and 9 deletions
@@ -0,0 +1,18 @@
{
"repair_decision": {
"action": "request-repair",
"task_id": "P23-03",
"reason": "P23-03 is blocked only because the implementation isn't finished. WORKER_STATUS.md:38-41 says Phase 0 found a deterministic public spawn/clock/build path and that no missing Runtime capability or out-of-scope defect has been found. So this is not an external blocker. Missing Root native/OS evidence is expected until a genuine submission exists.\n\nRepair in place in the existing worktree. Keep all the dirty output: world_preview.gd, room_presentation.gd, the test .gd/.uid, tests/fixtures/p23-03/diagnostic_stream.gd, the three p23 tools, API_AND_STATE_MAP.md, WORKER_STATUS.md and the one appended marker row. No new worktree and no redesign. The spec and allowed paths stay as they are.\n\nBounded order:\n\n(1) Re-read WORKER_STATUS.md, API_AND_STATE_MAP.md and the current diffs. Confirm the shared observation builder is the single model consumed by drawing and by get_life_observation_report. Fix only gaps found by inspection. No second renderer.\n\n(2) Add the A/B layout fixture under tests/fixtures/p23-03/. Both layouts use the same recorded seed, arrival command script, budget, initial clock and definitions. Build with existing constructible definitions through the public build path from API_AND_STATE_MAP. The only difference is one predeclared allowed layout improvement. Record the predeclared metric in the fixture before running: wait/queue/arrival time from typed state, with B strictly better and no arbitrary threshold. Capture through diagnostic_stream.gd, reusing the P08-02 mixed_world codec with sparse hash-addressed snapshots. Record the actual arrival events, paths, queues, density and completed services.\n\n(3) Finish the independent checker. Recompute every row from the typed state using the enum/schema definitions: room occupancy including rest/rescue, the FacilityInstance business reason, queue allocation/overflow, EV position/load/direction/phase and cabin geometry, staff task/state/layer/position, carried goods and logistics, and traffic density. Check A/B input identity and the metric improvement. Check that screenshot rects/pixels match positions recomputed through the shared transforms, with independent typed comparisons. Add one meaningful negative per condition, and never trust report booleans.\n\n(4) Turn run_p23_life_observation.py from a readiness stub into a real Root collector, modeled on run_p08_normal_placement.py and run_p08_mixed_migration.py. Reuse their owned process, protected profile, source pin, ordinary audio teardown and CUA request/ACK helpers by import or call. No wholesale rewrite. Cover both layouts, FRONT/BACK, pan/zoom, formal save and a distinct-PID resume gate.\n\n(5) Run local Python tests and syntax checks only, with no Godot. Update WORKER_STATUS.md honestly and submit a coherent version. If unforeseen size prevents finishing everything, keep (2)-(3) and submit the static parts that are complete, and report the precise remaining items, with no placeholder PASS. Missing Root/OS evidence is stated as pending, not as blocked.",
"codex_model": "gpt-6-astra",
"codex_model_reason": "This needs Astra rather than the Sol default. The remaining work is coupled, multi-file and correctness-critical. The checker has to recompute every observation row (rooms, queues, EV cabin geometry, staff, logistics, traffic) independently, using the GDScript enum semantics and the shared transforms. It also has to build a same-demand A/B fixture through the real Runtime build and arrival APIs with a predeclared strict metric, and turn the run tool into a collector that reuses P08's owned-process, protected-profile and CUA request/ACK infrastructure without breaking its gates. The first Astra run already holds the context, with 295 product lines plus partial tests, and continuing in place avoids re-deriving it. A weaker model risks shallow checkers that just echo the report, which the spec forbids, and that would cost extra repair cycles. Timeout 900 is unchanged and no caps or billing change."
},
"run_decision": {
"action": "run",
"task_id": "P23-03",
"reason": "Run the recorded repair for P23-03 in the same task worktree. Base commit is 860136f. Timeout stays at 900. There is no fresh worktree, no nested or parallel worker, and no change to caps or billing. Spec, acceptance denominator and allowed_paths are unchanged.\n\nI checked the current files. WORKER_STATUS.md:1-41 matches the previous direction: the preparation is preserved but incomplete. At lines 38-41, Phase 0 found a deterministic public spawn/clock/build path, and no missing Runtime capability or out-of-scope defect has been established. This is unfinished implementation, not an external block. Root native/OS evidence that is missing after submission is pending, not blocked. This CLI session is ephemeral, so your context is the files plus this instruction. Do not assume any previous conversation.\n\nKeep all of the dirty work and continue from it in place:\n- scenes/main/world_preview.gd and scripts/ui/room_presentation.gd\n- tests/ui/test_p23_life_observation.gd and its .uid\n- tests/fixtures/p23-03/diagnostic_stream.gd and its .uid\n- tools/run_p23_life_observation.py, tools/check_p23_life_observation_evidence.py and tools/test_p23_life_observation_evidence.py\n- API_AND_STATE_MAP.md and WORKER_STATUS.md under docs/plans/original-completion-2026-10-02/execution/p23-03/\n- the single appended row in completion_marker_contracts.json\n\nDo not redesign, do not redo the source audit, and do not add a second renderer.\n\nWork in this order:\n\n(1) Re-read WORKER_STATUS.md, API_AND_STATE_MAP.md (the Phase 0 map) and the current diffs. Confirm that the shared frame observation builder is the only model, and that both drawing and the deep-copy get_life_observation_report consume it. Fix only gaps you find by inspection. Keep the existing motion, layer, nonmutation and selection behaviour.\n\n(2) Add the A/B layout fixture under tests/fixtures/p23-03/.\n- Both layouts use the same recorded seed, arrival command script, budget, initial clock, definitions and production settings.\n- Build both through the public build/spawn/clock path recorded in API_AND_STATE_MAP, using only existing constructible definitions. Do not use proxies, invented costs or fabricated state.\n- The layouts differ only by one predeclared allowed layout improvement.\n- Write the predeclared metric into the fixture before running: wait/queue/arrival time computed from typed state. B must be strictly better, with no new arbitrary threshold.\n- Capture through diagnostic_stream.gd, reusing the P08-02 mixed_world codec with sparse hash-addressed snapshots and streamed manifests.\n- Record the actual arrival events, paths and arrival times, queues, density and completed services.\n\n(3) Finish the independent checker. Recompute every row from typed state using the GDScript enum and schema definitions:\n- room occupancy, including rest and rescue\n- the business reason from FacilityInstance named enums: closed, no access, no power, no staff, degraded, raid/damage suspension\n- queue allocation and overflow\n- EV position, load, direction and phase, plus cabin geometry\n- staff task, state, layer and position\n- carried goods and logistics or supply report fields\n- traffic density from get_cell_traffic\nAlso check:\n- A/B input identity and strict improvement of the metric\n- that screenshot rects and pixels correspond to positions recomputed through the shared transforms\nNever trust report booleans. Add at least one meaningful negative per condition across all seven: room_occupancy_and_operation, queues_and_overflow, elevator_state_and_passengers, staff_state_and_jobs, supplies_and_carried_goods, same_demand_route_improvement and normal_os_and_distinct_pid_resume.\n\n(4) Turn run_p23_life_observation.py from a readiness stub into a real Root collector, modelled on tools/run_p08_normal_placement.py and tools/run_p08_mixed_migration.py.\n- Reuse their owned process, protected whole default-player profile, source/spec/engine pin, ordinary audio teardown and CUA request/ACK helpers by import or call. Do not rewrite them wholesale or weaken any gate.\n- Cover both layouts and all six categories, FRONT/BACK, ordinary pan/zoom, formal save, and a distinct-PID normal resume gate.\n- Check engine end, cleanup and protection on every run, and keep failure history. Do not splice failed runs or relabel raw receipts.\n\n(5) Run only local Python tests, py_compile/AST syntax checks, the marker JSON check and git diff --check. Do not run Godot, native, OS or full regression.\n\nThen update WORKER_STATUS.md honestly: the actual checks you ran, new source SHA values, and Root evidence stated as pending. Submit a coherent genuine version. Touch suite-policy.json only if a new suite needs it, keep all old policies, and append only. Make no git writes.\n\nIf unforeseen size prevents finishing, keep (2) and (3) complete, submit the finished static parts, and list exactly what remains. No placeholder PASS and no fixed all-true assertions.",
"codex_model": "gpt-6-astra",
"codex_model_reason": "I chose Astra over the Sol default because the remaining work is coupled across several files and correctness-critical. The checker has to recompute every observation row independently: rooms, queues, EV cabin geometry, staff, logistics and traffic. It must use the GDScript enum semantics and the shared transforms. The task also needs a same-demand A/B fixture built through the real Runtime build and arrival APIs with a predeclared strict metric. The run tool has to become a collector that reuses P08's owned-process, protected-profile and CUA request/ACK infrastructure without breaking those gates. A weaker model is likely to write shallow checkers that just repeat the report, which the spec forbids, and that would cost more repair cycles than Astra's extra usage. Timeout 900, caps and billing are unchanged."
},
"execution": "Same task/worktree in-place continuation dispatched; source retained, repaircount1 capnull, timeout900 unchanged. No duplicate concurrent worker.",
"credit": 0
}
@@ -0,0 +1,103 @@
{
"run": "a68f962c5c8f402a9d2fd230671a6570",
"state": "terminal incomplete, not external blocker",
"preserved_worktree": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p23-03-code/P23-03-implement",
"file_sha256": {
"docs/plans/original-completion-2026-10-02/execution/p23-03/API_AND_STATE_MAP.md": "6b7f101c4d6f6ff1d552d7dd4d9bcfc516abdfa06b8ea571a308565daa4f880c",
"docs/plans/original-completion-2026-10-02/execution/p23-03/WORKER_STATUS.md": "1a43cdf5334f5aeb28ffc5431268ffeeeb3b286060984c7f6ba7cca01a03f29c",
"tests/fixtures/p23-03/diagnostic_stream.gd": "2ec82a0f77377b7ff21fada8c62fd09e391bf04346a151bffadefb6b268c15cf",
"tests/fixtures/p23-03/diagnostic_stream.gd.uid": "1f3cbee159dc93c7bd7dd7f0a3b9e9103ed43ecb341c3a900c1df59377d8bb20",
"tests/ui/test_p23_life_observation.gd": "b9afa66ec73d3a5cadf86f9a71f0d13f5b085c3cc9a534dfe29b2bed0e2e76a0",
"tests/ui/test_p23_life_observation.gd.uid": "721207a56299cd53855a5ff164408507bfaaa9c83f925ead32961c5fc847fff7",
"tools/check_p23_life_observation_evidence.py": "3bcaaa3aee91571773fcdf57c16180624ab74361e88db891d52ea1b8bbfee054",
"tools/run_p23_life_observation.py": "53c2f0638d4a861cf4fcb664504c25df33ae5478207867654f1c8cdf58fa23c7",
"tools/test_p23_life_observation_evidence.py": "59b59535327f910de180f3a405887c994438bd838f384453b6a0939030639eeb",
"docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json": "83df044d15b716faa3cdbb95e6c19afde54fb66bd0bf3a574df66e6a18513728",
"scenes/main/world_preview.gd": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"scripts/ui/room_presentation.gd": "55340b7b623532e861be1d21225635fd9169e2e40928597c1cd0458b99524dd9"
},
"phase0_root_check": {
"phase0_sha256": "6b7f101c4d6f6ff1d552d7dd4d9bcfc516abdfa06b8ea571a308565daa4f880c",
"source_rows": [
{
"path": "autoload/simulation_runtime.gd",
"reported_sha256": "4696df4a77feb465a5a3ba8b806569f7bcbe1d03c88289acfb78a3928f307d67",
"actual_sha256": "4696df4a77feb465a5a3ba8b806569f7bcbe1d03c88289acfb78a3928f307d67",
"equal": true
},
{
"path": "autoload/game_state.gd",
"reported_sha256": "cf0e884910220e54c56b5875983e53de439af9d893be1e1b65c2121d2a30722f",
"actual_sha256": "cf0e884910220e54c56b5875983e53de439af9d893be1e1b65c2121d2a30722f",
"equal": true
},
{
"path": "scripts/core/simulation_kernel.gd",
"reported_sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb",
"actual_sha256": "341c0c878c4894adbac628d0db6362ff69fc3347bdd9e61e50936e15dc2d1edb",
"equal": true
},
{
"path": "scripts/facility/facility_service.gd",
"reported_sha256": "ceb4a3e9224587423f273cdb2b56e6843ab176ac1fc4fe79dd498b5ed5c33b77",
"actual_sha256": "ceb4a3e9224587423f273cdb2b56e6843ab176ac1fc4fe79dd498b5ed5c33b77",
"equal": true
},
{
"path": "scripts/guest/guest_service.gd",
"reported_sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e",
"actual_sha256": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e",
"equal": true
},
{
"path": "scripts/staff/staff_service.gd",
"reported_sha256": "355ad5c3c9f85dc4d4ffc3bc4293e36f81078c403d1662512a735b2c8d815fb3",
"actual_sha256": "355ad5c3c9f85dc4d4ffc3bc4293e36f81078c403d1662512a735b2c8d815fb3",
"equal": true
},
{
"path": "scripts/transport/elevator_service.gd",
"reported_sha256": "cea09dd9204551c26b31b30cd3aa847cc77e3b75fdac31662b9694a95fb3580c",
"actual_sha256": "cea09dd9204551c26b31b30cd3aa847cc77e3b75fdac31662b9694a95fb3580c",
"equal": true
},
{
"path": "scripts/world/path_service.gd",
"reported_sha256": "447135729a1106639a6eee6754af3195c8a8b458ca26980ae91fa39d80dcfbd4",
"actual_sha256": "447135729a1106639a6eee6754af3195c8a8b458ca26980ae91fa39d80dcfbd4",
"equal": true
},
{
"path": "scripts/supply/supply_logistics_bridge.gd",
"reported_sha256": "b9e394af788595d2744b71f1907c8e7c3d762d38ff49992b1ee74e63b9639e80",
"actual_sha256": "b9e394af788595d2744b71f1907c8e7c3d762d38ff49992b1ee74e63b9639e80",
"equal": true
},
{
"path": "scripts/facility/facility_instance.gd",
"reported_sha256": "0c6aa493f3299611e05dd26aa429dda8cf7b5c479e4d09632036fb862f79a324",
"actual_sha256": "0c6aa493f3299611e05dd26aa429dda8cf7b5c479e4d09632036fb862f79a324",
"equal": true
},
{
"path": "tests/transport/test_runtime_transport_comparison.gd",
"reported_sha256": "ba577397fa8db5a6cf92cfd398dd7a5ece49e6b59856f14772b67b51ddc0bde9",
"actual_sha256": "ba577397fa8db5a6cf92cfd398dd7a5ece49e6b59856f14772b67b51ddc0bde9",
"equal": true
}
],
"all_match": true,
"scope": "read-only Phase0 source integrity check, not P23 acceptance or engine evidence",
"new_engine_runs": 0,
"actual_api_review": {
"deterministic_demand": "Public submit_command spawn_guest with explicit IDs/options; existing test_runtime_transport_comparison uses the command with Runtime movement. Fixed scenario, not autonomous production arrivals.",
"layout_difference": "Existing public build_facility command uses registered cost/build time; comparison includes real paid extra EV. No new production numbers.",
"logistics_semantics": "get_report returns requests/deliveries; requested items/weight must not be labelled warehouse stock.",
"limits": "Read-only static review; actual native and OS proof pending."
},
"reviewed_at_jst": "2026-10-15T07:44:39.028910+09:00"
},
"new_engine_runs": 0,
"acceptance_credit": 0,
"updated_at_jst": "2026-10-15T07:52:07.486947+09:00"
}