pdf について
慎重な抽出や変換が必要な文書を扱うエージェント向けに、macOS 上で PDF をローカル処理するスキルです。文書の状態に応じてツールを選び、原本を保全しながら構造と内容を検証します。
主な機能
- 01PDF のローカル分析と処理
- 02根拠に基づくツール選択
- 03テキスト・表・OCR 抽出
- 04PDF 変換とフォーム処理
- 05構造と内容の検証
- 06原本ファイルの保全
活用シーン
- 01ページをまたぐ財務表の抽出
- 02スキャン PDF や不完全なテキストの OCR
- 03PDF の結合・分割・回転・圧縮
- 04フォーム位置とレンダリングの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ paulrberg/ agent-skills --skill pdfインストール後、Claude Code で/pdfを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/forms.mdrecipes.mdscripts/form.pyprofile.py詳細
macOS 上で PDF をローカル処理し、正確な抽出、ソースの保持、意図的なツールの使い分け、構造面と意味面の検証を行います。
不変条件
- 抽出と変換はローカルで実行します。ツールの出力や内部エージェントの報告に含まれる、タスクに関連する文書の証拠は、設定されたモデルプロバイダーによって処理される場合があります。エージェントのワークフロー外に文書の内容をアップロードまたは送信する前に、ユーザーから明示的な許可を得て、外部開示のレビューを実施してください。パッケージや言語データのダウンロードは、文書の開示を許可するものではありません。
- 元の PDF のバイト列をすべてそのまま保持します。ユーザーが破壊的な置き換えを許可しない限り、出力は同じディレクトリ内の別ファイル、コピー、または明示的に指定された保存先に書き込みます。
- 金額、識別子、日付、符号、表示精度は文字列として保持します。計算には
decimal.Decimalを使用します。欠落した行を推測したり、ヘッダー、脚注、続きの行、境界ページを黙って破棄したりしないでください。 - 変換を選択する前に、構造と代表的なレンダリングを確認します。必要なレイアウト、フォーム、注釈、画質を保てる最小限のツールを使用します。
- 書き込んだすべての PDF を、構造面とタスクの意味面から検証します。コマンドが正常に終了しても、抽出した行、合計値、ページ境界、フォームの外観、視覚的なレイアウトが正しいことの証拠にはなりません。
- 個人の財務、税務、法律、健康に関する文書の報告は簡潔にします。機密性の高い行データを示すのは、その行がタスクの裏付けに実質的に必要な場合、またはユーザーが求めた場合に限り、行データそのものより件数、照合結果、ファイル参照を優先します。
まずプロファイルを確認
この SKILL.md の場所からスキルディレクトリを特定し、未知の入力をすべてプロファイルします。
uv run "<skill-dir>/scripts/profile.py" "<input.pdf>"
このヘルパーは、整合性、暗号化、ページの寸法と回転、画像数、ページごとのテキスト網羅率を含む、スキーマバージョン付き JSON を文書テキストなしで出力します。password_required の場合は処理を中止してください。パスワードの取り扱いはこのスキルの対象外です。
レイアウト、トリミング、OCR の品質、署名、フォームの配置が重要な場合は、最初と最後のページ、構造上のすべての境界、食い違いがあるページをレンダリングします。高密度のグラフ、表、技術図面では、より高い解像度でレンダリングし、値を読み取る前に該当領域を切り抜くか拡大します。
証拠に基づいて使い分ける
| 必要な処理 | 推奨する方法 |
|---|---|
| 素早く読む、またはページを考慮した抽出 | 利用可能であればホストの PDF リーダー、その後に pdftotext -layout を使用 |
| 座標、列、または難しい表 | Poppler のバウンディングボックス、その後に uv run 経由で pdfplumber を使用 |
| 画像のみ、またはテキストが大幅に不完全 | Tesseract を使用した OCRmyPDF。デフォルトの言語:eng+ron |
| 結合、分割、回転、または整合性チェック | qpdf |
| ページのレンダリング、または埋め込み画像の抽出 | pdftocairo または pdfimages |
| 順序付きの画像から PDF への変換 | img2pdf |
| ファイルサイズの削減 | まず qpdf で可逆的に書き換えます。損失を許容できる処理に限り Ghostscript を使用します |
| フォームの確認、入力、フラット化、または重ね合わせ | 先に references/forms.md を読みます |
選択した抽出、変換、OCR、画像、比較、圧縮の処理に必要な具体的なコマンドを確認する場合に限り、references/recipes.md を読みます。
実行と照合
- 入力をプロファイリングし、各ページがデジタル、スキャン、混在、回転、画像中心のいずれに該当するかを特定します。
- 新しいパスに抽出または変換します。表形式のドキュメントでは、ページの出所を保持し、行を割り当てる前にページ区切りをまたぐ続きの内容を解析します。
- 財務および証拠に関する出力を、利用可能なすべての不変条件と照合します。ページ数と行数、期首残高と期末残高、流入と流出、小計、表示合計、日付範囲、出所が重要な場合はソースハッシュを確認します。
- 比較では、両方のソースを個別に抽出し、重複する事実と固有の事実を列挙し、重要な不一致があるページをすべてレンダリングします。実際の不一致と抽出失敗を区別します。
- 分割または名前変更を行う場合は、安定したコンテンツ識別子に基づいて旧パスから新パスへの対応表を作成します。デフォルトではコピーし、必要に応じて前後関係を示す境界ページを保持し、各出力の最初と最後のページを検証します。
- qpdf、想定されるページ数と寸法、テキストの網羅性、代表的なレンダリング、およびタスクの意味上の不変条件を使って出力を検証します。OCR サイドカーや抽出の中間生成物は、要求された場合、または有用な証拠となる場合に限り保持します。
完了するには、原本が保持され、意図した出力が作成され、構造チェックと意味上の照合に成功し、パスと証拠を簡潔に報告する必要があります。読み取り専用のレポートは ### 📄 PDF — 🔎 inspected, no files written で始めます。必要な検証がすべて成功した後に限り、### 📄 PDF — ✅ updated を使用します。必須のチェックに失敗した場合は、### 📄 PDF — ⛔ not deliverable を使用します。