英語版:
SKILL.en.md
doc — 文書処理 (PDF/DOCX/XLSX)
軽量スキル。独自コードはありません: references/doc-recipes.md のレシピに従い、ローカルCLI(pdftotext, tesseract, qpdf, pdftk, docling, libreoffice)にルーティングします。
入力タイプ別ルーティング表
file <f> でタイプを判別し、1ページを開いて確認します。
| 入力 + 要件 | 主なコマンド | 備考 |
|---|---|---|
| テキストレイヤーありPDF、テキスト抽出 | pdftotext -layout | §1 |
| スキャン/画像PDF、テキスト抽出 | OCR pdftoppm + tesseract | §1 |
| 複雑なPDF/DOCX(表、レイアウト)→ markdown/JSON | 専用スキル docling の呼び出し(--skill docling)、フォールバック docling convert --to md | §1 — PDF 5ページ超: --page-range、タイムアウト180 |
| XLSX → CSV/markdown | libreoffice ヘッドレス | §1 |
| PDFページの結合/分割/回転/抽出 | qpdf/pdftk + pdfinfo/pdftoppm | §2 |
| 両面印刷/ぼやけたファイル、簡易プローブ | inspect スキル(mediaskills) | uv run <inspect>/scripts/probe.py |
| 抽出結果の検証 | pdfinfo + pdftotext | §4 — ページ数が一致し、テキストが空でないこと |
ルール
- 入力言語の尊重 — ユーザーの言語と同じ言語で応答します。
- 出力は元ファイルの隣に配置:
<元のファイル名>.extract.md|.txt|.csv。元のファイルは上書きしません。 - スキャン画像からの抽出にはソースラベルを付与:
[ocr]と記録 — 観察されたコンテンツと混在させない。 - 引き渡し前に検証: PDFのページ数が十分であること(
pdfinfo)、抽出されたテキストがページ数と一致すること(pdftotext)を確認。不足/空の場合は再抽出。 - ローカルファースト: 処理コマンドはマシン上で実行。オフライン機能は、CLI、OCR/Doclingモデル、および必要なデータがインストールまたはキャッシュされているかどうかに依存します。初回のDocling使用ではモデルのダウンロードが必要になる場合があります。サードパーティスキルのダウンロードにもネットワークが必要です。モデル/ツールが不足している場合は、明確に報告するか、別のローカルレシピを選択してください — オフライン処理済みと断言しないこと。
- 出力完了後、書き込んだファイルの名前とパスを報告すること — 黙って終了しない。
サードパーティスキル(セッションごとにフェッチ)
- 専用スキル
docling(docling-project): CLI + Python SDK、PipelineOptions、OCR設定、DoclingDocument JSON/markdown — §1のdocling convertCLIよりも深い機能を提供。 - セッションごとにダウンロード:
./scripts/fetch-session.sh --skill docling→ 一時ディレクトリに展開、永続インストールは行わない。 - ネットワークなし/フェッチ不可: 既存のCLIレシピを使用。
docling convert --to mdは、必要なモデルがキャッシュにあればオフラインで動作可能。なければ代替方法を選択するか、依存関係を明確に報告すること。
リファレンス
references/doc-recipes.md— §1 抽出(PDF/OCR/docling/DOCX/XLSX)、§2 PDF変換、§3 出力書き込み、§4paperスキル向けDOCX出力。