Nel README nascono gli argomenti Ufficio e Second brain (presenti in entrambi i gruppi, anche se vuoti): pdf, pptx e xlsx vanno sotto Ufficio, claude-obsidian, obsidian-skills e obsidian-wiki sotto Second brain. Conoscenza e note resta per graphify; ecc si affianca a superpowers. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
9.3 KiB
- Autore: Anthropic
- Repository: anthropics/skills, la raccolta di skill di esempio di Anthropic
- Sorgente: skills/pdf/SKILL.md, con le guide forms.md e reference.md e una cartella
scripts/ - Pagina su skills.sh: anthropics/skills/pdf
- Diffusione (ottobre 2026): circa 219.700 installazioni (su skills.sh dal 20 gennaio 2026); il repository ha circa 184.900 stelle e 21.900 fork su GitHub
- Controlli di sicurezza su skills.sh: Gen Agent Trust Hub e Socket superati; Snyk segnala un avviso (la pagina non spiega il motivo)
- Licenza: proprietaria (termini in
LICENSE.txt). Il README del repository precisa che le skill per i documenti (docx,pdf,pptx,xlsx) sono source-available, non open source, e che le skill del repository sono dimostrative: conviene provarle bene prima di affidarsi a loro.
A cosa serve
Dà all'agente un metodo per lavorare sui file PDF: leggerli, unirli e dividerli, compilarli, crearne di nuovi e ripulire quelli scansionati. Invece di improvvisare ogni volta con la libreria che gli viene in mente, sceglie lo strumento indicato per ciascun compito.
Cosa fa
Quando si attiva
Ogni volta che la richiesta riguarda un file PDF o la sua creazione:
- leggere o estrarre testo e tabelle, leggere i metadati;
- unire più PDF in uno, dividerne uno in più file, ruotare le pagine;
- aggiungere una filigrana;
- creare un PDF nuovo;
- compilare un modulo;
- proteggere con password o togliere la password;
- estrarre le immagini incorporate;
- fare l'OCR di un PDF scansionato per renderlo ricercabile.
Come lavora
L'agente sceglie lo strumento in base al compito:
| Compito | Strumento | Come |
|---|---|---|
| Unire | pypdf | aggiunge le pagine di ogni file a un unico file di uscita |
| Dividere | pypdf | scrive una pagina per file |
| Estrarre il testo | pdfplumber | testo pagina per pagina, con il layout |
| Estrarre le tabelle | pdfplumber | tabelle pagina per pagina; si possono convertire in pandas ed esportare in Excel |
| Creare PDF | reportlab | Canvas per impaginazioni semplici, Platypus per documenti di più pagine con testo che scorre |
| Unire da riga di comando | qpdf | opzione --empty --pages |
| OCR | pytesseract | prima converte le pagine in immagini con pdf2image |
| Compilare moduli | pdf-lib o pypdf | segue forms.md |
Esempio di unione, dalla guida:
from pypdf import PdfWriter, PdfReader
writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
reader = PdfReader(pdf_file)
for page in reader.pages:
writer.add_page(page)
with open("merged.pdf", "wb") as output:
writer.write(output)
Altre operazioni previste:
- Strumenti da riga di comando:
pdftotext(poppler-utils) per estrarre il testo, anche con il layout o solo un intervallo di pagine;qpdfper unire, dividere per intervallo, ruotare pagine e togliere una password;pdftkse è installato. - Filigrane: carica una pagina di filigrana e la sovrappone a ogni pagina.
- Immagini:
pdfimagesesporta le immagini incorporate. - Password: copia le pagine in un nuovo file e lo cifra con password utente e proprietario.
- Pedici e apici: nei PDF creati con reportlab non usa i caratteri Unicode per pedici e apici, perché i font integrati non li hanno e compaiono come quadrati neri; usa i marcatori
<sub>e<super>dentro iParagraph. - Casi avanzati:
reference.mdcopre pypdfium2, pdf-lib per JavaScript e la risoluzione dei problemi. Non l'ho letto per intero.
Compilare i moduli
Il flusso è in forms.md e dipende dal tipo di PDF. Il primo passo è controllare se il modulo ha campi compilabili (scripts/check_fillable_fields.py).
PDF con campi compilabili:
extract_form_field_info.pyelenca i campi (identificatore, pagina, posizione, tipo: testo, casella, gruppo di opzioni, scelta).convert_pdf_to_images.pycrea un'immagine per pagina, per capire a cosa serve ogni campo.- Si scrive
field_values.jsoncon i valori da inserire. fill_fillable_fields.pycompila il modulo; se segnala errori, si correggono e si rilancia.
PDF senza campi compilabili:
extract_form_structure.pyestrae etichette, linee, caselle e righe.- Due approcci: strutturale (preferito, se ci sono etichette di testo utili) o visivo (per le scansioni, con ingrandimenti fatti con ImageMagick); si possono combinare.
check_bounding_boxes.pyvalida i riquadri, perché riquadri sovrapposti o troppo piccoli rovinano il testo.fill_pdf_form_with_annotations.pyscrive il testo come annotazioni.- Si controlla il risultato rendendolo di nuovo in immagini.
Avvertenze della guida: i passi vanno fatti in ordine; identificatori e valori devono coincidere con quelli estratti; l'estrazione strutturale riconosce solo le caselle quadrate; i sistemi di coordinate dei campi compilabili e dell'approccio strutturale hanno origini diverse, e mescolarli sposta il testo; il risultato va sempre controllato a vista.
Da sapere
- Requisiti: librerie Python pypdf, pdfplumber, reportlab, pandas (per esportare le tabelle), pytesseract e pdf2image (per l'OCR); strumenti poppler-utils e qpdf, pdftk facoltativo; ImageMagick per l'approccio visivo dei moduli. Per l'OCR serve anche il programma Tesseract (installato a parte; la guida non lo spiega).
- Script eseguiti: per i moduli l'agente lancia gli script della cartella
scripts/(otto file Python). Non li ho letti uno per uno. - Nessun accesso esterno dichiarato: lavora sui file locali.
- Limite di fedeltà: estrazione e OCR non sono perfette su layout complessi o scansioni di bassa qualità; l'autore invita a verificare il risultato.
Installazione
Claude Code e Codex
npx skills add anthropics/skills --skill pdf -g -a codex -a claude-code
| Opzione | Significato |
|---|---|
--skill pdf |
installa solo questa skill del repository |
-g |
installazione globale (~/.claude/skills/, ~/.codex/skills/); senza, solo nel progetto corrente (.claude/skills/, .agents/skills/) |
-a <agente> |
agente di destinazione, ripetibile (claude-code, codex, ...) |
-y |
salta le domande di conferma |
--copy |
copia i file invece di creare collegamenti simbolici |
Non ho trovato il comando esatto sulla pagina di skills.sh: è la forma standard dello strumento skills, la stessa usata per le altre schede.
Alternativa solo per Claude Code, dal marketplace di Anthropic (installa tutte le skill per i documenti: docx, pdf, pptx, xlsx):
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
Dopo l'installazione riavvia la sessione. Claude Code la usa da solo quando la richiesta è pertinente, oppure puoi citarla ("usa la skill PDF per estrarre i campi del modulo percorso/file.pdf"). In Codex la richiami con $pdf o la vedi con /skills.
Gestione:
npx skills list -g # skill installate
npx skills update pdf # aggiornamento
npx skills remove pdf # rimozione
/plugin uninstall document-skills@anthropic-agent-skills # rimozione del plugin
App desktop di Claude e ChatGPT
Queste app richiedono di caricare la skill come ZIP. Preparalo così:
git clone --depth 1 https://github.com/anthropics/skills.git
cd skills/skills && zip -r ~/pdf.zip pdf
Lo ZIP deve contenere la cartella pdf/ con dentro SKILL.md (e gli altri file della cartella: forms.md, reference.md, scripts/).
Claude (desktop o web)
- Attiva l'esecuzione del codice in Settings → Capabilities.
- Vai in Customize → Skills → + → Create skill → Upload a skill e scegli lo ZIP.
- Attiva l'interruttore della skill.
ChatGPT (desktop o web)
- Vai in Skills nella barra laterale, poi Create → Upload from your computer, e scegli lo ZIP o la cartella.
- Attendi l'analisi di sicurezza di ChatGPT.
- Richiamala con
@nella chat.
Le skill personali caricate su desktop e web non si sincronizzano: vanno caricate su ciascuna.
Limite: nelle app di chat la skill gira in un ambiente isolato con esecuzione del codice. Funziona solo se lì sono disponibili le librerie e gli strumenti elencati sopra (non l'ho verificato), e legge solo i file che alleghi alla conversazione. Il README del repository dice che le skill di esempio sono già disponibili sui piani a pagamento di Claude.ai, ma non specifica se