発端
どこかの会計事務所のえらいひとが、ChatGPTでExcel VBAスニペットを書いてちょろっと動かしてみたくらいで、 「これからはAIがソフトを書く時代だからソフト屋は潰れる」 と会計ソフトの営業に向かって豪語していたらしい。
VBAを1個貼っただけでその結論に至る飛躍力がすごい。会計ソフト1本にどれだけの業務ロジックが詰まっているか、少し考えればわかりそうなものだが。
ただ、言われてみると気になる。 実際のところAIだけでどこまで作れるのか。
私は会計事務所で働いていて、複式簿記の知識はある。プログラミングは大学で自然言語処理をやっていたので、もっぱらサーバーサイドだが、Webフレームワークの基礎知識はある。
じゃあ作ってみよう。複式簿記の会計アプリを、コードを1行も自分で書かずに、AIエージェントへの指示だけで。それで「AIがソフトを書く」がどの程度の意味なのか確かめる。
なぜClaude Code
もともとClaude自体はGitHub Copilotで知った。VSCodeでCopilotのモデルをClaudeに切り替えたら、成果物の完成度が明らかに変わった。Keepボタンを押すだけでコーディングが進んでいく。
じゃあKeepすら押さなくてよくなったらどうなるのか。それがClaude Code。
ターミナルで claude と打つとClaude(モデルはOpus)が立ち上がって、ファイルの読み書き、gitの操作、シェルコマンドの実行まで自律的にやってくれるCLIエージェント。
Copilotが「1行ずつ提案→人間が承認」だとすると、Claude Codeは「機能単位で実装→人間が動作確認」。粒度がまるで違う。エディタすら開かない。
この土日で作ったもの
で、土日で作ったのがこれ。
「いいかんじ™家計簿」。Flask + PostgreSQL + Bootstrap 5の個人向け複式簿記アプリケーション。
何ができるか
| 機能 | 内容 |
|---|---|
| 出納帳 | 日付・収支・口座・費目・金額を入力するだけで複式簿記の仕訳を自動生成 |
| 仕訳帳 | 借方・貸方を自由に入力する本格的な仕訳入力。貸借バランスのリアルタイムチェック |
| CSV/OFX/Web取込 | 銀行明細を3つの方法で一括取込。科目自動推定・ドラッグ選択・一括設定 |
| AI証憑仕訳 | 領収書の画像をアップロードするとAIが仕訳案を提案(OpenAI/Gemini/Claude対応) |
| 残高試算表 | 期間バーでドラッグ選択、当期純利益の自動加算で貸借一致チェック |
| 総勘定元帳 | 科目別の取引履歴と残高推移。月区切り・モーダル編集 |
| 損益計算書 | 月次/年次の収入・支出を科目別に内訳表示 |
| 貸借対照表 | 資産・負債・純資産を2カラムで表示。損益振替前は当期純利益を自動加算 |
| 月次比較 | 12ヶ月推移、固定/変動/随時の分類、月末着地予測 |
| 確定申告集計 | 社会保険料・生命保険料・医療費・iDeCo等を税区分ごとに集計。医療費集計CSVエクスポート |
| 医療費管理 | 受診者・病院名・支払額を記録、控除額を自動計算 |
| 月次確定 | 月ごとに帳簿をロック。確定済み残高をキャッシュして表示を高速化 |
| 監査アカウント | 税理士向け3段階権限(集計のみ/税務科目/本人同等)。科目隠蔽・提出ロック |
| Passkey認証 | 指紋・Face IDでログイン |
| REST API | 外部プログラムから仕訳の起票・閲覧・削除。Pythonクライアントライブラリあり |
| PWA | ホーム画面に追加してネイティブアプリ風に利用 |
これ全部、Claude Codeが書いた。
開発風景
誤解のないように言っておくと、土日をPCに張り付いて過ごしたわけではない。
実際にやっていたことは、ゲームをしながらたまにターミナルに日本語を打つ、以上。原神のデイリーを消化しつつ、樹脂が溜まるのを待つ間にClaude Codeに指示を出す。実装が返ってきたらブラウザで確認して、気に入らなければ修正を指示。気に入れば commit restart と打って次の機能へ。あとはまた世界を探索する。
基本のサイクル:
- ターミナルに日本語で「○○を実装して」と打つ
- Claude Codeがコードを書く(この間ゲームしてる)
-
commit restartと打つ(git commit → push → docker compose up --build が全部走る) - ブラウザで動作確認
- ダメ出しするか、次の機能を指示する
実際のやりとり:
自分: 残高試算表でも期間損益を当期純利益として純資産に表示する方式を取ってほしいです。
貸借合ってないの気持ち悪いので。あと負債・純資産合計を出してください。
Claude Code: (4ファイルを編集)
自分: commit restart
(ブラウザで確認)
自分: 今2026年2月試算表で貸借不一致になっていますが、これはなぜですか?
Claude Code: net_income が年始からの累計になっているため、月次の試算表と
ズレています。期間損益とは別にYTD損益を分離する必要があります。
自分: それでは期間損益と年始からの累計損益を分けて計算してください。
Claude Code: (reports.py を修正。net_income と ytd_net_income を分離)
自分: commit restart
これだけ。エディタは1回も開いていない。ソファでゲームしながらターミナルにチャットを打つだけで、複式簿記のアプリケーションが出来上がっていく。正直ちょっと怖い。
CLAUDE.md — AIへの業務引継書
リポジトリのルートに CLAUDE.md というファイルを置くと、Claude Codeがセッション開始時に毎回読み込んでくれる。プロジェクトの設計方針をここに書いておくことで、セッションをまたいでも文脈を維持できる。
うちの CLAUDE.md は200行くらいある。Blueprint一覧、モデル定義、fiscal_periodの仕様(0=期首、1-12=月、13-15=決算整理、16=損益振替)、仕訳のsource区分、監査権限の3段階設計。会計事務所で新人に渡す業務マニュアルみたいなものだ。
これがあるから「残高試算表に当期純利益を表示して」と雑に言うだけで、Claude Codeがどのファイルのどこをどう変えればいいか判断してくれる。逆にこれがないと毎回ゼロから説明するはめになる。
会計の知識は人間の仕事
ここが一番大事なところ。
Claude Codeはコードを書くのは恐ろしく速い。だが複式簿記の設計判断は人間がしないといけない。
例えば残高試算表を実装したら貸借が合わない。Claude Codeに「なぜ合わないか調べて」と言えばコード上のバグは見つけてくれるが、会計上なぜ合わないかはわからない。損益振替前の当期純利益が純資産に反映されていないから合わないのだ、という判断は会計の知識がある人間がやる。
同じように:
- fiscal_period=16(損益振替専用期間)の導入 → 決算整理と振替を混ぜると元帳が読みにくいから分離する
- 残高キャッシュを年内累計で持つか全期間累計で持つか → B/S科目は年度繰越があるから年内累計で持つほうが扱いやすい
- 翌年に確定がある場合は前年の確定解除をブロック → 損益振替の整合性が壊れるから
これは全て人間が指示した。会計ソフトの設計に必要なのはコーディング能力ではなく、業務知識と設計判断だ。AIはそれを実装に落とす速度を劇的に上げてくれるが、判断そのものは代替しない。
困ったこと
コンテキストが溢れる
Claude Codeのコンテキストウィンドウには限りがある。長いセッションでは過去のやり取りが圧縮されて、さっき直したファイルの内容を忘れることがある。
対策: CLAUDE.md に重要な設計判断を随時追記する。セッションが切れても文脈が復帰する。新人への引き継ぎ資料と同じ。
直したはずのバグが戻る
複数ファイルにまたがる変更で、一部だけ直して残りを忘れることが稀にある。include_closing パラメータを6箇所に追加する必要があったとき、3箇所だけ直して残りが漏れた。
対策: 何をではなくなぜを伝える。「前年以前のB/S残高クエリは、損益振替仕訳を含めないと繰越利益が消えます。全箇所を直してください」と意図を伝えると漏れが減る。
数字
$ find app -name '*.py' | xargs wc -l | tail -1
3800 total
$ find app -name '*.html' | xargs wc -l | tail -1
4200 total
$ find app -name '*.js' -o -name '*.css' | xargs wc -l | tail -1
1100 total
$ git log --oneline | wc -l
約50コミット
Python 3,800行、HTML 4,200行、JS/CSS 1,100行。合計約9,000行。これをゲームの片手間に、コードを1行も自分で書かずに作った。
自分がやったのは設計の指示、動作確認、そして会計知識に基づくダメ出し。あとは原神。
まとめ
Claude Codeで複式簿記の家計簿アプリを作った。Flask + PostgreSQL + Bootstrap 5、REST API、Passkey認証、監査アカウント、月次確定と残高キャッシュまで含めて、コードは全てAIが書いた。人間はソファでゲームしながらチャットを打っていただけ。
ただし作れたのは、複式簿記の業務知識があったからだ。「仕訳とは何か」「なぜ貸借が一致しなければならないか」「損益振替は何をしているのか」がわからなければ、AIに何を指示すればいいかもわからない。
「AIがソフトを書く」は正しい。ただし何を書かせるか判断する人間がいなければ、動くゴミができるだけだ。AIが代替するのはコーディングであって、設計判断ではない。ソフト屋の価値はキーボードを叩く速度ではなく、要件を設計に落とす頭にある。
一方で、ドメイン知識を持った人間がAIと組んだときの生産性は本当に凄まじい。ゲームしながら9,000行のアプリが出来上がるのだから。これは確かに、ソフトウェア開発の在り方を変えうるものだと思う。
えらいひとへ。VBAを1個貼って「ソフト屋は潰れる」は、だいぶ解像度が粗い。