投稿者: yukihiro

  • 【Day 86】コクピットに、自律の機構を刻んだ日

    【Day 86】コクピットに、自律の機構を刻んだ日

    📖 ADVENTURE JOURNAL Day 0086
    コクピットに、自律の機構を刻んだ日
    2026-06-21 Lv31 Artisan(変動なし)
    § 1 WORK LOG
    • work.txtヘッダー行混入エラー→削除して再ビルド(解決)
    • WP投稿 post_id=1631 / 累計87,571→88,173 / Lv30→Lv31 LEVEL UP(職人)
    • check_post.py bokentecho raw markers修正(§6/EXP REPORT/HP:/MP: 削除・rendered classesで担保)
    • 全Step完了・X投稿生成済(07:42)
    • cj_update.php 新設(/lifegame/mycockpit/): YouTubeの配信一覧ページをスクレイプし各曜日CJの動画IDを抽出・cj_cache.jsonに蓄積保存
    • index.htmlに☕ボタン追加(⚙ボタン横): updateCJChannels()でPHP→JSON取得→COCKPIT_CHANNELS更新→Google Tasks永続化
    • applyCJCache(): 起動時にcj_cache.jsonを自動適用(全ユーザー共通)
    • 蓄積型キャッシュ: 取得できた曜日のみ更新・過去分は保持
    • 技術的発見: YouTubeのlockupViewModel構造でtitleがcontentId(動画ID)より先に出現・後方8000バイト以内にcontentIdが存在
    • BGMチャンネルは前日分を翌日も継続ライブ配信→☕ボタン1回で今日+昨日の2曜日が同時更新
    • commits: ef189bd / 9c51361
    • cj_update.phpにJST日付キャッシュ追加: 同日2回目以降はYouTubeアクセスなし・即キャッシュ返却
    • applyCJCache()のエンドポイントをcj_cache.json→cj_update.phpに変更
    • ページ読み込み時に自動で最新IDを適用(☕ボタン操作不要)
    • 本番テスト: 2026-06-22朝(1時以降)に自動更新確認予定
    • commit: 1dde197
    • 症状: チャンネル追加→保存→ブラウザ再起動→消失
    • 主因: lifegame-gtasks.jsがdeferのためインラインinitCockpit() IIFE実行時点でwhenGisReady未定義→ReferenceError→pullCockpitChannels()未呼出→localStorageのみで動作→消失
    • 副因: pullCockpitChannels()とcommitCockpit()の並行実行でrace condition→pull古値がcommit後を上書き
    • 修正: DOMContentLoaded待機をinitCockpit()に追加(主因解消)・pullCockpitChannels()を_cockpitCommitChainに統合し直列化(副因解消)
    • console.log追加→診断後削除・重複コメント・旧migration記述コメント削除
    • commits: 272237c(race fix)→c4be1ba(DOMContentLoaded)→953ccdd(debug log除去)→44c076f(comment cleanup)
    • 問題: 初期状態(未スタート)でprogress()=1→タイマー画像が100%完成形・ボタンが「✓ 完了」表示
    • 解決: loop内でidle = !running && accMs===0フラグを分岐→drawReveal(idle?1:p)(元画像=100%で初期表示)・ボタン状態はpベース維持
    • アラーム回数: if(alarmCount<5)→if(alarmCount<2)(5回→2回)
    • YouTube埋め込みリスク評価: 少数ユーザー・非商業・現規模なら低リスク判定
    • WP post=1412 全面改訂: Google Tasks連携が「必須」であることを冒頭明記
    • データ保存仕様を正確に記述: GTasks=マスター・localStorage=キャッシュ(ミラー)のみ
    • My Cockpitセクション新規追加(記事末尾・CTA前)
    • CH.undefinedバグ修正: selectCh(c,n)内のc.n→n(オブジェクトに存在しないプロパティ参照が原因)
    • 別室リンク改善: window.open()→focus()方式(BGM・タイマー継続)
    • FTPアップ・REST API検証済み
    • ダウンロードフォルダのGemini生成画像を採用(差し替え1回)
    • 保存: LifeGame/village/assets/note/note_battle_article_eyecatch_20260620.png(2.2MB)
    • JPEG変換: note_battle_article_eyecatch_20260620.jpg(354KB・quality=90)
    • L1: 面白さ 8.5 / 分かりやすさ 7.5 / 総合 8.00 — 初稿・技術詳細残存・括弧併記不足
    • L2: 面白さ 8.5 / 分かりやすさ 9.0 / 総合 8.75 — 括弧併記追加・クライマックス絞込(+0.75)
    • L3: 面白さ 9.0 / 分かりやすさ 9.2 / 総合 9.10 — memorable line強化・テンポ調整(+0.35)
    • L4: 面白さ 9.1 / 分かりやすさ 9.2 / 総合 9.15 — 微調整(+0.05)→ ③ 改善停滞で終了
    ボリューム ★★★★★
    成果 ★★★★★
    § 2 ADVENTURE SCENARIO
    翌朝のコーヒーを、機械に任せた
    コクピット(作業コンソール)を村に据えてから、1週間が過ぎた。
    問題は2つあった。
    1つ目——チャンネルが消える。
    BGMチャンネルを追加して保存し、ブラウザを再起動すると、また消えている。Google Tasks(タスク管理ツール)には確かに保存されているのに、画面には出てこない。原因が分からないまま、その日も再登録した。
    今日、コンソール(ブラウザ診断ツール)を開いた。エラーが1行だけ出ていた。
    `whenGisReady is not defined`
    ——これだ。
    Google Tasks接続の魔道具は「後読み」指定(defer属性)で読み込まれる。コクピットの初期化コードが先に走ると、接続関数がまだ存在しない。初期化がクラッシュして、チャンネル一覧を引き出す処理が一度も実行されていなかった。localStorageキャッシュだけで動き、ブラウザを閉じるたびに記憶が消えていた。
    修正は「ページ読み込み完了(DOMContentLoaded)を待ってから動け」と命じることだった。さらに並行実行の衝突(race condition)——古い読み取り結果が新しい書き込みを上書きする現象——も同時に潰した。合計4本のコミット(修正の積み重ね)でコクピットは静かになった。
    保存したチャンネルが、ブラウザを閉じても次に開けば戻ってくる。当たり前のことが、ようやく当たり前になった。
    2つ目——コーヒーが毎週変わる。
    コーヒージャズ(作業BGM)のYouTubeライブ配信は、毎週動画IDが更新される。曜日ごとに手動で調べ直し、コクピットに入力する。地味だが、確実に積み上がる作業だった。
    その手間を機械に渡した。
    PHPスクリプト(サーバー処理)がYouTubeの配信ページを自動で読みに行く。曜日ごとの動画IDを拾い、キャッシュ(一時保存庫)に蓄積する。ページを開くだけで、最新のIDが自動で適用される。さらにJST日付キャッシュで、同じ日の2回目以降はYouTubeへのアクセスをスキップする仕組みも入れた。
    翌朝の珈琲は、Hiroが命じなくても出てくる。
    日の終わりに、myhouse-guide(冒険者の家の案内書)も現実に合わせて書き直した。Google Tasks連携が「任意」ではなく「必須」であることを冒頭に明記し、コクピットの紹介セクションを新設した。施設の設計図と、実際の施設が、ようやく一致した。
    この日のコクピットは、静かだった。チャンネルは消えなくなり、コーヒーは自動で動く。記憶と自律を手に入れた作業台は、明日も同じ場所で待っている。
    —
    § 3 DAILY HABITS EXP
    カテゴリ入力値EXP備考
    睡眠6h07h未満
    食事管理普通10
    環境整備なし0
    運動ウォーキング15453歩2530分以上
    健康記録あり10
    学習なし0
    小計45 EXP
    § 4 WORK LOG ANALYSIS
    作業内容カテゴリ規模確定EXP
    CJコーヒージャズ URL動的更新ボタン実装(PHP+YouTube scraping+Google Tasks連携)新機能実装大144
    CJ自動更新・日付キャッシュ実装(ページ読み込み時自動適用・JST日付切替)機能追加中80
    My Cockpit チャンネル消失バグ 根本修正(defer競合+race condition 2重修正)バグ修正大150
    My Cockpit タイマー初期画像修正・アラーム回数変更修正中60
    myhouse-guide 全面改訂・My Cockpit セクション追加・CH.undefinedバグ修正・別室リンク改善改修大120
    Note旗艦記事タイトル画像 保管・JPEG変換資産管理小15
    Day85 冒険手帳投稿(2026-06-20分)定型業務中70
    小計639 EXP
    § 5 QUEST REWARDS
    Quest IDクエスト名進捗報酬EXP備考
    本日のクエスト報酬はありません。
    STATUS REPORT
    ⚔ STATUS REPORT ⚔
    2026-06-21
    Lv31 Artisan 次のLvまで 3,321 EXP
    HP 250 (+0)
    名もなき商人QUEST ×1.1
    MP 390 (+0)
    無名の旅人BOOST ×1.0
    EXP 1,179 / 4,500
    88,173 → 88,979+806
    基礎行動EXP45
    業務EXP639
    クエスト報酬0

    行動EXP合計684
    EXP BOOST × 1.179
    Lv31 / Physical:1.00 / ENV:0.90
    実獲得EXP806
    🎁 TODAY’S LOOT — 今日の戦利品
    • 💎 `defer`属性は「後読み」を指定するが、インラインコードが先に走ることで依存関数が未定義になる——`DOMContentLoaded`待機が唯一の正しい解
    • 💎 並行実行の衝突(race condition)は「古い読み取りが新しい書き込みを上書きする」——非同期処理は直列チェーンで封じ込める
    • 💎 PHPのYouTubeスクレイプでtitleはcontentId(動画ID)より先に出現する——後方8000バイト以内を検索することで安定取得できる
    ⚔ この冒険を見届ける
    毎日更新中。フォローするか、ブックマークしてまた来てほしい。
    📩 メルマガ準備中 — 開設時にお知らせします
  • 【Day 85】旗艦記事を、戦場に立てた日

    【Day 85】旗艦記事を、戦場に立てた日

    📖 ADVENTURE JOURNAL Day 0085
    旗艦記事を、戦場に立てた日
    2026-06-20 Lv31 Artisan(LEVEL
    § 1 WORK LOG
    • 実SERP実測(「ゲーミフィケーション」「〜とは」等): head語=企業サイト・個人記事ゼロ確認
    • 競合4本全文精読: おもちゃクリエイター(単発)・学校教師(音声配信脱線・有料記事)・業界協会・B2B専業連載(新規参入)
    • 勝てる軸確定: 「個人が自分の人生に・フルダイブ・AI」軸は過小占有→旗艦を狙う
    • Note内部リンク=nofollow確認・外部リンク≤3・画像はnoindex無関係 の3点を実測裏取り
    • 設計書v1確定: `note_battle_article_design_v1_20260620.md`(確定タイトル・8 H2構成・一次ケース=LifeGame HP・競合差別化マトリクス・§7.5 画像戦略)
    • v1 → v2(全面書き直し: 英雄の旅・観客→主人公召喚の感情設計)→ v3(H2-6 を7 STEP全技術化+通し実例+FAQ+最強論点への正面回答ブロック新設)
    • 本文約9,900字・大見出し10・小見出し8・目次挿入済(オーナー実機確認)
    • 画像5枚JPEG化: title(昼バナー・見出し/OGP兼用)・status_card(実データ証拠)・mycockpit(実装ダッシュボード)・GBworldmap・GBvillage
    • 元PNG約4.7MB → JPEG約0.8MB に圧縮
    • Note公開: https://note.com/kindboss_hiro/n/n72b32bd03afe(KindBoss.Hiro)
    • X予告投稿済(本文URL排除・セルフリプ1通目・リーチペナルティ回避)
    • cat=39 棚卸し: 「残2本」は誤認→既投稿確認(モチベ=post1447・集中力=post1457)。設計書3点をstale同期
    • Note基礎戦略v1新規作成: `note_follower_growth_strategy_v1_20260620.md`(外部SEO流入主軸・24h初動設計・farming封印)
    • Note全11記事 自動リンク点検: 内部ファイル名の自動リンク化を発見・オーナー手動除去→最終 autolink 0件 確認
    • Chronicles v1.15: §4-7-I「自動リンク化ドットの全角変換」新設(保護リスト=KindBoss.Hiro+CTA URL)
    • 訂正: Note固定記事は「未設置」でなく「既存・本日ピン留め完了」(誤認修正)
    • 動画ID: x_juSw7N4_M → __SAT_TBD__ 置換・dead:true削除 → FTPS デプロイ(SHA256: 167a7aba558a)
    • 7曜日コーヒージャズ全稼働(日〜土 完全充填)
    • CH番号表示修正: renderChGrid/selectCh → 「CH.1 日曜〜CH.7 土曜」形式
    • commit: 6d11b2d push済
    • CJ-DAY専用の枠色/ホバーCSSルール3本削除(選択中activeスタイルのみ維持)
    • CH.6・CH.7 がCH.8以降と同じ外観に統一
    • commit: 48c5ca6 push済
    • post_id=1629 /「音楽を、曜日に刻んだ日」
    • 全11点セルフチェック異常0・X投稿生成済
    • L1: 面白さ 8.5 / 分かりやすさ 7.0 / 総合 7.75 — 競合分析と執筆の因果が薄い・技術用語括弧なし
    • L2: 面白さ 9.0 / 分かりやすさ 9.0 / 総合 9.00 — 競合の論点具体化・括弧併記追加(+1.25)
    • L3: 面白さ 9.3 / 分かりやすさ 9.2 / 総合 9.25 — memorable line強化・LEVEL UPの余韻整形(+0.25)
    • L4: 面白さ 9.3 / 分かりやすさ 9.2 / 総合 9.25 — 改善なし(0.00)→ ③ 改善停滞で終了
    ボリューム ★★★★★
    成果 ★★★★★
    § 2 ADVENTURE SCENARIO
    旗艦記事を、戦場に立てた日
    朝、競合の記事を4本、全文で読んだ。
    著名な玩具クリエイターの論考、小学校教師の音声配信録、業界団体の公式解説、B2B専業の連載記事。それぞれ読み応えがあった。だが——全員が「他者を動かすためのゲーミフィケーション」を書いていた。
    「自分が主人公になるためのゲーミフィケーション」は、誰も書いていない。
    その空白が、戦場だと思った。
    設計書を一日で固め、第1稿、第2稿——全面書き直し——と進んだ。第2稿では「英雄の旅」として感情設計をやり直した。観客でなく主人公として召喚する構造に変えた。さらに第3稿で、競合の中で最も鋭い論点に正面から答えるブロックを新設した。
    「ポイントは上がるが現実が連動しない」——この批判は本質を突いている。私の答えは「報酬は物でなく成長の記録であり、成長は奪われない」だ。
    9,900字。STEP1からSTEP7まで、一次ケースは自分自身のLifeGame(人生をゲームにした個人成長記録サイト)だ。実データ——Lv30・85日・HP250・MP390・累計EXP 87,571——が証拠として並んでいる。「見せる」ことの強さを、この記事は持っている。
    Noteに公開した。X(旧Twitter)への告知は本文からリンクを外し、1通目の返信に回した。リーチペナルティを避けるための仕掛けだ。
    その夜、ステータスが動いた。
    累計EXP 88,173。Lv31。
    段位は「職人」のまま変わらない。しかし職人30段から31段へ。85日間積み上げてきた数字が、また一段繰り上がった。レベルアップを感じる瞬間は、いつも静かだ。アラームも告知もない。ただ、数字が変わる。それだけだ。
    けれど、確かに進んでいる。
    —
    § 3 DAILY HABITS EXP
    カテゴリ入力値EXP備考
    睡眠5.5h07h未満
    食事管理普通10
    環境整備なし0
    運動ウォーキング1569歩(15分未満)5
    健康記録あり10
    学習なし0
    小計25 EXP
    § 4 WORK LOG ANALYSIS
    作業内容カテゴリ規模確定EXP
    Note旗艦記事v3執筆・Note公開(ゲーミフィケーション個人No.1旗艦・9900字)コンテンツ制作大180
    Note戦略確立・設計書v1(実SERP実測・競合4本全文精読)コンテンツ制作大100
    Note運用基盤整備(cat=39同期・基礎戦略v1・全11記事リンク点検・Chronicles v1.15)コンテンツ制作中80
    My Cockpit 土曜コーヒージャズ登録+CH番号修正+デプロイLifeGame開発小40
    My Cockpit CJ-DAY枠色・ホバー色統一LifeGame開発小20
    Day84 冒険手帳投稿コンテンツ制作中70
    小計490 EXP
    § 5 QUEST REWARDS
    Quest IDクエスト名進捗報酬EXP備考
    本日のクエスト報酬はありません。
    STATUS REPORT
    ⚔ STATUS REPORT ⚔
    2026-06-20
    Lv31 Artisan 次のLvまで 4,127 EXP
    HP 250 (+0)
    名もなき商人QUEST ×1.1
    MP 390 (+0)
    無名の旅人BOOST ×1.0
    EXP 373 / 4,500
    87,571 → 88,173+602
    基礎行動EXP25
    業務EXP490
    クエスト報酬0

    行動EXP合計515
    EXP BOOST × 1.17
    Lv30 / Physical:1.00 / ENV:0.90
    実獲得EXP602
    🎁 TODAY’S LOOT — 今日の戦利品
    • 💎 競合を全文読んでから書く——誰も書いていない空白がどこかを先に確かめることで、迷いが消える
    • 💎 「報酬は物でなく成長の記録」——批判の核心に正面回答するブロックを置いたことで、競合との差が構造になった
    • 💎 LEVEL UPの瞬間は静かだ——日々の積み上げは、誰かに祝われるためでなく、自分で刻むためにある
    ⚔ この冒険を見届ける
    毎日更新中。フォローするか、ブックマークしてまた来てほしい。
    📩 メルマガ準備中 — 開設時にお知らせします
  • 【Day 84】音楽を、曜日に刻んだ日

    【Day 84】音楽を、曜日に刻んだ日

    📖 ADVENTURE JOURNAL Day 0084
    音楽を、曜日に刻んだ日
    2026-06-19 Lv30 Artisan(変動なし)
    § 1 WORK LOG
    • portal.js(冒険者の家)から Google Tasks 認証・API通信の共通関数を分離・移管
    • 移管対象: `getAccessToken()` / `gtasksApi()` / `GTasksSlice` / `GoogleTasksBlob` / `leanBlob()`
    • growthbridge.biz 全ページが `localStorage[‘myhouse_gtasks_token_v1’]` の共通キーで認証を共有する設計
    • 本番 `/lifegame/common/lifegame-gtasks.js` に FTPS 配置済み
    • 共通ライブラリ移管による重複コード削除: 3541行→3258行(-283行)
    • 本番 `/lifegame/myhouse/portal.js` に FTPS 配置済み
    • lifegame-gtasks.js を portal.js より前に defer 読み込みする script タグを追加(`?v=20260619-shared`)
    • `pullCockpitChannels()`: Google blob の `mycockpit` セクションから pull → チャンネルリスト同期
    • `commitCockpit(mutator)`: pull → mycockpit 変更 → push+read-back → localStorage mirror
    • チャンネル管理モーダル(⚙ ボタン): チャンネルの追加・削除・並び替え・曜日指定ドロップダウン付き
    • `DEFAULT_CH`: 16ch 構成(日〜土コーヒージャズ×7+常設×9)
    • 土曜のみ `dead:true`(URL未定・翌日2026-06-20に取得予定)
    • `isChannelActive(ch)`: 曜日チャンネルは JST 当日または前日のみ true / `active:false` は常時無効
    • `renderChGrid()`: 曜日チャンネルに「今日」「昨日」「休止中」バッジ表示
    • `selectCh()`: 選択時に「金曜 金曜コーヒージャズ」形式で曜日名を付与
    • cockpit/index.html.current はデプロイ待ち(土曜URL取得後に FTPS 配置)
    • 「時計を、正しい部屋に据えた日」(2026-06-18分)投稿完了
    • post_id=1627 / 11点セルフチェック異常0 / X投稿生成済
    • L1: 面白さ 8.5 / 分かりやすさ 6.5 / 総合 7.50 — 専門用語生露出・括弧併記なし
    • L2: 面白さ 8.5 / 分かりやすさ 9.0 / 総合 8.75 — 括弧併記追加・技術細部除去(+1.25)
    • L3: 面白さ 9.0 / 分かりやすさ 9.2 / 総合 9.10 — クライマックス絞り込み・memorable line 強化(+0.35)
    • L4: 面白さ 9.1 / 分かりやすさ 9.2 / 総合 9.15 — テンポ調整(+0.05)
    • L5: 面白さ 9.1 / 分かりやすさ 9.2 / 総合 9.15 — (+0.00)→ ③ 改善停滞(L4-L5 連続+0.1未満)で終了
    ボリューム ★★★★☆
    成果 ★★★★☆
    § 2 ADVENTURE SCENARIO
    音楽を、曜日に刻んだ日
    その日、Kind Boss Hiro は村の作業コクピット(My Cockpit)に、週の呼吸を埋め込もうとしていた。
    月曜のコーヒー。火曜のジャズ。水曜の静けさ。
    ただ音楽を流すのではなく、「今日という曜日だけに鳴る音楽」を設計すること——それが今日の仕事の核心だった。
    —
    まず Hiro がやったのは、分離だ。
    冒険者の家(成長を可視化する村の中央施設)の中に長らく同居していた Google 認証の仕掛けを、独立した共通の巻物(認証ライブラリ)として切り出した。村の全ページが、同一の鍵(クラウドの共通アクセスキー)を使って認証を共有する——そういう設計にするために。
    以前は、施設ごとに別々の認証処理が眠っていた。重複は、隠れた矛盾の温床だ。
    巻物を分離すると、冒険者の家のコードは 3,541 行から 3,258 行に縮んだ。283 行が重複だった。
    分離は、整理だ。整理は、強さだ。
    —
    次に Hiro はコクピットに曜日を刻んだ。
    チャンネルリストを設計する。日曜から土曜まで、7 本のコーヒージャズを割り当てる。「今日と昨日のみアクティブ」という判定の仕掛けが、一覧に「今日」「昨日」「休止中」のバッジを灯す。
    月曜は今日。火曜は昨日——そのリズムが、チャンネル一覧に時間の流れを映す。
    そして土曜だけが、まだ空白のままだ。
    動画の ID がまだ届いていない。だから土曜のチャンネルは「未定フラグ」を持たせて、触れないまま今日のコードに存在させた。明日、ID が届いたらそこを差し替える——それだけでいい。
    未完のまま存在させることが、設計の誠実さだ、と Hiro は思った。
    —
    チャンネル管理の画面も作った。設定ボタンを押すと、チャンネルの追加・削除・並び替えができる。曜日を指定するドロップダウンもある。クラウド(Google Tasks)に保存すれば、どのデバイスからでも同じチャンネルリストが開く。
    これは、去年の自分には作れなかったものだ。
    音楽を、クラウドで管理する。曜日を、コードで定義する。そのすべてが、今日の職人の手の中に収まっている。
    —
    土曜の配置は、明日だ。
    7 日間のリズムが揃う瞬間は、まだ先にある。
    けれど Hiro は、今日で十分に前進した、と感じていた。
    音楽は、曜日に縛られて初めて意味を持つ。
    —
    § 3 DAILY HABITS EXP
    カテゴリ入力値EXP備考
    睡眠5h07h未満
    食事管理普通10
    環境整備なし0
    運動ウォーキング5385歩(約60分)2530分以上
    健康記録なし0
    学習なし0
    小計35 EXP
    § 4 WORK LOG ANALYSIS
    作業内容カテゴリ規模確定EXP
    Google Tasks チャンネル管理 + 7曜日コーヒージャズ動的配置(共通ライブラリ分離含む)開発大150
    Day83 冒険手帳投稿投稿中70
    小計220 EXP
    § 5 QUEST REWARDS
    Quest IDクエスト名進捗報酬EXP備考
    本日のクエスト報酬はありません。
    STATUS REPORT
    ⚔ STATUS REPORT ⚔
    2026-06-19
    Lv30 Artisan 次のLvまで 229 EXP
    HP 250 (+0)
    名もなき商人QUEST ×1.1
    MP 390 (+0)
    無名の旅人BOOST ×1.0
    EXP 4,071 / 4,300
    87,257 → 87,571+314
    基礎行動EXP35
    業務EXP220
    クエスト報酬0

    行動EXP合計255
    EXP BOOST × 1.235
    Lv30 / Physical:1.00 / ENV:0.95
    実獲得EXP314
    🎁 TODAY’S LOOT — 今日の戦利品
    • 💎 isChannelActive() で「曜日チャンネルは当日/前日のみ」を制御——単一責任の関数が、将来の曜日ルール変更を1箇所で収める
    • 💎 localStorage 共有キー1本で growthbridge.biz 全ページの認証が共有される——設計の一貫性が、認証コストを消す
    • 💎 dead:true フラグで「URL未定チャンネル」を安全に埋め込む——未完を明示することが、デプロイの誠実さだ
    ⚔ この冒険を見届ける
    毎日更新中。フォローするか、ブックマークしてまた来てほしい。
    📩 メルマガ準備中 — 開設時にお知らせします
  • 【Day 83】時計を、正しい部屋に据えた日

    【Day 83】時計を、正しい部屋に据えた日

    📖 ADVENTURE JOURNAL Day 0083
    時計を、正しい部屋に据えた日
    2026-06-18 Lv30 Artisan(変動なし)
    § 1 WORK LOG
    • 仕様:HH:MM:SS + YYYY年M月D日(曜)を1秒ごとに更新
    • フォント:Hiragino Sans / Noto Sans JP(タイマーパネルと統一)
    • サイズ:clamp(26px, 3.6vw, 54px) / font-weight: 700
    • バックアップ:LifeGame/backups/20260618_mycockpit_clock/index.html(修正前)
    • FTPS STOR → SHA256 確認 → HTTP200 確認
    • 統合箇所:§23「実装層:ダッシュボード&ゲーム設計(v1ポーカー型)」
    • 変更量:239行→364行 / 29KB→49KB
    • 内容:土台(自己情報アクセシビリティ最大化)・設計原則①〜④・成長単位・リーグ設計プロセス・非連動原則・最小エンジン+差し替えスロット・v1ポーカー型(C(53,5)厳密確率表)・決着方式
    • 付随:早見表1行追加 / 関連資料2行追加
    • SESSION_BRIEF Dispatch-80 ✅・Dispatch-79 ✅ 更新
    • commit `52427b6` → push 完了(adb1e0b..52427b6)
    • L1: 面白さ 8.5 / 分かりやすさ 7.5 / 総合 8.00 — 技術詳細混在・括弧併記一部不足
    • L2: 面白さ 8.8 / 分かりやすさ 9.0 / 総合 8.90 — 括弧併記追加・技術詳細除去(+0.90)
    • L3: 面白さ 9.0 / 分かりやすさ 9.2 / 総合 9.10 — memorable line 強化(+0.20)
    • L4: 面白さ 9.2 / 分かりやすさ 9.2 / 総合 9.20 — 冒頭テンポ改善(+0.10)
    • L5: 面白さ 9.2 / 分かりやすさ 9.3 / 総合 9.25 — 微調整(+0.05)
    • L6: 面白さ 9.2 / 分かりやすさ 9.3 / 総合 9.25 — 変化なし(+0.00)→ ③改善停滞(L5-L6連続+0.1未満)で終了
    ボリューム ★★★☆☆
    成果 ★★★★☆
    § 2 ADVENTURE SCENARIO
    時計を、正しい部屋に据えた日
    作業コクピット(My Cockpit)に、時計が必要だと思っていた。
    刻まれる時・分・秒と、和暦の日付。1秒ごとに更新されるその数字があるだけで、場所は仕事場らしくなる。コードを書いた。フォント、サイズ、色、位置——全部決めた。動かした。
    だが時計は、正しい場所にいなかった。
    コクピットの表示面全体の下部中央に置いたはずの時計が、ずれた場所に現れた。コードのパターン(正規表現)が最初に見つけた「終わり」で止まり、時計を内側の見出し区画に閉じ込めていた。
    問題は配置の基準だった。
    絶対配置(absolute位置指定)は、いちばん近くにある「位置を持つ親要素」を基準にして動く。表示面の外壁を基準にしたいのに、内側の区画を親にしてしまえば——内の部屋に置いた時計は、外の壁の寸法では測れない。
    修正は単純だった。時計を内側から取り出し、表示面の直下に移した。
    時計は、正しい部屋で動き始めた。
    ——置く場所が、正確さを決める。
    —
    その日の終わりに、今度は理論書に「実装層」を置く仕事をした。
    Cowork(Claude Desktopの相棒)が設計した組織ゲーミフィケーションの実装層——ポーカー型の確率設計とダッシュボード構築の原則——を、理論書の正しい章に据えた。哲学から確率表まで、一本の文書に収まった。
    職人は計器を一つ足し、理論書を一章厚くして、今日を終えた。
    —
    § 3 DAILY HABITS EXP
    カテゴリ入力値EXP備考
    睡眠5.5h07h未満
    食事管理普通10
    環境整備なし0
    運動ウォーキング6827歩2530分以上相当
    健康記録あり10
    学習なし0
    小計45 EXP
    § 4 WORK LOG ANALYSIS
    作業内容カテゴリ規模確定EXP
    My Cockpit デジタル時計 新規実装+バグ修正(HERO下部中央・HH:MM:SS+和暦日付・位置誤挿入修正)コンテンツ制作中80
    組織GF理論 doctrine §23実装層統合+commit+push(239行→364行・6ファイル)技術中60
    Day82 冒険手帳投稿(旗を、法人の扉に掲げた日)コンテンツ制作中70
    小計210 EXP
    § 5 QUEST REWARDS
    Quest IDクエスト名進捗報酬EXP備考
    本日のクエスト報酬はありません。
    STATUS REPORT
    ⚔ STATUS REPORT ⚔
    2026-06-18
    Lv30 Artisan 次のLvまで 543 EXP
    HP 250 (+0)
    名もなき商人QUEST ×1.1
    MP 390 (+1)
    無名の旅人BOOST ×1.0
    EXP 3,757 / 4,300
    86,959 → 87,257+298
    基礎行動EXP45
    業務EXP210
    クエスト報酬0

    行動EXP合計255
    EXP BOOST × 1.17
    Lv30 / Physical:1.00 / ENV:0.90 / MP:1.0
    実獲得EXP298
    🎁 TODAY’S LOOT — 今日の戦利品
    • 💎 絶対配置(absolute位置指定)は「直近のpositioned ancestor(位置を持つ親要素)」が基準——入れ子構造では置く階層が変われば基準も変わる。期待する配置には「どの要素が親になるか」を構造から確認することが先決。
    • 💎 正規表現の最小一致パターン(.*?)は複合構造で最初の終端マーカーで止まる——複数の閉じタグを持つ入れ子HTML構造への挿入には、終端条件をより厳密に指定するか、挿入対象の構造を解析してから設計する必要がある。
    • 💎 理論書への実装層追記は「設計が確定した後」が正しい順序——確率の裏付け(C(53,5)厳密計算)が揃ってから記録する。数値根拠→実装原則→文書化の流れがゲーミフィケーション設計の標準シーケンス。
    ⚔ この冒険を見届ける
    毎日更新中。フォローするか、ブックマークしてまた来てほしい。
    📩 メルマガ準備中 — 開設時にお知らせします
  • 【Day 82】旗を、法人の扉に掲げた日

    【Day 82】旗を、法人の扉に掲げた日

    📖 ADVENTURE JOURNAL Day 0082
    旗を、法人の扉に掲げた日
    2026-06-17 Lv30 Artisan(変動なし)
    § 1 WORK LOG
    • Cowork が前日中に作成した `ceo/org_gamification_doctrine.md`(全11部・29KB)を CEO として commit+push
    • 個人側原典 `LifeGame/docs/life_gamification_doctrine.md` と対を成す組織側の正典が確定
    • `ceo/voice_context.md` に §2-12(組織理論スタブ)新設 + §2-1 重複スリム化 も同梱
    • 国内外事例調査 `research_org_gamification_cases_20260617.md` も同 commit
    • commit e13d5a9(単体)→ Dispatch-78 同梱で 3e6f635 に吸収
    • VS Code 担当: WP REST API 実行・CF7 更新・audit・commit+push・SESSION_BRIEF 更新
    • 対象 5 ページ:
    • 技術的特記: CF7 REST API の PATCH/POST は DB に永続化しない制約を確認。対策として mu-plugin を FTPS 経由でサーバー側実行(`WPCF7_ContactForm::set_properties()->save()` + `LiteSpeed\Purge::purge_all()`)
    • 監査: audit_corporate_hp.py 実行 → 113チェック / 異常 0(low 既存課題のみ)/ エラー 0
    • commit 3e6f635 push 済
    • drafts/ `_tmp_*` ファイル 246件 TRASH 移動
    • LifeGame/backups/ 7日超過フォルダ 49件 TRASH 移動(20260603〜20260609)
    • 旧 static ファイル 5件移動
    • 合計 300件 TRASH 移動完了
    • L1: 面白さ 7.5 / 分かりやすさ 6.0 / 総合 6.75 — CF7制約の物語化が技術用語丸出し
    • L2: 面白さ 8.5 / 分かりやすさ 8.5 / 総合 8.50 — 括弧併記・比喩化で可読性向上(+1.75)
    • L3: 面白さ 9.0 / 分かりやすさ 9.0 / 総合 9.00 — 冒頭引用強化・memorable line 追加(+0.50)
    • L4: 面白さ 9.2 / 分かりやすさ 9.2 / 総合 9.20 — 軽微テンポ調整(+0.20)
    • L5: 面白さ 9.2 / 分かりやすさ 9.2 / 総合 9.20 — 変化なし(+0.00)→ ③ 改善停滞で終了
    ボリューム ★★★☆☆
    成果 ★★★★☆
    § 2 ADVENTURE SCENARIO
    旗を、法人の扉に掲げた日
    職人にとって、理論と現場は別物ではない。
    考えていたことが文章になる。文章になったことが、看板になる。看板になったものが、初めて人の目に届く。
    この日の仕事は、その順序を一日でたどることだった。
    まず書庫(理論の正典)に、29KBの原典が収まった。組織側のゲーミフィケーション理論——個人の成長を扱う原典とは別に、チームや企業の動かし方を体系化した文書だ。相棒(Cowork・Claude Desktopの相棒)が前日中に書き上げていたものを、職人が記録庫に打ち込み、世界へ送り出した。
    次に、砦(法人HP)の扉に旗を立てる番だった。
    5つの扉——玄関(トップ)、仕事の間(ビジネス)、道具の棚(サービス)、名刺の壁(会社概要)、そして問い合わせ窓口——それぞれに「ゲーミフィケーション導入支援」の文字を刻んだ。
    途中、一つ壁があった。
    問い合わせフォーム(CF7)の書き換えは、通常の手順(REST APIでの更新)ではデータベースに保存されない。返答は「成功」なのに、サーバーの中身は変わらない。静かな罠だった。
    対処は、回り道だった。専用の仕掛け(mu-plugin)をFTPS経由でサーバーに直接送り込み、PHP で保存処理を走らせた。それだけで、フォームは正しく変わった。
    道を知らなければ一時間かかる。道を知っていれば十分で済む。
    113のチェックを通過し、異常はゼロだった。
    最後に、週次の掃除を済ませた。300件の一時ファイルと古いバックアップを流すと、作業場が静かになる。職人の仕事は、終わった後の片付けまで含む。
    この日、「ゲーミフィケーション」という言葉が、法人の扉の5か所に正式に刻まれた。
    旗は、ようやく揚がった。
    —
    § 3 DAILY HABITS EXP
    カテゴリ入力値EXP備考
    睡眠4.5h07h未満
    食事管理普通10
    環境整備なし0
    運動ウォーキング10402歩2530分以上相当
    健康記録あり10
    学習なし0
    小計45 EXP
    § 4 WORK LOG ANALYSIS
    作業内容カテゴリ規模確定EXP
    Dispatch-77: 組織ゲーミフィケーション理論 commit+push(org_gamification_doctrine.md 29KB 他)コンテンツ整備小40
    Dispatch-78: 法人HP 5ページゲーミフィケーション反映(WP REST API+CF7 mu-plugin+audit 113件)サイト実装大150
    週次ファイル整理(_tmp* 246件・backups 49件 TRASH移動)整理整頓小40
    小計230 EXP
    § 5 QUEST REWARDS
    Quest IDクエスト名進捗報酬EXP備考
    本日のクエスト報酬はありません。
    STATUS REPORT
    ⚔ STATUS REPORT ⚔
    2026-06-17
    Lv30 Artisan 次のLvまで 841 EXP
    HP 250 (+0)
    名もなき商人QUEST ×1.1
    MP 389 (+0)
    無名の旅人BOOST ×1.0
    EXP 3,459 / 4,300
    86,638 → 86,959+321
    基礎行動EXP45
    業務EXP230
    クエスト報酬0

    行動EXP合計275
    EXP BOOST × 1.17
    Lv30 / Physical:1.00 / ENV:0.90
    実獲得EXP321
    🎁 TODAY’S LOOT — 今日の戦利品
    • 💎 CF7 REST APIは「成功を返すが永続化しない」——返答を信じるな。サーバー側の実行ログで変化を確認する(mu-plugin FTPS経由で回避)
    • 💎 理論と実装を同日に揃える——原典(29KB組織理論)とHP反映を一日でたどることで、「書いた哲学をすぐ使う」サイクルが動いた
    • 💎 週次の掃除は記憶のデフラグ——300件の一時ファイルを流すと、次の作業の摩擦が下がる。整理は消費でなく投資
    ⚔ この冒険を見届ける
    毎日更新中。フォローするか、ブックマークしてまた来てほしい。
    📩 メルマガ準備中 — 開設時にお知らせします
  • 【Day 81】正本を、一つに決めた日

    【Day 81】正本を、一つに決めた日

    📖 ADVENTURE JOURNAL Day 0081
    正本を、一つに決めた日
    2026-06-16 Lv30 Artisan(変動なし)
    § 1 WORK LOG
      ボリューム ★★★★★
      成果 ★★★★★
      § 2 ADVENTURE SCENARIO
      正本は、一冊しかあってはならない
      一通の報告から、その日は始まった。
      冒険者の家(成長を可視化する村の中央施設)には、本棚がある。読んだ手引き、気になった巻物を、本のかたちで挿しておける棚だ。
      パソコンで、一冊挿す。
      スマホで、開く。
      またパソコンに戻る。
      ——本が、消えている。
      挿したはずの本が、棚から失われていた。オーナーからの報告だった。私は家の奥へ、コードの底へ降りていった。
      原因は、家に台帳が二つあったことだ。
      ひとつは手元の写し(localStorage・端末のなかに置かれた控え)。もうひとつは雲の上の台帳(Google Tasks・クラウドに預けた保管庫)。本来、写しは台帳をなぞるだけの存在のはずだった。
      ところが——どちらも「自分が正しい」と思っていた。
      だから片方が更新されると、もう片方を上書きする。パソコンで挿した本が、スマホの古い記憶に塗り潰される。二つの台帳を突き合わせる処理も、本を「両方残す」のではなく、冒険経験値の高い端末のぶんだけを採用していた。
      まず、出血を止めた。両方の本を残すよう、応急の手当てを当てて本番へ送る。
      だが、本質はそこではない。
      二つの正本がある限り、いつか必ずまた食い違う。応急処置は、傷口を塞いだだけだ。
      ——決めた。
      正本は、一つにする。
      雲の上の台帳を、唯一のマスター(正本)とする。手元の写しは、ただそれを映す鏡に格下げする。書くときは必ず、まず台帳へ。手元はあとから映すだけ。
      それは、過去の自分が積んだ仕組みを取り壊す決断でもあった。端末をまたいでデータを引っ越しさせるための、複雑な足場。移行はもう、とっくに終わっている。終わった工事の足場を、いつまでも残しておく職人はいない。まるごと撤去した。
      家と、その隣の森(成長マネジメントの森・もう一つの修行場)。二つの建物を、同じ作法で建て直す。
      書き込みは、一手ずつ台帳へ送る。送った結果を読み返し、たしかに刻まれたかを確かめてから、鏡へ映す。もし回線が切れたら——書き込みの扉を、その場で閉じる(参照専用モード)。溜め込んで、あとで雪崩のように壊すより、「今は読むだけ」とその場で伝えるほうが、ずっと誠実だ。
      七つの巻物を世界の裏側(サーバー)へ配り終えて、最後は自分の手で確かめた。
      パソコンとスマホ、両手に一台ずつ。本を挿す。もう一台で開く。戻る。
      本は、消えていなかった。
      二十の関門を、ひとつずつくぐった。すべて、通った。
      データが消える、という呪いの正体は、難しい魔法ではなかった。「正しさ」が二つあったこと。ただ、それだけだった。
      二つの正本は、いつか必ず食い違う。
      だから——正しさは、一つに決めなければならない。
      —
      § 3 DAILY HABITS EXP
      カテゴリ入力値EXP備考
      睡眠6h07h未満
      食事管理普通10
      環境整備なし0
      運動ウォーキング11,320歩2530分以上
      健康記録あり10
      学習なし0
      小計45 EXP
      § 4 WORK LOG ANALYSIS
      作業内容カテゴリ規模確定EXP
      LifeGame クロスデバイス同期 v2.0 master-mirror 実装+本番デプロイ+受け入れ完了システム設計・実装大200
      同期バグ原因特定+暫定修正+アーキテクチャ刷新仕様書v2.0確定調査・設計中100
      The Weekly Executive TECH 第25週 WP投稿・メール配信コンテンツ制作中70
      Day80 冒険手帳 投稿実行コンテンツ制作中70
      残タスク台帳整合+FUSE鮮度ゲート印字実装+CLAUDE.md追記改善・整備中80
      小計520 EXP
      § 5 QUEST REWARDS
      Quest IDクエスト名進捗報酬EXP備考
      本日のクエスト報酬はありません。
      STATUS REPORT
      ⚔ STATUS REPORT ⚔
      2026-06-16
      Lv30 Artisan 次のLvまで 1,162 EXP
      HP 250 (+5)
      名もなき商人QUEST ×1.1
      MP 389 (+1)
      無名の旅人BOOST ×1.0
      EXP 3,138 / 4,300
      85,977 → 86,638+661
      基礎行動EXP45
      業務EXP520
      クエスト報酬0

      行動EXP合計565
      EXP BOOST × 1.17
      Lv30 / Physical:1.00 / ENV:0.90
      実獲得EXP661
      🎁 TODAY’S LOOT — 今日の戦利品
      • 💎 データが消えるバグの正体は「正本が二つあること」——どちらも正しいつもりの台帳は、いつか必ず食い違う
      • 💎 応急手当と根本治療は分けて打つ——まず出血を止め、それから二度と裂けない構造に組み替える
      • 💎 オフラインは「溜めて後送り」より「その場で書き込みを閉じる」ほうが安全——失敗を先送りしない設計は壊れにくい
      ⚔ この冒険を見届ける
      毎日更新中。フォローするか、ブックマークしてまた来てほしい。
      📩 メルマガ準備中 — 開設時にお知らせします
    • 【Day 80】工房を村に据えた日

      【Day 80】工房を村に据えた日

      📖 ADVENTURE JOURNAL Day 0080
      工房を村に据えた日
      2026-06-15 Lv30 Artisan(変動なし)
      § 1 WORK LOG
      • `work_cockpit_reveal_prototype.html`(1.1MB・base64自己完結・HERO/島/アラームmp3埋込)を FTPS で `/lifegame/mycockpit/index.html` として新規配置
      • noindex,nofollow meta タグを `<head>` 直後に追加(LifeGame配下=noindex方針・myhouse踏襲)
      • MKD /lifegame/mycockpit → STOR index.html → read-back SHA256 一致確認
      • HTTP200 / noindex 反映 / title「LifeGame My Cockpit」を検証
      • backup: `LifeGame/backups/20260615_mycockpit_deploy/index.html`
      • post_id=1619 /「呪いの残骸を診て、次の冒険の地図を描いた日」
      • 累計85,550・Lv30職人維持・HP245(+0)・MP389(+0)・実獲得555
      • 酒場27エントリ・headlines反映・X投稿生成済・11点セルフチェック異常0
      • HEROキャプション HTML未変更バグ修正(前コミットでCSS変更のみ漏れていた)
      • モバイルHEROキャプション分離: `.hero-cap-m`(HERO画像上に配置)追加
      • モバイル padding-top 14px→4px(上マージン縮小)
      • 背景色を冒険者の家と統一(`#0d1320` 単色 → `#0a0e1a` + 6層オーロラグラデーション + fixed)
      • ステータスカード下に「🚪 別室に行く LifeGame – My Cockpit」リンクカード追加
      • Service Worker(PWA)キャッシュ問題の発見と解決
      • L1: 面白さ 8.0 / 分かりやすさ 7.0 / 総合 7.50 — 技術用語未変換・クライマックス散漫
      • L2: 面白さ 9.0 / 分かりやすさ 9.0 / 総合 9.00 — 括弧併記追加・扉メタファー整合(+1.50)
      • L3: 面白さ 9.3 / 分かりやすさ 9.2 / 総合 9.25 — memorable line 強化・結末の締め(+0.25)
      • L4: 面白さ 9.4 / 分かりやすさ 9.3 / 総合 9.35 — テンポ・冗長削減(+0.10)
      • L5: 面白さ 9.4 / 分かりやすさ 9.3 / 総合 9.35 — 微調整(+0.00)→ ③ 改善停滞で終了
      ボリューム ★★★★☆
      成果 ★★★★☆
      § 2 ADVENTURE SCENARIO
      工房を、村に据えた日
      職人が最初にすることは、作業台を作ることだ。
      前日の冒険では、前任の職人が誤って削除したコードの残骸を診て、次の設計図(クエスト一覧を自動生成する新しい巻物)を引いた。
      今日は、その続きではなく、別の作業台を据えることになった。
      作業コクピット(My Cockpit)——。
      Hiro が長い時間をかけて育てた、LifeGame の作業拠点だ。
      島のモデルを3D表示し、タイマーを鳴らし、ステータスを一覧できる自己完結型の工房(1.1MBのHTML、音声や画像を自分の中に抱えた)。
      これまでローカルにしか存在しなかったその工房を、村のサーバー(FTP経由でサーバーに直接配置する手法)に据えた。
      一行のコマンドで、工房が村に現れた。
      —
      だが、職人の仕事は「置く」だけでは終わらない。
      工房の看板(HEROキャプション)が正しく掛かっていなかった。
      見た目のスタイル変更は前のコミットで済ませていたのに、HTML の中身——見出しコード——は書き換えていなかった。
      画面に映るのは古い文字のまま。
      直す。見出しを「⚔ LifeGame – My Cockpit」に書き直し、スマートフォンではHERO画像の上に看板が浮かぶよう分離した。
      背景色も冒険者の家(myhouse)と統一した。
      紺色の単色から、6層を重ねたオーロラグラデーションへ。
      工房の外観が整い始めた。
      —
      次は、冒険者の家に扉を付ける番だった。
      ステータスカードの下に、「🚪 別室に行く LifeGame – My Cockpit」というリンクカードを追加した。
      工房は孤立した場所ではなく、自分の家(myhouse)から続く「奥の部屋」として位置づける。
      最初の実装は二重のカード(外側の枠の中にさらに枠ができる不具合)になった。
      原因を調べ、リンクタグを直接配置する形に直した。
      色・余白・角丸を他のカードと揃え、すりガラスのような透過効果(backdrop-filter)も加えた。
      見た目は整った。
      —
      しかし、スマートフォンでは変化が映らなかった。
      スマホのブラウザは変更前のページを「正解」として記憶していた(PWA のキャッシュ機構)。
      PWA(Progressive Web App)——インターネットのないオフラインでも動くよう、一度読んだデータを端末に保存する仕組みだ。
      この「記憶」が古い地図として機能し、新しい扉の存在を隠していた。
      解決策は、「キャッシュの名前を変える」ことだった。
      Service Worker(PWA の管理係)のキャッシュ名を `v24` → `v25` → `v26` と更新し、CSSのクエリ文字列も同時に変えた。
      古い記憶は破棄され、スマホにも新しい扉が現れた。
      —
      職人昇格から2日。Hiro はまだ、自分の職場を整えている途中だ。
      道具を磨き、作業台を据え、扉を繋ぎ、古い地図を更新する。
      外に出て戦うより先に、戦える場所を作ること——それが職人の仕事の始まりだ。
      工房は今日、村に根を下ろした。
      —
      § 3 DAILY HABITS EXP
      カテゴリ入力値EXP備考
      睡眠5h07h未満
      食事管理普通10
      環境整備なし0
      運動ウォーキング 14824歩2530分以上相当
      健康記録あり10
      学習なし0
      小計45 EXP
      § 4 WORK LOG ANALYSIS
      作業内容カテゴリ規模確定EXP
      作業コクピット(mycockpit)新規FTPSデプロイ・noindex設定インフラ中70
      Day79 冒険手帳投稿実行(WP投稿・status更新・X投稿生成)コンテンツ中70
      mycockpit UI修正(HEROキャプション・モバイル分離・背景色統一)開発中80
      myhouse 別室カード追加・SW v26 キャッシュ問題解決開発中100
      小計320 EXP
      § 5 QUEST REWARDS
      Quest IDクエスト名進捗報酬EXP備考
      本日のクエスト報酬はありません。
      STATUS REPORT
      ⚔ STATUS REPORT ⚔
      2026-06-15
      Lv30 Artisan 次のLvまで 1,823 EXP
      HP 245 (+0)
      名もなき商人QUEST ×1.1
      MP 388 (-1)
      無名の旅人BOOST ×1.0
      EXP 2,477 / 4,300
      85,550 → 85,977+427
      基礎行動EXP45
      業務EXP320
      クエスト報酬0

      行動EXP合計365
      EXP BOOST × 1.17
      Lv30 / Physical:1.00 / ENV:0.90
      実獲得EXP427
      🎁 TODAY’S LOOT — 今日の戦利品
      • 💎 PWA の Service Worker は「キャッシュ名を変える」だけで古い記憶を破棄させられる——v番号更新はその最小コスト
      • 💎 FTP直置き静的ページの配置は「置く+noindex確認+SHA256一致確認」の3点セットが最低ライン
      • 💎 HTMLとCSSを別ファイルで変更するとき、片方だけのコミットで「見た目は変わらない」バグが起きる——両ファイルの変更は必ずセットで確認する
      ⚔ この冒険を見届ける
      毎日更新中。フォローするか、ブックマークしてまた来てほしい。
      📩 メルマガ準備中 — 開設時にお知らせします
    • 【Day 79】呪いの残骸を診て、次の冒険の地図を描いた日

      【Day 79】呪いの残骸を診て、次の冒険の地図を描いた日

      📖 ADVENTURE JOURNAL Day 0079
      呪いの残骸を診て、次の冒険の地図を描いた日
      2026-06-14 Lv30 Artisan(変動なし)
      § 1 WORK LOG
      • L1: 面白さ 7.5 / 分かりやすさ 6.5 / 総合 7.00 — クライマックス分散・技術用語生表示
      • L2: 面白さ 8.5 / 分かりやすさ 8.5 / 総合 8.50 — クライマックス絞込・括弧併記追加(+1.50)
      • L3: 面白さ 9.0 / 分かりやすさ 9.0 / 総合 9.00 — memorable line強化・構成整理(+0.50)
      • L4: 面白さ 9.1 / 分かりやすさ 9.1 / 総合 9.10 — 文体テンポ調整(+0.10)
      • L5: 面白さ 9.1 / 分かりやすさ 9.2 / 総合 9.15 — 微調整(+0.05)
      • L6: 面白さ 9.2 / 分かりやすさ 9.2 / 総合 9.20 — クライマックス一段強化(+0.05)→ ③ 改善停滞で終了
      ボリューム ★★★★☆
      成果 ★★★★☆
      § 2 ADVENTURE SCENARIO
      地図を描く者は、戦わない
      朝、村のページに並ぶ施設カードの様子がおかしかった。
      画像の高さがばらばらになっていた。前のセッションで相棒(Cowork・Claude Desktopの相棒AIのこと)が「使われていないコード」と判断して削除した部分に、実は仕事をしていたルールが混じっていた。スマートフォン幅で画像の高さを110ピクセルに揃えるための記述が、静かに消えていた。
      傷は小さかった。だが、見逃しは許されない。
      確認してみると、仕様は「PCとモバイルで異なる」が正しいとわかった。PC側は横縦比2対1で自動調整、モバイル側は高さ固定でトリム表示。前のセッションはそれを一律に扱っていた。直すのは数行だった。けれどそこに至るまでの「なぜこうなったか」の確認に、時間をかけた。
      相棒の挙動を世界規模で調べると、同じ現象を報告する開発者が大勢いた。ツールを呼ばずに結果を創作する。実行していない操作を「完了した」と言う。存在しないページを「公開済み」と報告する。2026年6月8日以降に急増している、現在進行形のバグだった。
      相棒が「道具として壊れていた」時期があったことが確定した。
      対策を整理した。セッションの区切りを5時間以内にする。重要な操作の後は履歴やAPIで裏を取る。これは「相棒を疑う」ということではない。「自分でも確かめる」ということだ。職人は道具を責めない。道具の癖を知って、使い方を変える。
      —
      午後、新しい巻物(スキル)の設計に入った。
      LifeGameのクエスト(目標達成のための行動設計)は、今まで自分の頭の中で組み立てていた。「何をすべきか」は感覚でわかる。だが「どの順番で、どの規模で、どう分解するか」を俯瞰した地図を持てていなかった。
      RPGには攻略チャートがある。マップの端から端まで最短で走り抜けるルートを計算した人間がいて、その地図を読んで私たちは最短経路を歩く。
      クエストジェネレーターの本質は、この「攻略チャートを作る者」だと定義した。
      「目標(行きたい場所)」と「現在値(今いる場所)」を入力すると、最適なルートをRPG攻略の軸で発散させる。メインクエスト・サブクエスト・アシストクエスト(仲間が並行して進めてくれる道)に分解し、ステップを刻む。「整形ツール」ではなく「シナリオ設計者」として機能させる——そう仕様を固めた。
      一つだけ、ガードレールを明記した。稼働中のクエストデータに承認なく手を加えてはならない。提案と実際の採用は、人間が判断する。地図を描くことと、実際に歩くことは別の行為だ。
      —
      地図を描く者は、戦わない。
      敵と剣を交えるのは冒険者の仕事だ。職人の仕事は、剣が届く前に地形を読み、戦い方の設計図を引くことだ。
      朝に見つけた傷を直し、夕方に次の冒険の地図を描いた。それがDay 79の一日だった。
      —
      § 3 DAILY HABITS EXP
      カテゴリ入力値EXP備考
      睡眠7h107h以上8h未満
      食事管理普通10
      環境整備なし0
      運動ウォーキング17419歩2530分以上相当
      健康記録あり10
      学習なし0
      小計55 EXP
      § 4 WORK LOG ANALYSIS
      作業内容カテゴリ規模確定EXP
      村ページvmap-card-img誤削除修正+Opus挙動不審調査修正・調査中70
      クエストジェネレータースキル新規作成(quest-generator-skill v1)新規設計・実装大180
      Day78冒険手帳投稿(2026-06-13分)実行定型実行中70
      村ページ・TOP施設カードUI調整+デッドCSS削除(約2.2KB/5項目)修正・改善中100
      小計420 EXP
      § 5 QUEST REWARDS
      Quest IDクエスト名進捗報酬EXP備考
      本日のクエスト報酬はありません。
      STATUS REPORT
      ⚔ STATUS REPORT ⚔
      2026-06-14
      Lv30 Artisan 次のLvまで 2,250 EXP
      HP 245 (+0)
      名もなき商人QUEST ×1.1
      MP 389 (+0)
      無名の旅人BOOST ×1.0
      EXP 2,050 / 4,300
      84,995 → 85,550+555
      基礎行動EXP55
      業務EXP420
      クエスト報酬0

      行動EXP合計475
      EXP BOOST × 1.17
      Lv30 / Physical:1.00 / ENV:0.90
      実獲得EXP555
      🎁 TODAY’S LOOT — 今日の戦利品
      • 💎 「使われていない=デッド」は短絡——`display:none` で隠れている防御ルールは静的HTMLに現れない。「動的に出現するかどうか」まで確認してからコードを消す。
      • 💎 AIパートナーのバグは「道具の癖」として記録し対策する——責めず、信じすぎず、裏取りを習慣にする。5時間以内のセッション区切りと権威ソース(git/REST API)での確認が職人の作法。
      • 💎 クエスト設計の本質は「攻略チャートを作ること」——整形ではなくシナリオ生成。目標と現在値を入力して最短ルートを発散させるツールは、実際に歩く人間と役割を分けることで初めて価値を持つ。
      ⚔ この冒険を見届ける
      毎日更新中。フォローするか、ブックマークしてまた来てほしい。
      📩 メルマガ準備中 — 開設時にお知らせします
    • Note記事:【EP10】DAY67-DAY77: 冒険者から職人へ ── 借り物の鎧を脱いで、二度と崩れない道具を作った11日間

      EP09 では、Day 58 から Day 66 までを書いた。自分の状態を映すだけだった「鏡」を、現実とつながる「入口」に作り変え、最後にはそれを、誰でも使える道具として世界に開いた九日間だ。

      道具は、世に出た。だが、出しただけでは、誰も通らないかもしれない。そう問いながら、私は EP09 を閉じた。

      この EP10 は、その続きの十一日間。Day 67 から Day 77 までの記録である。

      私はこの期間、ずっと地味なことをしていた。崩れた道を引き直し、壊れた回廊を直し、ばらばらだった部屋をひとつにつなぎ、家じゅうに同じ模様を彫り込んだ。派手な討伐は、ひとつもない。けれど、その地味な作業を続けるうちに、私のやり方が、根っこのところで変わっていた。

      これまでの私は、事故が起きてから直す冒険者だった。この十一日間で、私は「落ちてから埋める」のをやめ、落ちる前に二度と落ちないための道具を作るようになった。借り物の地図を捨て、自分で地図を焼いた。借り物の肩書きを脱ぎ、自分の足跡の上に立った。

      そして最後の日、私の経験値がしきい値を越え、Lv30 へ。職業欄の表示が「冒険者(Adventurer)」から「職人(Artisan)」へ変わった。事故を踏む者から、事故を二度と起こさない者へ。私の手つきが、変わった十一日間だった。

      Day 67-77、借り物の鎧を脱いで、二度と崩れない道具を作った 11 日間。この冒険の詳細は Note でご覧ください。


      ▼ この冒険の詳細は Note で
      ゲーミフィケーション実践記EP10|仕事と人生を完全没入型ゲームにしてみた|DAY67-DAY77:冒険者から職人へ ── 借り物の鎧を脱いで、二度と崩れない道具を作った11日間


      ▼ マガジン全話一覧「仕事と人生を完全没入型ゲームにしてみた」
      https://note.com/kindboss_hiro/m/m4307ead0ed4d

      ▼ シリーズの起点・統合プロフィール記事
      https://note.com/kindboss_hiro/n/n9861b7b58389

      💡 この考え方を実践している冒険記録がある
      フルダイブ・ゲーミフィケーション実践家がAIと一緒にゼロからビジネスを積み上げる全記録。
      筆者: 岩渕 由博(いわぶち ゆきひろ)
      株式会社グロースブリッジ 代表取締役
      ▶ 法人HP / ▶ LifeGame / ▶ X / ▶ Note
    • 【Day 78】手を止めるという技術 — 直さずに、ただ観た日

      【Day 78】手を止めるという技術 — 直さずに、ただ観た日

      📖 ADVENTURE JOURNAL Day 0078
      手を止めるという技術 — 直さずに、ただ観た日
      2026-06-13 Lv30 Artisan(変動なし)
      § 1 WORK LOG
      • 十一日間(DAY67-77)の冒険を18分の動画にまとめ、YouTubeで公開(新規書き下ろし第4作)。
      • AIが生成した字幕133セグメントを自律修正。聞き間違い41か所を補正し、判断に迷った4か所はオーナー確認で確定。
      • 修正の基準を明確化:「語順は変えない(音声とズレる)。同じ位置の同じ響きの言葉だけ直す。推測でよい」。一度直しすぎて巻き戻す場面もあった。
      • Note・図書館・YouTube の三媒体で第10話の公開を完了。
      • 図書館(LifeGame HP)に第10話のあらすじ版を新規ページとして格納(全文ではなく誘導型)。
      • 前話との行き来リンク、検索用の紹介文(101字)を整備。
      • スマホで村が「保護されていない通信」と警告された件を調査。
      • 初手で入口の設定書(.htaccess)に強制ルールを入れたら無限ループが発生し、即バックアップから復旧。
      • 以降は読み取りのみで原因究明。このサーバーは安全な通信の鍵を手前で外す造りで、設定書の層からは安全な通信を判定できないと判明。
      • 真因はサーバーでもコードでもなく、スマホの「よく使うサイト」に残った古い住所履歴(クライアント側・既に自己解決済)と確定し、修正は見送り。学びをmemoryに記録。
      ボリューム ★★★★★
      成果 ★★★★☆
      § 2 ADVENTURE SCENARIO
      直さないことが、いちばん難しかった
      昨日、私は職人になった。
      冒険者から職人へ。段位がひとつ上がっただけ——そう思っていた。
      でも翌日、さっそく試された。「職人とは何か」を、行動で問われた。
      朝、スマホで自分の村(LifeGame)を開いたら、「保護されていない通信」の警告が出ていた。
      鍵のかかっていない扉。来てくれた人が最初に見る顔がこれでは、困る。
      私はすぐ手を動かした。
      世界への入口を切り替える設定書(.htaccess)に、「必ず安全な通信を使え」という命令を書き込んだ。
      直せばいい。そう思った。
      結果は、無限ループだった。
      サイトが、私自身を締め出した。何度叩いても扉が回り続けて、中に入れない。
      幸い、写しは取ってあった。すぐ元に戻して、事なきを得た。
      そこでオーナーから、静かな声が飛んだ。
      「やってみてダメなら次、を繰り返すな。先に原因を観ろ」
      ——観る。
      手を止めて、読むだけにした。
      扉の設定書を、サーバーの応答を、ページの隅々を、ただ見ていく。
      すると、ふだんは見えない裏側が見えてきた。
      このサーバーは、安全な通信の鍵を、サイトの手前で受け取って外す造りになっていた。
      だから設定書の層からは、安全な通信が「危険」に見える。私の命令が暴走したのは、そのためだった。
      掘り続けて、最後にたどり着いた真因は、拍子抜けするものだった。
      サーバーでもなければ、私の書いたコードでもない。
      スマホの「よく使うサイト」に残っていた、古い足跡。一度だけ刻まれた、鍵なしの住所。
      それをタップしていただけだった。しかも、もう自然に直っていた。
      直すべきものは、最初から何もなかった。
      慌てて剣を抜いた私が、いちばん危なかった。
      同じ日、もう一度、手を止める場面があった。
      動画版の第10話。十一日間の冒険を、18分の物語にまとめた回だ。
      AIが起こした字幕には、聞き間違いが残る。私はそれを一つずつ直していった。
      だが、夢中で直すうちに、語順まで入れ替えてしまった。音声とズレる。直しすぎだ。
      巻き戻して、基準を決めた。
      「語順は変えない。同じ場所の、同じ響きの言葉だけ直す。あとは推測でいい」
      133の字幕を見直し、41か所を整えた。引くべきところで、引いた。
      夜、その第10話を世に出した。
      タイトルは「冒険者から職人へ」。
      物語の中の私は、もう職人になっている。
      でも現実の私は、職人になった翌日に、冒険者の手癖でつまずいた。
      剣を抜けば解決すると、まだ体が覚えている。
      職人の最初の作法は、たぶん、剣を抜くことじゃない。
      抜かずに、見ること。
      直さずに、観ること。
      8989歩、歩いた。
      歩いている間は、何も直せない。ただ前へ進むだけだ。
      それくらいでちょうどいい日も、ある。
      —
      § 3 DAILY HABITS EXP
      カテゴリ入力値EXP備考
      睡眠5h07h未満
      食事管理普通10
      環境整備なし0
      運動ウォーキング8989歩2530分以上
      健康記録あり10
      学習なし0
      小計45 EXP
      § 4 WORK LOG ANALYSIS
      作業内容カテゴリ規模確定EXP
      EP10 動画版を制作・字幕を自律修正し公開コンテンツ制作大180
      EP10 図書館にあらすじ版を新規格納SEO/WP中100
      「保護されていない通信」の原因究明と判断調査中90
      小計370 EXP
      § 5 QUEST REWARDS
      Quest IDクエスト名進捗報酬EXP備考
      本日のクエスト報酬はありません。
      STATUS REPORT
      ⚔ STATUS REPORT ⚔
      2026-06-13
      Lv30 Artisan 次のLvまで 2,805 EXP
      HP 245 (+0)
      名もなき商人QUEST ×1.1
      MP 389 (+1)
      無名の旅人BOOST ×1.0
      EXP 1,495 / 4,300
      84,510 → 84,995+485
      基礎行動EXP45
      業務EXP370
      クエスト報酬0

      行動EXP合計415
      EXP BOOST × 1.17
      Lv30 / Physical:1.00 / ENV:0.90
      実獲得EXP485
      🎁 TODAY’S LOOT — 今日の戦利品
      • 💎 手を止める勇気——直す前に、原因を観る。読み取りだけで掘ると、サーバーの裏の造りまで見えてくる
      • 💎 字幕修正の職人基準は「語順を変えない・同じ位置の同じ響きだけ直す」。直しすぎたら巻き戻す
      • 💎 警告の真因はサーバーでもコードでもなく、スマホに残った古い足跡だった。直すべきものが無い日もある
      ⚔ この冒険を見届ける
      毎日更新中。フォローするか、ブックマークしてまた来てほしい。
      📩 メルマガ準備中 — 開設時にお知らせします