別表四・五の解説コンテンツをTurso DBから一括生成しCodexで全章レビューした記録
法人税の参考書を解説するコンテンツの骨格を1日で立ち上げた。Turso DBに格納済みの280チャンクから10章分のマークダウンドラフトを4つのサブエージェントで並列に書き出し、Codex(GPT-5.4)に全章を通してレビューさせ、致命的な指摘を片っ端から潰した。SVG図解も別表四・五の連動構造を描き切った。朝7時から17時過ぎまで、17セッションを重ねた。
SVG図解の作成: 別表の構造を目に見える形にする
別表四と別表五(一)は数字が行き来する。この「行き来」を文章で説明しても読者の目が泳ぐ。だからSVGで描いた。
別表五(一) + 株主資本等変動計算書の連動図
繰越損益金120,000が別表五(一)から株主資本等変動計算書にどう流れるかを1枚の図にまとめた。上下レイアウトを入れ替えて、株変を上に配置したことで視線の流れが自然になった。最初は別表五(一)を上に置いていたが、「変動の結果が別表に反映される」という因果関係を考えると、株変が先に来る方が読者の頭に入る。
B/S + 別表五(一)の連結図
未払法人税等2,500(B/S側)と納税充当金2,500(別表五(一)側)を矢印で接続した。会計と税務で呼び名が変わるだけで同じ数字を指していることが、図にした瞬間に伝わる。資本金等の額の図では資本剰余金と自己株式も入れて、Ⅱ区分の全体像を描いた。
別表四のSVG: 矢印のZ軸問題との格闘
損益計算書 → 別表四 → 別表一の流れを1枚のSVGに収めた。ここで矢印がテーブルの背景色に隠れる問題にぶつかった。SVGの描画順序は後に書いたものが前面に来る。矢印の<path>要素をテーブルの<rect>より前に書いていたのが原因だった。
<!-- NG: 矢印がテーブル背景の下に隠れる -->
<path d="M100,50 L100,120 L200,120" stroke="#E91E63" />
<rect x="150" y="100" width="200" height="40" fill="#F5F5F5" />
<!-- OK: 矢印をSVG末尾に移動して最前面に -->
<rect x="150" y="100" width="200" height="40" fill="#F5F5F5" />
<path d="M100,50 L100,120 L200,120" stroke="#E91E63" />
セルからセルへの直接接続にはL字型の矢印を使った。また、外枠全体をマゼンタで囲んでいた箇所を、値セルだけに絞ってマゼンタ枠を付ける修正も入れた。枠が大きすぎると「どこを見ればいいか」がぼやける。
Turso DBからのドラフト一括生成
280チャンク → 10章のマークダウン
Embedded Replicaから法人税の参考書データ280チャンクを読み取り、Ch0からCh9までの10章構成でドラフトを生成した。4つのサブエージェントを並列に走らせ、各エージェントが2〜3章ずつ担当した。
各章のテーマは以下の通り。
| 章 | テーマ | 想定読者レベル |
|---|---|---|
| Ch0 | 利益と所得のズレ | 簿記3級 |
| Ch1 | 益金・損金の概念 | 簿記3級 |
| Ch2 | 留保と社外流出 | 簿記2級 |
| Ch3 | 申告書の作成手順 | 簿記2級 |
| Ch4 | 地方税の仕組み | 簿記2級 |
| Ch5 | タックスプルーフ | 実務 |
| Ch6 | 中間納付の処理 | 実務 |
| Ch7 | 欠損金の繰越・繰戻 | 実務 |
| Ch8 | グループ通算制度 | 実務 |
| Ch9 | 包括利益と税効果 | 実務 |
簿記3級レベルの読者を起点にして、章が進むにつれて実務寄りに深まる構成にした。「法人税は難しい」という先入観を持つ読者が、Ch0の「利益と所得は違う」から入れるように意識した。
Codex(GPT-5.4)による全章レビューと修正
10章すべてをCodexに投げてレビューさせた。「瑣末な点へのクソリプはしないで。致命的な点だけ指摘して」と指示して、本当に直すべきところだけを炙り出した。
指摘と修正の一覧
| 章 | 指摘内容 | 修正対応 |
|---|---|---|
| Ch0 | P/Lの当期純利益から別表四の所得金額への橋渡しが飛んでいる | 数値例を追加して、加算・減算の具体的な金額でつないだ |
| Ch1 | 混合費用(交際費の損金不算入)の説明で限度額が抜けている | 800万円の定額控除限度額を明示 |
| Ch2-3 | 加算・減算の方向性が一部逆 | 留保の増減と別表五(一)の動きを再確認して修正 |
| Ch4 | 延滞税の前提と仕訳処理が噛み合っていない | 発生時期と損金不算入の関係を整理し直した |
| Ch8 | 100%子会社からの受取配当の源泉所得税処理が曖昧 | 源泉所得税の別表四加算・別表一控除の流れを明示 |
| Ch9 | タックスプルーフの符号が逆(加算を減算で書いていた) | 実効税率差異分析の正負を全面見直し |
Ch0の修正が最も手間がかかった。「利益≠所得」というテーマなのに、P/Lの数字と別表四の数字が空中でつながっていた。税引前当期純利益1,000,000から出発して、交際費の損金不算入+200,000、受取配当の益金不算入△100,000を経て所得金額1,100,000に至る流れを、数値入りで書き直した。
Ch9のタックスプルーフは符号ミスが致命的だった。実効税率30.62%と法定実効税率30.00%の差異0.62%を分解する過程で、交際費の加算効果をマイナスで書いていた。Codexがこれを拾ってくれなければ、読者が混乱するところだった。
プレースホルダーSVG生成
22個の未作成SVGをプレースホルダーとして生成した。中に「この図は テーマ を説明するSVGです」という説明テキストを埋め込んである。VSCodeのプレビューで壊れた画像アイコンが並ぶ状態を解消して、ドラフト全体の見通しを良くした。
プレースホルダーでも「何を描く予定か」がテキストで読めると、次にSVGを本番化する際の仕様書代わりになる。
Phase 1: ドラフトページのカテゴリ機能追加
ドラフトが10章に増えたことで、一覧ページでの管理が必要になった。server/api/drafts/にcategoryパラメータ対応を追加し、drafts.vueにカテゴリ切替タブのUIを実装した。
Phase 2として「Vueスライド形式のテキスト教材化」を計画しているが、これは翌日に持ち越した。1日の中でドラフト生成とレビュー修正に集中し、UI側は最小限に留めた判断は正しかったと思う。
試行錯誤の記録
| # | 問題 | 試したこと | 結果 |
|---|---|---|---|
| 1 | SVG矢印がテーブル背景に隠れる | z-indexを試す → SVGにz-indexは効かない | 描画順序(SVG末尾に移動)で解決 |
| 2 | L字型矢印の座標計算 | セルの中心座標を手計算 | viewBoxの座標系で計算し直して解決 |
| 3 | マゼンタ枠が広すぎて焦点がぼやける | テーブル外枠を囲む → 値セルだけを囲む | 値セル限定で視線が集まるように |
| 4 | 4並列エージェントの章割り当て | 均等に2.5章ずつ → 内容量で3:3:2:2に変更 | 内容量ベースの方が完了時間が揃った |
| 5 | Codex指摘のCh9符号ミス | 手元で再計算して確認 | 交際費の加算効果が逆符号だった |
今日の学び
- SVGに
z-indexは存在しない。描画順序がそのままZ軸になる。CSSの感覚で触ると嵌る - サブエージェント並列生成は、章の「文字量」ではなく「内容の複雑さ」で割り当てた方が完了時間が揃う。グループ通算(Ch8)は他の章の1.5倍の時間がかかった
- Codexレビューの「致命的だけ指摘して」という制約が効く。10章通しで6件の致命的指摘に絞られ、修正のスループットが上がった
- プレースホルダーSVGは「壊れた画像アイコンの解消」だけでなく「将来の作図仕様書」として二重に機能する