【Day 70】どの扉から入っても、同じ家

執筆者:

カテゴリ:

📖 ADVENTURE JOURNAL Day 0070
どの扉から入っても、同じ家
2026-06-05 Lv28 Adventurer(変動なし)
§ 1 WORK LOG
  • 「冒険者の家」(自分の成長を可視化する村の中央施設・FTP直置きの独立アプリ)の Phase 1「PC・スマホでデータ共有」第一目標を実機で達成。稼働中アプリ(portal.js 2,969行)を実データを失わずに Google Tasks 保管へ移行。
  • 段階リリースで実装: ストレージ抽象化レイヤ → 往復検証 → ドライラン → 本移行cutover → 同期配線(前景20秒定期同期+離脱時フラッシュ)→ セカンダリ端末の起動時自動アダプト → 状態リスト名の明確化。
  • 実機デバッグで4つのバグを修正: ①状態リストがTODO算出に混入する無限ループ肥大 ②端末間の照合で別プロフィールを誤上書き(→「同一アカウントは累積EXP高い方をbase+森バッジはunion」へオーナー訂正)③Service Workerが旧ビルドを配信し続ける ④重複・肥大した状態リストの掃除。
  • 受け入れ: PC・スマホで同一データ(Lv2/累計1375+森バッジunion)+双方向同期成立。状態リスト1個・blob 2レコードで肥大なし。
  • Phase 1 仕上げ・検証後の堅牢化: 全31編集ハンドラの保存を新backendへ整合・離脱時flush/復帰時pull追加、Google保存blobを軽量化(タスク本体キャッシュ除外で約2.6KB)、リストアが新backendで取り消されるバグ修正、プライバシーポリシー§8を「状態はユーザー自身のGoogle Tasksに保存」へ更新(スコープ追加なし)。
  • 「冒険者の家」のGA4計測を追加: index.htmlにgtag.js(LifeGame個人サイトと同一プロパティ)+page_view、portal.jsに連携・移行イベント。表記を「自分の家」→正式名称「冒険者の家」へ統一。
  • 派生発見: FTP直置きの静的アプリはWPサイト全体のGA4を継承しない盲点。「成長マネジメントの森」アプリも同じく未計測だったため横展開で計測追加。deployスクリプトを汎用化。
  • 前日Day69(Sonnet作成)の生成物を事後検証 → 酒場シナリオJSONに文字化け(U+FFFD)28箇所を発見・修復。再発防止にビルダー2本(酒場・冒険手帳)と文字化け機械ゲートを新設。memory運用も「横断的な学びは両ストアに個別登録」へ改訂。
ボリューム ★★★★★
成果 ★★★★★
§ 2 ADVENTURE SCENARIO
「冒険者の家」には、ずっと秘密があった。
冒険者の家——村の中央にある、自分の成長を映す施設。レベルも、積み上げた経験値も、森で集めた証も、すべてここに飾られている。
けれど、その家は一つの机の上にしか建っていなかった。
机を変えると——つまり、別の端末から訪ねると——家は空っぽだった。同じ名前の、別人の家がそこにあった。PCのHiroと、スマホのHiroが、別々に暮らしていた。
家の記録は、その机の引き出し(ブラウザのlocalStorage=その端末だけに残る保管庫)にしまわれていた。引き出しは旅に持って出られない。だから家は、机から動けなかった。
今日、その引き出しを世界に開いた。
記録の保管先を、自分のGoogle Tasks(どの端末からでも同じ中身が見える、本人専用の保管庫)に移す。家の正本はそこに置き、机の上のは「写し」にする。どの扉から入っても、同じ家が建っている——そういう作りに変える。
いきなり全部を運び出すのは怖い。稼働中の家を壊したら、積み上げた記録ごと消える。
だから、橋を一本ずつ架けた。
まず記録の出し入れを一か所にまとめる回廊を通し、次に小さな荷物で往復を試し、本番の引っ越しは控えの写しを取ってから。同期の線をつなぎ、別の端末で訪ねたら自動で家を引き継ぐ仕掛けを置く。一段ごとに眠らせて、自分の手で確かめてから次へ。
それでも、家は素直に従わなかった。
引き出しの中の「家を管理するためのメモ」が、ふつうのやることリストに混ざり込み、際限なくふくらんだ。家が自分の設計図を、やるべき家事だと勘違いして増殖していく——奇妙な無限ループだった。除外の印をつけて止めた。
いちばん肝を冷やしたのは、端末どうしの照合だった。
PCとスマホ、どちらの家が「正しい」か。最初は経験値の高い方を機械的に採った。すると、別の顔をした記録が、もう一方を上書きして消しかけた。
ここで手が止まった。
——これは「勝ち負け」じゃない。同じ一人の、二つの記録だ。
採るべきは、累積経験値の高い方を土台にして、森で集めた証は両方を足し合わせる(union)。消すのではなく、重ねる。そう直したとき、家はようやく一つになった。
スマホがいつまでも古い家を映し続ける怪奇もあった。玄関で配膳役(Service Worker=一度読んだ画面を素早く出すために手元に溜めておく仕組み)が、古い設計図を握りしめて離さなかった。札を打ち替えて、新しい家を強制的に運ばせた。
夕方、スマホでひらいた家に、PCで貯めた経験値が、そのまま立っていた。Lv2、累計1375。森のバッジも欠けていない。PCに戻ると、スマホで触った続きがそこにある。
机の上にしか建たなかった家が、世界のどこからでも同じ姿で立つようになった。
家を一つにしたあと、ついでに家へ「目」も付けた。誰が訪ねているのか——これまで一人も数えられていなかった。家にも、隣の森にも、訪問者を数える小窓(GA4)を開けた。FTPで直に置いた家は、本館の数える仕組みを受け継いでいなかった。盲点を一つ、塞いだ。
家は、どの扉から入っても同じ家でなければならない。
当たり前のことを、今日やっと、当たり前にした。
—
— 次回、一つになった家に、住む人の足音が記録されはじめる。
§ 3 DAILY HABITS EXP
カテゴリ入力値EXP備考
睡眠5.5h07h未満
食事管理普通10
環境整備なし0
運動ウォーキング7000歩2530分以上
健康記録あり10
学習なし0
小計45 EXP
§ 4 WORK LOG ANALYSIS
作業内容カテゴリ規模確定EXP
冒険者の家 Phase1 クロスデバイス基盤 第一目標達成(PC・スマホでデータ共有・段階リリース・実機4バグ修正)開発・実装大240
冒険者の家 Phase1 仕上げ・検証後の堅牢化(永続化整合・blob軽量化・リストアバグ修正・プライバシーポリシー更新)開発・改善大150
冒険者の家 GA4計測追加+表記「冒険者の家」統一開発・実装中120
成長マネジメントの森アプリ GA4計測追加+deploy汎用化(静的ページ盲点の横展開)開発・改善中80
Day69文字化け修復+ビルダー2本新設+機械ゲート+memory運用改訂調査・改善大216
小計806 EXP
§ 5 QUEST REWARDS
Quest IDクエスト名進捗報酬EXP備考
本日のクエスト報酬はありません。
STATUS REPORT
⚔ STATUS REPORT ⚔
2026-06-05
Lv28 Adventurer 次のLvまで 1,531 EXP
HP 240 (+0)
名もなき商人QUEST ×1.1
MP 384 (+0)
無名の旅人BOOST ×1.0
EXP 2,569 / 4,100
76,789 → 77,769+980
基礎行動EXP45
業務EXP806
クエスト報酬0

行動EXP合計851
EXP BOOST × 1.152
Lv28 / Physical:1.00 / ENV:0.90
実獲得EXP980
🎁 TODAY’S LOOT — 今日の戦利品
  • 💎 端末をまたぐ照合は「勝ち負け」で上書きしない——同一アカウントなら累積値の高い方を土台に、集めた証は両方を足し合わせる(union)。消すのではなく重ねる
  • 💎 FTPで直に置いた静的ページは、本館(WordPress)のサイト全体タグを受け継がない——アクセスを数える小窓も、画面を更新する仕組みも、家ごとに自分で持たせる必要がある
  • 💎 大きな日本語ファイルを書いたら、人の目で確かめる前に機械の関所で文字化けを止める——一括で書く構造ほど壊れやすいので、骨組みは機械に組ませ、人は中身の言葉だけ書く
⚔ この冒険を見届ける
毎日更新中。フォローするか、ブックマークしてまた来てほしい。
📩 メルマガ準備中 — 開設時にお知らせします