Skill343 estrellas del repoactualizado 2mo ago
e-tax
This Claude Code skill automates submission of tax return data to Japan's e-Tax filing system (https://www.keisan.nta.go.jp/) using browser automation. Use it after completing income tax calculation, financial statements, and consumption tax computation with the shinkoku system, selecting from three browser automation methods: Claude in Chrome (recommended), Antigravity Browser Sub-Agent, or Playwright CLI for environments where the others are unavailable.
Instalar en Claude Code
Copiargit clone --depth 1 https://github.com/kazukinagata/shinkoku /tmp/e-tax && cp -r /tmp/e-tax/skills/e-tax ~/.claude/skills/e-taxDespués abre una sesión nueva de Claude Code; el skill carga automáticamente.
Definición
SKILL.md
# 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 でブラウザを開く際の手順:
1. 環境変数を設定: `PLAYWRIGHT_MCP_INIT_SCRIPT=skills/e-tax/scripts/etax-stealth.js`
2. ブラウザ起動: `playwright-cli -s=etax open <url> --headed --browser=chrome`
3. 以降のコマンドは `-s=etax` セッション指定で実行
## 設定の読み込み(最初に実行)
1. `shinkoku.config.yaml` を Read ツールで読み込む
2. ファイルが存在しない場合は `/setup` スキルの実行を案内して終了する
3. 設定値を把握する:
- 納税者プロファイル(氏名・住所・マイナンバー等)
- 事業情報(屋号・業種等)
- 申告方法(e-Tax/郵送/窓口)
## 進捗情報の読み込み
1. `.shinkoku/progress/progress-summary.md` を Read ツールで読み込む(存在する場合)
2. 以下の引継書を 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` — 課税判定結果
3. `.shinkoku/progress/10-etax.md` の `status` を確認する:
- `status: interrupted` の場合 → 下記「中断・再開プロトコル」の **再開手順** に従う
- `status: completed` の場合 → ユーザーに完了済みである旨を伝え、再実行の意図を確認する
4. 計算結果がまだ存在しない場合は、先に `/income-tax` や `/settlement` の実行を案内する
## 中断・再開プロトコル
全ステップ共通のルール。ユーザーが中断を要求した場合(「中断したい」「今日はここまで」「また続きから」等)、以下の手順に従う。
### 中断手順
1. **現在のステップの入力内容を確認する** — 未保存の入力がないか確認
2. **.data ファイルのダウンロードを案内する** — AskUserQuestion で以下を表示:
```
作成コーナーの入力データを .data ファイルとして保存することを推奨します。
画面上部の「入力データの一時保存」ボタン(またはページ下部の「ここまでの入力データを保存する」リンク)
をクリックし、ファイルをダウンロードしてください。
ダウンロードが完了したら「ダウンロード済み」を選択してください。
```
- 選択肢: 「ダウンロード済み」 / 「スキップ(保存しない)」
- 「スキップ」が選ばれた場合は、次回は最初からやり直しになる可能性がある旨を警告する
3. **進捗ファイルを記録する** — `.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からやり直す
```
4. **ユーザーに中断完了を報告** — 次回の再開方法を案内して終了する
### 再開手順
`.shinkoku/progress/10-etax.md` で `status: interrupted` を検出した場合:
1. 中断時の情報(`last_completed_step`, `data_file_saved`)を読み取る
2. AskUserQuestion で以下を表示:
```
前回の e-Tax 入力はステップ{N}で中断されています。
再開方法を選択してください。
```
- 選択肢:
- 「.data ファイルから再開する」(`data_file_saved: true` の場合のみ表示)
- 「最初からやり直す」
- 「中断記録を破棄して終了する」
3. **.data ファイルから再開する場合**:
- 確定申告書等作成コーナーのトップページにアクセス
- 「保存データを利用して作成」→「作成再開」を選択
- `.data` ファイルのアップロードを案内
- 読み込み完了後、`last_completed_step` の次のステップから再開する
4. **最初からやり直す場合**:
- ステップ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を行う前の確認 │
│ → 「利用規約に同意して次へ」 │
└──────────────┬──────────────────