[{"data":1,"prerenderedAt":234},["ShallowReactive",2],{"content-/morning-chain-rule-fix":3,"all-pages-for-dir":212,"related-/morning-chain-rule-fix":213,"og-image-/morning-chain-rule-fix":233},{"id":4,"title":5,"body":6,"category":192,"concepts":193,"description":194,"extension":195,"meta":196,"navigation":197,"ogImage":193,"path":198,"project_name":199,"published":200,"publishedAt":201,"seo":202,"source":203,"stem":204,"tags":205,"todo":193,"unpublished":200,"updatedAt":193,"__hash__":211},"pages/2026-08/2026-08-15/morning-chain-rule-fix.md","統計は更新されたのに記事がない。毎朝のチェーンに空いていた工程を塞いだ",{"type":7,"value":8,"toc":181},"minimark",[9,13,21,24,28,31,34,41,45,48,51,54,57,60,64,67,75,78,85,88,91,94,97,126,129,137,143,146,152,155,158,177],[10,11,12],"h1",{"id":12},"統計は更新されたのに記事がない",[14,15,16,20],"p",{},[17,18,19],"code",{},"/make-diary"," を完走させて、evals のレポートを Chrome に出したところで、その朝の分は終わったつもりでいた。\nところが、そこで手を付けていないものが2つ出てきた。\nひとつはビデオコース関連の記事で、これは非公開にしておけばいい。\nもうひとつは韓国の品目別の記事で、7月分がまだ作られていない。",[14,22,23],{},"品目別の数字は統計チェーンで SSOT に入る。\n入っているのに、記事だけがない。\nしかも同じチェーンの別の統計は、記事を作るところまで手順に組み込んである。\nこの日は8月12日に作成済みだったのでスキップされていた。\n穴が空いていたのは品目別のぶんだけで、そこは誰の担当でもないまま毎月通り過ぎていた。",[25,26,27],"h2",{"id":27},"前日分のチェーンを回す",[14,29,30],{},"対象は 2026-08-14。\nWindows 機なので、決算チェーンと統計チェーンも実行対象に入る。\n月次のDBバックアップは前回から14日しか経っていないのでスキップした。",[14,32,33],{},"詳細記事はサブエージェント7件に分けて並列で書かせ、待っている間に Koyfin のタブを用意した。\nKID が登録済みの銘柄をまとめてバッチで投げたら、73銘柄すべてが est=200 / price=200 で返ってきた。\nTurso への取り込みも ok=73 / ng=0 で通った。\nAMAT に新しい四半期（Q3 FY26）を見つけたので、そこで再生成を3件はさんだ。",[14,35,36,37,40],{},"途中で ",[17,38,39],{},"API Error: Connection refused"," が出て手が止まった。\nまだ続いているのか聞くと、7割まで来ていると返ってきた。\nそのまま統合日記の執筆に進んだ。",[25,42,44],{"id":43},"grok-が未来の日付だと言い出す","Grok が「未来の日付だ」と言い出す",[14,46,47],{},"決算ビートのスキャンで、Grok が日付を「未来」と判定して劣化した応答を返してきた。\n検索の文面から日付を外して、1回だけ投げ直したら普通に返ってきた。\n再試行の回数を先に決めておかないと、同じ質問を延々と投げ続けることになる。",[14,49,50],{},"ヒットしたのは ETON だった。\nただし発表日を確かめると、候補はいずれも 2026-08-13 の引け後だった。\n前日の記事が AMAT、NU、ETON、DLO をすでにカバーしている。\nそこでこの日のスキャンは0件と判定した。",[14,52,53],{},"0件には2種類ある。\n探して見つからなかった0件と、見つけたが窓の外だった0件。\n後者を後者として書き残しておかないと、翌朝の自分が「スキャンが壊れているのでは」と疑い直すことになる。",[25,55,56],{"id":56},"保有銘柄は実測を取ってから聞く",[14,58,59],{},"デイリーニュースは、値動きの実測から始めた。\n数字を確定させてから、銘柄ごとに直列で材料を調べさせた。\n先に材料から入ると、上がった話も下がった話も等しく集まってきて、どれがその日の値動きを説明しているのか分からなくなる。",[25,61,63],{"id":62},"コミットと赤いレビュー","コミットと、赤いレビュー",[14,65,66],{},"統計チェーンはサブエージェントに任せ、その裏で振り返りとコミット対象の確認を進めた。\n学習ゲートはスキップして、完成していた100ファイルを先にコミットした（+7256 / -592）。\n統計チェーンの成果物は、書き込みが終わってから追いコミットに回した。",[14,68,69,70,74],{},"Codex のレビューは致命的12件で返ってきた。\n1件ずつ実物を開いて確かめたら、実在したのは4件で、残りは誤検知か既存記事の軽い指摘だった。\nうち1件は正本のファイルを開いた時点で決着がついた。\n日記の記述のほうが正本と合っていて、詳細記事の側が食い違っていた。\n",[71,72,73],"strong",{},"レビューの指摘は、赤い件数ではなく実物で数え直す","。",[25,76,77],{"id":77},"記事を1本引っ込める",[14,79,80,81,84],{},"ビデオコース関連の記事は、",[17,82,83],{},"unpublished: true"," を立てるだけでは終わらなかった。\n日記からその記事へリンクが張ってあり、非公開リンクの検査に引っかかってビルドが落ちる。\n日記側には同じ内容の要約も残っていたので、そこも合わせて伏せた。\nさらに関連記事のリストにもリンクが残っていて、これも外した。",[14,86,87],{},"非公開化はフラグ1個の作業に見えて、実際には参照の掃除とセットになる。\nこの記事の場合、リンク元は日記の本文、日記の要約、関連記事リストの3か所に散っていた。",[25,89,90],{"id":90},"抜けていた工程を塞ぐ",[14,92,93],{},"韓国の品目別は、前月版を型として読むところから始めた。\n2026-07 の確報値は SSOT に入っているので、そこから取り出す。",[14,95,96],{},"詰まったのはチャートだった。\n前月分の SVG はスクリプトで生成した形をしているのに、生成器が残っていない。\n手で似せて描けばその場は済むが、来月また同じ手間が戻ってくる。\nそこで生成スクリプトごと作り直し、配色は前月の記事から拾って揃えた（MCP を強調色に置く並び）。",[98,99,104],"pre",{"className":100,"code":101,"language":102,"meta":103,"style":103},"language-bash shiki shiki-themes vitesse-light vitesse-light","node scripts/generate-korea-chip-item-charts.mjs --out content/2026-08/2026-08-15\n","bash","",[17,105,106],{"__ignoreMap":103},[107,108,111,115,119,123],"span",{"class":109,"line":110},"line",1,[107,112,114],{"class":113},"senZ8","node",[107,116,118],{"class":117},"sdGka"," scripts/generate-korea-chip-item-charts.mjs",[107,120,122],{"class":121},"snbK4"," --out",[107,124,125],{"class":117}," content/2026-08/2026-08-15\n",[14,127,128],{},"入力は SSOT のファイル1本だけにして、重量が入っていない月は単価チャートから自動で外れるようにした。\n描画を見たら、系列ラベルが線に重なっていた。\n右に余白を作って重なりを解消した。\n次は軸の上限が粗すぎたので、刻みを細かくして描き直した。\n2枚とも読める形になったところで数値を確定させ、記事を書いた。\n7月は DRAM が $13.55B で単月トップを奪い返している。",[14,130,131,132],{},"できた記事: ",[133,134,136],"a",{"href":135},"/korea-chip-item-exports-2026-07","韓国の品目別半導体輸出 2026年7月確報",[14,138,139,140,142],{},"書き終えたあと、",[17,141,135],{}," が 404 になっているタブに気づいて、確認しに行った。\n関連記事リストの側にも外し忘れたリンクが残っていて、両方とも対応した。",[25,144,145],{"id":145},"ルールにする",[14,147,148,149,74],{},"最後に、毎朝のチェーンの手順書へ1行足した。\n品目別のデータが更新されたら、",[71,150,151],{},"記事まで作る",[14,153,154],{},"今日の取りこぼしを埋めるだけなら記事1本で済む。\nそれだと来月も同じ場所で穴が開き、また指摘されて気づくことになる。\nチャートを生成スクリプトにしたのも同じ理由で、来月の自分が手で描き直さないためだった。",[25,156,157],{"id":157},"学び",[159,160,161,165,168,171,174],"ul",{},[162,163,164],"li",{},"自動チェーンの穴は、エラーが出る場所ではなく「誰の担当でもない工程」に空く。データは更新されたのに成果物がない、という形で表に出る",[162,166,167],{},"0件の報告には、探して無かったのか、見つけたが条件の外だったのかまで書く",[162,169,170],{},"記事の非公開化はフラグ1個では終わらない。リンク元を全部たどる",[162,172,173],{},"生成物を手で作ると、来月の自分が同じ手作業をする。スクリプトにして配色ごと固定する",[162,175,176],{},"レビューの指摘件数は入口の数字でしかない。12件のうち実在は4件だった",[178,179,180],"style",{},"html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":103,"searchDepth":182,"depth":182,"links":183},2,[184,185,186,187,188,189,190,191],{"id":27,"depth":182,"text":27},{"id":43,"depth":182,"text":44},{"id":56,"depth":182,"text":56},{"id":62,"depth":182,"text":63},{"id":77,"depth":182,"text":77},{"id":90,"depth":182,"text":90},{"id":145,"depth":182,"text":145},{"id":157,"depth":182,"text":157},"dev",null,"毎朝の自動チェーンを完走させたあとで、統計の数字は入っているのに記事が作られていないことに気づいた。記事を1本非公開にし、韓国の品目別輸出の7月分をチャート生成スクリプトごと作り、更新されたら記事まで作る運用を手順書に書いた。","md",{},true,"/morning-chain-rule-fix","claude-code-tools",false,"2026-08-15T00:00:00.000Z",{"title":5,"description":194},"make-diary","2026-08/2026-08-15/morning-chain-rule-fix",[206,207,208,209,210],"Claude Code","自動化","輸出統計","運用ルール","SVG","hB7RXIMx-yRBqaboUFmSXqqekKcic7K2OzIwNcDgCQQ",[],[214,218,222,225,229],{"title":215,"path":216,"publishedAt":217},"台湾の後工程テスト4社の月次売上まとめを、毎朝のコマンドチェーンから自動生成する","/taiwan-osat-monthly-automation","2026-08-12T00:00:00.000Z",{"title":219,"path":220,"publishedAt":221},"Claude Codeセッションのタイムライン可視化スクリプトを開発した -- history.jsonl解析・GAP_THRESHOLD比較検証・make-diary統合まで","/timeline-visualization-script","2026-04-13T00:00:00.000Z",{"title":223,"path":224,"publishedAt":217},"図解60型カタログのフレームを統一する。スライドの領域を命名して意味グリッドで揃えた1日","/diagram-catalog-frame-grid",{"title":226,"path":227,"publishedAt":228},"図解60型のグリッド整列を記録に残し、統合カタログを新設した","/diagram-grid-alignment-catalog","2026-08-11T00:00:00.000Z",{"title":230,"path":231,"publishedAt":232},"2026年8月10日の開発日記 - 図解カタログ27型をグリッドに載せ直した","/2026-08-10-diary","2026-08-10T00:00:00.000Z","https://log.eurekapu.com/favicon.svg",1787053849380]