diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_ACCEPTED_DEPENDENCY_UI_DIRECTION.json b/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_ACCEPTED_DEPENDENCY_UI_DIRECTION.json new file mode 100644 index 0000000..b901bf7 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_ACCEPTED_DEPENDENCY_UI_DIRECTION.json @@ -0,0 +1,7 @@ +{ + "action": "wait", + "task_id": "P08-03", + "reason": "WAIT while Root adopts the accepted dependency. This is coordination only. It is not a human approval gate, and nothing is waived. I read the source at the submitted 4775001. Current status: 0/1, 11/88 unchanged, and all 5 conditions are open.\n\nADOPTION STEPS (Root coordinator only; the worker never edits Runtime):\n1. Record in a Root-owned record file: accepted boundary = main 127f22f, which contains P08-03-RTPREVIEW integration dbf5cb8f. Also record the support trace for that boundary: native source 12f04d6, the target/stairs/construction/pointer passes, the 8 unchanged state pairs, the Opus pass and the final-validation pass.\n2. Confirm there is no live P08-03 writer. Runner is in submitted state with no worker session.\n3. In a clean checkout of the original task, MERGE (do not rebase) 127f22f into 4775001 to make accepted-input commit M. Rewriting the submitted history would orphan the repair1-17 pins.\n - Conflicts can only be in P08-03 allowed_paths, for example execution/p08-03 docs. Resolve them to the P08-03 side and log each one.\n - Do not apply the old runtime_preview.patch, because the integrated helper replaces it. Keep the patch as history.\n4. Check M before the worker starts:\n (a) Every path outside the original allowed_paths that differs from base 12430 has a blob byte-identical to the blob at 127f22f.\n (b) The spec sha 7941da4e…, docs/spec/acceptance/P08-03.json, acceptance_baseline.json and the contract (base 12430, allowed_paths) are unchanged.\n (c) There are no symlinks or secret files.\n5. Scope gate adapter: a narrow, recorded source-audit adapter. For the final candidate F:\n - every path with diff(M..F) must be inside the original allowed_paths and pass the secret/symlink denials;\n - every path outside allowed_paths must still equal its blob at 127f22f.\n This judges inherited Runtime, test and main-doc files by the accepted boundary instead of flagging them as illegal. It does not widen worker scope and does not change counters, budget, denominator or security.\n6. After adoption, my next turn opens repair18 on M through whichever transition Runner allows. Any validate is just that transition; it is not acceptance, and there is no all-suite run now.\n\nREPAIR18 SCOPE (same task, model gpt-6.1-sol):\n- First read the actual integrated API at M. Use its real name and signature (proposal: preview_build_facility(definition_id, origin, rotation) -> Dictionary). Do not assume it.\n\nworld_preview.gd get_build_preview_report (:201-224):\n- If the runtime service exists and has_method(the API), call it with build_definition's id, Vector3i(target.x, target.y, layer_mode) and build_rotation.\n- Then add result[&\"connection\"] = _build_connection_report(...), exactly as now.\n- Otherwise leave the current validate_placement path and the fallback byte-identical in behaviour.\n- Get the runtime the same way the existing _service/runtime does. Do not copy any domain rule.\n\nmain.gd _preview_failure_message (:2123-2131):\n- A code that is in PREVIEW_REASON_NAMES gives the same output as now.\n- For any other code, use the first Dictionary in reasons whose code equals error_codes[0], or reasons[0] if none matches, and show 「配置不可: 」. Never show a raw code. Keep the existing last fallback.\n- This also covers the result path at :2221. Do not change PREVIEW_REASON_NAMES values.\n\nChecker, tools/check_p08_normal_placement_evidence.py. What it actually requires now:\n- :574 wants status == reasons[0].message with no prefix.\n- But Main would currently print 「配置不可: STAIR_LANDING_MISSING」 (raw code), and the REASONS table at :37-40 uses the 「配置不可: 」 prefix.\n- So they do NOT match. Change it as follows:\n - :574 → status == '配置不可: ' + the message of the reason whose code is STAIR_LANDING_MISSING. That message must be non-empty, and the status must not contain the raw code token.\n - :625-627 → a missing_connection row with any submitted result FAILs 'preview rejection bypassed'.\n- Keep the general disagreement rule at :562-565, the repair17 demolition formatter and checks at :595-614, and every other check unchanged.\n\nTests, tools/test_p08_normal_placement_evidence.py plus tests/fixtures/p08-03/checker_fixture.py:\n- Change the positive to the prefixed status.\n- Add negatives:\n - bare message without the prefix\n - 「配置不可: STAIR_LANDING_MISSING」\n - wrong message\n - can_build=false but a command was submitted ('preview rejection bypassed')\n- Keep all repair17 positives and negatives.\n- In tests/fixtures/p08-03/placement.gd, expect the prefixed status only.\n\ncompletion_marker_contracts.json:\n- Append one entry for the integrated helper test at M (the actual path, likely tests/transport/test_runtime_build_preview.gd).\n- Take the exact completion label from that file's real final print line. Use the source sha256 at M and the existing historical/scope wording. Give no count expectation.\n- Leave every existing entry byte-unchanged.\n\nRoster: Root derives the final mandatory roster from actual discovery in run_all_tests.py plus suite-policy at M. It is 176 if the helper suite is discovered and is not already in 175. Do not assume 175. Edit suite-policy.json only if the new suite needs the existing cleanup helper. I expect it does not.\n\nDocs, CONDITION_MATRIX.md and implementation.json:\n- Add a repair18 entry with M, the boundary, the support trace and the adapter.\n- (1) moves from 'blocked on proposal' to 'pending native/OS'.\n- (2)-(5) are pending. The R09 history is not rewritten.\n\nWorker runs ONLY:\n- python3 -B tools/test_p08_normal_placement_evidence.py\n- py_compile on the checker, the test and checker_fixture.py\n- a json.load check on implementation.json and completion_marker_contracts.json\n- git diff --check\n- a scope self-check of diff(M..worktree) against allowed_paths\n\nThe worker does not run Godot, native or full suites, does not commit and does not approve its own work.\n\nAFTER SUBMITTED:\n1. Freeze all related changes.\n2. Root runs the normal OS plus native recollection on the frozen source.\n3. Exactly one final all-suite regression on the derived roster.\n4. Independent Opus review of all 5 conditions with raw-proof access.\n5. Integration, current final verification and the ledger.\n6. Windows same-distribution/device stays open, with no Mac substitution.", + "codex_model": "gpt-6.1-sol", + "codex_model_reason": "Using the default. Root does the adoption, and I have already pinned the repair18 targets in the source: one guarded call in WorldPreview, one change to the Main message fallback, two checker branches (:574 and :625-627), fixture and test updates, one marker entry and docs. The Runtime helper is already integrated and verified, so there is no domain logic, no native run and no debugging across components. Astra would add time and usage without a clear quality gain." +} \ No newline at end of file