[{"data":1,"prerenderedAt":629},["ShallowReactive",2],{"content-/2026-08-03-diary":3,"all-pages-for-dir":612,"related-/2026-08-03-diary":613,"og-image-/2026-08-03-diary":628},{"id":4,"title":5,"body":6,"category":593,"concepts":594,"description":595,"extension":596,"meta":597,"navigation":518,"ogImage":594,"path":598,"project_name":599,"published":600,"publishedAt":601,"seo":602,"source":603,"stem":604,"tags":605,"todo":594,"unpublished":600,"updatedAt":594,"__hash__":611},"pages/2026-08/2026-08-03/diary-2026-08-03.md","2026年8月3日の開発日記 - 壊れていたのは、思い込みのほうだった",{"type":7,"value":8,"toc":574},"minimark",[9,14,18,21,24,28,35,38,43,46,49,55,71,82,85,89,92,95,98,102,113,121,123,127,130,133,137,148,156,158,162,165,168,172,183,191,193,197,200,203,207,218,226,228,232,235,238,242,253,261,263,267,270,274,285,293,295,298,480,482,485,502,504,507,539,541,544],[10,11,13],"h1",{"id":12},"_2026年8月3日の開発日記","2026年8月3日の開発日記",[15,16,17],"p",{},"この日は、確かめずに持ち歩いていたものが2つ外れた。",[15,19,20],{},"ひとつは本番の投稿ヒートマップ。壊れていると思って調べさせたら、数字は最初から合っていた。もうひとつは「権限が広すぎるからあの方式を避けた」という自分の説明だった。記録に当たらせたら、そもそも検討していなかっただけだ。どちらも筋の通った話に聞こえるぶん、確かめないまま次の判断の土台にしていた。",[15,22,23],{},"残りの時間は、下書きを抱えたまま本番から外す仕組みを家業の鍵屋サイトに入れ、支援先の資料回収を手順ではなく線引きとして残し、ログイン済みのブラウザに繋がるまでの往復をやっていた。",[25,26,27],"h2",{"id":27},"今日のタイムライン",[15,29,30],{},[31,32],"img",{"alt":33,"src":34},"タイムライン","/2026-08/2026-08-03/timeline-2026-08-03.png",[25,36,37],{"id":37},"今日やったこと",[39,40,42],"h3",{"id":41},"_1-家業の鍵屋サイトに下書きを抱えたまま育てる仕組みを入れた","1. 家業の鍵屋サイトに、下書きを抱えたまま育てる仕組みを入れた",[15,44,45],{},"前日までに入れたエリアページと施工事例3本が、ビルドには乗るのにどこからもリンクされていなかった。人間には見えず、検索エンジンからだけ見えている状態だ。動線の確認から始め、ヘッダーの項目を5つに絞った。",[15,47,48],{},"ただし事例のページは写真が届いていないし、聞き取りも3ケース中1ケースしか終わっていない。そこで下書きのまま本体に置き、本番のビルドからだけ外せるようにした。半分しか埋まっていないページを、人に見せずに手元で育てられる。",[15,50,51],{},[52,53,54],"strong",{},"主な成果:",[56,57,58,62,65,68],"ul",{},[59,60,61],"li",{},"下書きフラグで本番から外す仕組みを実装（デプロイ事故の防止と手元での確認を両立）",[59,63,64],{},"ヘッダーを5項目に整理し、エリアページと施工事例3本の動線を確保",[59,66,67],{},"施工事例をモデルケース3本として設計（金額・所要時間・ビフォーアフターの枠）",[59,69,70],{},"トップの動画素材を差し替え、ウェブ表示用に軽量化してデプロイ",[15,72,73,76,77],{},[52,74,75],{},"詳細:"," ",[78,79,81],"a",{"href":80},"/locksmith-site-content-expansion","本番に出さない下書きを抱えたまま、家業の鍵屋サイトを育てる",[83,84],"hr",{},[39,86,88],{"id":87},"_2-専門書を出典に出さずファクトの照合先として使った","2. 専門書を出典に出さず、ファクトの照合先として使った",[15,90,91],{},"公開済みの歴史ページに事実の誤りが3件あった。生成AIに書かせた文章をそのまま通した結果だった。いちばん大きいのは、ある錠前を「日本独自」と書いていた箇所だ。",[15,93,94],{},"誤りを潰すために、OCR して全文検索に入れたばかりの専門書を照合先に使った。ただし書名は記事に出さない。読者の興味が本そのものに向くのは都合が悪く、技術的に踏み込んだ内容も含むからだ。事実だけを淡々と書く。",[15,96,97],{},"同じ日に、鍵が回る仕組みの図でも似たことをやった。「鍵を回す」ボタンを押すと部品が横にずれる。断面図で回転を描けないので横ずれでごまかしていたのを見つけ、奥行き方向の回り込みとして描き直させた。",[15,99,100],{},[52,101,54],{},[56,103,104,107,110],{},[59,105,106],{},"公開済みページの事実誤り3件を、文献照合で修正",[59,108,109],{},"出典を出さない判断とその理由を明文化",[59,111,112],{},"図の軸の取り違えを、指摘 → 修正 → まだ違う → 描き直しの往復で解消",[15,114,115,76,117],{},[52,116,75],{},[78,118,120],{"href":119},"/book-fact-sourcing-and-mechanism-diagram","専門書を出典に出さずファクトの照合先に使う、断面図で回転を描けなかった話",[83,122],{},[39,124,126],{"id":125},"_3-mac-にクローンし直したら書き込みだけが通らなかった","3. Mac にクローンし直したら、書き込みだけが通らなかった",[15,128,129],{},"APIトークンを発行するつもりで手順を聞いたところ、CLI のログインだけで済むと分かって発行をやめた。図版1,464枚を8並列で置いて、成功1,463枚・失敗1枚。",[15,131,132],{},"途中で「権限が広すぎるからあの方式を避けたのか」と自分で聞いてみたら、記録に当たらせた答えは違った。そもそも検討していなかっただけだった。よくできた推測ほど、確かめないまま事実として持ち歩く。",[15,134,135],{},[52,136,54],{},[56,138,139,142,145],{},[59,140,141],{},"読み取り専用キーで書き込もうとして 403 になっていた原因を特定",[59,143,144],{},"A案（従来どおりの経路）を採用し、B案は将来の改善案として保留",[59,146,147],{},"Mac ではこの経路に倒れるとソースコードから読める形に寄せ、コミットとプッシュまで完了",[15,149,150,76,152],{},[52,151,75],{},[78,153,155],{"href":154},"/cloudflare-r2-write-auth-on-mac","Mac にクローンし直したら、Cloudflare への書き込みだけが通らなかった",[83,157],{},[39,159,161],{"id":160},"_4-支援先の資料回収を手順ではなく線引きとして残した","4. 支援先の資料回収を、手順ではなく線引きとして残した",[15,163,164],{},"支援先の計画書をクラウドストレージから回収した。認証コマンドが120秒でタイムアウトしたので一度は失敗だと思ったが、プロセスは生きていて、ブラウザでの同意を待っているだけだった。",[15,166,167],{},"原本687ファイル・3.4GB を落として、原本には一切触らず、コピーの上でだけ整理した。更新日時とファイル名から最終版を突き止めるところまでやって、この流れをプロジェクトレベルのスキルに固定した。同じことを次の事業者でも繰り返すからだ。",[15,169,170],{},[52,171,54],{},[56,173,174,177,180],{},[59,175,176],{},"原本687ファイル・3.4GB を取得漏れゼロで回収",[59,178,179],{},"原本を消さずコピー上で整理する方針を、スキルの線引きとして明文化",[59,181,182],{},"置き場所をユーザーレベルからプロジェクトレベルへ修正",[15,184,185,76,187],{},[52,186,75],{},[78,188,190],{"href":189},"/client-doc-triage-skill","クラウドストレージから資料を回収し、原本を消さずに整理する流れをスキルにした",[83,192],{},[39,194,196],{"id":195},"_5-ログイン済みのブラウザに繋がるまでの往復","5. ログイン済みのブラウザに繋がるまでの往復",[15,198,199],{},"支援先が使う会員管理システムの画面を見せようとしたが、繋がらない時間が続いた。原因は単純で、ログインしていない別のプロファイルを見ていた。",[15,201,202],{},"決め手になったのは「許可のダイアログが出ていない」という一点だった。繋がっているつもりで設定をいじり続けるより、これを接続できていない証拠として使ったほうが早い。繋がってからは、画面操作を積み重ねる代わりに内部APIの命名規則を調べ、入力から更新までを実際に通して確かめた。",[15,204,205],{},[52,206,54],{},[56,208,209,212,215],{},[59,210,211],{},"接続できない原因をプロファイルの取り違えとして切り分け、実ブラウザに接続",[59,213,214],{},"ID・パスワードの入力は自分でやる線引きを維持",[59,216,217],{},"音声から議事録を起こす既存案から、手元の資料を渡して把握させる方向へ転換",[15,219,220,76,222],{},[52,221,75],{},[78,223,225],{"href":224},"/groupware-devtools-investigation","ログイン済みのブラウザに DevTools で繋ぐまでの往復",[83,227],{},[39,229,231],{"id":230},"_6-投稿ヒートマップは壊れていなかった","6. 投稿ヒートマップは壊れていなかった",[15,233,234],{},"本番のトップで直近1年の草が壊れていると思って調べさせたら、1658本出ていて、記事数とも整合していた。手元だけ空白だったのは dev サーバーが落ちていたからだ。",[15,236,237],{},"たどっていくと、別のノートPCで進めた10コミットが未取得のまま残っていた。さらに、デプロイは master に連動しているのではなく、デプロイした端末の作業ツリーがそのまま本番になる。端末を2台使い分けている限り、この勘違いは繰り返す。",[15,239,240],{},[52,241,54],{},[56,243,244,247,250],{},[59,245,246],{},"ヒートマップの数字を実データと突き合わせ、正常であることを確認",[59,248,249],{},"未取得の10コミットを安全な手順で取り込み（別セッションで日記生成を回したままだったため）",[59,251,252],{},"「master がそのまま本番」という思い込みを訂正",[15,254,255,76,257],{},[52,256,75],{},[78,258,260],{"href":259},"/blog-heatmap-and-stale-branch","壊れて見えた投稿ヒートマップと、別マシンに置き去りだった10コミット",[83,262],{},[39,264,266],{"id":265},"_7-mac-の細かい引っかかりをその場で潰した","7. Mac の細かい引っかかりを、その場で潰した",[15,268,269],{},"音声入力のショートカットが絵文字パレットを呼び出す。ターミナルの1行が選択できない。左のパネルが消せない。ひとつずつは小さいが、そのたびに手が止まる。",[15,271,272],{},[52,273,54],{},[56,275,276,279,282],{},[59,277,278],{},"修飾キーの2回押しで絵文字パレットが開く設定を無効化",[59,280,281],{},"ターミナルの多重化と1行選択（トリプルクリック）を習得",[59,283,284],{},"左のパネルは設定項目ではなく Esc で抜けるものだと判明",[15,286,287,76,289],{},[52,288,75],{},[78,290,292],{"href":291},"/mac-workflow-friction-fixes","Macに移った2日目、引っかかるたびに設定を直した",[83,294],{},[25,296,297],{"id":297},"今日の試行錯誤",[299,300,301,323],"table",{},[302,303,304],"thead",{},[305,306,307,311,314,317,320],"tr",{},[308,309,310],"th",{},"#",[308,312,313],{},"テーマ",[308,315,316],{},"試したこと",[308,318,319],{},"結果",[308,321,322],{},"気づき",[324,325,326,344,361,378,395,412,429,446,463],"tbody",{},[305,327,328,332,335,338,341],{},[329,330,331],"td",{},"1",[329,333,334],{},"図版の書き込み",[329,336,337],{},"手持ちのキーでアップロードした",[329,339,340],{},"403",[329,342,343],{},"図の配信用の読み取り専用キーだった。従来の経路に戻した",[305,345,346,349,352,355,358],{},[329,347,348],{},"2",[329,350,351],{},"避けた理由の確認",[329,353,354],{},"「権限が広すぎるから避けた」を記録と突き合わせた",[329,356,357],{},"外れ",[329,359,360],{},"検討していなかっただけ。筋の通る説明ほど疑わずに済ませる",[305,362,363,366,369,372,375],{},[329,364,365],{},"3",[329,367,368],{},"資料の回収",[329,370,371],{},"CLI の認証コマンドを叩いた",[329,373,374],{},"120秒でタイムアウト",[329,376,377],{},"失敗ではなく同意待ち。プロセスの生死で区別が付く",[305,379,380,383,386,389,392],{},[329,381,382],{},"4",[329,384,385],{},"共有領域の一覧",[329,387,388],{},"認証後に一覧を取った",[329,390,391],{},"空で返る",[329,393,394],{},"フラグ1つで見えたり見えなかったりする",[305,396,397,400,403,406,409],{},[329,398,399],{},"5",[329,401,402],{},"業務システムの画面",[329,404,405],{},"DevTools で繋ごうとした",[329,407,408],{},"別プロファイルを見ていた",[329,410,411],{},"ダイアログが出ないこと自体が接続できていない証拠",[305,413,414,417,420,423,426],{},[329,415,416],{},"6",[329,418,419],{},"鍵の回転の表現",[329,421,422],{},"断面図で横ずれとして描いていた",[329,424,425],{},"左の図が止まった",[329,427,428],{},"奥行き方向の回り込みとして描き直した",[305,430,431,434,437,440,443],{},[329,432,433],{},"7",[329,435,436],{},"崩れの検出",[329,438,439],{},"隙間 → 実距離 → はみ出し量と3回変えた",[329,441,442],{},"幻の崩れ",[329,444,445],{},"ヘッドレスの実ビューポートが500pxだった",[305,447,448,451,454,457,460],{},[329,449,450],{},"8",[329,452,453],{},"ヒートマップ",[329,455,456],{},"壊れていると思って調べさせた",[329,458,459],{},"数字は合っていた",[329,461,462],{},"犯人は落ちた dev サーバーと未取得の10コミット",[305,464,465,468,471,474,477],{},[329,466,467],{},"9",[329,469,470],{},"本番の同期",[329,472,473],{},"master が本番だと思って確認した",[329,475,476],{},"違った",[329,478,479],{},"デプロイした端末の作業ツリーが本番になる",[83,481],{},[25,483,484],{"id":484},"今日の学び",[56,486,487,490,493,496,499],{},[59,488,489],{},"もっともらしく出てきたものを、そのまま通さない。本の照合も、図の軸も、自分の記憶も同じだった",[59,491,492],{},"下書きを本体に置いたまま本番から外せると、半分しか埋まっていないページを手元で育てられる",[59,494,495],{},"原本を消さないと最初に決めておくと、整理の判断が軽くなる",[59,497,498],{},"許可ダイアログが出ないことは、接続できていない証拠として使える。設定をいじり続けるより早い",[59,500,501],{},"端末を2台使い分けるなら、「どのツリーが本番になったか」を覚えるしかない",[83,503],{},[25,505,506],{"id":506},"明日やること",[56,508,511,521,527,533],{"className":509},[510],"contains-task-list",[59,512,515,520],{"className":513},[514],"task-list-item",[516,517],"input",{"disabled":518,"type":519},true,"checkbox"," 正規の料金表に差し替える",[59,522,524,526],{"className":523},[514],[516,525],{"disabled":518,"type":519}," 金庫の事例に合わせて料金表の粒度を直す",[59,528,530,532],{"className":529},[514],[516,531],{"disabled":518,"type":519}," 現場の職人に記事の内容を見てもらう",[59,534,536,538],{"className":535},[514],[516,537],{"disabled":518,"type":519}," 支援先の未了5系統の続き",[83,540],{},[25,542,543],{"id":543},"関連記事",[56,545,546,550,554,558,562,566,570],{},[59,547,548],{},[78,549,81],{"href":80},[59,551,552],{},[78,553,120],{"href":119},[59,555,556],{},[78,557,155],{"href":154},[59,559,560],{},[78,561,190],{"href":189},[59,563,564],{},[78,565,225],{"href":224},[59,567,568],{},[78,569,260],{"href":259},[59,571,572],{},[78,573,292],{"href":291},{"title":575,"searchDepth":576,"depth":576,"links":577},"",2,[578,579,589,590,591,592],{"id":27,"depth":576,"text":27},{"id":37,"depth":576,"text":37,"children":580},[581,583,584,585,586,587,588],{"id":41,"depth":582,"text":42},3,{"id":87,"depth":582,"text":88},{"id":125,"depth":582,"text":126},{"id":160,"depth":582,"text":161},{"id":195,"depth":582,"text":196},{"id":230,"depth":582,"text":231},{"id":265,"depth":582,"text":266},{"id":297,"depth":576,"text":297},{"id":484,"depth":576,"text":484},{"id":506,"depth":576,"text":506},{"id":543,"depth":576,"text":543},"diary",null,"本番の投稿ヒートマップが壊れていると思って呼んだら、壊れていたのは自分の記憶のほうだった。鍵屋サイトの下書き機構、支援先資料の回収スキル化、ログイン済みブラウザへの接続、Mac の細かい引っかかりまで。","md",{},"/2026-08-03-diary","daily-log",false,"2026-08-03T00:00:00.000Z",{"title":5,"description":595},"make-diary","2026-08/2026-08-03/diary-2026-08-03",[606,607,608,609,610],"日記","Mac移行","Cloudflare","Claude Code","SEO","puRwKm-KVjPbyavsANyRM7yT-bd2AxvutRDrWzgptYE",[],[614,618,619,620,624],{"title":615,"path":616,"publishedAt":617},"2026年8月7日の開発日記 - 緩めたルールを、元に戻した日","/2026-08-07-diary","2026-08-07T00:00:00.000Z",{"title":155,"path":154,"publishedAt":601},{"title":81,"path":80,"publishedAt":601},{"title":621,"path":622,"publishedAt":623},"2026年7月26日の開発日記 - WordPressサイトをついに本番切替した日","/2026-07-26-diary","2026-07-26T00:00:00.000Z",{"title":625,"path":626,"publishedAt":627},"2026年8月6日の開発日記 - 「取り込み済み」が使えるとは限らなかった","/2026-08-06-diary","2026-08-06T00:00:00.000Z","https://log.eurekapu.com/og/blog/2026-08-03-diary.png?v=2026-08-03T00%3A00%3A00.000Z&title=2026%E5%B9%B48%E6%9C%883%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20%E5%A3%8A%E3%82%8C%E3%81%A6%E3%81%84%E3%81%9F%E3%81%AE%E3%81%AF%E3%80%81%E6%80%9D%E3%81%84%E8%BE%BC%E3%81%BF%E3%81%AE%E3%81%BB%E3%81%86%E3%81%A0%E3%81%A3%E3%81%9F&author=Kei%20Komatsu&sig=000181ad2a386165",1786233103382]