From 286730f88ce430a1cbe1501d40361188f832d235 Mon Sep 17 00:00:00 2001 From: Takeshi Date: Tue, 13 Oct 2026 00:46:32 +0900 Subject: [PATCH] docs: record P24 start and correct implementation role after read-only loop --- .../p24-03-runner-start-r01.json | 67 ++++++++++++++++++ .../plan_validation.json | 2 +- .../work_packages.json | 18 ++++- docs/spec/acceptance/P24-03-code-r02.json | 68 +++++++++++++++++++ 4 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 docs/plans/original-completion-2026-10-02/execution/multi-agent-dev-handoff/p24-03-runner-start-r01.json create mode 100644 docs/spec/acceptance/P24-03-code-r02.json diff --git a/docs/plans/original-completion-2026-10-02/execution/multi-agent-dev-handoff/p24-03-runner-start-r01.json b/docs/plans/original-completion-2026-10-02/execution/multi-agent-dev-handoff/p24-03-runner-start-r01.json new file mode 100644 index 0000000..ac1760e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/multi-agent-dev-handoff/p24-03-runner-start-r01.json @@ -0,0 +1,67 @@ +{ + "observed_at_jst": "2026-10-13T00:38:51.342403+09:00", + "scope": "one original P24-03 among original30/88, no completion", + "task": { + "id": "P24-03", + "contract": { + "id": "P24-03", + "title": "選択と保存の受入", + "requirement_ids": [ + "P24-03" + ], + "acceptance_ids": [ + "P24-03" + ], + "spec_ref": "docs/spec/acceptance/P24-03.json", + "base_commit": "9b2ee480a88054eb863eb5cdff855b379201a7c1", + "worker": "agy", + "allowed_paths": [ + "scenes/main/main.gd", + "scripts/ui/guest_observation_panel.gd", + "scripts/ui/staff_management_panel.gd", + "tests/ui/test_selection_departure.gd", + "tests/ui/test_selection_departure.gd.uid", + "tests/ui/fixtures/selection_cross_process.gd", + "tests/ui/fixtures/selection_cross_process.gd.uid", + "tools/check_p24_selection_evidence.py", + "tools/run_all_tests.py", + "tools/regression/suite-policy.json", + "docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json", + "docs/plans/original-completion-2026-10-02/execution/p24-03/**" + ], + "depends_on": [], + "resource_locks": [ + "main-selection-lifecycle", + "selection-acceptance-profile", + "regression-roster-policy" + ], + "validation_ids": [ + "p24-acceptance" + ], + "max_repair_attempts": 2, + "spec_sha256": "4d353ff816d8edbb39671159e4f9fd87c20224cf0c44ea7b8fadc03bf25ae244" + }, + "state": "implementing", + "worktree": "/Users/korizatou114/Projects/TheTree-managed-worktrees/p24-03/P24-03-implement", + "submitted": null, + "candidate": null, + "main_base": null, + "reason": null, + "repairs": 0, + "evidence": [], + "owner_approval": null + }, + "prepare_job": "19d0869176724618b1b1707a511a014b", + "doctor_job": "8385adb488a84701aff065e15738a896", + "commander_job": "17c84f847fce40599a1e274802437b6b", + "dispatch_job": "3eefb441761546d6ae2f59000d912e9a", + "old_proof_reuse_audit": { + "path": "artifacts/original-completion-2026-10-02/p05-normal-principal-ui-formal-reader-native-r01/execution.json", + "then_passed": false, + "changed_source_count": 14, + "current_pass_reused": false + }, + "normal_os_input_connection": "native tool inventory returned now; actual candidate input not executed", + "formal_tests_run": false, + "formal_review_run": false +} diff --git a/docs/plans/original-completion-2026-10-02/plan_validation.json b/docs/plans/original-completion-2026-10-02/plan_validation.json index 6c80480..0c2558b 100644 --- a/docs/plans/original-completion-2026-10-02/plan_validation.json +++ b/docs/plans/original-completion-2026-10-02/plan_validation.json @@ -254,6 +254,6 @@ "validate_facility_value_contracts.py": "91640e2a76cd6cc9186f7b85c0bf379b24b6cac0d48962815235ee628e7ae43e", "validate_plan.py": "23678227d9b3c556f1bd903f4b5b3147c4a82ce5085e10055481026803451b80", "validator_update_checks.json": "f997d0f3de2cea29550840b1d5cb23647d64f81329de46758551e2b6c8fecc27", - "work_packages.json": "5d778c852f6ed2d952b98d6c21c4d26c4dc2ec9cbaadd2fed05a74dd42863f63" + "work_packages.json": "8bd93b6a45d189486a07dfdfbc6c54de307404e4261ec2771dd5ca458165ca94" } } diff --git a/docs/plans/original-completion-2026-10-02/work_packages.json b/docs/plans/original-completion-2026-10-02/work_packages.json index 5226de3..3474a74 100644 --- a/docs/plans/original-completion-2026-10-02/work_packages.json +++ b/docs/plans/original-completion-2026-10-02/work_packages.json @@ -15634,8 +15634,22 @@ "title": "選択と保存の受入", "work": "施設・客・職員・レイヤーの選択を撤去、離脱、保存再起動に跨がせる。", "acceptance": "不在対象を参照せず、有効な選択と画面値が復元される。", - "state": "planned", - "evidence": [] + "state": "in_progress", + "evidence": [ + { + "path": "docs/plans/original-completion-2026-10-02/execution/multi-agent-dev-handoff/p24-03-runner-start-r01.json", + "sha256_at_integration": "ef39b7de2d9f3eb5791529c5e18c96d3736d570adae1b987abcb112860bdccb8", + "scope": "frozen original unit, managed single UI implementer start; no acceptance" + } + ], + "progress_summary": "原P24-03の契約をmain9b2ee48で固定。Runner/Claude開始判断からagy1担当を起動。既存3選択suiteとUI復元を再利用して実撤去/離脱/別process再開の不足に限定。旧reader-r01不合格・現14source差を確認し合格証拠として再利用しない。正式試験/通常OS入力/別Claude正式レビュー/受入は未実施。", + "remaining_gaps": [ + "施設/客/一般職員の実撤去・離脱時選択と画面値の現版証拠", + "正式保存・別processの通常Mainでレイヤー/各選択/表示値の復元", + "不正metadata・失敗読込・UI収集時Runtime不変の現版適用証拠", + "通常OS入力、局所/影響範囲/最終同版全回帰、正式独立レビュー" + ], + "updated_at_jst": "2026-10-13T00:38:51.342403+09:00" } ], "estimate_person_days_historical_2026_09_29": [ diff --git a/docs/spec/acceptance/P24-03-code-r02.json b/docs/spec/acceptance/P24-03-code-r02.json new file mode 100644 index 0000000..7a8bc8a --- /dev/null +++ b/docs/spec/acceptance/P24-03-code-r02.json @@ -0,0 +1,68 @@ +{ + "id": "P24-03", + "title": "選択と保存の受入", + "work": "施設・客・職員・レイヤーの選択を撤去、離脱、保存再起動に跨がせる。", + "acceptance": "不在対象を参照せず、有効な選択と画面値が復元される。", + "counting_scope": "one existing original unit among 30 packages/88 delivery units; no partial completion", + "original_authority": "docs/traceability/original/BASELINE.txt", + "approved_plan": "docs/plans/original-completion-2026-10-02/IMPLEMENTATION_PLAN.md", + "required_conditions": [ + { + "id": "facility_lifecycle", + "text": "有効施設の選択ID・表示値・地図強調を復元し、実撤去後は不存在参照を残さない。" + }, + { + "id": "guest_lifecycle", + "text": "有効客の選択・表示値を復元し、実離脱/除去後の現在状態に整合する。履歴の存在と現在の選択可能性を区別する。" + }, + { + "id": "staff_lifecycle", + "text": "有効職員の選択・表示値を復元し、許可された一般職員の実離脱後は不存在を参照しない。Unique人物の解雇/消去禁止を守る。" + }, + { + "id": "layer_and_values", + "text": "選択中レイヤーと画面値を正式保存し、別processの通常Mainで同じ状態を復元。UIで収集してもRuntimeを変えない。" + }, + { + "id": "invalid_and_failed_load", + "text": "不存在/不正型/過大ID/旧metadataを安全に扱い、失敗読込では現在選択とゲーム状態を保存する。" + }, + { + "id": "normal_os_input", + "text": "通常OSの選択・保存・別process再開の証拠が同一候補sourceと一致。関数呼び出し/pressed.emitのみをOS入力として扱わない。" + }, + { + "id": "final_validation_review", + "text": "必要な局所/影響範囲/正確な最終候補の全回帰と別Claude正式独立レビュー。試験件数を成果完了に代用しない。" + } + ], + "implementation_instructions": [ + "現sourceを確認し既存成果を再利用。正常なものを再実装せず、受入に必要な不足と不具合だけ修正する。", + "プラグインのCodex実装担当がデータ整合/保存/選択寿命のGDScriptと検証器を実装する。AntigravityはUI設計や素材差替えが必要な場合の担当。今回は見た目/素材/操作仕様の新設は不要。rootはワーカーsourceを代筆しない。経済/人物/マナ/Clock順序/旧保存係数を変えない。", + "原本とUnique保護を維持。離脱の履歴が残ること自体は不存在ではない。モデル状態を確認し表示/選択への扱いが整合することを証明。", + "必要なら新局所suite tests/ui/test_selection_departure.gd と別processfixture tests/ui/fixtures/selection_cross_process.gd を追加。既存suite/cleanup/strict markersの条件を弱めない。正式試験はRunner/rootが実行し、作成者はgit書込み/他担当起動をしない。", + "効率のため必要ならtools/run_all_tests.pyに--suiteを複数指定できる限定実行を追加。指定なしの全roster/parse範囲と既存ガードを維持し、限定実行はfull_regression=false、実行対象/全roster/同候補sourceを明記。未知suite/空指定は拒否。全回帰は最終候補で別途必要。", + "tools/check_p24_selection_evidence.py を作成。--verify-onlyはBUILD_OUTPUT_DIR/p24-evidence/index.jsonを読む。証拠がない/古いsource/未実行/条件不足なら非0。UI証拠の自己申告trueだけを受入にしない。source_map、PID、正式saveの整合、ログ/画面/OS入力、全回帰を具体的artifactと突合する。", + "indexにはrequired_conditionsの全IDごとに根拠artifact/適用sourceを持たせ、native/cross-process/OS/full regressionを区別し、欠損条件を報告する。machine validationが通っても元単位を自己完了にしない。", + "テストpolicy/marker追加は新suiteだけ、既存コードを変更したsuiteのSHA更新は理由記載。件数の水増し、assert削除、全状態の切り捨て、teardownの終了強制、外部PID/個人profile操作は禁止。", + "docs/plans/original-completion-2026-10-02/execution/p24-03/に条件matrixと変更/不足/実行計画を記載。未実行証拠はpending。OS操作やWindowsが未実行でもコード提出はsubmittedとして可、元成果の完了は全必要証拠と独立レビュー後のみ。", + "spec_sha256はRunnerがgit show文字列.strip()をUTF-8でハッシュした値。末尾改行を含むraw SHAとの違いだけでblockedにしない。根拠source_pinsはraw bytes SHA。", + "旧別worktreeの外部パスを必要入力にしない。全入力はこのrepo内の現在sourceと固定specで得られる。provider/Runner/台帳/原本を編集せず上限を変えない。" + ], + "current_source_pins": { + "scenes/main/main.gd": "a3d7d7ddd08a8df1f987806e60accf51792d728cf71c06e6b822f5a31d8ed3e3", + "scripts/ui/guest_observation_panel.gd": "67ffc6404262d803a6d677853f327759c3e68c592cc6c8a88a1ebd20aca239f2", + "scripts/ui/staff_management_panel.gd": "df3120130956b300d1349cb758c0aa30dfd7da5e0774fb7fb9a1f3e4e0786fb2", + "scripts/guest/guest_service.gd": "56880410e9a00816f9a95d30821982955532de8dd976980934e12016a9f2b21e", + "scripts/staff/staff_service.gd": "355ad5c3c9f85dc4d4ffc3bc4293e36f81078c403d1662512a735b2c8d815fb3", + "tests/ui/test_actor_selection.gd": "f37a0f4805adce4b538fccde1404c1a417f20639fddf36947f076d88409ba0a3", + "tests/ui/test_selection_lifecycle.gd": "ed68b120f422e1b37b8cf0654b6d6605458fe01c7e5d84decc3ba6f4e9366c47", + "tests/ui/test_selection_autosave.gd": "1d7d267ef171041f77241c4c2f1a1bb55a46253f803d5c496507e934bc8fa815", + "tools/run_all_tests.py": "320ca668732b4ff72fc4449998af2327d4e5c527b06896740806aaf0487282b4", + "tools/regression/suite-policy.json": "3d420b9f6ff50d9212a5960eaa9094bca710d2e12b3b652607f2672f2266c29e" + }, + "existing_evidence_reuse": "No current pass proof established yet; old test sources reusable, results only after version/config/input/environment/applicability match", + "dependencies": "Package dependencies are integration prerequisites, not automatic whole-package prerequisite for this vertical slice. Existing save/update/UI contracts must be verified for current candidate. Windows-specific conditions remain separately unaccepted; Mac gaps are work, not environment blockers.", + "operational_revision": "code-role-r02; same original P24-03 work, acceptance, conditions and scope; AGY run cancelled after repeated read-only calls and zero edits", + "reassignment_authority": "窓口が、ユーザーの複数AI開発体制(Codex実装/agy UI)の既存許可とClaude診断19dce17d054d4ea89f3d5d614f84b494に基づき担当分界を訂正。原仕様/受入/予算/上限/権限の変更はない。" +}