$npx -y skills add kazukinagata/shinkoku --skill e-taxThis skill should be used when the user wants to file their tax return electronically via the 確定申告書等作成コーナー (NTA Tax Return Preparation Corner) using Claude in Chrome, Antigravity Browser Sub-Agent, or Playwright CLI (fallback). It guides the browser-based input of calculated tax
| 1 | # e-Tax 電子申告 — ブラウザ自動化による確定申告書等作成コーナー入力 |
| 2 | |
| 3 | shinkoku で計算した確定申告データを、確定申告書等作成コーナー(https://www.keisan.nta.go.jp/)に |
| 4 | Claude in Chrome を使ってブラウザ上で入力・提出するためのスキル。 |
| 5 | |
| 6 | ## 前提条件 |
| 7 | |
| 8 | - `/income-tax` スキルで所得税の計算が完了していること |
| 9 | - `/settlement` スキルで決算書(PL/BS)の作成が完了していること |
| 10 | - `/consumption-tax` スキルで消費税の計算が完了していること(該当者のみ) |
| 11 | - `shinkoku.config.yaml` が設定済みであること |
| 12 | - **ブラウザ自動化ツール**がいずれか利用可能であること(下記「ブラウザ自動化方式の選択」参照) |
| 13 | |
| 14 | ## ブラウザ自動化方式の選択 |
| 15 | |
| 16 | 確定申告書等作成コーナーへの入力には、以下の3つの方式がある。 |
| 17 | |
| 18 | ### 方式 A: Claude in Chrome(推奨) |
| 19 | |
| 20 | | 項目 | 内容 | |
| 21 | |-----|------| |
| 22 | | 対象環境 | Windows / macOS のネイティブ Chrome | |
| 23 | | 前提 | Claude in Chrome 拡張機能がインストール済み | |
| 24 | | 利点 | OS 検出の問題なし。追加設定不要 | |
| 25 | |
| 26 | ### 方式 B: Antigravity Browser Sub-Agent |
| 27 | |
| 28 | | 項目 | 内容 | |
| 29 | |-----|------| |
| 30 | | 対象環境 | Windows / macOS / Linux(Antigravity IDE) | |
| 31 | | 前提 | Antigravity IDE がインストール済みで `browser_subagent` ツールが利用可能 | |
| 32 | | 利点 | ネイティブ Chrome を使用するため OS 偽装不要。Linux でも動作 | |
| 33 | |
| 34 | ### 方式 C: Playwright CLI(フォールバック) |
| 35 | |
| 36 | | 項目 | 内容 | |
| 37 | |-----|------| |
| 38 | | 対象環境 | WSL / Linux、または Claude in Chrome・Antigravity が利用できない環境 | |
| 39 | | 前提 | `@playwright/cli` + Playwright CLI スキル + `etax-stealth.js`(OS 偽装スクリプト) | |
| 40 | | 制限 | headed モード必須(QR コード認証に物理操作が必要) | |
| 41 | |
| 42 | ### 判定ロジック |
| 43 | |
| 44 | ``` |
| 45 | 1. Claude in Chrome のツール(browser_navigate 等)が利用可能か? |
| 46 | → はい: 方式 A を使用 |
| 47 | → いいえ: 次へ |
| 48 | |
| 49 | 2. Antigravity の browser_subagent ツールが利用可能か? |
| 50 | → はい: 方式 B を使用 |
| 51 | → いいえ: 次へ |
| 52 | |
| 53 | 3. Bash ツールで `playwright-cli` コマンドが利用可能か? |
| 54 | → はい: 方式 C を使用(headed モードで起動) |
| 55 | → いいえ: エラー表示 |
| 56 | |
| 57 | エラーメッセージ: |
| 58 | 「確定申告書等作成コーナーへの入力には、Claude in Chrome、 |
| 59 | Antigravity Browser Sub-Agent、または Playwright CLI が必要です。 |
| 60 | セットアップ方法は README.md の『ブラウザ自動化』セクションを参照してください。」 |
| 61 | ``` |
| 62 | |
| 63 | ### 方式 B 使用時の操作方法 |
| 64 | |
| 65 | Antigravity の `browser_subagent` は高レベルなタスク記述で操作する。 |
| 66 | 各ステップの入力操作を自然言語で記述し、`browser_subagent` に委任する。 |
| 67 | |
| 68 | 例: |
| 69 | - 「https://www.keisan.nta.go.jp/kyoutu/ky/sm/top_web#bsctrl を開く」 |
| 70 | - 「『マイナンバーカードをお持ちですか』で『はい』のラジオボタンをクリック」 |
| 71 | - 「name='sonekiKeisansyoFromMonth' の入力欄に '1' を入力」 |
| 72 | |
| 73 | ※ Antigravity はネイティブ Chrome を使用するため、`etax-stealth.js` による OS 偽装は不要。 |
| 74 | |
| 75 | ### 方式 C 使用時のセッション開始手順 |
| 76 | |
| 77 | Playwright CLI でブラウザを開く際の手順: |
| 78 | |
| 79 | 1. 環境変数を設定: `PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js` |
| 80 | 2. ブラウザ起動: `playwright-cli -s=etax open <url> --headed --browser=chrome` |
| 81 | 3. 以降のコマンドは `-s=etax` セッション指定で実行 |
| 82 | |
| 83 | ## 設定の読み込み(最初に実行) |
| 84 | |
| 85 | 1. `shinkoku.config.yaml` を Read ツールで読み込む |
| 86 | 2. ファイルが存在しない場合は `/setup` スキルの実行を案内して終了する |
| 87 | 3. 設定値を把握する: |
| 88 | - 納税者プロファイル(氏名・住所・マイナンバー等) |
| 89 | - 事業情報(屋号・業種等) |
| 90 | - 申告方法(e-Tax/郵送/窓口) |
| 91 | |
| 92 | ## 進捗情報の読み込み |
| 93 | |
| 94 | 1. `.shinkoku/progress/progress-summary.md` を Read ツールで読み込む(存在する場合) |
| 95 | 2. 以下の引継書を Read ツールで読み込む(存在する場合): |
| 96 | - `.shinkoku/progress/06-settlement.md` — 決算結果(PL/BS データ) |
| 97 | - `.shinkoku/progress/07-income-tax.md` — 所得税計算結果 |
| 98 | - `.shinkoku/progress/08-consumption-tax.md` — 消費税計算結果 |
| 99 | - `.shinkoku/progress/02-assess.md` — 課税判定結果 |
| 100 | 3. `.shinkoku/progress/10-etax.md` の `status` を確認する: |
| 101 | - `status: interrupted` の場合 → 下記「中断・再開プロトコル」の **再開手順** に従う |
| 102 | - `status: completed` の場合 → ユーザーに完了済みである旨を伝え、再実行の意図を確認する |
| 103 | 4. 計算結果がまだ存在しない場合は、先に `/income-tax` や `/settlement` の実行を案内する |
| 104 | |
| 105 | ## 中断・再開プロトコル |
| 106 | |
| 107 | 全ステップ共通のルール。ユーザーが中断を要求した場合(「中断したい」「今日はここまで」「また続きから」等)、以下の手順に従う。 |
| 108 | |
| 109 | ### 中断手順 |
| 110 | |
| 111 | 1. **現在のステップの入力内容を確認する** — 未保存の入力がないか確認 |
| 112 | 2. **.data ファイルのダウンロードを案内する** — AskUserQuestion で以下を表示: |
| 113 | |
| 114 | ``` |
| 115 | 作成コーナーの入力データを .data ファイルとして保存することを推奨します。 |
| 116 | 画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク) |
| 117 | をクリックし、ファイルをダウンロードしてください。 |
| 118 | |
| 119 | ダウンロードが完了したら「ダウンロード済み」を選択してください。 |
| 120 | ``` |
| 121 | |
| 122 | - 選択肢: 「ダウンロード済み」 / 「スキップ(保存しない)」 |
| 123 | - 「スキップ」が選ばれた場合は、次回は最初からやり直しになる可能性がある旨を警告する |
| 124 | |
| 125 | 3. **進捗ファイルを記録する** — `.shinkoku/progress/10-etax.md` に以下の形式で Write ツールで出力: |
| 126 | |
| 127 | ``` |
| 128 | --- |
| 129 | step: 10 |
| 130 | skill: e-tax |
| 131 | status: interrupted |
| 132 | last_completed_step: "{最後に完了したステップ番号(例: 3)}" |
| 133 | last_url: "{中断時のブラウザURL}" |
| 134 | data_file_saved: {true/false} |
| 135 | interrupted_at: "{当日日付 YYYY-MM-DD}" |
| 136 | fiscal_year: {tax_year} |
| 137 | --- |
| 138 | |
| 139 | # e-Tax 電子申告(中断) |
| 140 | |
| 141 | ## 中断時点の状況 |
| 142 | |
| 143 | - 最後に完了したステップ: ステップ{N} |
| 144 | - 中断時のURL: {URL} |
| 145 | - .data ファイル保存: {済/未} |
| 146 | |
| 147 | ## 次回の再開方法 |
| 148 | |
| 149 | 1. `/e-tax` スキルを再実行する |
| 150 | 2. .data ファイルがある場合は「保存データを利用して作成」から再開する |
| 151 | 3. .data ファイルがない場合はステップ0からやり直す |
| 152 | ``` |
| 153 | |
| 154 | 4. **ユーザーに中断完了を報告** — 次回の再開方法を案内して終了する |
| 155 | |
| 156 | ### 再開手順 |
| 157 | |
| 158 | `.shinkoku/progress/10-etax.md` で `status: interrupted` を検出した場合: |
| 159 | |
| 160 | 1. 中断時の情報(`last_completed_step`, `data_file_saved`)を読み取る |
| 161 | 2. AskUserQuestion で以下を表示: |
| 162 | |
| 163 | ``` |
| 164 | 前回の e-Tax 入力はステップ{N}で中断されています。 |
| 165 | |
| 166 | 再開方法を選択してください。 |
| 167 | ``` |
| 168 | |
| 169 | - 選択肢: |
| 170 | - 「.data ファイルから再開する」(`data_file_saved: true` の場合のみ表示) |
| 171 | - 「最初からやり直す」 |
| 172 | - 「中断記録を破棄して終了する」 |
| 173 | |
| 174 | 3. **.data ファイルから再開する場合**: |
| 175 | - 確定申告書等作成コーナーのトップページにアクセス |
| 176 | - 「保存データを利用して作成」→「作成再開」を選択 |
| 177 | - `.data` ファイルのアップロードを案内 |
| 178 | - 読み込み完了後、`last_completed_step` の次のステップから再開する |
| 179 | |
| 180 | 4. **最初からやり直す場合**: |
| 181 | - ステップ0 から通常通り開始する |
| 182 | |
| 183 | ## ステップ0: 必須データの検証 |
| 184 | |
| 185 | 確定申告書等作成コーナーへの入力に必要なデータが揃っているか検証する。 |
| 186 | |
| 187 | ### 検証項目 |
| 188 | |
| 189 | ``` |
| 190 | [1] 税額計算済み |
| 191 | - .shinkoku/progress/07-income-tax.md が存在し、status: completed であること |
| 192 | |
| 193 | [2] プロファイル完備 |
| 194 | - 氏名(姓・名)が登録されているか |
| 195 | - 住所が登録されているか |
| 196 | - |