Files
TheTree_mock/docs/IMPLEMENTATION_STATUS.md
T

181 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 実装状況
この文書は仕様書そのものではなく、現在のコードがどこまで到達しているかを記録する。ゲームルールの正本は `GAME_SPECIFICATION.md`、System境界と不変条件の正本は `SYSTEM_SPECIFICATION.md` とする。
## 実装・自動検証済み
### S0: 決定的Simulation基盤
- 1ゲーム分固定Tickと11段階の処理順
- Command Queue、priority、予約時刻、処理後も保持する受理ID/idempotency対応、旧Queue Snapshot移行
- 原子的State Transaction
- subsystem別の決定的RNG Stream
- Stable ID、全件検証後に一括Commitする再入安全なDomain Event Batch、Simulation Digest
- Directory単位のAtomic Save、Checksum、backup、Load直後の時刻維持
- 同一Seed・Command列を24時間再生したDigest一致
### S1: 世界・建設
- `(x, y, layer)` Cell、ZoneとFRONT/BACKの分離
- Rank 1〜7の非破壊World拡張
- Occupancy、掘削、構造支持Component
- 決定的A*、Path Cache、明示Connectorと利用権限
- セル容量・密度・動的Cost、Soft Collision、混雑回避
- Cost低下・通行再開時のCache失効、権限別の正確な経路Cost、無関係な障害を除いた不到達理由
- Elevator稼働状態と有限Queue、Request/Unit二重登録防止、停止時迂回、30分停滞検知と安全復旧候補
- Placement検証、ConstructionJob、取消、完成、撤去
- 建設完了通知の保留・確定・破棄境界。完成処理の検証中は外部通知を出さず、成功時だけ順序を保って一度ずつ公開する
- 硬度別の地下掘削Job、入口までの接続、支保条件、中断再開、FRONT/BACK同時解放
- 地下施設の全Footprint掘削済み検証と、Zoneを跨ぐFootprintの拒否
- 境界施設はanchorを境界へ固定し地上側へのFootprint展開を許可、地上/地下施設は全Footprintを指定Zoneへ厳格固定
- 主要施設占有と独立して同一Cellへ共存できるROUTE/DECORATION/UTILITYの3種subslot、複数Cell横断、Path投影用query、厳密Snapshot
- ROUTE subslotの追加・置換・撤去とPath graphを原子的に同期し、失敗時の双方復元、revision/stale判定、冪等再送、隔離まで扱うAdapter
- 完成した客用通路/業務用通路を実ROUTEへ、従業員ドアを職員専用FRONT↔BACK Connectorへ原子的に投影・撤去する境界。安定ID、crosslink、exact rollback、隔離、厳密Snapshotを含む
- Runtime v6で掘削、subslot、Path投影、施設投影を1分Tick・Rank拡張・建設完了・撤去・Saveへ統合。Runtime v5の旧代理施設を決定的に実ROUTEへ移行する
- World、Path、Constructionを含むSnapshot往復
### S2: 施設・在庫・物流・Mana・経済
- Facility状態の優先評価と複数reason
- 営業時間、Policy Snapshot、priority Queue、Capacity Slot
- Service開始・進行・中断・完了Callback
- owner別Inventory Stack、FEFO Reservation、期限切れ、監査修復、既定IDの再利用を防ぐTombstone
- 入力fingerprint付き冪等性、競合する一括操作の事前拒否、全件原子rollback
- Logistics Request、貨物所有権移転、決定的Dispatcher、候補外になった運搬人の予約積載保持
- 歩行Graphと独立したMana Network、優先供給、蓄電、Brownout、復旧保持
- Goldを直接代入しない複式Ledger、逆仕訳、部分返金、日次照合
- 建設費・撤去返金とLedgerの原子的Adapter
- 原料予約から施設Serviceと売上記帳までの統合Cycle
- Cycle途中のSave→Load→再実行でDigest完全一致
- §7.6のMVP施設16種をStable ID付きDefinitionとして登録・Schema検証
- 施設詳細Schema version 2を追加。静的Definitionと可変Instance/日次履歴の境界、Access、Upgrade、営業時間、Policy、環境・リスク、客層、解禁、統計、サービス種別ごとの時間・品質・価格・処理単位・欲求効果を定義し、Registryで厳密検証
- 受付、厨房、成人向け個室を詳細Schemaへ先行移行し、複数接客・BACK生産・夜間成人向け営業の3類型を自動検証。その他MVP 13施設と拡張16施設は互換Schema version 1で段階移行可能
- MVP互換性を保つ拡張施設16種を`data/facilities/expansion/`へ分離して定義。地上一般向け5種、地下FRONT5種、BACK6種についてZone/Layer、建設費、Footprint、人員、容量、時間、価格、在庫、Risk Tagを固定し、通常建築パレットへの解放前に個別検証できるCatalog境界を追加
### S3: 客・従業員
- 6種のGuest Need(Hunger/Sleep/Hygiene/Medical/Leisure/Intimacy)、Utility、状態遷移、実経路を1セル/分で移動
- 旧5欲求Saveだけの決定的移行、現行経路での旧Need名・欠落・混在拒否、成人確認付き昼夜Intimacy
- 所持金と未決済予約を考慮した施設選択
- Queue、Service、退出、経路失敗の安全な復旧
- Staffの複数Shift、Task Dispatcher、実移動、疲労と危険作業制約
- 雇用区分、人物別日給、ID順の日次給与入力、当日発生と繰越債務を分けた部分清算、退職者の未払給与別台帳、旧Saveの互換移行
- 清算ID/日付/入力fingerprintによる二重発生防止と、派生合計まで照合する給与履歴Snapshot
- 勤務終了、施設人員喪失、Service猶予と失敗の連動
- Guest/Staffのnamespaced Path投影、密度同期、固定小数点混雑速度、30分停滞復旧
- Guest/Staff/Facility/Inventory/Ledgerの24時間決定的再生
- 破損Snapshotと孤児参照を副作用なしで拒否
### S4: 関係・Event
- Affection、Trust、Fear、Corruption、Rival Bond、Shield
- Shield攻撃、反復Penalty、段階閾値、Route Lock確認境界
- データ駆動Condition/Action/Choice
- foreground Event排他、Actor Lock、Cost escrow
- Content FilterのFADE/REPLACE/DISABLE
- 選択二重送信、Actor欠落、Action失敗、Save途中再開の安全な復旧
- Threshold発火と24時間exact replayのRuntime統合
- 配置確定前に共有施設・重複時間、Shield攻撃候補、発火可能Event、Route Lock警告、施設/時間の回避案を決定的に比較する読み取り専用Preview
### S5: 行政・監査
- Heat、Suspicion、Incident重複排除、日次減衰とactive-case下限
- Evidenceの位置、視線、到達、証言、既知施設による発見根拠
- 監査予告、専用RNG、監査官の実Path巡回、到達不能時の安全退出
- 証拠点による処分、罰金の複式台帳反映、`resolution_id`二重適用防止
- Authority全Command、Domain Event、Snapshot、原子的RestoreのRuntime統合
- 毎日06:00評価、途中Save、24時間exact replay
- Raid Wave、明示参加者と画面外戦力、扉・設備・目的物のラウンド更新
- 防衛Score、疲労・奇襲・複数入口、Active Skill、撤退方針、複数Wave
- Round再送、操作種別付き解決ID、外部効果/RNG rollback、厳密な時刻契約
- Cancel終了の原子反映、Wave別侵入口、防具軽減、途中Save、JSON輸送、破損Snapshot拒否
- Defense全10 Command、専用RNG、Skill費用、Staff/Facility損害、Raid排他LockのRuntime統合
- 終了Raidの履歴化と後続治療/修理、scheduled Command時刻、Runtime v1からDefense付きv2への決定的移行
### S6: 保存・運用の基礎
- 正式Saveを維持する3世代Autosave
- Checksum付きRecovery候補と明示的Recovery Load
- N→N+1の連続Migration RegistryとMigration前backup
- Migration/Autosave回転中断の自己修復とRecovery候補
- 保存root・親directory・非package・package内symlink越境を全Load入口で拒否するパス安全性
- 通常Saveのrename中断マーカーと自己復旧、Autosave世代縮小時の検証済み候補だけを安全に整理
- 安定Save ID、完全Manifest既定値、Thumbnail生成と上書き時のidentity保持
- 実行画面だけが有効化する本番Autosave policyと、Test/独立Runtimeの保存先分離
- 毎日06:00の固定境界Checkpoint、3世代回転、手動保存Queue、復旧候補の検査・明示Load
- Load直後の時刻保持と、壊れたTask/終了Event Lockだけを対象とする原子的なRecovery限定修復
- 正式、backup、移行前、Autosaveの各候補をRuntime全Domainへ隔離復元し、ゲームとして成立する最初の候補だけを採用する復旧fallback
- Saveより厳しいContent FilterをLoadで弱めない安全な統合と、不明enumの厳密拒否
- Simulation、Path、Save、Load、stallの実測付き性能予算Collector
- PERF-MVP-001の正確なFixtureと24時間Harness。完全条件を3回連続24/24合格(x4 P95 8.14~8.45ms、最大停止予算も合格)。これは独立Service合成の論理負荷であり、Runtime全Domainや実描画Frameの計測とは区別する
### 14日運営Coordinator基盤
- 暦日は00:00に更新し、06:00に前営業日の日次締めと朝運用境界を固定順で一度だけ実行
- 需要の60分更新と30分ごとの来客計画、fixed-point carry、収容・来客上限
- DaySummary、前日差、7日移動平均、施設別損益、未払解消と3回連続破綻
- 外部Domainのcapture/validate/apply/rollback境界、14日間の省略なしexact replay、Snapshot v3と旧版移行
### MVP人物・進行データ境界
- 客8クラスと種族4種を別軸にした32通りの成人確認済みGuestDefinition生成
- 自由雇用候補20人の固定ID、成人確認、役割、契約費、日給、4技能、許可業務
- ヒロイン`heroine_anri`とライバル`rival_rai`の相互参照、固有効果、通常売却禁止タグ
- 不明field/tag、重複ID、成人未確認、18歳未満、孤児参照、型の暗黙変換を全体fail-closedで拒否
- Rank 1~7の逐次条件、累計Faith/客、地上・地下稼働条件、派生MapBounds、冪等昇格Request
- World拡張用capture/apply/rollback境界、rollback失敗時の隔離、厳密Snapshot往復
- 32 Guest定義のRuntime登録、候補雇用時の契約費・日給・Shift・Pathの一括確定、重複雇用防止
- 累計Faith/累計客の実取引連動、Rank昇格とWorld/Path/GameStateの原子的確定、旧Runtime Rank 1保存の安全な移行
### 操作画面
- V3モックを基準にした暖色の木・革・羊皮紙UI。上部の常設HUD、左の管理カテゴリ、中央の生きたMap、右の施設Inspector、下部の建築パレットへ領域を分離
- 表層の世界樹宿と地下根域の製品向け背景アセットを導入。背景Texture、UI Palette、重ね描画Opacityを`VisualThemeProfile`へ分離し、Main SceneのTheme指定だけで一括交換可能。Theme欠落時は手続き描画へ安全にFallbackする
- 施設16種、管理カテゴリ6種、資源4種、表裏層・掘削・回転・保存などの操作アイコンを、実透明の4×4 Atlas Assetとして導入。UIは安定IDから`VisualThemeProfile`の割り当てを取得し、画像名やAtlas座標を直接参照しないため、後からTheme単位または個別割り当てで交換可能
- 施設Iconを中央Mapの完成施設・建設中施設・配置Previewへも接続。占有CellとHit Testは従来どおりWorldServiceを正とし、Iconは占有範囲中央へ視覚的に重ねるだけなのでSimulationとSave互換性を維持する。選択中の施設/工事は右Inspectorにも同じTheme Iconを表示
- 客8クラスと従業員8役割群の成人キャラクターMarkerを実透明4×4 Atlasとして導入。客種別/従業員役割の安定IDからTheme割り当てを解決し、派生客種別はクラス接頭辞へ、未知IDは既定MarkerへFallbackする
- 外枠・木・革・羊皮紙Panel、Button 4状態、選択/警告枠、待機Badge、工事中、客/従業員経路、FRONT/BACK境界装飾を4×4 UI Skin Atlasとして導入。主要Panel、全Button、Map経路、工事中Cell、待機Badgeを意味ID経由で接続し、Theme欠落時は従来のStyleBoxFlat/手続き描画へFallbackする
- 外部の画像生成AIで正式素材を再制作するための`ART_ASSET_PRODUCTION_SPECIFICATION.md`を追加。現在接続済みの全画像について推奨解像度、Alpha、Atlas順序、生成指示、差し替え手順、納品判定を固定した
- 1440×810を基準解像度として、`canvas_items`/`expand`/fractional stretchとHiDPIを有効化。背景、施設、共通操作、人物AtlasにはMipmapを生成し、720p・1080p・1440p・4Kで同一UI構造を維持する
- 上部HUDへ営業日、時刻、時間帯、来客、宿泊予定、所持金、Mana、資材、Faith、Heat、一時停止、x1/x2/x4を常設
- 実World Cell、占有、工事、施設、Guest、StaffのFRONT/BACK別描画
- PathServiceの実密度/容量から緑・黄・赤の混雑経路を描画し、FacilityServiceの実待機列をMap上の数字Badgeとして表示
- 施設選択と状態、reason、待機列、Service、配置人員の表示
- 仕様表のMVP施設16種を選べる画面下部の横スクロール建設パレット
- 回転、配置Preview、重なり等の失敗理由、建設Command
- 掘削モード、正式な費用・入口接続・支保Preview、Rank/運営gate、進捗表示、FRONT/BACK同時解放Command
- 時間、一時停止、x1/x2/x4、Event、Heat、手動Save/Load
- 本番運営の明示起動、個人AP、未払給与、前日損益、要確認/破綻状態、失敗境界の再試行表示
- 検証済み雇用候補20人の一覧。氏名、役割、勤務帯、契約金、日給、4技能を表示し、原子的な雇用Command、未払/破綻gate、二重クリック防止、即時/予約実行結果、Save済みCommand履歴からの再試行連番復元へ追従する
- foreground Eventの日本語Choiceボタン、安定した選択Command、解決後の停止解除と選択欄消去
- 1280×720、1440×810、1920×1080、2560×1440、3840×2160で、左Navigation/中央Map/右Inspector/下部Paletteの位置関係を含むLayout自動検証
## 統合済みの運営縦断
- 14日運営CoordinatorをEconomy/Guest/Staff/Facility/Authority/Eventへ接続し、06:00の営業日締め・朝処理、給与、未払、3回連続支払不能による破綻までRuntimeから実行する
- 人物カタログを使った自動来客・雇用時の日給と、累計客/Faith/稼働施設によるRank条件を日次運営へ接続する
- 実Simulation Tickによる24時間連続運転、選択待ち停止再開、Save復元、部分給与、破綻後no-opを受入試験で確認する
- 14日20,160分については運営境界を加速した連続/Day 7復元の一致を確認する。全Actor AIを含む20,160回の実Tick受入とは区別する
- 掘削と客用通路/業務用通路/従業員ドアをRuntime v6へ統合し、完成失敗時のConstruction・World・Path・通知を一括で戻す
## MVP垂直スライスとして残る範囲
現在は、安全に保存・再生できる「操作可能なSystem縦断」であり、14日MVPの内容完成ではない。次の範囲は引き続き必要となる。
- 全Actor AI、全Event、監査、経路移動を含む20,160分の実TickによるS14-CORE受入
- ユニーク2人の配置・接触判定と、そこから生成する14日Event列
- 通常隣接Edgeを安全に抑制する垂直Topologyと、客用/業務用昇降機
- 配置と同一Shiftから関係Event候補を生成する接触判定と事前リスクPreview
- 夕方混雑、FRONT/BACK比較、健全/地下収支を直接比較するScenario Test
- 100客・30従業員の実描画Frame試験
- 製品用アート、音響、物語本文、完全なチュートリアル、バランス調整
## 実行方法
make test
make check
make run
試遊の手順は `PLAYTEST_GUIDE.md`、仕様とTestの対応は `TEST_MATRIX.md` を参照する。各Systemのテストは画面Nodeに依存せずheadlessで実行でき、新しいSystemを追加する際はSnapshot、Atomic Restore、決定性Testを同じ変更に含める。
14日受入の共通Fixtureと数値境界は `MVP_ACCEPTANCE_SCENARIOS.md` に固定する。