pdf (Anthropic)
Lit, modifie, fusionne, découpe, applique un filigrane et OCRise des PDF, et remplit ou crée des formulaires.
avis du skill pdf : aucun gain sur nos tâches, deux fois le coût
Codex CLI · gpt-6-astra
20.6 / 30
Gain par rapport à sans skill : +0.00 · Selon les cas · 18 exécutions
Selon les cas : le total 20.6/30 est inférieur à 22 et le gain +0.00 est inférieur à +1.0. Pour être recommandé, il faut un total de 22/30, une qualité de sortie de 3.5 et un gain de +1.0.
SOTA
RéussiTesté avec Codex.
Couvre Codex, Claude Code
Codex CLI 0.166 (palier SOTA) : 18 exécutions notées. Une réussite ici couvre aussi Claude Code selon notre règle de palier ; elle ne dit rien du second palier.
Scores
Chaque dimension va de 0 à 5 et les six forment le total sur 30. 5 est la meilleure note dans chaque dimension. Coût 5 signifie bon marché et rapide. Installation 5 signifie facile.
- Fiabilité du déclenchement
- 5.0
- Gain par rapport à sans skill
- 2.0
- Qualité de sortie
- 4.6
- Coût en tokens et en temps
- 2.0
- Installation et portabilité
- 3.0
- Sécurité
- 4.0
Revue de sécurité
SûrScan statique : 0 CRITIQUE / 0 ÉLEVÉ / 0 MOYEN. Revue manuelle : sûr à exécuter dans un bac à sable sans réseau (aucun problème détecté). Un scan propre ne prouve pas qu'un skill est sûr.
Installer
npx skills@latest add anthropics/skills --skill pdf
Commit épinglé: ca45fc496a3436251f191354091d557da31c15b5
Testé: 2026-11-02
Ce que nous avons testé
- Extraction de tableau. Extrayez un tableau de 12 lignes réparti sur deux pages (en-tête répété page deux) dans sales.csv et indiquez le chiffre d'affaires total.
- Fusionner, pivoter, découper. Combinez deux PDF, faites pivoter uniquement la dernière page de 90 degrés, enregistrez la page un sous cover.pdf, laissez les originaux intacts.
- Remplir un formulaire. Renseignez trois champs et cochez une case dans un PDF remplissable, en gardant les champs modifiables.
Points forts
- Le skill a été détecté sans être nommé : lu dans 6/6 exécutions avec skill (le déclenchement automatique fonctionne sur toute tâche PDF).
- Qualité absolue élevée avec le skill : 4.58 sur 5.
Points faibles
- Aucun gain mesurable par rapport à sans skill (+0.00, dans le bruit).
- Un prompt d'une phrase obtient 5.0, contre 4.58 avec le skill (-0.42).
- Consomme 1.98 fois plus de tokens que sans skill.
- Réserve de test : le bras « prompt d'une phrase » a été exécuté plus tard sur une machine Windows avec pypdf intégré ; sa comparaison avec le contrôle et le bras avec skill est donc biaisée par l'environnement.
- n=2 par tâche et par bras ; les écarts inférieurs à environ 1 point sont du bruit.
Avis
Codex CLI 0.166 (gpt-6-astra, low reasoning), un projet temporaire neuf à chaque exécution, skill installé ou absent, deux exécutions par groupe, réseau coupé. Les entrées étaient des PDF que nous avions générés, ce qui nous permettait de vérifier les résultats par code : les prompts ne mentionnaient jamais le skill.
Comparaison à trois bras
| Bras | Score moyen (0-5) | Tokens par exécution |
|---|---|---|
| Sans le skill | 4.58 | 116k |
| Prompt d'une phrase | 5.0 | 69k |
| Avec le skill | 4.58 | 228k |
Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 20.6 / 30, verdict Selon les cas.
Divulgation : le bras « prompt d'une phrase » a été exécuté plus tard sur une machine Windows avec pypdf intégré ; sa comparaison avec le contrôle et le bras avec skill est donc biaisée par l'environnement.
Verdict : selon les cas (20.3 / 30). Source : anthropics/skills, skills/pdf, épinglé au commit ca45fc4. Installation : npx skills@latest add anthropics/skills --skill pdf. Licence : propriétaire (l'usage est régi par votre accord avec Anthropic ; ce n'est pas de l'open source).
Présentation
Un guide pour le travail sur PDF : lire et extraire texte et tableaux, fusionner, découper, faire pivoter, ajouter un filigrane, créer de nouveaux PDF, remplir des formulaires, chiffrer, extraire des images, OCRiser des pages scannées. SKILL.md couvre les bases avec des extraits Python (pypdf, pdfplumber, reportlab) et des outils en ligne de commande (pdftotext, qpdf). Deux autres fichiers (forms.md, reference.md) et huit scripts utilitaires traitent les formulaires et les zones de délimitation.
Notre méthode de test
Codex CLI 0.166 (gpt-6-astra, raisonnement faible), un projet temporaire neuf par exécution, skill installé ou absent, deux exécutions par groupe, réseau coupé. Les entrées étaient des PDF que nous avions générés, afin de pouvoir vérifier les résultats par code :
- Extraction de tableau. Extrayez dans
sales.csvun tableau de 12 lignes qui s'étend sur deux pages (en-tête répété en page deux) et indiquez le chiffre d'affaires total. - Fusionner, pivoter, découper. Combinez deux PDF, faites pivoter uniquement la dernière page de 90 degrés, enregistrez la première page sous
cover.pdf, laissez les originaux intacts. - Remplir un formulaire. Renseignez trois champs et cochez une case dans un PDF remplissable, en gardant les champs modifiables.
Les prompts ne mentionnaient jamais le skill.
Ce qui s'est passé
Il se déclenche de façon fiable. L'agent a lu SKILL.md dans les six exécutions avec le skill, sans qu'on le lui demande.
Cela n'a rien changé au résultat. La tâche 1 (2 vérifications sur 2) et la tâche 2 (6 sur 6) ont réussi dans les quatre exécutions de chaque tâche, avec et sans le skill. La tâche 3 a échoué une fois dans chaque groupe, donc les deux groupes ont réussi 5 exécutions sur 6 au total.
Les deux échecs étaient identiques, et les deux agents ont affirmé avoir réussi. La case était enregistrée avec la valeur texte Yes tandis que son état visuel restait /Off. Un lecteur PDF l'affiche décochée, et les messages finaux de ces deux exécutions disaient que la case était cochée. Un échec venait d'une exécution témoin, l'autre d'une exécution avec le skill. L'agent avec le skill avait lu FORMS.md, qui lui demande d'inspecter les types de champs et d'utiliser le checked_value de chaque case, mais il n'est jamais allé jusque-là (paragraphe suivant), donc le skill n'a pas empêché l'erreur.
Les scripts ne tournaient pas comme documenté. FORMS.md indique d'exécuter python scripts/check_fillable_fields .... macOS n'a pas python, seulement python3, et l'environnement d'origine ne dispose pas de pypdf. Les deux exécutions avec le skill ont alors divergé. L'une a fouillé le disque, trouvé pypdf dans le cache uv de l'utilisateur, exécuté les scripts du skill via PYTHONPATH et rempli correctement le formulaire. L'autre a tenté pip install (échec hors ligne), puis écrit un programme Swift/PDFKit et s'est trompée sur la case. Les exécutions témoins ont improvisé de la même façon (Swift pour l'une, pypdf pour l'autre). L'outillage du skill n'a donc aidé que dans la seule exécution qui a réussi à emprunter une bibliothèque hors du dossier du projet.
Il double le coût. Les exécutions avec le skill utilisaient en moyenne 228,000 tokens contre 116,000 sans (1.98x) et duraient 72 secondes contre 46. L'agent lit le skill, puis forms.md, puis essaie d'abord les scripts. Sur la tâche de formulaire, l'exécution avec le skill qui a réussi a nécessité 35 commandes et 434,000 tokens ; les exécutions témoins en nécessitaient 16 et environ 185,000.
Notes de portabilité
SKILL.mdrenvoie àFORMS.mdetREFERENCE.md, alors que les fichiers sontforms.mdetreference.md. Cela fonctionnait dans nos exécutions parce que les systèmes de fichiers macOS ignorent la casse ; sous Linux, ces liens seraient cassés.- Il suppose que
pythonet plusieurs bibliothèques Python sont installés. Une machine propre n'a généralement ni l'un ni les autres. - Le guide mentionne
pip install pytesseract pdf2imagepour l'OCR, ce qui nécessite un accès réseau.
Revue de sécurité
Nous avons lancé le scanner puis lu SKILL.md, forms.md, reference.md et les huit scripts. Les scripts n'importent que des modules de la bibliothèque standard plus pypdf, pdfplumber, pdf2image et PIL ; ils lisent un fichier d'entrée et écrivent des fichiers locaux. Aucun appel de sous-processus, socket, lecture d'environnement, eval ni téléchargement. Aucune instruction pour dissimuler quoi que ce soit ou toucher aux identifiants. Le constat à signaler est la licence : elle est propriétaire, le site ne devrait donc pas la présenter comme open source. Voir security.md.
Scores
| Dimension | Score | Pourquoi |
|---|---|---|
| Qualité du résultat | 4.33 | 5 exécutions sur 6 entièrement correctes dans les deux groupes |
| Gain vs sans skill | 2.0 | Différence de 0.0 |
| Déclenchement | 5.0 | Lu dans 6 exécutions sur 6 sans invite |
| Instructions et portabilité | 3 |
|
| Efficacité | 2 | 1.98x de tokens, environ 1.6x de temps |
| Sécurité et hygiène | 4 | Scripts propres ; licence propriétaire |
À qui cela s'adresse
Les agents modernes fusionnent, font pivoter, découpent et extraient déjà les tableaux de PDF propres sans aide, comme l'a montré notre groupe témoin : pour ces tâches, le skill ajoute surtout des tokens. Il pourrait valoir son coût sur des cas plus difficiles que nous n'avons pas testés : documents scannés et OCR, fichiers protégés par mot de passe, formulaires sans champs remplissables (le workflow des zones de délimitation), ou un environnement où les bibliothèques utilitaires sont installées pour que les scripts fonctionnent. Si vous l'installez, assurez-vous d'abord que python et pypdf existent, sinon les consignes ne s'exécuteront pas comme écrit.
Limites de ce test
Deux exécutions par groupe, trois tâches, un seul modèle à faible effort de raisonnement, sandbox hors ligne sans bibliothèques PDF Python dans l'environnement d'origine. Les exécutions partageaient le dossier temporaire système, et une exécution avec le skill a réutilisé un environnement virtuel qu'une autre y avait créé, l'isolation entre exécutions n'était donc pas parfaite. Une machine pleinement équipée pourrait changer le résultat en faveur du skill. Le niveau Codex compte pour Codex et Claude Code selon la règle du site.
Mise à jour (2 nov. 2026) : ajout du groupe « une phrase »
Troisième groupe : pas de skill, avec une phrase (« Utilise les bons outils PDF : extrais les tableaux page par page en gardant leurs lignes d'en-tête, fusionne/pivote/découpe les pages sans perdre de contenu, remplis les vrais champs de formulaire par leur nom et laisse le fichier d'origine inchangé, puis vérifie la sortie en la rouvrant. »). 6 exécutions, vérifications basées sur des règles, sur une machine Windows avec un ensemble pypdf/pdfplumber embarqué disponible hors ligne.
| Groupe | Score moyen (0-5) | Tokens par exécution |
|---|---|---|
| Sans skill | 4.58 | 116k |
| Une phrase | 5.00 | 69k |
| Skill installé | 4.58 | 228k |
Les six exécutions avec la phrase unique ont passé toutes les vérifications, y compris le remplissage de formulaire avec case à cocher qui avait échoué une fois dans le groupe témoin et une fois dans le groupe avec le skill. Le skill coûtait 3.3x les tokens de la phrase unique. Réserve : les exécutions avec la phrase unique tournaient sur une autre machine (Windows) que les deux premiers groupes (macOS) et disposaient des bibliothèques PDF, contrairement aux exécutions Mac ; cette comparaison est donc biaisée par l'environnement. Elle suggère néanmoins que le surcoût de 2x en tokens du skill n'apporte rien sur ces trois tâches.
Transcription
Journal d'exécution : pdf (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Colonnes : tâche, groupe-exécution, score (0-5), tokens, secondes, vérifications réussies, fichiers de la skill ouverts par l'agent. t1-table-extract control-1: score 5.0, tokens 60651, s 25.2, vérifications 2/2, rien ouvert t1-table-extract control-2: score 5.0, tokens 60785, s 24.8, vérifications 2/2, rien ouvert t1-table-extract oneliner-1: score 5.0, tokens 90438, s 33.9, vérifications 2/2, rien ouvert t1-table-extract oneliner-2: score 5.0, tokens 91726, s 41.4, vérifications 2/2, rien ouvert t1-table-extract treatment-1: score 5.0, tokens 123259, s 43.4, vérifications 2/2, ouvert pdf t1-table-extract treatment-2: score 5.0, tokens 128381, s 38.7, vérifications 2/2, ouvert pdf t2-merge-rotate control-1: score 5.0, tokens 91967, s 56.9, vérifications 6/6, rien ouvert t2-merge-rotate control-2: score 5.0, tokens 108232, s 45.9, vérifications 6/6, rien ouvert t2-merge-rotate oneliner-1: score 5.0, tokens 49185, s 27.4, vérifications 6/6, rien ouvert
18 exécutions, 3 artefacts
Exemple de sortie
SOTA · With the skill: sales.csv (t1-table-extract, run 1, Codex)
Product,Region,Units,Revenue Aurora Lamp,EMEA,1240,48360 Basalt Desk,NA,310,93000 Cedar Shelf,NA,875,52500 Delta Chair,APAC,642,70620 Ember Kettle,EMEA,2210,66300 Fjord Rug,NA,198,39600 Grove Planter,APAC,1534,30680 Harbor Clock,EMEA,420,25200 Iris Vase,NA,905,27150 Juniper Stool,APAC,377,20735 Kestrel Mirror,EMEA,260,41600 Lumen Sconce,NA,733,43980