reading-withholding by kazukinagata/shinkoku
npx skills add https://github.com/kazukinagata/shinkoku --skill reading-withholding读取源泉徴収票(工资所得税预扣单)图像,并返回结构化数据的技能。
如果文件是 PDF(.pdf),在图像 OCR 之前会先尝试文本提取。
shinkoku pdf extract-text --file-path <path>shinkoku pdf to-image --file-path <path> --output-dir <dir> 转换为 PNG,然后进入下面的图像读取流程为了提高准确性,使用两个独立的上下文并行读取同一张图像,并对结果进行核对。
执行两个独立的读取: 在可以使用子代理的环境中,并行启动两个子代理,让它们各自独立地读取图像。向每个子代理传递以下「基本规则」和「输出格式」作为提示,并指定图像文件路径。
结果核对: 比较两个读取结果中的主要字段(如金额等)。
如果一致: 直接采用。报告“两个独立的读取结果一致”。
如果不一致: 向用户展示原始图像路径和两个结果,请用户选择正确的版本:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在无法使用子代理的环境中,按以下步骤读取:
⚠ 由于无法使用双重验证,务必请求用户进行目视确认。
读取图像后,按以下格式返回:
---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---
当指示了多个文件路径时:
## file1.jpg
---WITHHOLDING_DATA---
...
---END---
## file2.jpg
---WITHHOLDING_DATA---
...
---END---
Weekly Installs
229
Repository
GitHub Stars
323
First Seen
Feb 22, 2026
Security Audits
Installed on
codex160
cursor156
opencode154
github-copilot153
gemini-cli150
amp150
源泉徴収票の画像を読み取り、構造化データとして返すスキル。
ファイルが PDF(.pdf)の場合、画像 OCR の前にテキスト抽出を試みる。
shinkoku pdf extract-text --file-path <path> を実行するshinkoku pdf to-image --file-path <path> --output-dir <dir> で PNG に変換し、以下の画像読み取りフローに進む精度を高めるため、同じ画像を2つの独立したコンテキストで並列に読み取り、結果を照合する。
2つの独立した読み取りを実行する: サブエージェントが使える環境では、2つのサブエージェントを並列で起動し、それぞれ独立に画像を読み取る。 各サブエージェントには以下の「基本ルール」と「出力フォーマット」をプロンプトとして渡し、画像ファイルパスを指定する。
結果照合: 両方の読み取り結果から主要フィールド(金額等)を比較する。
一致の場合: そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告する。
不一致の場合: ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
サブエージェントが利用できない環境では、以下の手順で読み取る:
⚠ デュアル検証が利用できないため、必ずユーザーに目視確認を依頼してください。
画像を読み取り、以下の形式で返す:
---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---
複数のファイルパスが指示された場合:
## file1.jpg
---WITHHOLDING_DATA---
...
---END---
## file2.jpg
---WITHHOLDING_DATA---
...
---END---
Weekly Installs
229
Repository
GitHub Stars
323
First Seen
Feb 22, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex160
cursor156
opencode154
github-copilot153
gemini-cli150
amp150
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
27,400 周安装
YouTube 全功能工具包:转录、搜索、频道分析 API | TranscriptAPI.com 集成
326 周安装
GrepAI Ollama 本地安装配置教程 - 私有化代码搜索嵌入模型设置指南
334 周安装
智能代码探索工具smart-explore:AST解析结构化代码搜索与导航
573 周安装
Firebase应用托管基础教程:部署Next.js、Angular全栈Web应用
340 周安装
prompt-lookup AI提示词搜索与优化工具 | prompts.chat MCP服务器 | 提升AI提示词质量
326 周安装
AI智能体构建指南:工具调用、记忆与多步推理工作流设计
394 周安装