{"id":"892d93c4-77d2-449d-8ebe-b45ec686b6ce","shortId":"79T87G","kind":"skill","title":"reading-deduction-cert","tagline":"控除証明書（生命保険料・地震保険料等）の画像を読み取り構造化データを返す。 他のスキルから呼び出されるほか、直接ユーザーが呼び出すことも可能。","description":"# 控除証明書 画像読み取り\n\n控除証明書（生命保険料控除証明書、地震保険料控除証明書、社会保険料控除証明書等）の画像を読み取り、構造化データとして返すスキル。\n\n## PDF ファイルの場合\n\nファイルが PDF（`.pdf`）の場合、画像 OCR の前にテキスト抽出を試みる。\n\n1. `shinkoku pdf extract-text --file-path <path>` を実行する\n2. 抽出テキストに必要な情報（保険料額・証明額等）が含まれていれば、テキストから構造化データを生成する\n3. テキストが不十分（スキャン PDF 等）の場合は `shinkoku pdf to-image --file-path <path> --output-dir <dir>` で PNG に変換し、以下の画像読み取りフローに進む\n\n## 画像読み取り方法\n\n### 推奨: デュアル検証（並列2コンテキスト）\n\n精度を高めるため、同じ画像を2つの独立したコンテキストで並列に読み取り、結果を照合する。\n\n1. **2つの独立した読み取りを実行する:**\n   サブエージェントが使える環境では、2つのサブエージェントを並列で起動し、それぞれ独立に画像を読み取る。\n   各サブエージェントには以下の「基本ルール」と「出力フォーマット」をプロンプトとして渡し、画像ファイルパスを指定する。\n\n2. **結果照合:** 両方の読み取り結果から主要フィールド（金額等）を比較する。\n\n3. **一致の場合:** そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告する。\n\n4. **不一致の場合:** ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:\n   - 差異のあるフィールドを明示する\n   - A を採用 / B を採用 / 手動入力 の3択を提示する\n\n### フォールバック（サブエージェント非対応の場合）\n\nサブエージェントが利用できない環境では、以下の手順で読み取る:\n\n1. 画像ファイルを直接 Read ツールで読み取る\n2. 以下の「基本ルール」と「出力フォーマット」に従ってデータを抽出する\n3. 抽出結果をユーザーに提示し、**必ず目視確認を依頼する**\n\n⚠ デュアル検証が利用できないため、必ずユーザーに目視確認を依頼してください。\n\n## 基本ルール\n\n- 画像ファイルは Read ツールで読み取る（Claude Vision が自動的に画像を認識する）\n- 金額は必ず int（円単位の整数）で返す。カンマや「円」は除去する\n- 日付は YYYY-MM-DD 形式で返す\n- 和暦は西暦に変換する（令和7年 → 2025、令和6年 → 2024、平成31年 → 2019）\n- 読み取れないフィールドは UNKNOWN（文字列）または 0（金額）とする\n\n## 対象書類\n\n- 生命保険料控除証明書\n- 地震保険料控除証明書\n- 社会保険料（国民年金保険料）控除証明書\n- 小規模企業共済等掛金払込証明書（iDeCo含む）\n\n## 出力フォーマット\n\nJSON オブジェクトとして返す。金額は必ず int（円単位の整数）とする。\n\n### 生命保険料控除証明書\n\n```json\n{\n  \"certificate_type\": \"life_insurance\",\n  \"policy_type\": \"新制度 or 旧制度\",\n  \"category\": \"一般 or 介護医療 or 個人年金\",\n  \"company_name\": \"保険会社名\",\n  \"policy_number\": \"証券番号\",\n  \"annual_premium\": 120000,\n  \"dividend\": 0\n}\n```\n\n### 地震保険料控除証明書\n\n```json\n{\n  \"certificate_type\": \"earthquake_insurance\",\n  \"company_name\": \"保険会社名\",\n  \"policy_number\": \"証券番号\",\n  \"annual_premium\": 50000,\n  \"is_old_long_term\": false\n}\n```\n\n### 社会保険料控除証明書\n\n```json\n{\n  \"certificate_type\": \"social_insurance\",\n  \"insurance_type\": \"national_pension\",\n  \"annual_premium\": 200000,\n  \"period\": \"対象期間\"\n}\n```\n\n### 小規模企業共済等掛金払込証明書\n\n```json\n{\n  \"certificate_type\": \"small_business_mutual_aid\",\n  \"sub_type\": \"ideco or small_business or disability\",\n  \"annual_contribution\": 276000\n}\n```\n\n## 抽出のポイント\n\n- 書類の種別（生命保険料/地震保険料/社会保険料/小規模企業共済等）を最初に判定する\n- 生命保険料控除は新旧制度の区別と、3区分（一般/介護医療/個人年金）の分類を確認する\n- 地震保険料控除は旧長期損害保険かどうかの区別を確認する\n- 金額は「証明額」「申告額」が異なる場合、「申告額」を使用する\n- 保険会社名・証券番号は確認用に抽出する","tags":["reading","deduction","cert","shinkoku","kazukinagata","agent-skills","bookkeeping","claude-code-plugin","claude-code-skills","japan","python","tax-filing"],"capabilities":["skill","source-kazukinagata","skill-reading-deduction-cert","topic-agent-skills","topic-bookkeeping","topic-claude-code-plugin","topic-claude-code-skills","topic-japan","topic-python","topic-tax-filing"],"categories":["shinkoku"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/kazukinagata/shinkoku/reading-deduction-cert","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add kazukinagata/shinkoku","source_repo":"https://github.com/kazukinagata/shinkoku","install_from":"skills.sh"}},"qualityScore":"0.619","qualityRationale":"deterministic score 0.62 from registry signals: · indexed on github topic:agent-skills · 339 github stars · SKILL.md body (2,302 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:53:49.502Z","embedding":null,"createdAt":"2026-04-18T22:02:47.571Z","updatedAt":"2026-05-02T18:53:49.502Z","lastSeenAt":"2026-05-02T18:53:49.502Z","tsv":"'0':154,199 '1':28,72,108 '120000':197 '2':38,83,112 '200000':232 '2019':149 '2024':147 '2025':145 '276000':253 '2つのサブエージェントを並列で起動し':75 '2つの独立した読み取りで結果が一致しました':91 '2つの独立した読み取りを実行する':73 '3':44,88,118 '3区分':262 '4':93 '50000':214 'aid':242 'annual':195,212,230,251 'b':100 'busi':240,248 'categori':183 'cert':4 'certif':174,202,222,237 'claud':127 'compani':189,206 'contribut':252 'dd':141 'deduct':3 'dir':60 'disabl':250 'dividend':198 'earthquak':204 'extract':32 'extract-text':31 'fals':219 'file':35,56 'file-path':34,55 'ideco':245 'ideco含む':164 'imag':54 'insur':177,205,225,226 'int':131,169 'json':166,173,201,221,236 'life':176 'long':217 'mm':140 'mutual':241 'name':190,207 'nation':228 'number':193,210 'ocr':26 'old':216 'output':59 'output-dir':58 'path':36,57 'pdf':19,22,23,30,47,51 'pension':229 'period':233 'png':62 'polici':178,192,209 'premium':196,213,231 'read':2,110,125 'reading-deduction-cert':1 'shinkoku':29,50 'skill' 'skill-reading-deduction-cert' 'small':239,247 'social':224 'source-kazukinagata' 'sub':243 'term':218 'text':33 'to-imag':52 'topic-agent-skills' 'topic-bookkeeping' 'topic-claude-code-plugin' 'topic-claude-code-skills' 'topic-japan' 'topic-python' 'topic-tax-filing' 'type':175,179,203,223,227,238,244 'unknown':151 'vision':128 'yyyi':139 'yyyy-mm-dd':138 'が含まれていれば':42 'が異なる場合':271 'が自動的に画像を認識する':129 'そのまま採用':90 'それぞれ独立に画像を読み取る':76 'で':61 'で返す':133 'と':79,115 'とする':156,171 'と報告する':92 'に変換し':63 'に従ってデータを抽出する':117 'の3択を提示する':103 'の分類を確認する':266 'の前にテキスト抽出を試みる':27 'の場合':24 'の場合は':49 'の画像を読み取り':17 'の画像を読み取り構造化データを返す':8 'は除去する':136 'または':153 'をプロンプトとして渡し':81 'を使用する':273 'を実行する':37 'を採用':99,101 'を最初に判定する':260 'を比較する':87 'オブジェクトとして返す':167 'カンマや':134 'サブエージェントが使える環境では':74 'サブエージェントが利用できない環境では':106 'サブエージェント非対応の場合':105 'スキャン':46 'ツールで読み取る':111,126 'テキストから構造化データを生成する':43 'テキストが不十分':45 'デュアル検証':67 'デュアル検証が利用できないため':121 'ファイルが':21 'ファイルの場合':20 'フォールバック':104 'ユーザーに元画像パスと両方の結果を提示し':95 '一致の場合':89 '一般':184,263 '不一致の場合':94 '両方の読み取り結果から主要フィールド':85 '並列2コンテキスト':68 '介護医療':186,264 '他のスキルから呼び出されるほか':9 '令和6年':146 '令和7年':144 '以下の':113 '以下の手順で読み取る':107 '以下の画像読み取りフローに進む':64 '保険会社名':191,208,274 '保険料額':40 '個人年金':188,265 '円':135 '円単位の整数':132,170 '出力フォーマット':80,116,165 '各サブエージェントには以下の':77 '同じ画像を2つの独立したコンテキストで並列に読み取り':70 '和暦は西暦に変換する':143 '国民年金保険料':161 '地震保険料':257 '地震保険料控除は旧長期損害保険かどうかの区別を確認する':267 '地震保険料控除証明書':15,159,200 '地震保険料等':7 '基本ルール':78,114,123 '対象書類':157 '対象期間':234 '小規模企業共済等':259 '小規模企業共済等掛金払込証明書':163,235 '差異のあるフィールドを明示する':97 '平成31年':148 '形式で返す':142 '必ずユーザーに目視確認を依頼してください':122 '必ず目視確認を依頼する':120 '手動入力':102 '抽出のポイント':254 '抽出テキストに必要な情報':39 '抽出結果をユーザーに提示し':119 '控除証明書':5,11,13,162 '推奨':66 '文字列':152 '新制度':180 '日付は':137 '旧制度':182 '書類の種別':255 '構造化データとして返すスキル':18 '正しい方を選択してもらう':96 '生命保険料':6,256 '生命保険料控除は新旧制度の区別と':261 '生命保険料控除証明書':14,158,172 '申告額':270,272 '画像':25 '画像ファイルは':124 '画像ファイルを直接':109 '画像ファイルパスを指定する':82 '画像読み取り':12 '画像読み取り方法':65 '直接ユーザーが呼び出すことも可能':10 '社会保険料':160,258 '社会保険料控除証明書':220 '社会保険料控除証明書等':16 '等':48 '精度を高めるため':69 '結果を照合する':71 '結果照合':84 '証券番号':194,211 '証券番号は確認用に抽出する':275 '証明額':269 '証明額等':41 '読み取れないフィールドは':150 '金額':155 '金額は':268 '金額は必ず':130,168 '金額等':86","prices":[{"id":"0783426f-ecd3-42ed-8434-4a0ab66a0f68","listingId":"892d93c4-77d2-449d-8ebe-b45ec686b6ce","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"kazukinagata","category":"shinkoku","install_from":"skills.sh"},"createdAt":"2026-04-18T22:02:47.571Z"}],"sources":[{"listingId":"892d93c4-77d2-449d-8ebe-b45ec686b6ce","source":"github","sourceId":"kazukinagata/shinkoku/reading-deduction-cert","sourceUrl":"https://github.com/kazukinagata/shinkoku/tree/main/skills/reading-deduction-cert","isPrimary":false,"firstSeenAt":"2026-04-18T22:02:47.571Z","lastSeenAt":"2026-05-02T18:53:49.502Z"}],"details":{"listingId":"892d93c4-77d2-449d-8ebe-b45ec686b6ce","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"kazukinagata","slug":"reading-deduction-cert","github":{"repo":"kazukinagata/shinkoku","stars":339,"topics":["agent-skills","bookkeeping","claude-code-plugin","claude-code-skills","japan","python","tax-filing"],"license":"mit","html_url":"https://github.com/kazukinagata/shinkoku","pushed_at":"2026-03-21T04:08:44Z","description":"確定申告自動化 AI エージェントプラグイン — 帳簿管理から e-Tax 入力代行まで","skill_md_sha":"b3fafb8f1e5b8bc5bd1acd0c934868302fdb8f44","skill_md_path":"skills/reading-deduction-cert/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/kazukinagata/shinkoku/tree/main/skills/reading-deduction-cert"},"layout":"multi","source":"github","category":"shinkoku","frontmatter":{"name":"reading-deduction-cert","description":"控除証明書（生命保険料・地震保険料等）の画像を読み取り構造化データを返す。 他のスキルから呼び出されるほか、直接ユーザーが呼び出すことも可能。"},"skills_sh_url":"https://skills.sh/kazukinagata/shinkoku/reading-deduction-cert"},"updatedAt":"2026-05-02T18:53:49.502Z"}}