Skip to main content
ClaudeWave
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
Copiar
git clone --depth 1 https://github.com/kazukinagata/shinkoku /tmp/e-tax && cp -r /tmp/e-tax/skills/e-tax ~/.claude/skills/e-tax
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

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を行う前の確認                           │
│   → 「利用規約に同意して次へ」                          │
└──────────────┬──────────────────