pdf-extractlisted
Install: claude install-skill LPSlv/pdf-extract
# pdf-extract
Text extraction handles most PDFs on its own. This skill uses a fast local
engine for that, then spends vision calls **only** on what it provably missed —
figures, scanned pages, and tables it failed to structure.
## When NOT to use this
- Merging, splitting, form filling, encryption → `anthropics/skills@pdf`.
- A PDF you need one number from and already know the page of → just read it.
Requires `uv`. Nothing else; dependencies resolve on first run.
## 1. Convert
```bash
uv run <skill-dir>/convert.py FILE.pdf [MORE.pdf ...]
```
One JSON object per document, on stdout. Everything deterministic is now done:
text extracted, images written, artifact cached. Exit code is non-zero if any
document failed.
```json
{"status":"ok","artifact":"/home/…/<sha>-<tag>","cached":false,
"doc_md":"…/doc.md","pages_dir":"…/pages","manifest":"…/manifest.json",
"pending":[{"id":"p007-render","page":7,"kind":"page_render",
"reason":"dense_grid","path":"…/images/p007-render.png"}],
"dropped":6,"over_scale_guard":false,"scale_guard":15}
```
Check `status` first. `encrypted` and `unreadable` are terminal — report and
move on; the batch continues. Re-running the same PDF returns `cached: true`
instantly and costs nothing.
**If `over_scale_guard` is true**, tell the user how many calls it wants and get
agreement before continuing. An 84-page scan is 84 calls.
## 2. Look at each pending item
`pending` is empty → you are done, go to step 3.
Otherwise, for each en