[{"data":1,"prerenderedAt":725},["ShallowReactive",2],{"content-/2026-08-15-diary":3,"all-pages-for-dir":711,"related-/2026-08-15-diary":712,"og-image-/2026-08-15-diary":724},{"id":4,"title":5,"body":6,"category":691,"concepts":692,"description":693,"extension":694,"meta":695,"navigation":609,"ogImage":692,"path":696,"project_name":697,"published":698,"publishedAt":699,"seo":700,"source":701,"stem":702,"tags":703,"todo":692,"unpublished":698,"updatedAt":692,"__hash__":710},"pages/2026-08/2026-08-15/diary-2026-08-15.md","2026年8月15日の開発日記 - 60型を1枚に乗せ切り、父のMacをGitHubにつないだ",{"type":7,"value":8,"toc":672},"minimark",[9,14,18,21,25,32,35,40,43,46,49,55,75,86,89,93,96,99,102,106,121,134,136,140,143,146,150,161,174,176,180,183,186,189,192,196,207,215,217,221,224,227,230,233,237,251,259,261,265,268,271,275,286,294,296,300,303,310,313,317,335,343,345,348,566,568,571,593,595,598,637,639,642],[10,11,13],"h1",{"id":12},"_2026年8月15日の開発日記","2026年8月15日の開発日記",[15,16,17],"p",{},"両方にある型は、どちらかを捨てる。そう決めて午後の選別に入った。\nところが1組目のツリー図で、採ると決めた側にも直したい箇所が出てきた。\nノードの中に「ルート」「分類」と書いてあり、右の凡例と同じことを言っている。\n採用は「そのまま使う」という意味ではなかった。",[15,19,20],{},"土曜日だったが、動いていたのは3つのリポジトリだった。\n図解カタログの統一を終わらせ、税務の研修教材を講義ノートにする計画を立て、父の Mac を開発環境にする準備を進めた。\n13セッション。",[22,23,24],"h2",{"id":24},"今日のタイムライン",[15,26,27],{},[28,29],"img",{"alt":30,"src":31},"タイムライン","/2026-08/2026-08-15/timeline-2026-08-15.png",[22,33,34],{"id":34},"今日やったこと",[36,37,39],"h3",{"id":38},"_1-図解60型カタログ-統一を終え選別に入った","1. 図解60型カタログ — 統一を終え、選別に入った",[15,41,42],{},"朝いちばんに前日の積み残しを洗い出したら、統一キャンバスへの移行が60型中26型で止まっていた。\n残り34型。カテゴリD（関係性）8型に着手した。\n原典の組み立て・配色・文字サイズはそのまま持ち上げ、統一するのはキャンバスと5点骨格と外マージンだけにとどめる方針で進めた。\nこれで60型すべてが1枚のキャンバスに乗った。",[15,44,45],{},"午後は選別に入った。27系と33系の両方に存在する8組について、どちらを残すかを実物で見比べて決めていく。\n1組目のツリー図は27系を採った。決め手は左軸に「第0層」「第1層」「第2層」の層ラベルが出ていることで、階層の意味がチャートの外側に固定されている。\n採ると決めたうえで、ノード内のバッジは外させた。凡例と二重に同じことを言っていたためだ。",[15,47,48],{},"判断の過程は1組ずつメモに残す運用にした。不採用になった型もカタログからは消さず、アーカイブとして置いておく。",[15,50,51],{},[52,53,54],"strong",{},"主な成果:",[56,57,58,62,65,68],"ul",{},[59,60,61],"li",{},"カテゴリD 8型を統一キャンバスへ移し、60型すべてを乗せ切った",[59,63,64],{},"コミットを8本に分割して入れた",[59,66,67],{},"選別の台帳を新設し、1組目（ツリー）を決着させた",[59,69,70,74],{},[71,72,73],"code",{},"MERGE_PLAN"," に「採用／不採用」の状態を持たせた",[15,76,77,80,81],{},[52,78,79],{},"詳細:"," ",[82,83,85],"a",{"href":84},"/diagram-catalog-selection-start","図解60型が1枚のキャンバスに乗った日。ここから27系と33系のどちらを残すかを選ぶ",[87,88],"hr",{},[36,90,92],{"id":91},"_2-rubin-ultra-の-hbm-構成を記事にした","2. Rubin Ultra の HBM 構成を記事にした",[15,94,95],{},"調査会社の短い報道が起点だった。HBM4e 12Hi の量産歩留まりに不確実性があるため、次世代フラッグシップのメモリ構成が複数規格の並行評価になっているという話である。",[15,97,98],{},"検算の物差しは、過去に自分で書いた記事の中にあった。BOM を分解した記事があり、そこに載せた原単位でビット需要の減少幅を出せた。\n途中で「メモリは後から 192GB を 288GB に足せるのか」という疑問が湧いた。個体としてはできない。ただしレイヤーを1つ外すと直感のほうが正しくなる。しかもその整理は、2か月前の自分の記事に既に書いてあった。",[15,100,101],{},"図を5枚作って記事に組み込み、図番号を1〜5の連番に直してからコミットした。",[15,103,104],{},[52,105,54],{},[56,107,108,115,118],{},[59,109,110,111,114],{},"記事1本と図版5点を作り、",[71,112,113],{},"c0c5e7b0"," で入れた",[59,116,117],{},"過去記事2本を材料として接続した",[59,119,120],{},"未コミットで残っていた別案件の生成物を、中身を確認したうえで削除した",[15,122,123,80,125,129,130],{},[52,124,79],{},[82,126,128],{"href":127},"/rubin-ultra-hbm-article-making","報道の1段落から解説記事1本にするまで、決定的な材料は過去の自分の記事にあった"," / 記事本体は ",[82,131,133],{"href":132},"/rubin-ultra-hbm4e-8hi-bom-multiplier","Rubin Ultra の HBM 構成",[87,135],{},[36,137,139],{"id":138},"_3-毎朝のチェーンに空いていた工程を塞いだ","3. 毎朝のチェーンに空いていた工程を塞いだ",[15,141,142],{},"日次の自動チェーンを完走させたあとで、韓国の品目別輸出の数字は取り込まれているのに記事が作られていないことに気づいた。\n7月分を書き、あわせて「統計が更新されたら記事まで作る。ここまでで1セット」を手順書に書き足した。",[15,144,145],{},"前月分のチャートはスクリプトで生成した形になっていたのに、生成器そのものが残っていなかった。既存の配色を拾い直し、再現可能なスクリプトごと作った。",[15,147,148],{},[52,149,54],{},[56,151,152,155,158],{},[59,153,154],{},"韓国の品目別輸出（7月分）の記事とチャート生成スクリプトを作った",[59,156,157],{},"記事1本を非公開にし、日記側のリンクも同時に外した",[59,159,160],{},"運用ルールを毎朝チェーンの手順書へ反映した",[15,162,163,80,165,169,170],{},[52,164,79],{},[82,166,168],{"href":167},"/morning-chain-rule-fix","統計は更新されたのに記事がない。毎朝のチェーンに空いていた工程を塞いだ"," / ",[82,171,173],{"href":172},"/korea-chip-item-exports-2026-07","韓国の品目別輸出 2026年7月分",[87,175],{},[36,177,179],{"id":178},"_4-税務の研修教材を講義ノートにする計画を立てた","4. 税務の研修教材を講義ノートにする計画を立てた",[15,181,182],{},"Turso に3年分入っている税務の公的研修教材のうち、最新年度分をコンテンツにしたい。既存の講義ノートと同じ Miller Column Layout に寄せる方針で実装計画を作らせた。",[15,184,185],{},"節の粒度でひとつ指摘を入れた。第1節と第2節が1トピックにまとまっていたので、別トピックとして分けさせた。しかもここだけで済ませず、第1章から第8章まで全部に同じ分け方を適用させた。",[15,187,188],{},"途中で順序を組み替えた。図の作り直しにどれだけかかるか読めないので、まず図だけを Before/After で一覧できるページを切り出す。どの図をどこまでやるかは、やってみないと分からない。",[15,190,191],{},"残りは2セッションに割った。指示文の受け渡しは自動化しようとしたが、渡すコンテキストが大きく、ターミナルに出して手でコピー＆ペーストするほうが速かった。",[15,193,194],{},[52,195,54],{},[56,197,198,201,204],{},[59,199,200],{},"実装計画を作り、図の先行フェーズへ組み替えた",[59,202,203],{},"節の分割方針を全章に適用させた",[59,205,206],{},"「図のSVG化」「統計表の構造化」の2セッションに分けて並走させた",[15,208,209,80,211],{},[52,210,79],{},[82,212,214],{"href":213},"/zeimu-lecture-notes-kickoff","PDFの研修教材を講義ノートにする計画を立て、図と表を別セッションに切り出した",[87,216],{},[36,218,220],{"id":219},"_5-教材の図をsvgに作り直しギャラリーを図が主役の並びに直した","5. 教材の図をSVGに作り直し、ギャラリーを図が主役の並びに直した",[15,222,223],{},"図のSVG化を担当するセッションを1日走らせ、全346枚のうち48枚まで進んだ。",[15,225,226],{},"ギャラリーの見せ方も直した。本文幅の上限を外し、Before と After を大きく並べられるようにする。タイトルと前後ボタンのヘッダーは残し、原本ページ番号や章タイトルといったメタ情報は図の下へ落とした。PC の横画面で図の下側まで見えるようにするためだ。",[15,228,229],{},"中身の誤りもひとつ潰した。国際比較の図で、財政赤字対国民所得比がマイナスなのに積み上げで足し上げられていて、合計が原図と合っていない。1か国だけこの項目自体がないことも含めて直させた。",[15,231,232],{},"この作業の進め方はスキルに落とした。",[15,234,235],{},[52,236,54],{},[56,238,239,242,245,248],{},[59,240,241],{},"346枚中48枚をSVG化した",[59,243,244],{},"ギャラリーの本文幅上限を外し、メタ情報を図の下へ移した",[59,246,247],{},"積み上げ棒でマイナス値を足し上げていた誤りを直した",[59,249,250],{},"作業手順をスキル化し、Cloudflare へデプロイした",[15,252,253,80,255],{},[52,254,79],{},[82,256,258],{"href":257},"/zeimu-figure-svg-gallery","研修教材の図をSVGに作り直し、Before/Afterギャラリーを図が主役の並びに直した",[87,260],{},[36,262,264],{"id":263},"_6-崩れた統計表を構造化データに直した","6. 崩れた統計表を構造化データに直した",[15,266,267],{},"PDF から抜いた表が桁と行のずれたまま画面に出ていた。実物をブラウザで開いて崩れている箇所を指し、原本と突き合わせて構造化データに直させた。",[15,269,270],{},"そのうえで、表のすぐ上に推移チャートを出す方針を足した。積み上げ棒、構成比100%の推移など、その表で意味の出る形にする。縦の項目が多すぎる表は代表項目に寄せ、残りを「その他」にまとめてよいという裁量も渡した。対象は一部ではなく全部の表である。",[15,272,273],{},[52,274,54],{},[56,276,277,280,283],{},[59,278,279],{},"崩れていた統計表を構造化データへ直した",[59,281,282],{},"表JSONからチャートを生成する形にして、表の上に載せた",[59,284,285],{},"崩れの真因が旧年度版の数字の重なりだったところまで追い込んだ",[15,287,288,80,290],{},[52,289,79],{},[82,291,293],{"href":292},"/zeimu-stats-table-restructuring","PDFから崩れて抜けた統計表を構造化データに直し、表の上に推移チャートを載せた",[87,295],{},[36,297,299],{"id":298},"_7-父の-mac-を開発環境にする準備とpnpm-への移行","7. 父の Mac を開発環境にする準備と、pnpm への移行",[15,301,302],{},"父のアカウントを GitHub のコラボレーターに入れて、Mac から git clone できる状態にした。\n招待は通ったのに「リポジトリが見えない」と連絡が来て、権限を疑った。API で見ると admin のまま付いている。開いていたのはプロフィールページで、そこには本人が所有するリポジトリしか並ばない。権限ではなく画面の話だった。",[15,304,305,306,309],{},"同じリポジトリを npm から pnpm へ移した。依存パッケージがゼロなので置き換えは軽く済んだ。\nただし下書き同期スクリプトの除外リストが ",[71,307,308],{},"package-lock.json"," 決め打ちになっていて、pnpm の lock ファイルが本番の生成物に混ざる。ここだけは実害が出るので、ビルドまで通して確かめさせた。",[15,311,312],{},"以前に書いた計画書をリポジトリの手順書として起こし直した。\n途中で自分の書いた記述の誤りも見つかった。「その場でしか取得できない」と断定していた手順が、確かめてみるとあとからでも取り直せるものだった。",[15,314,315],{},[52,316,54],{},[56,318,319,322,329,332],{},[59,320,321],{},"父のアカウントをコラボレーターに入れ、clone から push まで通る状態にした",[59,323,324,325,328],{},"npm から pnpm へ移し、",[71,326,327],{},"packageManager"," を 11.21.0 に上げた",[59,330,331],{},"セットアップ手順書を11ファイルとしてリポジトリに起こした",[59,333,334],{},"誤っていた記述を訂正した",[15,336,337,80,339],{},[52,338,79],{},[82,340,342],{"href":341},"/family-mac-setup-pnpm-migration","父の Mac を開発環境にする準備と、リポジトリの npm から pnpm への移行",[87,344],{},[22,346,347],{"id":347},"今日の試行錯誤",[349,350,351,373],"table",{},[352,353,354],"thead",{},[355,356,357,361,364,367,370],"tr",{},[358,359,360],"th",{},"#",[358,362,363],{},"テーマ",[358,365,366],{},"試したこと",[358,368,369],{},"結果",[358,371,372],{},"気づき",[374,375,376,394,411,428,445,462,479,496,515,532,549],"tbody",{},[355,377,378,382,385,388,391],{},[379,380,381],"td",{},"1",[379,383,384],{},"図解カタログ・選別",[379,386,387],{},"一覧ページのサムネイルで採否を決めようとした",[379,389,390],{},"失敗",[379,392,393],{},"縮小した図では差が見えない。詳細ページを3枚開いて見比べる形に変えた",[355,395,396,399,402,405,408],{},[379,397,398],{},"2",[379,400,401],{},"ツリー図の採用",[379,403,404],{},"27系を採ると決めてそのまま進めようとした",[379,406,407],{},"修正が必要",[379,409,410],{},"ノード内のバッジが右の凡例と重複していた。採用は「そのまま使う」ではない",[355,412,413,416,419,422,425],{},[379,414,415],{},"3",[379,417,418],{},"コミットと学習ゲート",[379,420,421],{},"8本に分けて、コードの実体がある2本はクイズを通そうとした",[379,423,424],{},"途中で方針変更",[379,426,427],{},"生成物とドキュメント中心の日は、全部スキップして理由を残すほうが早い",[355,429,430,433,436,439,442],{},[379,431,432],{},"4",[379,434,435],{},"Rubin Ultra の検算",[379,437,438],{},"HBM を 192GB から 288GB に後付けできるかを考えた",[379,440,441],{},"半分正解",[379,443,444],{},"個体としては不可。レイヤーを1つ外すと成立する。答えは2か月前の自分の記事にあった",[355,446,447,450,453,456,459],{},[379,448,449],{},"5",[379,451,452],{},"講義ノート化の着手順",[379,454,455],{},"本体のコンテンツから作り始めようとした",[379,457,458],{},"順序変更",[379,460,461],{},"図の工数が読めない。図のギャラリーを先に切り出して、やってみてから見積もる",[355,463,464,467,470,473,476],{},[379,465,466],{},"6",[379,468,469],{},"セッション間の指示受け渡し",[379,471,472],{},"ブラウザ経由で別セッションへ指示を投げようとした",[379,474,475],{},"中止",[379,477,478],{},"コンテキストが大きく、ターミナルに出して手で貼るほうが速い",[355,480,481,484,487,490,493],{},[379,482,483],{},"7",[379,485,486],{},"統計チャートの符号",[379,488,489],{},"積み上げ棒をそのまま出した",[379,491,492],{},"誤り発覚",[379,494,495],{},"マイナス値を足し上げていて合計が原図と合わない。原図との突き合わせで見つかった",[355,497,498,501,504,507,510],{},[379,499,500],{},"8",[379,502,503],{},"pnpm のバージョン確認",[379,505,506],{},"グローバルの pnpm を上げて試そうとした",[379,508,509],{},"拒否された",[379,511,512,514],{},[71,513,327],{}," の1行が実効バージョンを固定していて、corepack がそれを強制する",[355,516,517,520,523,526,529],{},[379,518,519],{},"9",[379,521,522],{},"GitHub のリポジトリが見えない",[379,524,525],{},"コラボレーター権限を疑った",[379,527,528],{},"見当違い",[379,530,531],{},"権限は付いていた。プロフィールページには所有リポジトリしか並ばない",[355,533,534,537,540,543,546],{},[379,535,536],{},"10",[379,538,539],{},"push が弾かれた",[379,541,542],{},"force push で押し切ろうとはしなかった",[379,544,545],{},"正解",[379,547,548],{},"別セッションが同じ文書群を別方針で書き換えていた。先に中身を読んでから統合した",[355,550,551,554,557,560,563],{},[379,552,553],{},"11",[379,555,556],{},"承認ボタンを押す回数が増えた",[379,558,559],{},"設定が壊れたと思って見直した",[379,561,562],{},"設定は無事",[379,564,565],{},"ツール側の Windows 限定リグレッションで、更新済みでも起動済みセッションには効いていなかった",[87,567],{},[22,569,570],{"id":570},"今日の学び",[56,572,573,576,579,584,587,590],{},[59,574,575],{},"採用と決めた型にも直す箇所がある。2つ並べて片方を選ぶ作業は、選んだ瞬間には終わらない",[59,577,578],{},"権限を付けたのに見えないと言われたら、権限より先に相手が開いている画面を見る。GitHub のプロフィールページには本人が所有するリポジトリしか並ばない",[59,580,581,583],{},[71,582,327],{}," の1行が、どのマシンで叩いても実効バージョンを決める。corepack がその固定を厳格に強制するので、複数マシンで揃えたいならこの1行を直せば済む",[59,585,586],{},"サブエージェントに委譲するとき、スキル名やファイルパスを渡しただけでは規約が守られない。守ってほしい規約は指示文の本文に丸ごと書く。特に落ちやすいのは禁止の但し書きで、「rect に stroke を付けない、ただし関係を示す line は引く」の後半が抜けると接続線が全部消える",[59,588,589],{},"統計データを更新したら、その日のうちに記事まで作る。データだけ入れて記事を落とすと、後から「どの月の記事がないか」を突き合わせる作業が生える",[59,591,592],{},"積み上げ棒でマイナス値を足し上げていた誤りは、合計を原図と突き合わせるまで見えなかった。チャートは見た目が整っていても符号を間違える",[87,594],{},[22,596,597],{"id":597},"明日やること",[56,599,602,612,625,631],{"className":600},[601],"contains-task-list",[59,603,606,611],{"className":604},[605],"task-list-item",[607,608],"input",{"disabled":609,"type":610},true,"checkbox"," 図解カタログの選別を2組目（ピラミッド）から再開する。残りはピラミッド・組織図・ループ・ガント・ベン図・散布図・レーダーの7組",[59,613,615,617,618,621,622,624],{"className":614},[605],[607,616],{"disabled":609,"type":610}," 決まった組を ",[71,619,620],{},"catalog.ts"," の ",[71,623,73],{}," に入れ、判断の過程を選別ログへ1組ずつ書く",[59,626,628,630],{"className":627},[605],[607,629],{"disabled":609,"type":610}," 教材の図のSVG化を、所得税分野の図から進める",[59,632,634,636],{"className":633},[605],[607,635],{"disabled":609,"type":610}," 統計表の構造化とチャート化の残りを片付ける",[87,638],{},[22,640,641],{"id":641},"関連記事",[56,643,644,648,652,656,660,664,668],{},[59,645,646],{},[82,647,85],{"href":84},[59,649,650],{},[82,651,128],{"href":127},[59,653,654],{},[82,655,168],{"href":167},[59,657,658],{},[82,659,214],{"href":213},[59,661,662],{},[82,663,258],{"href":257},[59,665,666],{},[82,667,293],{"href":292},[59,669,670],{},[82,671,342],{"href":341},{"title":673,"searchDepth":674,"depth":674,"links":675},"",2,[676,677,687,688,689,690],{"id":24,"depth":674,"text":24},{"id":34,"depth":674,"text":34,"children":678},[679,681,682,683,684,685,686],{"id":38,"depth":680,"text":39},3,{"id":91,"depth":680,"text":92},{"id":138,"depth":680,"text":139},{"id":178,"depth":680,"text":179},{"id":219,"depth":680,"text":220},{"id":263,"depth":680,"text":264},{"id":298,"depth":680,"text":299},{"id":347,"depth":674,"text":347},{"id":570,"depth":674,"text":570},{"id":597,"depth":674,"text":597},{"id":641,"depth":674,"text":641},"diary",null,"図解カタログの統一を終えて選別に入り、税務の研修教材を講義ノート化する計画を3セッションに割った日。父のアカウントをGitHubのコラボレーターに入れ、リポジトリをpnpmへ移した記録も含む。13セッション・3リポジトリ。","md",{},"/2026-08-15-diary","daily-log",false,"2026-08-15T00:00:00.000Z",{"title":5,"description":693},"make-diary","2026-08/2026-08-15/diary-2026-08-15",[704,705,706,707,708,709],"日記","図解カタログ","SVG","pnpm","GitHub","HBM","lN47QLx2tc3ImQe-tH09CacsO0St8-zSXfeWJUfr-Qk",[],[713,717,718,719,720],{"title":714,"path":715,"publishedAt":716},"2026年8月16日の開発日記 - 税大講本SVG化を4科目並行、AIクレジット・モニター実装","/2026-08-16-diary","2026-08-16T00:00:00.000Z",{"title":85,"path":84,"publishedAt":699},{"title":342,"path":341,"publishedAt":699},{"title":128,"path":127,"publishedAt":699},{"title":721,"path":722,"publishedAt":723},"2026年8月14日の開発日記 - 積み残しに番号を振って潰し、デプロイ25分の内訳を割った","/2026-08-14-diary","2026-08-14T00:00:00.000Z","https://log.eurekapu.com/favicon.svg",1787053849312]