← ClaudeAtlas

pdflisted

Reads ANY PDF into the knowledge vault - a book, a handbook, a paper, lecture slides, a manual, a scan, a printout. Detects scanned pages without a text layer, extracts structured markdown, reads the scans by eye through a render, and hands the text to `notes` (or stops after extraction if only reading is wanted). Use when a PDF file or its path arrives, with or without words: "take notes on this PDF", "add it to my notes", "what does this say", "extract the text", "convert to markdown", "read this file", "summarise this handbook". Covers the case where other tools fail silently: a scan with no text at all, where PyMuPDF and Read return nothing. Splitting, merging, rotating, filling forms, encrypting a PDF is a different job (those CHANGE the file; this one READS it).
letsloose501/sqs-agent-memory · ★ 1 · Data & Documents · score 74
Install: claude install-skill letsloose501/sqs-agent-memory
# pdf: from a file to notes in the vault This skill **extracts the text and keeps the books**; the quality of the notes belongs to the `notes` skill, called at step B. The shape is the same as `video`: there a link becomes a transcript, here a file becomes markdown. ``` PDF --> [0] duplicate? --> [A] text --> [B] notes writes the notes --> [C] registry + cleanup ``` - Vault: `${user_config.vault_dir}` (written `<vault>` below) - Scripts: `${CLAUDE_PLUGIN_ROOT}/skills/pdf/scripts` (written `<scripts>` below): `scripts/extract.py` (step A), `scripts/check_done.py` (step C) It works on **any** PDF: if the file opens, the text comes out. No need to decide in advance whether it is a "suitable" PDF. To modify a PDF (split, merge, rotate, fill a form, encrypt), use a PDF-editing skill instead. ## Step 0: check for a duplicate The registry: `<vault>/PDF/Processed.md` (created on the first run). Grep it by file name and by the title inside the PDF, which often differ. Already there: say so and stop. ## Step A: extract the text ```bash uv run --script "<scripts>/extract.py" "path/to/file.pdf" --out-dir "<vault>/PDF" ``` **Through `uv run --script`, never bare `python`.** The dependencies are declared in the script header (PEP 723) and uv keeps an environment for them in its cache. The script climbs three tiers and writes `<vault>/PDF/<title>.md`: | Tier | What it does | When | |---|---|---| | 1 | `detect_pdf`: type, page count | always, ~20 ms | | 2 | `extract_pages_markdo