From 86336e320ba18d38400aed2577c1f53825cb820a Mon Sep 17 00:00:00 2001 From: Takeshi Date: Wed, 14 Oct 2026 09:55:00 +0900 Subject: [PATCH] Record Opus-directed P08 applicability repair and worker selection --- .../execution/p08-03/OPUS_REPAIR14_DIRECTION.json | 7 +++++++ .../execution/p08-03/OPUS_REPAIR14_RUN.json | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_DIRECTION.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_RUN.json diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_DIRECTION.json b/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_DIRECTION.json new file mode 100644 index 0000000..9aabb6d --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_DIRECTION.json @@ -0,0 +1,7 @@ +{ + "action": "request-repair", + "task_id": "P08-03", + "reason": "Repair 14 for P08-03 (candidate 7dde98cc). This responds to review 63933fedc03d4e3483d68671724df4fa (changes_requested). Keep all allowed_paths and spec conditions unchanged. Keep the actual R09 raw proof from 31aa7706d28a92e313c432d5a62e35d19503dcc3 for all 5 conditions (support_connection, invalid_position_reason, demolish_rebuild, pan_zoom_world_identity, separate_pid_resume). Do not run another native/OS collection unless the checks below show that the reuse doesn't apply. If that happens, report it as needing a Root re-run instead of working around it.\n\n(A) Reuse applicability. Rewrite the R09 branch of check() in tools/check_p08_normal_placement_evidence.py, around lines 466–489. Add a function r09_applicability(root, index) that does the following:\n1. Get the commit under check with `git rev-parse HEAD`. In the reuse case, require that `git merge-base --is-ancestor R09_COMMIT HEAD` succeeds. Do not skip the HEAD check any more.\n2. Run `git diff --name-status --no-renames R09_COMMIT HEAD` (committed changes) and also check the working tree with `git status --porcelain`. Every path in the complete diff must be in an explicit whitelist that is limited to: tools/check_p08_normal_placement_evidence.py, tools/test_p08_normal_placement_evidence.py, and docs/plans/original-completion-2026-10-02/execution/p08-03/** documents. The check fails if any other path changed, including any path under tests/fixtures/p08-03/**, scenes/**, tests/ui/**, tools/run_p08_normal_placement.py, suite-policy.json, completion_marker_contracts.json or the spec. Add, delete and mode changes count as changes.\n3. Require exact equality, with no exclusions, for everything the run is bound to: every input_map(root) entry against index['inputs']; every source_map entry outside the whitelist against the current file SHA; and the runner-input fields engine path/engine_sha256/engine version, settings/config/environment against the pinned R09 runner-input bytes. Verify these by SHA from the pins file, not from booleans.\n4. For the whitelisted checker/test files, keep the existing pin check: index['source_map'] must equal the blob at R09_COMMIT. Record the new SHAs separately as validator_only_changes. Do not merge them into the executed source map.\n\nDelete the `added = {'tests/fixtures/p08-03/repair13_images.py'}` exclusions and the conditional on lines 483–484. Also remove tests/fixtures/p08-03/repair13_images.py itself (and any .uid/companion), so the fixture input set equals the R09 inputs byte for byte. Any synthetic JPEG test data must be generated inside the test module in tools/test_p08_normal_placement_evidence.py, not as a new fixture input. Do not exclude new inputs to make the check pass.\n\n(B) JPEG validity. Change r09_images/jpeg_dimensions so the check no longer depends only on structure:\n(i) Positive validity comes from immutable original-capture hashes. Each of the 138 os-pair screen JPEGs must match the sha256/bytes that Root recorded at capture time in the pinned original index and the OS writer/reader receipts under pins['original_root']. Cross-check them against ROOT_R09_READONLY_IMAGE_DIMENSIONS.json.\n(ii) Tighten the parser. Require DQT for every component quant table referenced by the SOF, and DHT tables covering every table referenced by SOS (or the baseline default absence rule documented; if absent, reject). Each scan's entropy-coded segment must be non-empty. Component count and IDs must match between SOF and SOS. EOI must follow a non-empty scan.\nDo not use fake or decoderless synthetic positive fixtures. The only positive cases are the real R09 captured bytes, verified by hash in the Root-readonly original. If those bytes are not available in the worker sandbox, mark the positive test as a Root-executed check rather than a pass. Synthetic bytes may be used only as negatives.\n\nAdd these negative tests to tools/test_p08_normal_placement_evidence.py, each asserting a specific error message:\n- missing DQT\n- missing DHT\n- SOS references an undefined table\n- empty entropy stream between SOS and EOI (the coordinator probe case)\n- SOF/SOS component mismatch\n- valid structure but SHA not equal to the original capture hash\n- capture-hash row altered in the measurement but not in the receipt\n- R09_COMMIT not an ancestor\n- a non-whitelisted file changed between R09 and HEAD (one case each for scene source, tests/ui, fixture add, fixture delete, runner tool, suite-policy)\n- dirty working tree\n- input SHA drift\n- engine hash/version drift\n- settings/environment drift\n- index.commit not equal to R09 in reuse mode\n- HEAD mismatch in non-reuse mode\n\nKeep every existing negative test.\n\n(C) Metadata honesty. In docs/plans/original-completion-2026-10-02/execution/p08-03/implementation.json and CONDITION_MATRIX.md, record separately:\n- executed_native_source_commit=31aa770…, with its source/input/engine SHAs\n- current_candidate_commit, which is the new HEAD after the Runner commits (write 'to be bound by Runner' rather than a guessed SHA)\n- validator_only_changes, with their SHAs\nKeep the per-condition states as 'Root native evidence collected at 31aa; independent semantic acceptance pending; Root final full175 regression pending; integration pending'. Make no completion claims. Keep these review findings open as unresolved semantic-acceptance items:\n- the preview/runtime stair difference\n- the coordinator runtime acceptance=false\n- Windows same-distribution remains open\n\nDo not add numeric specs, caps, budget/security/billing changes, Godot/native/full runs by the worker, commits, or files outside allowed_paths. Run only the pure Python checker tests locally, and report exactly what was run.", + "codex_model": "gpt-6.1-sol", + "codex_model_reason": "This repair is limited to two existing Python files, a fixture deletion and a docs update. The design is fully specified above: git ancestor/diff whitelist checks, stricter JPEG marker parsing, hash cross-checks and negative tests. No new architecture, native runs or multi-component debugging is needed, so the default gpt-6.1-sol is enough on quality, time and usage. Astra's extra cost is not justified." +} diff --git a/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_RUN.json b/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_RUN.json new file mode 100644 index 0000000..beac523 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p08-03/OPUS_REPAIR14_RUN.json @@ -0,0 +1,7 @@ +{ + "action": "run", + "task_id": "P08-03", + "reason": "P08-03は状態がrepair_readyで、repair14のrequest-repair指示はすでに出ています。次の正しい手順は、記録済みのrepair14の範囲と設計どおりに修正runを1回実行することです。新しいタスクの作成やnative収集の重複は行いません。修正対象はrepair14の具体的な指摘に限り、必須条件5件(support_connection, invalid_position_reason, demolish_rebuild, pan_zoom_world_identity, separate_pid_resume)をすべてそのまま満たし続けます。allowed_paths、権限、仕様、受入分母、予算、上限は変えません。workerが実行するのはローカルのpure Pythonによる構文チェックとチェッカーテストだけで、Godot、native、OS、フル回帰テストは実行しません。提出物には実際に実行したテストと最終的なfixture/source SHAを記録し、未完了の項目は未完了として明記します。Rootが担当するfinal175、native/OS収集、別セッションでの意味レビュー、統合はこのrunの範囲外です。", + "codex_model": "gpt-6.1-sol", + "codex_model_reason": "既定のgpt-6.1-solを維持します。repair14の範囲は具体的な指摘に絞られ、すでに記録済みです。作業は既存の許可パス内での狭い修正で、検証もpure Pythonのチェッカーテストだけです。新しい設計判断や、難易度が上がったことを示す新しい根拠はありません。過去のcodex実行は大量の入力トークンを使っているため、gpt-6-astraに切り替えると、品質向上がはっきり見込めないまま時間と使用量だけが増えます。" +}