e-Tax 電子申告 — ブラウザ自動化による確定申告書等作成コーナー入力
shinkoku で計算した確定申告データを、確定申告書等作成コーナー(https://www.keisan.nta.go.jp/)に Claude in Chrome を使ってブラウザ上で入力・提出するためのスキル。
前提条件
/income-taxスキルで所得税の計算が完了していること/settlementスキルで決算書(PL/BS)の作成が完了していること/consumption-taxスキルで消費税の計算が完了していること(該当者のみ)shinkoku.config.yamlが設定済みであること- ブラウザ自動化ツールがいずれか利用可能であること(下記「ブラウザ自動化方式の選択」参照)
ブラウザ自動化方式の選択
確定申告書等作成コーナーへの入力には、以下の3つの方式がある。
方式 A: Claude in Chrome(推奨)
| 項目 | 内容 |
|---|---|
| 対象環境 | Windows / macOS のネイティブ Chrome |
| 前提 | Claude in Chrome 拡張機能がインストール済み |
| 利点 | OS 検出の問題なし。追加設定不要 |
方式 B: Antigravity Browser Sub-Agent
| 項目 | 内容 |
|---|---|
| 対象環境 | Windows / macOS / Linux(Antigravity IDE) |
| 前提 | Antigravity IDE がインストール済みで browser_subagent ツールが利用可能 |
| 利点 | ネイティブ Chrome を使用するため OS 偽装不要。Linux でも動作 |
方式 C: Playwright CLI(フォールバック)
| 項目 | 内容 |
|---|---|
| 対象環境 | WSL / Linux、または Claude in Chrome・Antigravity が利用できない環境 |
| 前提 | @playwright/cli + Playwright CLI スキル + etax-stealth.js(OS 偽装スクリプト) |
| 制限 | headed モード必須(QR コード認証に物理操作が必要) |
判定ロジック
1. Claude in Chrome のツール(browser_navigate 等)が利用可能か?
→ はい: 方式 A を使用
→ いいえ: 次へ
2. Antigravity の browser_subagent ツールが利用可能か?
→ はい: 方式 B を使用
→ いいえ: 次へ
3. Bash ツールで `playwright-cli` コマンドが利用可能か?
→ はい: 方式 C を使用(headed モードで起動)
→ いいえ: エラー表示
エラーメッセージ:
「確定申告書等作成コーナーへの入力には、Claude in Chrome、
Antigravity Browser Sub-Agent、または Playwright CLI が必要です。
セットアップ方法は README.md の『ブラウザ自動化』セクションを参照してください。」
方式 B 使用時の操作方法
Antigravity の browser_subagent は高レベルなタスク記述で操作する。
各ステップの入力操作を自然言語で記述し、browser_subagent に委任する。
例:
- 「https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl を開く」
- 「『マイナンバーカードをお持ちですか』で『はい』のラジオボタンをクリック」
- 「name='sonekiKeisansyoFromMonth' の入力欄に '1' を入力」
※ Antigravity はネイティブ Chrome を使用するため、etax-stealth.js による OS 偽装は不要。
方式 C 使用時のセッション開始手順
Playwright CLI でブラウザを開く際の手順:
- 環境変数を設定:
PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js - ブラウザ起動:
playwright-cli -s=etax open <url> --headed --browser=chrome - 以降のコマンドは
-s=etaxセッション指定で実行
設定の読み込み(最初に実行)
shinkoku.config.yamlを Read ツールで読み込む- ファイルが存在しない場合は
/setupスキルの実行を案内して終了する - 設定値を把握する:
- 納税者プロファイル(氏名・住所・マイナンバー等)
- 事業情報(屋号・業種等)
- 申告方法(e-Tax/郵送/窓口)
進捗情報の読み込み
.shinkoku/progress/progress-summary.mdを Read ツールで読み込む(存在する場合)- 以下の引継書を Read ツールで読み込む(存在する場合):
.shinkoku/progress/06-settlement.md— 決算結果(PL/BS データ).shinkoku/progress/07-income-tax.md— 所得税計算結果.shinkoku/progress/08-consumption-tax.md— 消費税計算結果.shinkoku/progress/02-assess.md— 課税判定結果
.shinkoku/progress/10-etax.mdのstatusを確認する:status: interruptedの場合 → 下記「中断・再開プロトコル」の 再開手順 に従うstatus: completedの場合 → ユーザーに完了済みである旨を伝え、再実行の意図を確認する
- 計算結果がまだ存在しない場合は、先に
/income-taxや/settlementの実行を案内する
中断・再開プロトコル
全ステップ共通のルール。ユーザーが中断を要求した場合(「中断したい」「今日はここまで」「また続きから」等)、以下の手順に従う。
中断手順
- 現在のステップの入力内容を確認する — 未保存の入力がないか確認
- .data ファイルのダウンロードを案内する — AskUserQuestion で以下を表示:
作成コーナーの入力データを .data ファイルとして保存することを推奨します。
画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク)
をクリックし、ファイルをダウンロードしてください。
ダウンロードが完了したら「ダウンロード済み」を選択してください。
- 選択肢: 「ダウンロード済み」 / 「スキップ(保存しない)」
- 「スキップ」が選ばれた場合は、次回は最初からやり直しになる可能性がある旨を警告する
- 進捗ファイルを記録する —
.shinkoku/progress/10-etax.mdに以下の形式で Write ツールで出力:
---
step: 10
skill: e-tax
status: interrupted
last_completed_step: "{最後に完了したステップ番号(例: 3)}"
last_url: "{中断時のブラウザURL}"
data_file_saved: {true/false}
interrupted_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---
# e-Tax 電子申告(中断)
## 中断時点の状況
- 最後に完了したステップ: ステップ{N}
- 中断時のURL: {URL}
- .data ファイル保存: {済/未}
## 次回の再開方法
1. `/e-tax` スキルを再実行する
2. .data ファイルがある場合は「保存データを利用して作成」から再開する
3. .data ファイルがない場合はステップ0からやり直す
- ユーザーに中断完了を報告 — 次回の再開方法を案内して終了する
再開手順
.shinkoku/progress/10-etax.md で status: interrupted を検出した場合:
- 中断時の情報(
last_completed_step,data_file_saved)を読み取る - AskUserQuestion で以下を表示:
前回の e-Tax 入力はステップ{N}で中断されています。
再開方法を選択してください。
- 選択肢:
- 「.data ファイルから再開する」(
data_file_saved: trueの場合のみ表示) - 「最初からやり直す」
- 「中断記録を破棄して終了する」
- 「.data ファイルから再開する」(
-
.data ファイルから再開する場合:
- 確定申告書等作成コーナーのトップページにアクセス
- 「保存データを利用して作成」→「作成再開」を選択
.dataファイルのアップロードを案内- 読み込み完了後、
last_completed_stepの次のステップから再開する
-
最初からやり直す場合:
- ステップ0 から通常通り開始する
ステップ0: 必須データの検証
確定申告書等作成コーナーへの入力に必要なデータが揃っているか検証する。
検証項目
[1] 税額計算済み
- .shinkoku/progress/07-income-tax.md が存在し、status: completed であること
[2] プロファイル完備
- 氏名(姓・名)が登録されているか
- 住所が登録されているか
- 所轄税務署名が登録されているか
[3] 決算書データ
- PL/BS の計算結果が取得可能であること
[4] 消費税(該当者のみ)
- .shinkoku/progress/08-consumption-tax.md が存在し、status: completed であること
[5] サニティチェック
- `tax_calc.py sanity-check` を実行する
- error > 0 の場合: 入力を中止し、`/income-tax` スキルで修正を促す
- warning > 0 の場合: ユーザーに確認してから続行する
画面遷移フロー全体像
┌─────────────────────────────────────────────────────┐
│ CC-AA-010 税務署への提出方法の選択 │
│ マイナンバーカード: はい → スマホ: はい │
│ → 「スマートフォンを使用する」 │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AE-090 作成する申告書等の選択 │
│ 「決算書・収支内訳書(+所得税)」を選択 │
│ → doSubmitCMW0900(2,'25') │
│ │
│ ※ 消費税のみ別途作成する場合: │
│ → doSubmitCMW0900(3,'25') │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AE-600 マイナポータル連携の選択 │
│ → 「マイナポータル連携を利用しない」 │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AA-024 e-Taxを行う前の確認 │
│ → 「利用規約に同意して次へ」 │
└──────────────┬──────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────┐
│ CC-AA-440 QRコード認証 │
│ ★ ユーザーの物理的認証が必要 │
│ スマートフォンでQRコード読み取り │
│ → マイナンバーカード認証完了後、自動遷移 │
└──────────────┬──────────────────────────────────────┘
▼
┌───────┴───────┐
▼ ▼
決算書コーナー 所得税コーナー
(事業所得あり) (給与のみ等)
決算書コーナーのフロー
/kessan/ac/r7/top → ac0300(種類選択)→ aa0200(P/L入力)
→ aa0100(青色特別控除)→ preAoiroCalc(B/S入力)
→ aa0700(所得確認)→ ac0500(住所氏名)→ 印刷/保存
→ 所得税コーナーへ遷移
所得税コーナーのフロー
SS-AA-010a(所得選択)→ SS-AA-050(収入入力ハブ)
→ SS-CA-010(給与入力) / SS-CB-xxx(事業所得) / 雑所得
→ SS-AA-070a(控除1/2)→ SS-AA-080(控除2/2)
→ SS-AA-090(計算結果確認)
→ SS-AC-010a(納付方法)→ SS-AC-020a(住民税等)
→ SS-AC-030(基本情報)→ SS-AC-040(マイナンバー)
→ ステップ5.5(意思決定ゲート)→ ステップ6(電子署名・送信プロトコル)
消費税コーナーのフロー(所得税完了後)
所得税完了 → 「消費税の申告書作成はこちら」
2割特例:
ac0100(条件判定) → ac0250(所得区分選択) → 売上入力hub → 売上入力detail
→ 売上入力hub → 中間納付 → ac0300(計算結果) → 納税地等
→ ステップ6.5(電子署名・送信プロトコル)
簡易課税:
ac0100(条件判定) → ac0250(所得区分・事業区分選択) → 売上入力hub → 売上入力detail
→ 売上入力hub → ak2140(仕入税額控除方式選択)※ → 中間納付 → ac0300(計算結果)
→ 納税地等 → ステップ6.5(電子署名・送信プロトコル)
※ 2種以上の事業がある場合のみ
一般課税:
ac0100(条件判定) → ac0250(所得区分選択) → 売上・仕入入力hub → 売上入力detail
→ ai3610(決算額テーブル)※ → 売上・仕入入力hub → 中間納付 → ac0300(計算結果)
→ 納税地等 → ステップ6.5(電子署名・送信プロトコル)
※ 積上げ計算選択時のみ
ステップ1: 確定申告書等作成コーナーへのアクセス
開始URL
https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl
CC-AA-010: 税務署への提出方法の選択
画面番号: CC-AA-010
- 「マイナンバーカードをお持ちですか」→ 「はい」 ラジオボタンをクリック
- 「マイナンバーカード読み取りに対応したスマートフォン又はICカードリーダライタをお持ちですか」→ 「はい」 をクリック
- 「スマートフォンを使用する」 をクリック
- JS:
doSubmitCSW0100('1','3','/ky/sm/csw0100_myno_qr')
- JS:
CC-AE-090: 作成する申告書等の選択
画面番号: CC-AE-090
選択肢(令和7年分):
- 所得税 →
doSubmitCMW0900(1,'25') - 決算書・収支内訳書(+所得税) →
doSubmitCMW0900(2,'25')← 事業所得ありの場合 - 消費税 →
doSubmitCMW0900(3,'25') - 贈与税 →