首页/财务与会计/reading-withholding
R

reading-withholding

by @kazukinagatav1.0.0
0.0(0)

源泉徴収票の画像を読み取り構造化データを返す。 他のスキルから呼び出されるほか、直接ユーザーが呼び出すことも可能。

Tax WithholdingPayroll TaxesFinancial ComplianceIncome TaxGitHub
安装方式
npx skills add kazukinagata/shinkoku --skill reading-withholding
compare_arrows

Before / After 效果对比

1
使用前

财务人员需要手动从源泉征收票的图片中识别并录入各项收入、税额等关键信息。这个过程耗时、易出错,尤其是在处理大量文件时效率低下。

使用后

通过 `reading-withholding` 技能,系统可以自动读取源泉征收票图片,并提取结构化数据。对于 PDF 文件,它会优先尝试文本提取,若不充分则进行图像 OCR,大大提高了数据处理的准确性和效率。

数据提取时间0%
使用前
0
使用后
0
数据录入错误率0%
使用前
0
使用后
0
处理文件数量0%
使用前
0
使用后
0

数据提取时间

0%

00

数据录入错误率

0%

00

处理文件数量

0%

00

description SKILL.md


name: reading-withholding description: > 源泉徴収票の画像を読み取り構造化データを返す。 他のスキルから呼び出されるほか、直接ユーザーが呼び出すことも可能。

源泉徴収票 画像読み取り

源泉徴収票の画像を読み取り、構造化データとして返すスキル。

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(金額)とする
  • 複数ファイルを渡された場合は全て順に処理してまとめて返す

出力フォーマット

画像を読み取り、以下の形式で返す:

---WITHHOLDING_DATA---
payer_name: 支払者名
payment_amount: 支払金額(int)
withheld_tax: 源泉徴収税額(int)
social_insurance: 社会保険料等の金額(int)
life_insurance_deduction: 生命保険料の控除額(int)
earthquake_insurance_deduction: 地震保険料の控除額(int)
housing_loan_deduction: 住宅借入金等特別控除の額(int)
life_insurance_detail:
  general_new: 一般の新保険料(int)
  general_old: 一般の旧保険料(int)
  medical_care: 介護医療保険料(int)
  annuity_new: 個人年金の新保険料(int)
  annuity_old: 個人年金の旧保険料(int)
---END---

抽出のポイント

  • 「支払金額」欄(給与収入の総額)を最優先で抽出する
  • 「源泉徴収税額」欄を正確に読み取る
  • 「社会保険料等の金額」欄を読み取る
  • 生命保険料控除は新旧制度・3区分(一般/介護医療/個人年金)の内訳を確認する
  • 地震保険料控除・住宅ローン控除は記載がある場合のみ抽出する
  • 支払者の名称(会社名)を抽出する
  • 記載がない項目は 0 とする

複数ファイルの処理

複数のファイルパスが指示された場合:

  1. Glob ツールでファイル一覧を取得する(パターンが指示された場合)
  2. 各ファイルを Read ツールで順に読み取る
  3. 全ファイルの結果をまとめて返す(各結果の前にファイル名を記載する)
## file1.jpg
---WITHHOLDING_DATA---
...
---END---

## file2.jpg
---WITHHOLDING_DATA---
...
---END---

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量0
评分0.0 / 5.0
版本1.0.0
更新日期2026年3月17日
对比案例1 组

用户评分

0.0(0)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月17日
最后更新2026年3月17日