Shinkoku reading-deduction-cert
install
source · Clone the upstream repo
git clone https://github.com/kazukinagata/shinkoku
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/kazukinagata/shinkoku "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/reading-deduction-cert" ~/.claude/skills/kazukinagata-shinkoku-reading-deduction-cert && rm -rf "$T"
manifest:
skills/reading-deduction-cert/SKILL.mdsource content
控除証明書 画像読み取り
控除証明書(生命保険料控除証明書、地震保険料控除証明書、社会保険料控除証明書等)の画像を読み取り、構造化データとして返すスキル。
PDF ファイルの場合
ファイルが PDF(
.pdf)の場合、画像 OCR の前にテキスト抽出を試みる。
を実行するshinkoku pdf extract-text --file-path <path>- 抽出テキストに必要な情報(保険料額・証明額等)が含まれていれば、テキストから構造化データを生成する
- テキストが不十分(スキャン PDF 等)の場合は
で PNG に変換し、以下の画像読み取りフローに進むshinkoku pdf to-image --file-path <path> --output-dir <dir>
画像読み取り方法
推奨: デュアル検証(並列2コンテキスト)
精度を高めるため、同じ画像を2つの独立したコンテキストで並列に読み取り、結果を照合する。
-
2つの独立した読み取りを実行する: サブエージェントが使える環境では、2つのサブエージェントを並列で起動し、それぞれ独立に画像を読み取る。 各サブエージェントには以下の「基本ルール」と「出力フォーマット」をプロンプトとして渡し、画像ファイルパスを指定する。
-
結果照合: 両方の読み取り結果から主要フィールド(金額等)を比較する。
-
一致の場合: そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告する。
-
不一致の場合: ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
- 差異のあるフィールドを明示する
- A を採用 / B を採用 / 手動入力 の3択を提示する
フォールバック(サブエージェント非対応の場合)
サブエージェントが利用できない環境では、以下の手順で読み取る:
- 画像ファイルを直接 Read ツールで読み取る
- 以下の「基本ルール」と「出力フォーマット」に従ってデータを抽出する
- 抽出結果をユーザーに提示し、必ず目視確認を依頼する
⚠ デュアル検証が利用できないため、必ずユーザーに目視確認を依頼してください。
基本ルール
- 画像ファイルは Read ツールで読み取る(Claude Vision が自動的に画像を認識する)
- 金額は必ず int(円単位の整数)で返す。カンマや「円」は除去する
- 日付は YYYY-MM-DD 形式で返す
- 和暦は西暦に変換する(令和7年 → 2025、令和6年 → 2024、平成31年 → 2019)
- 読み取れないフィールドは UNKNOWN(文字列)または 0(金額)とする
対象書類
- 生命保険料控除証明書
- 地震保険料控除証明書
- 社会保険料(国民年金保険料)控除証明書
- 小規模企業共済等掛金払込証明書(iDeCo含む)
出力フォーマット
JSON オブジェクトとして返す。金額は必ず int(円単位の整数)とする。
生命保険料控除証明書
{ "certificate_type": "life_insurance", "policy_type": "新制度 or 旧制度", "category": "一般 or 介護医療 or 個人年金", "company_name": "保険会社名", "policy_number": "証券番号", "annual_premium": 120000, "dividend": 0 }
地震保険料控除証明書
{ "certificate_type": "earthquake_insurance", "company_name": "保険会社名", "policy_number": "証券番号", "annual_premium": 50000, "is_old_long_term": false }
社会保険料控除証明書
{ "certificate_type": "social_insurance", "insurance_type": "national_pension", "annual_premium": 200000, "period": "対象期間" }
小規模企業共済等掛金払込証明書
{ "certificate_type": "small_business_mutual_aid", "sub_type": "ideco or small_business or disability", "annual_contribution": 276000 }
抽出のポイント
- 書類の種別(生命保険料/地震保険料/社会保険料/小規模企業共済等)を最初に判定する
- 生命保険料控除は新旧制度の区別と、3区分(一般/介護医療/個人年金)の分類を確認する
- 地震保険料控除は旧長期損害保険かどうかの区別を確認する
- 金額は「証明額」「申告額」が異なる場合、「申告額」を使用する
- 保険会社名・証券番号は確認用に抽出する