Open-Source Agent Skill "shinkoku" Automates Japan's Tax Filing Process
Japan's tax filing (kakutei shinkoku) is notoriously tedious for freelancers — sorting receipts, bookkeeping, calculating taxes, and filing returns annually. The author built and open-sourced an Agent Skill called "shinkoku" to automate the entire process.
Covers the motivation, capabilities, setup instructions, and quality assurance approach. A highly practical automation case study for engineers working as freelancers or independent developers in Japan.
確定申告を自動化する Agent Skill "shinkoku" を OSS にした
確定申告を自動化する Agent Skill "shinkoku" を OSS にした
年に1回しかやらないから毎年やり方を忘れる。レシートの山を前にしてうんざりする。帳簿をつけて、決算書を作って、税額を計算して、申告書を提出する――気が遠くなるほど長い道のりです。個人事業主やフリーランスの方なら、この苦しみに共感してもらえると思います。
「もう全部 AI にやらせたい」。そう思って作ったのが、確定申告を自動化する Agent Skill「shinkoku」です。この記事では、作った動機、できること、セットアップ方法、テストによる品質保証について紹介します。
https://github.com/kazukinagata/shinkoku
私は毎年、確定申告の時期になると憂鬱な気持ちになっていました。
年に1回しかやらないから、去年の記憶なんて綺麗さっぱり消えているんですよね。「去年どうやったっけ?」が毎年の恒例行事で、結局ゼロから調べ直す羽目になります。
そして1年分のレシートと領収書の山。1枚ずつ確認して仕訳を切る作業は、地味なのに確実に心が折れます。
そこから帳簿付け、決算書、税額計算、申告書の提出と続くわけですが、このプロセスの長さがまた辛い。途中でミスに気づくと手戻りで余計に時間がかかります。
この苦行をもう繰り返したくない。そう思っていたところに、AI エージェントが汎用的なタスクでも丸投げできる品質になってきた。それなら確定申告も任せられるんじゃないか――そう思って作り始めました。
仕事柄、AI エージェントをいろいろ試しているうちに気づいたのですが、エージェントはここ半年ほどで急激に賢くなり、コーディングだけじゃなく、確定申告のような「プログラミングとは関係ない面倒ごと」までこなせるようになっています。それなら確定申告を丸ごと任せられるものが作れるはずだし、作れば確定申告に苦労している個人事業主やフリーランスの方にも使ってもらえるはずだと思いました。
せっかく作るなら特定のプラットフォームに閉じたくなかったので、SKILL.md オープン標準に準拠し、OSS として公開しました。これで Claude Code だけでなく 40 以上のエージェントから利用できます。
ざっくり言うと、書類の読み取り・整理から帳簿の記帳、e-Tax への入力代行まで、確定申告の全工程をエージェントと一緒に進められる Agent Skill です。個人事業主・会社員の所得税・消費税に対応しており、令和7年分(2025年課税年度)の税制に準拠しています。スラッシュコマンドで各ステップを明示的に呼び出すこともできますし、会話の流れからエージェントが適切なスキルを自動で選んでくれることもあります。
「確定申告したい」と伝えるだけでスキルが発動してあとは質問に答えていくだけ
たとえば、一番面倒な書類整理はほぼ自動化できます。レシート、領収書、請求書、源泉徴収票、医療費の領収書、ふるさと納税の受領証明書、控除証明書、支払調書――これらを画像・PDF・CSV・Excel のいずれかで作業ディレクトリに置くだけで、OCR 読取から仕訳入力まで自動で処理されます。OCR の結果は完璧ではないため、人間の目で確認することを推奨しますが、ゼロから手入力するのとは労力が段違いです。
また、セットアップ時には氏名・電話番号・住所・家族構成・担当税務署名といった基本情報の入力が必要です。一問一答で聞かれると地味に面倒ですが、shinkoku では「去年の確定申告書の PDF を見て」「ウェブで調べて」のように雑に頼むだけで済みます。エージェントが書類やウェブから情報を拾い、設定ファイルに反映してくれます。
さらに、最終ステップの e-Tax 入力もエージェントに任せられます。確定申告書等作成コーナーは画面数が多く手動での操作が大変ですが、shinkoku ではページ構造を事前に学習させているため、エージェントがスムーズに画面を遷移しながら計算結果を入力していきます。
AIがブラウザ操作して申告データ送信直前までを代行してくれる
初回セットアップ。設定ファイル(shinkoku.config.yaml)の生成とデータベースの初期化
確定申告が必要かどうか、所得税・消費税の申告要否を判定
CSV・レシート・請求書・源泉徴収票を取り込み、複式簿記の仕訳を登録
減価償却・決算整理仕訳の登録、残高試算表・損益計算書・貸借対照表の生成
所得税額を計算(所得控除・税額控除・復興特別所得税)
消費税額を計算(2割特例・簡易課税・本則課税)
最終確認チェックリストと提出方法(e-Tax / 郵送 / 持参)の案内
確定申告書等作成コーナーへの入力代行(Claude in Chrome / Playwright / Antigravity)
控除・節税・税制についての質問に回答する税務アドバイザー
ふるさと納税の寄附金登録・一覧・削除・集計と控除限度額推定
shinkoku の対応範囲・対応ペルソナ・既知の制限事項を表示
法人成り(個人事業主から法人への移行)の税額比較・設立手続き相談
/reading-deduction-cert
/reading-payment-statement
「自分の申告パターンは対応してるの?」と気になると思うので、まとめました。
メインターゲット。帳簿 → 決算書 → 税額計算 → 作成コーナー入力
源泉徴収票 + 事業所得の税額計算 → 作成コーナー入力
還付申告・医療費控除等 → 作成コーナー入力
寄附金 CRUD + 控除計算 + 限度額推定
正直に言うと、まだカバーしきれていない領域があります。
分離課税や不動産所得など、専用の計算ロジックが必要なケースは手つかずです。ニーズの高いものから順に対応していきたいと思っています。
shinkoku は Claude Code と Cowork をメインターゲットとして開発しています。
ただ、せっかく作ったものを特定のエージェントでしか使えないのはもったいないと思い、SKILL.md オープン標準に準拠しました。そのおかげで Cursor / Windsurf / GitHub Copilot / Gemini CLI / Codex / Cline / Roo Code / Antigravity など、40 以上のエージェントでも利用できます。
なお、OCR 読取スキル(レシートや源泉徴収票の読取など)を使うには、マルチモーダル LLM に対応したエージェントが必要です。一部のプラットフォームでは、OCR デュアル検証(2つのサブエージェントで独立に読み取り、結果をクロスチェックする方式)にも対応しています。
導入は簡単です。環境さえ揃っていれば数分で終わります。
/plugin marketplace add kazukinagata/shinkoku
/plugin install shinkoku@shinkoku
プラグイン > 個人用 > GitHub からマーケットプレイスを追加 > kazukinagata/shinkoku を入力してマーケットプレイスを追加し、その後表示される shinkoku プラグインをインストールしてください。
README.md を読ませてセットアップさせるのがおすすめです。skills CLI でもインストールできます。
npx skills add kazukinagata/shinkoku
正直、自分でも「AI に税額計算させて大丈夫なのか?」と不安でした。だからこそ、テストはかなり手厚く書いています。税法の条文に基づいたテストケースを多数用意し、計算ロジックの正しさを担保しています。
15 のテストスイート、合計 238 のテストケースで構成しています。内訳は unit テスト(10スイート / 140ケース)と scripts テスト(5スイート / 98ケース)です。
test_consumption_tax_rounding.py
test_income_tax_rounding.py
test_master_accounts.py
test_opening_balance.py
test_blue_return_cap.py
test_duplicate_detection.py
「なんとなく合ってそう」では怖いので、テストケースは税法の条文を直接根拠にしています。
国税通則法 第118条: 課税所得金額は1,000円未満切捨
国税通則法 第119条: 納付税額は100円未満切捨
消費税法 第28条: 課税標準 = 課税資産の譲渡等の対価の額