From shinkoku
Extracts structured JSON from Japanese deduction certificate images/PDFs (life/earthquake insurance, social insurance) using OCR, PDF text extraction, and dual verification for accuracy.
npx claudepluginhub kazukinagata/shinkoku --plugin shinkokuThis skill uses the workspace's default tool permissions.
控除証明書(生命保険料控除証明書、地震保険料控除証明書、社会保険料控除証明書等)の画像を読み取り、構造化データとして返すスキル。
Extracts structured financial data from Japanese withholding tax slip images or PDFs using OCR, dual verification, and text extraction for accuracy.
Parses financial statement PDFs (checking, savings, credit card, brokerage, 401k, HSA, mortgage, tax forms) into normalized JSON with institution, account mask, period, balances, transactions or holdings, and confidence score.
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Share bugs, ideas, or general feedback.
控除証明書(生命保険料控除証明書、地震保険料控除証明書、社会保険料控除証明書等)の画像を読み取り、構造化データとして返すスキル。
ファイルが 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つの独立した読み取りで結果が一致しました」と報告する。
不一致の場合: ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:
サブエージェントが利用できない環境では、以下の手順で読み取る:
⚠ デュアル検証が利用できないため、必ずユーザーに目視確認を依頼してください。
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
}