2026年9月20日の開発日記 - 数字が合っても、正しいとは限らなかった
2026年9月20日の開発日記
連結精算表シミュレーターは、持分比率を0%から100%まで101×101通り流しても、貸借が1円も狂わなかった。 テストも493件すべて通っていた。 それでも金額は間違っていた。
同じ日の朝、まったく別の作業でも数字はきれいに合っている。 建物の図面から専有面積を積み上げたら、そこに書かれた容積対象床面積とぴたりと一致した。 その一致に納得した数時間後、出典を探すつもりで図面の赤字を拡大したら、寸法の読み違いが2つ残っていた。
数字が合うことと、正しいことは別だった。 それを1日のうちに、別々の題材で2回踏んだ。
今日のタイムライン

今日やったこと
1. 連結会計シミュレーターの不具合を16件直した
午前は、シミュレーターが使っている設例の正解値がどこから来たのかを確かめた。
蔵書DB(398冊で50,157チャンク)を本文全文で検索させ、データセット19本の出どころが会計実務の専門書2冊の使い分けだったと確定させた。
午後は計画書の指摘 F1〜F11 を関数実行で1件ずつ再現させ、11件とも再現した。
Codex のレビューは8件出てきた。重要度は鵜呑みにせず付け直させたうえで決裁を3件に絞り、その過程で F12 を追加した。
it.fails の回帰テストを17件先に置いてから、15時51分から17時05分にかけて fix コミット14本で16件を潰した。
主な成果:
- F1〜F14 と F16、F17 の16件を修正。テストは対象4ファイルで772件成功、失敗0件
- ログを出すだけだったテストを assert に改め、照合を4事例から8事例へ広げた
- F15 と F18 の2件は未了として残した
詳細: 連結会計シミュレーターの不具合を16件直した日:貸借一致とテスト全件通過では見つからない誤り
2. 図面の数値を建築基準法で全部検算した
都内の共同住宅の企画図面を写真2枚で渡して、なぜこの建物が5階になるのかを条文から説明させた。 専有面積を積み上げた282.38㎡が図面の容積対象床面積と一致し、建築面積68.10㎡は基準階の床面積(専有60.49㎡+共用7.61㎡)と同じだった。 1階で欠ける20.07㎡は、上階の住戸1戸分とぴったり同じ寸法だった。 検証記録に図解を2枚描かせて埋め込み、計画書のレビュー規約どおり Codex にかけたところ8件の指摘が出た。 条文と区の公式資料で1件ずつ確かめてから全件を直し、あわせて既存の宅建テキストの記述も訂正した。
主な成果:
- 計画概要の7項目が条文と計算で説明できる状態になった
- 北側斜線の対象を住居系4地域から田園住居地域を含む5地域へ訂正し、日影規制に法56条の2第4項を補った
- 出典探しの途中で図面の寸法の読み違いが2つ見つかった
詳細: 図面の数値を建築基準法で全部検算したら、専有面積の合計が容積対象床面積と一致した
3. 分子モーターの動画を16本集めて記事2本にした
Xで流れてきた3本のポストが、どれも同じ1つの装置を指していた。 関連する動画を16本集め、oEmbed でタイトルとチャンネル名を取得させて1本ずつ実在を確かめた。 精密CGアニメーション、顕微鏡の実写、研究者本人の講義という3系統に分け、「CGだけ見ると熱ゆらぎを見落とす」を軸にして束ねた。 あとから「キネシンが小胞を背負って微小管を歩く場面」がどの動画のどこかを実際に開いて確かめさせ、該当シーンが約1分14秒だと特定した。 そこから「何が観測で何が解釈か」を扱う節が1つ増え、熱力学を厚く書いた2本目は別記事に分けた。
主な成果:
- 動画16本を3系統に整理した記事を公開(ATP合成酵素が回る動画を16本集めた。CGと実写の両方を見ないと熱ゆらぎを見落とす)
- 熱力学と酸素の役割を扱う2本目を公開(ATPはどう作られ、どう運ばれるか。熱ゆらぎを味方にする仕組みと、酸素が燃料ではない理由)
- SVG図解の書き出しはヒアドキュメントがシェルに弾かれ、ファイル書き込みツールに切り替えた
詳細: 分子モーターの動画16本を集めて記事2本にした日。実在確認とSVG図解、キネシンの場面特定
4. IPから住所までの距離と、SNSアカウント50個の原価を調べた
朝は、匿名の投稿サイトの運営者がなぜ書き込み元のIPを持っているのかを整理した。 そこから住所に届くまでには3段あり、正規に通すと2段階の法的手続きで通常3〜7か月、費用は30〜60万円かかる。 話題になっていた2000円という金額は、3段のうち1段目だけを指す裁判外の任意開示だった。 昼は、Android端末を50台並べてSNSアカウントを回す構想の原価を詰めた。 律速は端末でもAIでもなく電話番号とIPアドレスで、結論は「50という規模で成立する収益モデルが存在しない」になった。
主な成果:
- 投稿者のIPが運営に見えている理由と、そこから住所に届くまでの距離を公開
- SNSアカウント50個を24時間動かす構想を原価計算する。詰まるのは技術ではなく回線の本人確認だったを公開
- 裏取りの途中でXの収益分配が2026年9月7日に終了し、9月8日から新制度へ切り替わっていたと判明し、記事の柱を組み直した
- 既存の英語記事2本の日本語版も作った(元の英語ファイルは残した)
詳細: IPから住所に届くまでの距離と、SNSアカウント50個の原価計算を同じ日に書いた
5. 片方の機体にしかない計画メモを探し出した
表計算ソフトの基礎講座を動画にする計画メモが「どこかにあるはず」という状態から探し始めた。 リポジトリ内の検索、Googleカレンダー、Googleタスクを順に当たらせたところ、カレンダーは1ページ目の100件で空振りし、続きのページの9月18日の予定に手がかりが出た。 計画メモの実体はMac側にあり、Windowsの作業ツリーには無かった。 Macのセッションは2回とも応答がなかったので、fetch で origin との差だけを見せて止めさせ、そこから指示して pull した。 取り込んだあとに台本と制作メモを読ませ、動画1本ごとの音声スクリプトが1本も無いと分かった。
主な成果:
- コミット db3a8529(11ファイルで709行の追加)を fast-forward で取り込み、手元の未コミットの変更2件はそのまま残した
- 音声を埋め込んだ40MBのプレビューHTMLは開かせず、台本14KBと制作メモ5KBだけを読ませて棚卸しを終えた
- 音声スクリプトの新規作成を、翌9月21日期日のGoogleタスクとして積み残した
詳細: 2台運用で片方の機体にしかない計画メモを探し出す。カレンダー捜索から git pull まで
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | 前日分の日記生成 | 9月19日分の日記チェーンを回した | 記事3本と統計チェーンまで完走 | 毎朝の定常運用はここまで手を離せるようになった |
| 2 | 分子モーターの動画 | 動画16本を集め、SVG図解をヒアドキュメントで流そうとした | シェルに弾かれ、ファイル書き込みツールへ切り替え。縦書きテキストのはみ出しを実測で確認し、キネシンの場面を約1分14秒と特定して節を1つ足した | 記憶で答えずに動画を開くと、記事に足りない節が見つかる |
| 3 | 図面の建築規制 | 写真2枚から計画概要7項目を検算させ、Codex でレビューした | 専有面積の合計282.38㎡が容積対象床面積と一致。指摘8件は条文と区の公式資料で全件確認して修正。出典探しで画像を拡大したら寸法の読み違いが2つ出た | 数字が合った瞬間がいちばん危ない。読み違いを探す動機が消える |
| 4 | IPから住所まで | 運営者がIPを持つ理由と住所に届くまでの3段を調べさせ、公開記事にした | Chromeで先頭から末尾まで描画を確認し、外部リンク4本が別タブ設定であることまで見た。英語記事2本の日本語版も作った | 話題の2000円は、3段のうち1段目だけの金額だった |
| 5 | 設例の出どころ | 蔵書DBを全文検索させ、続けて元ネタの表計算をDropboxから探させた | 出典は会計実務の専門書2冊の使い分けと判明。Dropbox走査は4,766件が開けておらず無効で、最後に「まだ作っていない」ことを思い出した | クラウドに実体があるファイルはPythonから開けない。走査の0件を、存在しない証拠にしない |
| 6 | devサーバーの停止 | バックグラウンドで動かしていたdevサーバーが落ちた | システムのメモリ逼迫による停止で、コマンド自体は失敗していなかった | 自分の実装の不具合と誤診しかけた |
| 7 | SNSアカウント50個 | 端末50台構想の律速とSIMの壁、収益モデルを詰めて裏を取らせた | 律速は電話番号とIPアドレス。結論は「50という規模で成立する収益モデルが存在しない」。裏取りでXの収益分配が2026年9月7日終了、9月8日新制度と判明して記事の柱を組み直した | 調べている最中に制度が変わっていることがある |
| 8 | 連結シミュレーターのDD | 計画書の指摘F1〜F11を関数実行で再現させ、it.failsの回帰テストを17件先に置いてから潰させた | 11件とも再現。Codexの8件は自分で判定を付け直して決裁3件に絞り、F12を追加。fixコミット14本で16件を修正し、772件成功、失敗0件。F15とF18は未了 | ログを出すだけのテストは、書いていないのとほぼ同じだった |
| 9 | 計画メモの所在 | リポジトリ内、カレンダー、タスクの3経路で探させ、Macへ疎通確認した | カレンダー1ページ目の100件は空振り、続きのページの9月18日の予定にパスがあった。Macは2回とも応答なし。fetchで差を見せて止めさせ、指示してpullした | 「無い」と言われたら、ローカルの作業ツリーではなくoriginを見る |
今日の学び
- 貸借一致は正しさの証明にならない。101×101通りで不一致が0件でも、損益計算書の取込範囲が間違っていれば金額は狂う
- ログを出すだけのテストは、書いていないのとほぼ同じだった。assert に変えて照合を4事例から8事例へ広げた瞬間に、新しい不具合が1件出てきた
- 数字が合った瞬間がいちばん危ない。合ったことで、読み違いを探す動機が消える
- レビューの指摘は重要度も含めて自分で判定し直す。計画書レビューの8件は全部妥当だったが、コミット時に出た1件は条文を読めば事実誤認だった
- 裏取りは執筆の前工程ではなく、記事の骨組みを決め直す工程だった。9月7日と9月8日を挟んでいたと気づかなければ、古い前提のまま公開していた
- 走査結果の0件は、読めなかった件数を数えてからでないと意味を持たない
明日やること
- 連結シミュレーターに残した F15 と F18 の2件を潰す
- 動画1本ごとの音声スクリプトを新規に起こす(Googleタスクに9月21日期日で登録済み)
関連記事
- 連結会計シミュレーターの不具合を16件直した日:貸借一致とテスト全件通過では見つからない誤り
- 図面の数値を建築基準法で全部検算したら、専有面積の合計が容積対象床面積と一致した
- 分子モーターの動画16本を集めて記事2本にした日。実在確認とSVG図解、キネシンの場面特定
- IPから住所に届くまでの距離と、SNSアカウント50個の原価計算を同じ日に書いた
- 2台運用で片方の機体にしかない計画メモを探し出す。カレンダー捜索から git pull まで
今日公開した記事: