Files

112 lines
8.8 KiB
Markdown
Raw Permalink 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.
# ローカル制作版の復旧ガイド
更新日: 2026-09-09。現行の制作フォルダや元Drive版を上書きせず、Gitの基準bundleから別ディレクトリへ復元する手順です。
## 保存した基準点
| 項目 | 値 |
|---|---|
| ローカル正本 | `/Users/korizatou114/Projects/とりにく工房ゲーム制作部` |
| 基準コミット | `423fd6dd2e75da926e38b35ac8c435e462b168d9` |
| コミット内容 | `Preserve approved pixel tower prototype as development baseline` |
| 制作ブランチ | `codex/first-operating-loop` |
| 復旧bundle | `/Users/korizatou114/Projects/the-tree-backups/the-tree-baseline-2026-09-09.bundle` |
| bundle SHA-256 | `6c33456fed426b5348f7f3a1b2ee5e0dfdf8f9d70bca9acc293ba62b7ae05cd0` |
bundleはこの基準点までの完全なGit履歴を保持します。作成時の `main`、`codex/first-operating-loop`、`HEAD` は同じ基準コミットを指します。この後のP0資料更新とP1実装は、別途コミットして新しいbundleを作るまで、この基準bundleには含まれません。
含むものはGit管理されたソース、Godotプロジェクト、Definition、テスト、資料、元画像、Kenney原文ライセンス等です。`.godot/` のインポートキャッシュ、`build/` の配布物、`artifacts/` のキャプチャ、ゲームの `user://` 保存は含みません。Godot実行ファイルとWindows Export Templateも別途必要です。
元Drive版は内容照合が終わるまで復旧候補として残します。制作正本へ自動で同期したり、復旧のために元Drive版を削除したりしません。
## 追加の保存点
基準版を保持したまま、同じバックアップフォルダへ次の完全履歴bundleを追加する。
| 内容 | 実装コミット | bundle名 |
|---|---|---|
| 通常開業ガイド・継続配属・単日決算 | `29a660a` | `the-tree-first-operating-day-2026-09-09.bundle` |
| 有料仕入れ・厨房・実配送・商品パネル | `627b200` | `the-tree-supply-chain-2026-09-09.bundle` |
| 価格・営業設定・受付無料化・Digest軽量化 | `b3b82ef`(先端は最終検証記録も含む) | `the-tree-business-management-2026-09-09.bundle` |
供給版bundleは実装後の最終検証記録まで含む。先端は `git bundle list-heads` で確認する。SHA-256は同名の `.bundle.sha256` ファイルに記録する。供給版の復元・試遊では、下の基準版bundleのファイル名を供給版へ置き換え、インポート後に `make test-supply` または `make preview-supply` を使う。3タブのPNGと検証ログはGit外の `artifacts/supply-chain/` にあり、bundleには含まれない。
## 1. bundleを確認する
現在の制作フォルダで実行します。いずれも読み取り専用です。
```sh
cd '/Users/korizatou114/Projects/とりにく工房ゲーム制作部'
git bundle verify '/Users/korizatou114/Projects/the-tree-backups/the-tree-baseline-2026-09-09.bundle'
git bundle list-heads '/Users/korizatou114/Projects/the-tree-backups/the-tree-baseline-2026-09-09.bundle'
shasum -a 256 '/Users/korizatou114/Projects/the-tree-backups/the-tree-baseline-2026-09-09.bundle'
```
`verify`が成功し、完全履歴と表示され、SHA-256が上表と一致することを確認します。SHA-256が異なる場合は同じ基準bundleとして使わず、別の保存物か破損かを確認します。
## 2. 新しいフォルダへcloneする
復元先は例として `TheTree-restored-2026-09-09` を使います。同名のフォルダがある場合は別名を選び、既存フォルダを消して空ける操作は行いません。
```sh
git clone --branch codex/first-operating-loop \
'/Users/korizatou114/Projects/the-tree-backups/the-tree-baseline-2026-09-09.bundle' \
'/Users/korizatou114/Projects/TheTree-restored-2026-09-09'
cd '/Users/korizatou114/Projects/TheTree-restored-2026-09-09'
git rev-parse HEAD
git status --short
```
HEADが `423fd6dd2e75da926e38b35ac8c435e462b168d9` と一致し、作業ツリーが空の差分であることを確認します。そのコピーで制作を続ける場合だけ、復旧用のブランチを作ります。
```sh
git switch -c codex/recovered-pixel-baseline
```
この手順で現在の制作フォルダの履歴や未コミット変更は動きません。元フォルダに対する `reset --hard`、`clean`、上書きコピーは必要ありません。
## 3. キャッシュを再生成して確認する
復元先のフォルダで、Godot 4.7系を使って実行します。
```sh
godot --headless --editor --path . --quit
make test-pixel-ui
```
初回は元画像から `.godot/` を再生成するため時間がかかります。`godot` がPATHになければ、実際のGodot実行ファイルを用い、Makeには `GODOT='/実際のGodot実行ファイル'` を渡します。
描画可能なデスクトップで保存なしの見学を開きます。
```sh
make preview-pixel
```
受付、食堂、客室、実際の客と従業員が表示され、ズーム・パン・停止・レイヤー切替が動けば、表示の復元を確認できます。見学は手動保存・読込・自動保存を無効にしており、通常ゲームのセーブを更新しません。
通常ゲームは `make run`、全Systemの検証は `make test`、Windows配布物の再生成は対応するExport Templateを用いて `make export-windows` です。基準版は通常3営業日運営や昇降機運行が完成した版ではないため、未実装の項目を復旧失敗と判定しません。
## ゲームのセーブと復旧コードは別に扱う
コードを別フォルダへcloneしても、同じプロジェクト名の通常起動は同じ `user://` 保存先を使います。ソースの復元だけでゲームのセーブ履歴は戻りません。通常の手動保存は `user://saves/manual_ui`、その他の世代保存とRecovery候補はSaveServiceが管理します。
プレイデータも保全する場合は、通常ゲームを閉じてからOS上の実際のユーザーデータディレクトリを別の場所へ丸ごとコピーします。復旧確認ではまず保存なし見学を使い、旧版から現行セーブへ上書き保存しないでください。通常ゲームへ戻すときは、読込可否と保存形式の移行を確認したうえで、Loadの正式・backup・autosave等の復旧候補を使用します。
## 検証記録
2026-09-09に次を確認しました。
- `git bundle verify` 成功。基準bundleは完全履歴を保持し、SHA-256は上表と一致。
- bundleから `/tmp/the-tree-recovery-check.Ph7d3m/project` へ別ディレクトリclone成功。HEAD一致、clone直後のGit差分なし。
- `project.godot`、`Makefile`、Main、見学シナリオ、Kenney両パックの原文ライセンスが存在。
- Godot `4.7.2.stable.official.ed1daf0bf` で復元先のHeadless Editor読込・素材再インポート成功。
- 復元先の `test_pixel_tower.gd` が **238項目合格**。カメラ、実施設クリック、停止、Simulation不変等の回帰。
この復旧確認では、全System試験、通常ゲームのセーブ上書き、Windows書き出し、復元先での目視見学は行っていません。`/tmp` の検証コピーは長期バックアップではなく、長期の復旧元は上表のbundleです。
営業設定版は `the-tree-business-management-2026-09-09.bundle` と同名 `.bundle.sha256` を使用する。`git bundle list-heads` の `HEAD` がこの保存点のコミット。復元後は `make check test-business`、試遊は `make preview-business`。画像・検証ログは `artifacts/business-management/` に別保管し、bundleへは含めない。
昇降機・実通勤版の実装コミットは `0f12c74`。`the-tree-transport-2026-09-09.bundle` と同名 `.bundle.sha256` を使用し、`git bundle list-heads` の `HEAD` で資料更新を含む最終保存点を確認する。復元後は `make check test-transport test-ui`、試遊は `make preview-transport`。Runtime v8/Path v4。検証結果は [P2昇降機QA](qa/P2_TRANSPORT.md)、画像とログは `artifacts/transport/` に保存し、bundleには含めない。
階段・車内密度・同需要比較版は `the-tree-stairs-2026-09-09.bundle` と同名 `.bundle.sha256` を使用する。保管先は同じ `/Users/korizatou114/Projects/the-tree-backups/`。`git bundle list-heads` の `HEAD` で最終保存点を確認する。Runtime v9/Path v5、基礎施設16+明示階段2。旧v8の上下通路と乗車中の密度を移行する。復元後は `make check test-transport`、数値比較は `make test-transport-comparison`、試遊は `make preview-transport` または `make preview-pixel`。検証記録は [P2階段と比較QA](qa/P2_STAIRS_AND_COMPARISON.md)。以前のbundleは上書きせず残す。