Files
TheTree_mock/docs/spec/acceptance/P24-02-code-r01.json

89 lines
8.7 KiB
JSON

{
"id": "P24-02",
"title": "操作と通知",
"authority": "Designated original BASELINE and existing implementation plan; human explicitly permits reordered work, multiple-AI plugin development, main update and proceeding without invented approval blocks. No unapproved values or criteria reduction.",
"original_excerpt": "## 11.1 メイン画面レイアウト\n * **上部:** 資金・マナ・資材リソース、時間・天候、世界樹ランク。\n * **下部:** [FRONT / BACK] レイヤー切替巨大トグルスイッチ、建設・管理メニュー。\n * **マップエリア:** マウススクロール、ズームインアウト対応の2D断面図。表/裏の視覚的強調・半透明化制御。\n## 11.2 インスペクター・詳細ウィンドウ\n * **施設:** ポリシー設定、シフト配置(ドラッグ&ドロップ)。\n * **ユニット:** 客の欲求バー・AI思考ログ、従業員の感情3軸グラフ・愛の盾耐久値。\n## 11.3 覗き・背徳インターフェース\n * 裏層の「カメラアイコン」からマジックミラー視界へ移行。\n * アングル変更、スクリーンショット(脅迫証拠収集)、介入操作が可能。\n## 11.4 建設・通知UX\n * **建設:** グリッドスナップ、接続ライン警告表示。\n * **通知:** ユニット頭上のフキダシ(Zzz、怒り、ハート)、イベントログ。\n * **カットイン:** 「NTR侵食開始」などの重要警告、決闘発生、防衛戦開始演出。\n",
"original_baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a",
"plan_work": "配置、無効ドロップ、モーダル、停止、再開、フキダシ、ログ、カットインを整える。",
"plan_acceptance": "無効操作を説明し、クリック代替と日本語入力・表示倍率を確認する。",
"conditions": [
{
"id": "placement_and_invalid_drop",
"required": "Original grid snap and connection warnings; valid placement commits once, invalid placement/assignment explains the actual rejection, leaves model/ledger/selection intact, supports equivalent click-based operation."
},
{
"id": "modal_and_pause_resume",
"required": "Modal open/cancel/confirm, input focus, pausing and resuming preserve pending commands and save identity. Behind-dialog input cannot accidentally build or change assignment. Actual pause freezes simulation and ordinary resume continues exactly once."
},
{
"id": "unit_bubbles",
"required": "Unit overhead Zzz, anger, heart correspond to actual existing state. Observe source/model/render bindings and switching/removal without stale symbols; do not invent gameplay thresholds or hidden approved values."
},
{
"id": "event_log",
"required": "Actual production events reach bounded recent log in sequence, readable Japanese with correct amounts/time/reasons, no duplicate events across pause/load. Reuse accepted256-entry log only with matching source applicability."
},
{
"id": "important_warning_cutin",
"required": "Original important-warning UI for invasion start, duel, defense start is connected to actual existing signals/states with clear text, dismiss/stop/resume behavior; fixture-only signal injection is local testing, not proof ordinary production trigger. Missing upstream/catalog/assets remain explicit dependencies, do not claim complete."
},
{
"id": "click_alternatives",
"required": "Provide/verify click equivalents for necessary pointer/drag/modifier navigation and assignment operations. Reuse existing step/zoom/bounds mechanisms and scales; presentation controls must not change gameplay model. Manual P23 held gestures remain deferred, not waived or relabeled."
},
{
"id": "japanese_input_and_scale",
"required": "Actual OS Japanese composition/confirmation/cancel, persisted display of valid Japanese text and clear invalid-input feedback, representative window/display scales with clipping/focus/modal inspection. Use existing save display_name metadata for an editable optional Japanese save label if a suitable text field is absent; retain existing default name, cryptographic owned path, old-save preservation and cancel semantics. Do not add new gameplay numbers or rename save paths to user text. Explicitly classify macOS current development verification and still-required same-Windows-release platform acceptance; do not transfer prior Windows evidence."
},
{
"id": "final_validation_review",
"required": "Static/import, local/affected tests first; batch related fixes then run required full roster on exact final game/source/settings. Exact version/source hashes/config/inputs/artifacts and condition status. Independent separate Claude review with actual runtime evidence (not pending templates alone), current-main integration and final validation. All required conditions/evidence must hold to close P24-02; no partial credit, no counts as acceptance."
}
],
"scope": [
"scenes/main/main.gd",
"scenes/main/world_preview.gd",
"scripts/ui/event_log_dialog.gd",
"scripts/ui/manual_save_slots_dialog.gd",
"scripts/ui/operation_feedback.gd",
"scripts/ui/operation_feedback.gd.uid",
"scripts/ui/operations_camera_controls.gd",
"scripts/ui/operations_camera_controls.gd.uid",
"tests/ui/test_operations_notification.gd",
"tests/ui/test_operations_notification.gd.uid",
"tests/ui/fixtures/operations_os_observer.gd",
"tests/ui/fixtures/operations_os_observer.gd.uid",
"tools/check_p24_operations_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-02/**"
],
"dependency_completed": {
"id": "P24-03",
"closure": "docs/plans/original-completion-2026-10-02/execution/p24-03-formal-closure-r01/closure.json",
"sha256": "3d1f2ed3d312b3e64d491685fb4cd1bf2704f59fb014db606539080092c97868",
"integration_commit": "0a759f13aed03c05fd4a25ab4a2c26eefec94e3c"
},
"reuse": [
"P24-03 all7 accepted evidence and raw source_map1304/full17314810/local4suite/native OS separate17306->19943; reuse only if exact source/config/inputs applicable",
"P24-02 existing actual event_log bounded256 viewport8/314functional23parse evidence, root review8eec3a8492aa74f571eb21447c6911cea64d176e0f813152f226b2b4122ba387; old source limited, not current acceptance"
],
"implementation_order": [
"Read current source + all required conditions, separate already-valid proofs from missing implementation/proofs. Do not launch any duplicated worker.",
"Batch acceptance-required UI fixes in listed paths. Prefer existing licensed Kenney UI/assets first, no new assets/license paths without needing them. Japanese save-label uses existing metadata and owned encrypted-random directory rule.",
"Implement passive actual Main/runtime observer and strict verify-only acceptance index checker, source/artifact hashes, IDs/OS process/real save proof; malformed/missing/unknown proof fails. Committed pending templates must never masquerade as actual proof.",
"Add meaningful local UI tests with real model and ordinary cleanup/profile guards; preserve existing tests/strict marker policy. Root Runner owns heavier native/OS/full roster, no worker duplicated full regression.",
"Submit exact code and documented gaps/collector protocol; missing proof is not a reason to stop implementing independent authorized fixes. No game completion or acceptance from source alone."
],
"validator_contract": "tools/check_p24_operations_evidence.py --verify-only must read BUILD_OUTPUT_DIR/p24-operations-evidence/index.json, verify schema/source/artifact integrity and all8 conditions including real OS input/config and latest whole roster. Required tests/finalreview gate cannot be mocked or skipped. Machine verification success is distinct from later independent formal review/integration.",
"worker": "agy",
"forbidden": [
"No numeric gameplay defaults, unknown content/catalog/route details, proof fabrication or existing-test deletion/weakening",
"No live player data edits, credential reads/copies/API billing switch, Git push/commit/main edit by worker",
"No edits outside allowed scope or duplicate game/cross-project workers",
"No treating a required missing asset/event/upstream specification as satisfied; continue independent work and report exact dependency"
],
"platform_note": "P24-03 closure does not accept Windows. P24-02 must map platform-specific conditions explicitly and retain same Windows candidate device acceptance in final plan; only genuinely Windows-dependent subconditions are unavailable on this Mac, other work proceeds."
}