[{"data":1,"prerenderedAt":684},["ShallowReactive",2],{"content-/2026-09-13-diary":3,"all-pages-for-dir":664,"related-/2026-09-13-diary":665,"og-image-/2026-09-13-diary":683},{"id":4,"title":5,"body":6,"category":645,"concepts":646,"description":647,"extension":648,"meta":649,"navigation":584,"ogImage":646,"path":650,"project_name":651,"published":652,"publishedAt":653,"seo":654,"source":655,"stem":656,"tags":657,"todo":646,"unpublished":652,"updatedAt":646,"__hash__":663},"pages/2026-09/2026-09-13/diary-2026-09-13.md","2026年9月13日の開発日記 - 「使えない」と思っていたものが、だいたい使えた日",{"type":7,"value":8,"toc":627},"minimark",[9,14,18,21,25,32,35,38,43,46,49,55,76,86,89,93,96,99,103,117,125,127,131,134,137,140,144,158,166,168,172,175,178,182,193,201,203,207,210,213,216,220,231,239,241,245,248,251,254,258,269,277,279,282,540,542,545,568,570,573,593,595,598],[10,11,13],"h1",{"id":12},"_2026年9月13日の開発日記","2026年9月13日の開発日記",[15,16,17],"p",{},"朝は金融の仕組みを図で説明する記事から入り、そのまま年金サイトを本番に出して検索エンジンに登録するところまで進めた。\n午後はクラウド会計のAPIをひたすら叩いて、どこに壁があるのかを実測している。",[15,19,20],{},"この日いちばん繰り返したのは「使えないと思っていたが、探し方を間違えていただけだった」という発見だった。\nAPIの認証も、一括削除も、次年度繰越も、ないと思っていたものが全部どこかにあった。",[22,23,24],"h2",{"id":24},"今日のタイムライン",[15,26,27],{},[28,29],"img",{"alt":30,"src":31},"タイムライン","/2026-09/2026-09-13/timeline-2026-09-13.png",[15,33,34],{},"14セッション、5プロジェクト。作業時間の内訳は、教材・API検証まわりが最も長く、次いで日記チェーン、年金サイト、Chrome拡張、書籍ナレッジベースの順になった。",[22,36,37],{"id":37},"今日やったこと",[39,40,42],"h3",{"id":41},"_1-maのレバレッジとショートスクイーズを図で説明する","1. M&Aのレバレッジとショートスクイーズを図で説明する",[15,44,45],{},"朝いちばんに、M&Aで借入を使うと株主のIRRが上がる仕組みを記事にした。\n続けて、外部の解説記事を題材にショートスクイーズをSVG6枚で読み直している。",[15,47,48],{},"図は一度で通らなかった。空売りは先に売って後で買い戻す取引なので、時間の流れが見える形のほうがいい。\nそう考えて図1をシーケンス図に差し替えさせ、さらに「1万株を貸す」だけでは担保300万円が何に対する担保なのか読めないので、単価と総額を入れさせた。",[15,50,51],{},[52,53,54],"strong",{},"主な成果:",[56,57,58,67,73],"ul",{},[59,60,61,66],"li",{},[62,63,65],"a",{"href":64},"/ma-leverage-equity-irr","M&Aの借入で株主のIRRが12.5%から22%に上がる仕組み","を公開",[59,68,69,66],{},[62,70,72],{"href":71},"/short-squeeze-margin-mechanism","ショートスクイーズの構造を6枚の図で読む記事",[59,74,75],{},"ある決済系の米国株について、直近決算のビート状況を調べた",[15,77,78,81,82],{},[52,79,80],{},"詳細:"," ",[62,83,85],{"href":84},"/finance-explainer-figures","図1を2回突き返した朝",[87,88],"hr",{},[39,90,92],{"id":91},"_2-年金サイトを本番公開して検索エンジンに載せる","2. 年金サイトを本番公開して検索エンジンに載せる",[15,94,95],{},"論の詰めから公開作業まで、朝のうちに一気通貫させた。",[15,97,98],{},"第3号被保険者の資格を子の有無と数で決める案を投げたところ、骨格は裏が取れるが設計案はサイトの方針と正面から衝突する、という助言が返ってきた。\n骨格を本論に、設計案を補論に振り分ける形で決着させている。\n調べさせた範囲では、1985年の第3号導入に「育児」を理由に挙げた記録は見つからなかったので、暗黙のトントンという読みは仮説として置き直した。",[15,100,101],{},[52,102,54],{},[56,104,105,108,111,114],{},[59,106,107],{},"Cloudflare Pages へデプロイし、独自ドメインを接続",[59,109,110],{},"noindex を解除して公開状態にし、favicon を生成スクリプトつきで追加",[59,112,113],{},"sitemap.xml をサーバールートで生成し、Search Console にプロパティ追加とサイトマップ送信まで完了",[59,115,116],{},"private リポジトリへ push",[15,118,119,81,121],{},[52,120,80],{},[62,122,124],{"href":123},"/pension-site-launch","年金サイトを本番公開し、Search Console に載せるまでの一日",[87,126],{},[39,128,130],{"id":129},"_3-クラウド会計apiの限界を実測する","3. クラウド会計APIの限界を実測する",[15,132,133],{},"「無料プランだとAPIも叩けないのでは」という疑いから始めて、結局その日のうちに401件の仕訳を投入するところまで行った。",[15,135,136],{},"わかったことを順に並べると、認証は普通に通る、無料プランでも読み取りも登録も削除も通る、ただし仕訳は50件で止まる、その50件は会計年度ごとにリセットされる、となる。\nトライアルを始めたら壁を越えたので300件を流したが、171件目で接続が切れた。\n投げ直して401件を失敗ゼロで通したあと、ボトルネックが自分の投げる間隔ではなく相手の応答時間だったと気づいた。",[15,138,139],{},"そして最後に結論がひっくり返る。一括削除を内部API経由でやると36秒で、APIを1件ずつ回す22分の約37倍速かった。",[15,141,142],{},[52,143,54],{},[56,145,146,149,152,155],{},[59,147,148],{},"API認証を取得し、事業者・会計年度・勘定科目の準備まで自動化",[59,150,151],{},"403仕訳の全件投入と、繰越4回による5年度分の期首残高の接続",[59,153,154],{},"次年度繰越は公開APIになく内部APIにあることを確認し、ドキュメントへ反映",[59,156,157],{},"税抜経理でも入力は税込で内税分離されるため、投入の手間は税込経理と変わらないことを1円単位で検証",[15,159,160,81,162],{},[52,161,80],{},[62,163,165],{"href":164},"/cloud-accounting-api-limits","クラウド会計APIの限界を1つずつ測った日",[87,167],{},[39,169,171],{"id":170},"_4-自炊した入門書を節単位に組み直す","4. 自炊した入門書を節単位に組み直す",[15,173,174],{},"途中で止まっていた取り込み処理の続きを片付けた。\nチャンクがページ単位の234個から節単位の109個になり、図218枚は全て残った。",[15,176,177],{},"途中で「この本が蔵書一覧に出てこない」と思って質問したが、実際には出ていた。399冊中118番目で、一覧が登録日の新しい順に並ぶためだった。\n3ヶ月前にも同じ本を別経路で取り込んでいて、その登録日が残っていたのが原因になる。\n一覧の並びを更新日順に変える案と、この本だけ登録日を書き換える案を示され、前者を選んだ。",[15,179,180],{},[52,181,54],{},[56,183,184,187,190],{},[59,185,186],{},"ページ単位234チャンク → 節単位109チャンクへの再構造化と全文検索インデックスの再構築",[59,188,189],{},"隠れていた図92枚が表示されることをブラウザで確認",[59,191,192],{},"蔵書一覧の並びを更新日順に変更",[15,194,195,81,197],{},[52,196,80],{},[62,198,200],{"href":199},"/book-chunking-by-section","自炊した入門書を節単位に組み直す（234チャンクを109に）",[87,202],{},[39,204,206],{"id":205},"_5-chrome拡張に株主資本等変動計算書のタブを足す","5. Chrome拡張に株主資本等変動計算書のタブを足す",[15,208,209],{},"朝はヘッダー導線に仕訳帳ボタンを足すだけの小さな作業から入った。\n時間を食ったのは実装ではなく、拡張をリロードしても最初に開いていたタブに古いスクリプトが残る現象の切り分けだった。",[15,211,212],{},"そのあと年次推移表で株主資本等変動計算書を作れるかを調べ、決算書側が手入力だと知って「なぜ自動で作られていないのか」を考えた。\n仕訳レベルでどこまでを補助科目で持つかによって、自動生成できたりできなかったりする、という理解に行き着いている。",[15,214,215],{},"いったん「今日はやめて明日にしよう」と決めて翌日のタスクに登録したが、直後に気が変わってその場で実装に入った。",[15,217,218],{},[52,219,54],{},[56,221,222,225,228],{},[59,223,224],{},"計画書を書き、レビューを2回通し、決裁フォームで判断4件に回答",[59,226,227],{},"差額法で組んだうえ、当期の仕訳から事由を確定させ、残差ゼロを実機で確認",[59,229,230],{},"過年度対応と、会計ソフト側の決算書への書き戻しまで実装",[15,232,233,81,235],{},[52,234,80],{},[62,236,238],{"href":237},"/equity-statement-extension","株主資本等変動計算書が手入力なのはなぜか",[87,240],{},[39,242,244],{"id":243},"_6-教材づくりを再開する判断と消費税対応の計画書","6. 教材づくりを再開する判断と、消費税対応の計画書",[15,246,247],{},"止まっていた教材づくりを再開しようとして、まず「後回しにした理由を書いた文書」を探させた。\nそんな文書はどこにもなく、作業は4月下旬を最後に、決定の記録がないまま止まっていた。",[15,249,250],{},"代わりに見つかった3本の記録のうち1本が今回の方向性と食い違って見えたが、その正体は自分で思い出した。\nその計画は公開チャネルの話しかしておらず、何を作るかとは無関係だった。",[15,252,253],{},"消費税対応の計画書は、同じ機で空いていた別のセッションへ投げて書かせた。\n一度「向こうが止まっている」という判断で差し戻しが飛んだが、これは誤読で、見ていたのが反映前のタイムスタンプだった。",[15,255,256],{},[52,257,54],{},[56,259,260,263,266],{},[59,261,262],{},"教材を作る判断と、公開を自社側のチャネルに寄せる判断を記録",[59,264,265],{},"音声合成の手段を、既にボイスクローンを作ってあるツールへ訂正",[59,267,268],{},"消費税対応の計画書をレビュー4巡で「実装着手可」まで持ち上げ、決裁フォームを表示",[15,270,271,81,273],{},[52,272,80],{},[62,274,276],{"href":275},"/course-restart-and-tax-plan","後回しにした理由を探したら、そんな記録はどこにもなかった",[87,278],{},[22,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,328,343,360,376,392,408,424,440,456,473,489,506,523],"tbody",{},[289,311,312,316,319,322,325],{},[313,314,315],"td",{},"1",[313,317,318],{},"空売りの図解",[313,320,321],{},"図1を普通の構成図で描かせた",[313,323,324],{},"差し戻し",[313,326,327],{},"時間の流れが要る取引は、シーケンス図のほうが読める",[289,329,330,333,335,338,340],{},[313,331,332],{},"2",[313,334,318],{},[313,336,337],{},"「1万株を貸す」とだけ書いた図",[313,339,324],{},[313,341,342],{},"単価と総額がないと、担保300万円が何の3割なのか読めない",[289,344,345,348,351,354,357],{},[313,346,347],{},"3",[313,349,350],{},"会計API",[313,352,353],{},"仕訳の一括削除APIを探した",[313,355,356],{},"存在せず",[313,358,359],{},"1件ずつのDELETEのみ、3リクエスト/秒の制限つき",[289,361,362,365,367,370,373],{},[313,363,364],{},"4",[313,366,350],{},[313,368,369],{},"無料プランでAPIが叩けるか試した",[313,371,372],{},"全部通った",[313,374,375],{},"CSVエクスポートの制限とAPIの可否は連動していない",[289,377,378,381,383,386,389],{},[313,379,380],{},"5",[313,382,350],{},[313,384,385],{},"仕訳を大量に流して上限を探った",[313,387,388],{},"50件で停止",[313,390,391],{},"入口はザルでも量にはゲートがある。しかも年度ごとにリセット",[289,393,394,397,399,402,405],{},[313,395,396],{},"6",[313,398,350],{},[313,400,401],{},"トライアル開始後に300件投入",[313,403,404],{},"171件目で接続断",[313,406,407],{},"プラン制限ではなくネットワーク側。170件は正常に入っていた",[289,409,410,413,415,418,421],{},[313,411,412],{},"7",[313,414,350],{},[313,416,417],{},"投げ直して401件を一気に投入",[313,419,420],{},"失敗0・リトライ0",[313,422,423],{},"ボトルネックは投げる間隔ではなく相手の応答時間だった",[289,425,426,429,431,434,437],{},[313,427,428],{},"8",[313,430,350],{},[313,432,433],{},"次年度繰越を公開APIに探した",[313,435,436],{},"全17エンドポイントに無し",[313,438,439],{},"内部APIにはあった。ドキュメントも既に手元にあった",[289,441,442,445,447,450,453],{},[313,443,444],{},"9",[313,446,350],{},[313,448,449],{},"一括削除を内部API経由でやった",[313,451,452],{},"36秒",[313,454,455],{},"APIを1件ずつ回す22分に対して約37倍速い",[289,457,458,461,464,467,470],{},[313,459,460],{},"10",[313,462,463],{},"年金サイト",[313,465,466],{},"noindex の設定を入れた",[313,468,469],{},"meta が出ない",[313,471,472],{},"設定を読んで meta robots として出力する実装が抜けていた",[289,474,475,478,480,483,486],{},[313,476,477],{},"11",[313,479,463],{},[313,481,482],{},"本文を画面中央に寄せようとした",[313,484,485],{},"中央に来ない",[313,487,488],{},"本文と目次をまとめて中央寄せしていたのが原因",[289,490,491,494,497,500,503],{},[313,492,493],{},"12",[313,495,496],{},"蔵書DB",[313,498,499],{},"本が一覧に出ないと思って質問した",[313,501,502],{},"出ていた",[313,504,505],{},"登録日の新しい順に並ぶ仕様と、再取り込みで登録日が更新されない挙動",[289,507,508,511,514,517,520],{},[313,509,510],{},"13",[313,512,513],{},"Chrome拡張",[313,515,516],{},"拡張をリロードして動作確認した",[313,518,519],{},"古い挙動のまま",[313,521,522],{},"最初に開いていたタブに古いスクリプトが残っていた",[289,524,525,528,531,534,537],{},[313,526,527],{},"14",[313,529,530],{},"計画書の委譲",[313,532,533],{},"別セッションが止まったという判断で差し戻しが飛んだ",[313,535,536],{},"誤読",[313,538,539],{},"向こうは既に反映済みで、見ていたのは反映前のタイムスタンプだった",[87,541],{},[22,543,544],{"id":544},"今日の学び",[56,546,547,550,553,556,559,562,565],{},[59,548,549],{},"「使えない」と思っているものは、たいてい使えないのではなく探し方を間違えている。認証も、一括削除も、次年度繰越も、この日は全部どこかにあった",[59,551,552],{},"上限は「プラン」だけで決まらない。「プラン × 会計年度」のように、二軸で効くことがある",[59,554,555],{},"画面をポチポチする前に、内部APIのドキュメントが手元にないかを探す。公開APIに無いことは、実行手段が無いことを意味しない",[59,557,558],{},"遅い原因を自分の投げ方に求める前に、相手の応答時間を測る",[59,560,561],{},"チャネルの判断と、何を作るかの判断は別物。1本の計画書に書いた原則を、無関係な判断に流用しない",[59,563,564],{},"設定を入れただけでは出力されない。meta タグのような「出ているはずのもの」は、実物のDOMで確かめる",[59,566,567],{},"並列で動いているセッションの進捗は、タイムスタンプだけで判断すると誤読する",[87,569],{},[22,571,572],{"id":572},"明日やること",[56,574,577,587],{"className":575},[576],"contains-task-list",[59,578,581,586],{"className":579},[580],"task-list-item",[582,583],"input",{"disabled":584,"type":585},true,"checkbox"," 韓国の品目別輸出（2026年8月分）を確報値に置き換え、同じ日に記事まで作る",[59,588,590,592],{"className":589},[580],[582,591],{"disabled":584,"type":585}," 消費税対応の計画書の決裁結果を受けて、実装フェーズに入る",[87,594],{},[22,596,597],{"id":597},"関連記事",[56,599,600,605,609,614,618,623],{},[59,601,602],{},[62,603,604],{"href":84},"図1を2回突き返した朝。M&Aのレバレッジとショートスクイーズを図で説明する記事を書いた",[59,606,607],{},[62,608,124],{"href":123},[59,610,611],{},[62,612,613],{"href":164},"クラウド会計APIの限界を1つずつ測った日、最後に結論がひっくり返った",[59,615,616],{},[62,617,200],{"href":199},[59,619,620],{},[62,621,622],{"href":237},"株主資本等変動計算書が手入力なのはなぜか、そしてChrome拡張で自動化する",[59,624,625],{},[62,626,276],{"href":275},{"title":628,"searchDepth":629,"depth":629,"links":630},"",2,[631,632,641,642,643,644],{"id":24,"depth":629,"text":24},{"id":37,"depth":629,"text":37,"children":633},[634,636,637,638,639,640],{"id":41,"depth":635,"text":42},3,{"id":91,"depth":635,"text":92},{"id":129,"depth":635,"text":130},{"id":170,"depth":635,"text":171},{"id":205,"depth":635,"text":206},{"id":243,"depth":635,"text":244},{"id":281,"depth":629,"text":281},{"id":544,"depth":629,"text":544},{"id":572,"depth":629,"text":572},{"id":597,"depth":629,"text":597},"diary",null,"年金サイトを本番公開して検索エンジンに載せ、クラウド会計のAPIの上限を401件の実投入で測り、Chrome拡張に株主資本等変動計算書のタブを足した。朝はM&Aのレバレッジとショートスクイーズを図で説明する記事を2本仕上げている。","md",{},"/2026-09-13-diary","daily-log",false,"2026-09-13T00:00:00.000Z",{"title":5,"description":647},"make-diary","2026-09/2026-09-13/diary-2026-09-13",[658,659,513,660,661,662],"日記","クラウド会計API","Cloudflare Pages","SVG図解","書籍ナレッジベース","fq3C9zlDxG_565VBeXzY9xTDp0HBShsg2ZOZlBiVoPM",[],[666,670,671,675,679],{"title":667,"path":668,"publishedAt":669},"2026年9月15日の開発日記 - 「終わっているはず」を確かめて回った日","/2026-09-15-diary","2026-09-15T00:00:00.000Z",{"title":604,"path":84,"publishedAt":653},{"title":672,"path":673,"publishedAt":674},"2026年9月10日の開発日記 - 直したのに画面が応えない日","/2026-09-10-diary","2026-09-10T00:00:00.000Z",{"title":676,"path":677,"publishedAt":678},"2026年9月5日の開発日記 - ひと月遅れで届く開示を追う仕組みと、記事1本ごとに走っていた10万字の連鎖","/2026-09-05-diary","2026-09-05T00:00:00.000Z",{"title":680,"path":681,"publishedAt":682},"2026年9月3日の開発日記 - 止まったセッションを二度拾い直した日","/2026-09-03-diary","2026-09-03T00:00:00.000Z","https://log.eurekapu.com/og/blog/2026-09-13-diary.png?v=2026-09-13T00%3A00%3A00.000Z&title=2026%E5%B9%B49%E6%9C%8813%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20%E3%80%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84%E3%80%8D%E3%81%A8%E6%80%9D%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%82%82%E3%81%AE%E3%81%8C%E3%80%81%E3%81%A0%E3%81%84%E3%81%9F%E3%81%84%E4%BD%BF%E3%81%88%E3%81%9F%E6%97%A5&author=Kei%20Komatsu&sig=e4b3883504d51ef8",1789617616806]