[{"data":1,"prerenderedAt":504},["ShallowReactive",2],{"content-/2026-08-16-diary":3,"all-pages-for-dir":481,"related-/2026-08-16-diary":482,"og-image-/2026-08-16-diary":503},{"id":4,"title":5,"body":6,"category":462,"concepts":463,"description":464,"extension":465,"meta":466,"navigation":413,"ogImage":463,"path":467,"project_name":468,"published":469,"publishedAt":470,"seo":471,"source":472,"stem":473,"tags":474,"todo":463,"unpublished":469,"updatedAt":463,"__hash__":480},"pages/2026-08/2026-08-16/diary-2026-08-16.md","2026年8月16日の開発日記 - 税大講本SVG化を4科目並行、AIクレジット・モニター実装",{"type":7,"value":8,"toc":446},"minimark",[9,14,18,22,29,32,37,40,46,62,73,76,80,83,87,95,103,105,109,112,116,127,135,137,141,150,154,165,173,175,178,181,379,382,399,402,422,425,428],[10,11,13],"h1",{"id":12},"_2026年8月16日の開発日記","2026年8月16日の開発日記",[15,16,17],"p",{},"朝7時50分に「昨日のお続きやっていきましょう」と打った。\n日曜日である。\n夜までにセッションは14本まで増え、タイムラインの eurekapu-nuxt4 の行は、並行ぶんを合算して19時間13分を数えた。\n税大講本の図のSVG化は所得税から相続税まで4科目に届き、その裏で Connection refused の調査、メルマガ2年分の検証、OGPの修理が走った。\nエージェントに任せた仕分けの判定は、この日だけで2回覆っている。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-08/2026-08-16/timeline-2026-08-16.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-税大講本の図svg化所得税から相続税まで4科目eurekapu-nuxt4","1. 税大講本の図SVG化、所得税から相続税まで4科目（eurekapu-nuxt4）",[15,38,39],{},"まず前日に作った図ギャラリーの本番公開から。\n本番ではR2に上げないかぎり図が見えない設計だと分かり、原図348枚と採用版SVG57枚ほか計406件を一括アップロードして、HTTPの全数検証で406件すべて200を確かめた。\nそのあと所得税の新規23枚、法人税63枚、消費税43枚、相続税52枚を、科目ごとの並行セッションとサブエージェント委譲で回した。\n台帳のSVG化済みは200枚を超え、原本側の誤植も2件見つけて訂正を判断した。",[15,41,42],{},[43,44,45],"strong",{},"主な成果:",[47,48,49,53,56,59],"ul",{},[50,51,52],"li",{},"図ギャラリーを本番公開（406件のHTTP全数検証で200）",[50,54,55],{},"所得税23枚を新規作成、既存71枚の再点検で5枚を作り直し",[50,57,58],{},"法人税、消費税、相続税の仕分けと作図（相続税は保留1枚を除く51枚を出し切り）",[50,60,61],{},"原本誤植2件の発見と訂正、切り欠き表現などのルールを作図スキルへ反映",[15,63,64,67,68],{},[43,65,66],{},"詳細:"," ",[69,70,72],"a",{"href":71},"/zeimu-figure-four-tax-codes","税大講本の図をSVG化、所得税から相続税まで4科目を並行セッションで進めた1日",[74,75],"hr",{},[33,77,79],{"id":78},"_2-claude-code-の-connection-refused-調査claude-code-tools","2. Claude Code の Connection refused 調査（claude-code-tools）",[15,81,82],{},"頻発する「API Error: Connection refused」を全部調べさせた。\nPC側の定番容疑者（プロキシ、hosts、ファイアウォール）は全部白。\nAnthropic の単一 anycast IP への新規TCP接続が、10〜30分の波で断続的に落ちていた。\nCodex で Windows と Mac を突き合わせ、VirtualBox のフィルターが IPv6 フォールバックを塞ぐ二層構造まで特定した。",[15,84,85],{},[43,86,45],{},[47,88,89,92],{},[50,90,91],{},"原因を二層構造で特定（IPv4経路の間欠障害＋IPv6フォールバック阻害）",[50,93,94],{},"hosts で .10 → .11 へ逃がす回避手順書を GitHub に置き、両機から参照可能に",[15,96,97,67,99],{},[43,98,66],{},[69,100,102],{"href":101},"/claude-code-connection-refused-hosts-fix","Claude Code で頻発する「API Error: Connection refused」の原因調査と hosts 回避（.10 → .11）",[74,104],{},[33,106,108],{"id":107},"_3-メルマガ2年分の検証と-ai-クレジットモニター実装mdx-playground","3. メルマガ2年分の検証と AI クレジット・モニター実装（mdx-playground）",[15,110,111],{},"長年購読している投資系メルマガの、年初の戦略と直近の話が全く違う気がした。\n2年分の約100通を取得させて突き合わせると、空売り推奨が数日後に銘柄欄から無言で消えた事実も出てきた。\nそれでも「著名投資家の転向はマジョリティの気分の反転として観測できる」と整理して、購読は続けることにした。\n議論は2000年のCLEC類推へ進み、借金でGPUを買って貸すネオクラウドの信用市場を先行指標に定めて、その場で /ai-credit-monitor を実装させた。",[15,113,114],{},[43,115,45],{},[47,117,118,121,124],{},[50,119,120],{},"メルマガ2年分（約100通）の整合性検証、今年分は約7万字を抽出し直し",[50,122,123],{},"/ai-credit-monitor を公開（FRED ハイイールドスプレッド787点＋株価日足の対数チャート）",[50,125,126],{},"/update-ai-credit-monitor スキルを整備、テスト17件合格、5コミット",[15,128,129,67,131],{},[43,130,66],{},[69,132,134],{"href":133},"/ai-credit-monitor-launch","AIバブルの崩壊を先に検知する指標を探して - メルマガ2年分の検証からAIクレジット・モニター実装まで",[74,136],{},[33,138,140],{"id":139},"_4-eurekapu-の-ogp-修理と-dependabot-28件の解消eurekapu-nuxt4","4. eurekapu の OGP 修理と Dependabot 28件の解消（eurekapu-nuxt4）",[15,142,143,149],{},[69,144,148],{"href":145,"rel":146},"http://www.eurekapu.com",[147],"nofollow","www.eurekapu.com"," のOG画像403をシークレット復元で修理したら、本命は eurekapu-nuxt4 側のOGP未設定だったと気づいた。\n署名付きOG画像を各ホストに配線し、デプロイ後に出た /lessons/* の403も共通コンポーザブルの修正で解消した。\npush で届いた Dependabot 警告25件は、nuxt 4.5 への玉突き（テスト13件失敗、ビルド失敗）を潰しながら、再スキャンで出た3件も含む計28件を0にした。",[15,151,152],{},[43,153,45],{},[47,155,156,159,162],{},[50,157,158],{},"www の403修理と eurekapu-nuxt4 のOGP配線",[50,160,161],{},"Dependabot 警告28件（critical 1件、high 16件を含む）を0件に",[50,163,164],{},"built 誤報告バグを issue 化、対応の内訳を memo に格納",[15,166,167,67,169],{},[43,168,66],{},[69,170,172],{"href":171},"/eurekapu-ogp-image-repair","eurekapu.comのOG画像が表示されない問題の修理とDependabot警告25件の棚卸し",[74,174],{},[15,176,177],{},"このほか朝いちばんには、前日分の日記生成チェーンを回している（タイムラインのログ管理3時間35分の大半がこれ）。",[19,179,180],{"id":180},"今日の試行錯誤",[182,183,184,206],"table",{},[185,186,187],"thead",{},[188,189,190,194,197,200,203],"tr",{},[191,192,193],"th",{},"#",[191,195,196],{},"テーマ",[191,198,199],{},"試したこと",[191,201,202],{},"結果",[191,204,205],{},"気づき",[207,208,209,227,244,260,277,294,311,328,345,362],"tbody",{},[188,210,211,215,218,221,224],{},[212,213,214],"td",{},"1",[212,216,217],{},"R2一括アップロード",[212,219,220],{},"406件を12並列で送信",[212,222,223],{},"3件失敗",[212,225,226],{},"wrangler の認証更新が競合して「Not logged in」。並列度を落として再送し、全406件200",[188,228,229,232,235,238,241],{},[212,230,231],{},"2",[212,233,234],{},"所得税の表経路22枚",[212,236,237],{},"原図を全部確認させた",[212,239,240],{},"判定が覆った",[212,242,243],{},"多くは矢印で対応関係を示すマッピング図で、むしろSVG向きだった",[188,245,246,249,252,255,257],{},[212,247,248],{},"3",[212,250,251],{},"法人税の表化判定",[212,253,254],{},"1枚だけテーブル化を試作して原図と並べた",[212,256,240],{},[212,258,259],{},"表よりSVGが見やすい図だった。試作の比較が決め手",[188,261,262,265,268,271,274],{},[212,263,264],{},"4",[212,266,267],{},"メルマガ本文の取得",[212,269,270],{},"保存ファイルが500文字で切れる原因を追わせた",[212,272,273],{},"原因特定",[212,275,276],{},"読み取りコマンドが出力を切り詰めていた。生レスポンスのHTML 24KBから抽出し直し",[188,278,279,282,285,288,291],{},[212,280,281],{},"5",[212,283,284],{},"株価データの取得",[212,286,287],{},"最初に stooq を試した",[212,289,290],{},"ボット検証でブロック",[212,292,293],{},"Yahoo の API に切り替えて解決",[188,295,296,299,302,305,308],{},[212,297,298],{},"6",[212,300,301],{},"FRED の取得",[212,303,304],{},"User-Agent ヘッダを付けて取得",[212,306,307],{},"タイムアウト",[212,309,310],{},"FRED はヘッダ無し、株価系はヘッダ有りに分岐させた",[188,312,313,316,319,322,325],{},[212,314,315],{},"7",[212,317,318],{},"FRED の祝日0値",[212,320,321],{},"テストが1件落ちた原因を追わせた",[212,323,324],{},"除外で解決",[212,326,327],{},"スプレッド0はありえない値。0値8点を欠損として除外し787点で再生成",[188,329,330,333,336,339,342],{},[212,331,332],{},"8",[212,334,335],{},"依存更新後のテスト13件失敗",[212,337,338],{},"更新前の状態で全38件の合格を確認",[212,340,341],{},"原因確定",[212,343,344],{},"nuxt 4.5 で $fetch のスタブが死んでいた。mockNuxtImport へ置換して横展開",[188,346,347,350,353,356,359],{},[212,348,349],{},"9",[212,351,352],{},"built 表示のビルド",[212,354,355],{},"成果物 dist/_worker.js の実体を確認",[212,357,358],{},"実は失敗",[212,360,361],{},"中身が空だった。shared/ への相対 import が原因で、deploy.ps1 の誤報告は issue 化",[188,363,364,367,370,373,376],{},[212,365,366],{},"10",[212,368,369],{},"Connection refused",[212,371,372],{},"プロキシ、hosts、ファイアウォールを順に調査",[212,374,375],{},"全部白",[212,377,378],{},"PCの外で、単一 anycast IP 宛の新規TCP接続が10〜30分の波で落ちていた",[19,380,381],{"id":381},"今日の学び",[47,383,384,387,390,393,396],{},[50,385,386],{},"仕分けの判定は、実物（原図や試作）を並べて見た瞬間に覆る。エージェントの報告だけで完了にしない",[50,388,389],{},"「原図に忠実」が原則でも、原本側が間違っていることがある。金額から構成比を検算する仕込みが誤植を拾った",[50,391,392],{},"エラー文の「a firewall or proxy may be blocking it」を真に受けてPCの中だけ探すと迷子になる。定番容疑者を先に白にできたから、外側を疑う根拠が立った",[50,394,395],{},"実需の実在とバブルは両立する。問われるのは、価格が実需の何年先まで前借りしているか",[50,397,398],{},"built の表示を信じず、成果物の実体まで見る。「復旧した」と「復旧が維持できている」も別物",[19,400,401],{"id":401},"明日やること",[47,403,406,416],{"className":404},[405],"contains-task-list",[50,407,410,415],{"className":408},[409],"task-list-item",[411,412],"input",{"disabled":413,"type":414},true,"checkbox"," 法人税の表経路に残る約20枚の判定を、原図と並べて確かめる",[50,417,419,421],{"className":418},[409],[411,420],{"disabled":413,"type":414}," 図から本文へ流出したテキストの取りこぼし（127図、約1,788行）に着手する",[15,423,424],{},"仕込んだモニターが最初に映したハイイールドスプレッドは、8月13日値で2.71%だった。\n市場は楽観の極みにいて、法人税の表経路には図が20枚ほど残っている。\n明日も見るところから始める。",[19,426,427],{"id":427},"関連記事",[47,429,430,434,438,442],{},[50,431,432],{},[69,433,72],{"href":71},[50,435,436],{},[69,437,102],{"href":101},[50,439,440],{},[69,441,134],{"href":133},[50,443,444],{},[69,445,172],{"href":171},{"title":447,"searchDepth":448,"depth":448,"links":449},"",2,[450,451,458,459,460,461],{"id":21,"depth":448,"text":21},{"id":31,"depth":448,"text":31,"children":452},[453,455,456,457],{"id":35,"depth":454,"text":36},3,{"id":78,"depth":454,"text":79},{"id":107,"depth":454,"text":108},{"id":139,"depth":454,"text":140},{"id":180,"depth":448,"text":180},{"id":381,"depth":448,"text":381},{"id":401,"depth":448,"text":401},{"id":427,"depth":448,"text":427},"diary",null,"税大講本の図のSVG化を所得税から相続税まで4科目並行で進め、台帳のSVG化済みは200枚を超えた。合間にClaude CodeのConnection refused調査、投資メルマガ2年分の検証からのAIクレジット・モニター実装、OGP修理とDependabot 28件の解消が並んだ日曜日の記録。","md",{},"/2026-08-16-diary","daily-log",false,"2026-08-16T00:00:00.000Z",{"title":5,"description":464},"make-diary","2026-08/2026-08-16/diary-2026-08-16",[475,476,477,478,479],"日記","SVG","投資","OGP","トラブルシューティング","xHBE26EKNP_vsbNyfzRrpGRn1LkliPE82cC3StYtX3M",[],[483,487,491,495,499],{"title":484,"path":485,"publishedAt":486},"2026年8月15日の開発日記 - 60型を1枚に乗せ切り、父のMacをGitHubにつないだ","/2026-08-15-diary","2026-08-15T00:00:00.000Z",{"title":488,"path":489,"publishedAt":490},"2026年8月10日の開発日記 - 図解カタログ27型をグリッドに載せ直した","/2026-08-10-diary","2026-08-10T00:00:00.000Z",{"title":492,"path":493,"publishedAt":494},"決算コメントの「3年未満で回収」を原文で検算し、クラウド設備投資チャートと純粋関数に落とすまで","/cloud-capex-chart-and-pure-functions","2026-07-31T00:00:00.000Z",{"title":496,"path":497,"publishedAt":498},"2026年7月1日の開発日記 - つくみ通しスライド、MU財務チャート、SVGスキル拡張","/2026-07-01-diary","2026-07-01T00:00:00.000Z",{"title":500,"path":501,"publishedAt":502},"2026年6月30日の開発日記 - つくみセミナードラフトとSVG 17枚スライド","/2026-06-30-diary","2026-06-30T00:00:00.000Z","https://log.eurekapu.com/favicon.svg",1787053849492]