reading-invoice

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

By kazukinagata · 378 installs

npx skills add kazukinagata/shinkoku --skill reading-invoice

Source repository · Upstream listing

請求書 画像読み取り 請求書の画像を読み取り、構造化データとして返すスキル。 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(金額)とする 複数ファイルを渡された場合は全て順に処理してまとめて返す 出力フォーマット 画像を読み取り、以下の形式で返す: 抽出のポイント 請求金額の合計(税込)を最優先で抽出する 消費税額を確認する(10% と 8% 軽減税率の区分があれば区別する) インボイス番号(T+13桁の適格請求書発行事業者登録番号)の有無を確認する 請求書番号がある場合は抽出する 請求元(vendor)の名称を抽出する 日付は請求日を使用する(発行日と請求日が異なる場合は請求日を優先) 明細行は読み取れる範囲で抽出する(不明な場合は items を空にする) 複数ファイルの処理 複数のファイルパスが指示された場合: 1. Glob ツールでファイル一覧を取得する(パターンが指示された場合) 2. 各ファイルを Read ツールで順に読み取る 3. 全ファイルの結果をまとめて返す(各結果の前にファイル名を記載する)