[{"data":1,"prerenderedAt":554},["ShallowReactive",2],{"content-/2026-07-04-diary":3,"all-pages-for-dir":552,"og-image-/2026-07-04-diary":553},{"id":4,"title":5,"body":6,"category":534,"concepts":535,"description":536,"extension":537,"meta":538,"navigation":464,"ogImage":535,"path":539,"project_name":540,"published":541,"publishedAt":542,"seo":543,"stem":544,"tags":545,"todo":535,"unpublished":541,"updatedAt":535,"__hash__":551},"pages/2026-07/2026-07-04/diary-2026-07-04.md","2026年7月4日の開発日記 - スキルを教材に同期し、図解を縦に流した日",{"type":7,"value":8,"toc":514},"minimark",[9,14,18,22,29,32,37,45,51,70,80,83,87,90,94,105,113,115,119,122,126,134,142,144,148,151,155,166,174,176,180,183,187,195,203,205,209,217,221,229,237,239,243,246,250,258,266,268,272,277,279,282,426,428,431,448,450,453,479,481,484],[10,11,13],"h1",{"id":12},"_2026年7月4日の開発日記","2026年7月4日の開発日記",[15,16,17],"p",{},"朝イチのSearch Console効果測定でインデックス未登録5,030件の主因候補を突き止め、日中はSVG図解スキルの縦流しルール追加・韓国輸出統計の速報値チャート・理科教材バッチ7と手を広げた。夕方には自作スキルを教材に同期する skill-to-lesson を初めて実運用し、コンテンツを売る側の価格設計まで考えが伸びた一日。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-07/2026-07-04/timeline-2026-07-04.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-search-console-効果測定とデプロイエラー対応","1. Search Console 効果測定とデプロイエラー対応",[15,38,39,40,44],{},"朝イチで昨日の積み残しを棚卸しし、ワーキングツリーを意味のある粒度でコミットして整理した。Search Console のドメイン横断レポートでは、登録済み4,400件に対して未登録5,030件。タグページの末尾スラッシュあり/なしの二重内部リンクが主因候補だと特定した。",[41,42,43],"code",{},"pnpm generate"," のヒープOOMによるデプロイエラーにも遭遇し、経緯を公開記事に残してから再実行で復旧させた。",[15,46,47],{},[48,49,50],"strong",{},"主な成果:",[52,53,54,58,67],"ul",{},[55,56,57],"li",{},"Search Console 効果測定レポートと SEO 残タスク計画を memo に保存",[55,59,60,61,66],{},"デプロイエラーの顛末を ",[62,63,65],"a",{"href":64},"/generate-oom-and-verify-false-positive","公開記事"," としてドキュメント化",[55,68,69],{},"ブランチを整理してマスターに集約、push まで完了",[15,71,72,75,76],{},[48,73,74],{},"詳細:"," ",[62,77,79],{"href":78},"/search-console-audit-and-deploy","Search Console効果測定で未登録5,030件の主因を特定し、デプロイエラーまで片付けた日",[81,82],"hr",{},[33,84,86],{"id":85},"_2-svg図解スキルの縦流しルール追加と記事図解の刷新","2. SVG図解スキルの縦流しルール追加と記事図解の刷新",[15,88,89],{},"Webで見るスライド形式の図が4:3比率を守ろうとしてS字型（1→2→3が上段、4→5→6が右から戻る）になる違和感を拾い、svg-diagram スキルに「縦に流す」ルールを追加させた。新ルールで genai-ideas の全記事を Sonnet 5 にレビューさせ、記事冒頭のサマリー図（メッセージライン＋問うべき問い）も追加させた。",[15,91,92],{},[48,93,50],{},[52,95,96,99,102],{},[55,97,98],{},"svg-diagram スキルに縦流しルールを追加",[55,100,101],{},"figure-02.svg の縦流し化と genai-ideas 全記事の一括レビュー・修正",[55,103,104],{},"ai-earn-money-delegation 記事に figure-03.svg（冒頭サマリー図）を新規追加",[15,106,107,75,109],{},[48,108,74],{},[62,110,112],{"href":111},"/svg-diagram-vertical-flow-rule","SVG図解を4:3比率から解放する ─ スキルに縦流しルールを追加して記事図解を一括刷新した",[81,114],{},[33,116,118],{"id":117},"_3-韓国半導体輸出統計の速報値チャート拡充","3. 韓国半導体輸出統計の速報値チャート拡充",[15,120,121],{},"月次PDFの速報値に載る DRAM/NAND 輸出単価が確報値との突き合わせに使えると気づき、2024年1月起点の速報値チャートを追加させた。SSD・MCP の品目別チャートも速報値から拾えたので追加。モーダル拡大（クリック/Esc）を他ページと揃え、X軸を「24/1」形式に変えて最新月の未確定系列が見分けられる表示にした。",[15,123,124],{},[48,125,50],{},[52,127,128,131],{},[55,129,130],{},"速報値単価チャート（DRAM/NAND）と SSD/MCP チャートを追加",[55,132,133],{},"チャートのモーダル拡大・X軸表記・最新月欠損の可視化を統一",[15,135,136,75,138],{},[48,137,74],{},[62,139,141],{"href":140},"/korea-chip-export-flash-charts","韓国半導体輸出ページに速報値チャートを拡充した - DRAM/NAND単価・SSD/MCPをPDF速報から反映",[81,143],{},[33,145,147],{"id":146},"_4-理科教材づくり実験器具バッチ完了と植物分野8トピック着手","4. 理科教材づくり：実験器具バッチ完了と植物分野8トピック着手",[15,149,150],{},"中学受験向け理科参考書の100トピック教材化の続き。バッチ6（実験器具）を登録→検証→事実チェックまで通し、バッチ7（植物分野8トピック）のコンテンツとクイズデータ生成に着手した。途中で tool call malformed が連発してモデルを切り替え、計画書に「Fable 5 で実行する」と固定を明記させた。",[15,152,153],{},[48,154,50],{},[52,156,157,160,163],{},[55,158,159],{},"バッチ6完了を計画書に反映、引き継ぎドキュメント作成",[55,161,162],{},"植物分野8トピックのクイズデータ8ファイルとコンテンツを生成",[55,164,165],{},"モデル指定を計画書に固定して malformed の再発予防",[15,167,168,75,170],{},[48,169,74],{},[62,171,173],{"href":172},"/science-course-plants-batch","小学生向け理科教材づくり：実験器具バッチを完了し、植物分野8トピックの生成に着手した日",[81,175],{},[33,177,179],{"id":178},"_5-skill-to-lesson-初実運用とコンテンツ化候補の洗い出し","5. skill-to-lesson 初実運用とコンテンツ化候補の洗い出し",[15,181,182],{},"svg-diagram スキルの更新をレッスンコンテンツに反映する skill-to-lesson を初めて実運用した。スキル側の変更履歴から「縦流しルール」「NG対比図」をレッスンに同期させ、表示確認してコミット。出来が良かったので、他の自作スキルのコンテンツ化候補を優先度つきで列挙させ、HTML の候補マトリックスに整理した（続きは明日）。",[15,184,185],{},[48,186,50],{},[52,188,189,192],{},[55,190,191],{},"スキル→教材の同期フローが実運用で一周回った",[55,193,194],{},"コンテンツ化候補マトリックス（HTML）を作成、明日に引き継ぎ",[15,196,197,75,199],{},[48,198,74],{},[62,200,202],{"href":201},"/skill-to-lesson-first-run","Claude Codeスキルの更新を教材に同期する「skill-to-lesson」を初実運用した",[81,204],{},[33,206,208],{"id":207},"_6-学習コンテンツの買い切り価格設計を検討","6. 学習コンテンツの買い切り価格設計を検討",[15,210,211,212,216],{},"Marc Lou の『バイラルプロダクト32原則』（",[62,213,215],{"href":214},"/viral-product-checklist-skill","チェックリスト記事","）を下敷きに、自作の学習コンテンツを売る場合の設計を壁打ちした。「買う前に触らせる」と「無料プランを持たない」の整合、サブスクではなく買い切りにする場合の価格の考え方（LTV・市場価格）を整理し、非公開の販売設計メモを更新した。",[15,218,219],{},[48,220,50],{},[52,222,223,226],{},[55,224,225],{},"無料で読める記事から買い切りへ誘導する構成の方向性を整理",[55,227,228],{},"販売設計メモを更新",[15,230,231,75,233],{},[48,232,74],{},[62,234,236],{"href":235},"/course-onetime-pricing-design","学習コンテンツを買い切りで売る価格設計——「買う前に触らせる」と「無料プランを持たない」を両立させる考え方",[81,238],{},[33,240,242],{"id":241},"_7-台湾旅行向けの海外ローミングプラン整理","7. 台湾旅行向けの海外ローミングプラン整理",[15,244,245],{},"家族での台湾旅行に向けて、契約中キャリアの海外定額オプションを整理した。「申込み＝課金開始ではなく、申込み前は従量制ローミングが生きている。利用開始で初めて定額に切り替わる」という仕組みを対話で腹落ちさせ、申込みまで完了。整理した内容はドキュメントに追記して Cloudflare にデプロイしてもらった。",[15,247,248],{},[48,249,50],{},[52,251,252,255],{},[55,253,254],{},"海外定額オプションの課金の仕組みを整理して申込み完了",[55,256,257],{},"旅行メモをドキュメント化してデプロイ",[15,259,260,75,262],{},[48,261,74],{},[62,263,265],{"href":264},"/overseas-roaming-plan-notes","台湾旅行前に海外ローミング定額プランを整理した記録 - 申込みと課金開始は別物だった",[81,267],{},[33,269,271],{"id":270},"_8-その他","8. その他",[52,273,274],{},[55,275,276],{},"Chrome拡張からスプレッドシートに接続するときの OAuth まわり（GCP でのアプリケーション作成と API 許可）を調べた。知人の組織アカウントの権限制約が絡む可能性があり、過去の公開記事を探して手順を確認した",[81,278],{},[19,280,281],{"id":281},"今日の試行錯誤",[283,284,285,307],"table",{},[286,287,288],"thead",{},[289,290,291,295,298,301,304],"tr",{},[292,293,294],"th",{},"#",[292,296,297],{},"テーマ",[292,299,300],{},"試したこと",[292,302,303],{},"結果",[292,305,306],{},"気づき",[308,309,310,330,346,362,378,394,410],"tbody",{},[289,311,312,316,319,324,327],{},[313,314,315],"td",{},"1",[313,317,318],{},"デプロイエラー",[313,320,321,323],{},[41,322,43],{}," がヒープOOMで exit 134 → 経緯を記事化して改善後に再実行",[313,325,326],{},"成功",[313,328,329],{},"失敗の記録を公開記事に残すと、次に同じエラーを踏んだときの復旧が速い",[289,331,332,335,338,341,343],{},[313,333,334],{},"2",[313,336,337],{},"push のマージ要求",[313,339,340],{},"push 時にマージを求められた → ブランチを整理してマスターに集約させた",[313,342,326],{},[313,344,345],{},"ブランチ操作のリカバリごと任せると往復が減る",[289,347,348,351,354,357,359],{},[313,349,350],{},"3",[313,352,353],{},"SVG図解のS字レイアウト",[313,355,356],{},"4:3維持でS字型になった図に違和感 → スキルに縦流しルールを追加して全記事レビュー",[313,358,326],{},[313,360,361],{},"Web表示の図は比率へのこだわりが不要。ルール化すれば過去記事にも波及できる",[289,363,364,367,370,373,375],{},[313,365,366],{},"4",[313,368,369],{},"サマリー図の2列目",[313,371,372],{},"2列目に置いた要素へ矢印が伸びて「フローに見える」違和感 → 対話で構成を詰めて反映",[313,374,326],{},[313,376,377],{},"図の要素配置は「流れがあるか」で列を分けるかを決める",[289,379,380,383,386,389,391],{},[313,381,382],{},"5",[313,384,385],{},"韓国チャートの反映確認",[313,387,388],{},"「チャートに入っていない？」→ 実は入っていたが最新月の欠損が見分けられなかった",[313,390,326],{},[313,392,393],{},"データの有無より「欠損が欠損と分かる表示」が確認コストを下げる",[289,395,396,399,402,405,407],{},[313,397,398],{},"6",[313,400,401],{},"理科教材バッチ7の malformed",[313,403,404],{},"tool call malformed が連発 → モデルを切り替えて続行、計画書に Fable 5 固定を明記",[313,406,326],{},[313,408,409],{},"モデルが勝手に切り替わることがある。計画書へのモデル固定が再発予防になる",[289,411,412,415,418,421,423],{},[313,413,414],{},"7",[313,416,417],{},"ローミングの課金理解",[313,419,420],{},"「オンにしたら課金開始」と誤解 → スクショを貼りながら対話で仕組みを整理",[313,422,326],{},[313,424,425],{},"申込みと課金開始は別。申込み前こそ従量課金のリスクがある",[81,427],{},[19,429,430],{"id":430},"今日の学び",[52,432,433,436,439,442,445],{},[55,434,435],{},"スキル→教材の同期（skill-to-lesson）が実運用で一周回った。スキルの変更履歴を差分としてレッスンに反映する流れは、他のスキルにも横展開できる",[55,437,438],{},"インデックス未登録の主因はタグページの末尾スラッシュ揺れだった。内部リンクのURL表記統一が最も効果の大きいSEO改善になりそう",[55,440,441],{},"速報値と確報値を両建てでチャート化すると、どちらかの異常値に気づける",[55,443,444],{},"tool call malformed が出たらモデルを確認する。使うモデルは計画書に明記して固定する",[55,446,447],{},"海外ローミングは「申込み前のほうが危ない」。フライトモードで遮断しない限り従量課金が生きている",[81,449],{},[19,451,452],{"id":452},"明日やること",[52,454,457,467,473],{"className":455},[456],"contains-task-list",[55,458,461,466],{"className":459},[460],"task-list-item",[462,463],"input",{"disabled":464,"type":465},true,"checkbox"," スキルのコンテンツ化候補マトリックスの続き（優先度順に着手対象を決める）",[55,468,470,472],{"className":469},[460],[462,471],{"disabled":464,"type":465}," タグページの末尾スラッシュ統一（SEO残タスク計画に沿って）",[55,474,476,478],{"className":475},[460],[462,477],{"disabled":464,"type":465}," 理科教材バッチ7の登録→検証→事実チェック",[81,480],{},[19,482,483],{"id":483},"関連記事",[52,485,486,490,494,498,502,506,510],{},[55,487,488],{},[62,489,79],{"href":78},[55,491,492],{},[62,493,112],{"href":111},[55,495,496],{},[62,497,141],{"href":140},[55,499,500],{},[62,501,173],{"href":172},[55,503,504],{},[62,505,202],{"href":201},[55,507,508],{},[62,509,236],{"href":235},[55,511,512],{},[62,513,265],{"href":264},{"title":515,"searchDepth":516,"depth":516,"links":517},"",2,[518,519,530,531,532,533],{"id":21,"depth":516,"text":21},{"id":31,"depth":516,"text":31,"children":520},[521,523,524,525,526,527,528,529],{"id":35,"depth":522,"text":36},3,{"id":85,"depth":522,"text":86},{"id":117,"depth":522,"text":118},{"id":146,"depth":522,"text":147},{"id":178,"depth":522,"text":179},{"id":207,"depth":522,"text":208},{"id":241,"depth":522,"text":242},{"id":270,"depth":522,"text":271},{"id":281,"depth":516,"text":281},{"id":430,"depth":516,"text":430},{"id":452,"depth":516,"text":452},{"id":483,"depth":516,"text":483},"diary",null,"Search Console効果測定とデプロイエラー対応から始まり、SVG図解スキルの縦流しルール追加、韓国輸出統計の速報値チャート拡充、理科教材バッチ7、skill-to-lesson初実運用、買い切り価格設計まで詰め込んだ一日。","md",{},"/2026-07-04-diary","daily-log",false,"2026-07-04T00:00:00.000Z",{"title":5,"description":536},"2026-07/2026-07-04/diary-2026-07-04",[546,547,548,549,550],"日記","SVG図解","Search Console","skill-to-lesson","教材開発","IPF_kJY7w2QXuUICGSLlK96XNpVGfFRDPeBBeTFsp-Q",[],"https://log.eurekapu.com/og/blog/2026-07-04-diary.png?v=2026-07-04T00%3A00%3A00.000Z&title=2026%E5%B9%B47%E6%9C%884%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20%E3%82%B9%E3%82%AD%E3%83%AB%E3%82%92%E6%95%99%E6%9D%90%E3%81%AB%E5%90%8C%E6%9C%9F%E3%81%97%E3%80%81%E5%9B%B3%E8%A7%A3%E3%82%92%E7%B8%A6%E3%81%AB%E6%B5%81%E3%81%97%E3%81%9F%E6%97%A5&author=Kei%20Komatsu&sig=41927191964060c9",1783483675216]