reading-deduction-certlisted
Install: claude install-skill kazukinagata/shinkoku
# 控除証明書 画像読み取り
控除証明書(生命保険料控除証明書、地震保険料控除証明書、社会保険料控除証明書等)の画像を読み取り、構造化データとして返すスキル。
## PDF ファイルの場合
ファイルが PDF(`.pdf`)の場合、画像 OCR の前にテキスト抽出を試みる。
1. `shinkoku pdf extract-text --file-path <path>` を実行する
2. 抽出テキストに必要な情報(保険料額・証明額等)が含まれていれば、テキストから構造化データを生成する
3. テキストが不十分(スキャン PDF 等)の場合は `shinkoku pdf to-image --file-path <path> --output-dir <dir>` で PNG に変換し、以下の画像読み取りフローに進む
## 画像読み取り方法
### 推奨: デュアル検証(並列2コンテキスト)
精度を高めるため、同じ画像を2つの独立したコンテキストで並列に読み取り、結果を照合する。
1. **2つの独立した読み取りを実行する:**
サブエージェントが使える環境では、2つのサブエージェントを並列で起動し、それぞれ独立に画像を読み取る。
各サブエージェントには以下の「基本ルール」と「出力フォーマット」をプロンプトとして渡し、画像ファイルパスを指定する。
2. **結果照合:** 両方の読み取り結果から主要フィールド(金額等)を比較する。
3. **一致の場合:** そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告する。
4. **不一致の場合:** ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
- 差異のあるフィールドを明示する
- A を採用 / B を採用 / 手動入力 の3択を提示する
### フォールバック(サブエージェント非対応の場合)
サブエージェントが利用できない環境では、以下の手順で読み取る:
1. 画像ファイルを直接 Read ツールで読み取る
2. 以下の「基本ルール」と「出力フォーマット」に従ってデータを抽出する
3. 抽出結果をユーザーに提示し、**必ず目視確認を依頼する**
⚠ デュアル検証が利用できないため、必ずユーザーに目視確認を依頼してください。
## 基本ルール
- 画像ファイルは Read ツールで読み取る(Claude Vision が自動的に画像を認識する)
- 金額は必ず int(円単位の整数)で返す。カンマや「円」は除去する
- 日付は YYYY-MM-DD 形式で返す
- 和暦は西暦に変換する(令和7年 → 2025、令和6年 → 2024、平成31年 → 2019)
- 読み取れないフィールドは UNKNOWN(文字列)または 0(金額)とする
## 対象書類
- 生命保険料控除証明書
- 地震保険料控除証明書
- 社会保険料(国民年金保険料)控除証明書
- 小規模企業共済等掛金払込証明書(iDeCo含む)
## 出力フォーマット
JSON オブジェクトとして返す。金額は必ず int(円単位の整数)とする。
### 生命保険料控除証明書
```json
{
"certificate_type": "life_insurance",
"policy_type": "新制度 or 旧制度",
"category": "一般 or 介護医療 or 個人年金",
"company_nam