CtrlK
BlogDocsLog inGet started
Tessl Logo

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

92

1.31x
Quality

86%

Does it follow best practices?

Impact

95%

1.31x

Average score across 8 eval scenarios

SecuritybySnyk

High

Do not use without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

72%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong cookbook-style body: lean, fully executable code across all major PDF tasks with a genuinely valuable ReportLab subscript/superscript warning. Its weaknesses are the complete absence of validation checkpoints for batch operations (merge/split) and a broken disclosure structure — the referenced REFERENCE.md and FORMS.md are missing from the bundle while the existing scripts/ directory is never mentioned in the body.

Suggestions

Add verification steps after batch operations — e.g., after merging, check that the output page count equals the sum of inputs (`assert len(PdfReader("merged.pdf").pages) == expected`), and after splitting, confirm one output file per input page.

Fix the reference structure: either include REFERENCE.md and FORMS.md in the bundle, or inline their essential content — as written, two of the three 'Next Steps' pointers lead to files that do not exist.

Since scripts/ contains eight form-filling utilities (fill_fillable_fields.py, extract_form_structure.py, check_fillable_fields.py, etc.) that are currently unreachable from SKILL.md, add a short section listing them with one-line purposes so they are discoverable when FORMS.md is absent.

DimensionReasoningScore

Conciseness

The body is almost entirely executable code with minimal prose — no concept explanations, no library intros, no padding. It is not a 5 because of small redundancies: the 'Quick Start' reader example is duplicated by the pdfplumber 'Extract Text with Layout' section, and the 'Quick Reference' table repeats information already shown in the preceding sections.

4 / 5

Actionability

Every section is copy-paste-ready, executable code — pypdf merge/split/rotate/encrypt, pdfplumber text and table extraction (including a pandas-to-Excel pipeline), reportlab creation with a critical '<sub>/<super>' glyph warning, qpdf/pdftotext/pdftk commands, OCR, watermarking, and image extraction. The examples cover the common cases exactly as the anchor-5 example describes.

5 / 5

Workflow Clarity

Recipes are individually well-sequenced, but batch operations like multi-file merging and per-page splitting have no validation or verification checkpoints (e.g., checking the merged output's page count, confirming extraction produced non-empty text). Per the rubric, missing validation in batch operations caps this dimension at 3 even though each single recipe is clear — it is not a 4 because 'verify output' steps are entirely absent, not merely minor.

3 / 5

Progressive Disclosure

The body correctly keeps itself to overview-plus-core-recipes and points outward ('see REFERENCE.md', 'read FORMS.md and follow its instructions'), one level deep and clearly signaled. However, scored against the actual bundle: neither REFERENCE.md nor FORMS.md exists in the skill, and the eight form-filling scripts in scripts/ (fill_fillable_fields.py, extract_form_structure.py, etc.) are reachable only through the missing FORMS.md — so two of three navigation pointers are broken and the real bundle content is undiscoverable from SKILL.md. That falls to anchor 3 ('some structure... references present but' leading nowhere useful); it is above 2 because the inline content itself is well-organized and not a monolithic dump.

3 / 5

Total

15

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it enumerates concrete capabilities comprehensively, includes natural trigger terms with synonyms and the .pdf extension, and explicitly states both what it does and when to use it. Voice is the standard imperative 'Use this skill...' form consistent with the rubric's good examples rather than first/second person.

DimensionReasoningScore

Specificity

The description enumerates over ten concrete actions — 'reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs' — comprehensive coverage matching the anchor-5 example's breadth. It is not a 4 because there are no noticeable coverage gaps; it is not below because nothing is generic or padded.

5 / 5

Completeness

Both 'what' (the enumerated action list) and 'when' are explicit with concrete trigger phrases: 'Use this skill whenever the user wants to do anything with PDF files' and 'If the user mentions a .pdf file or asks to produce one, use this skill.' This mirrors the anchor-5 example; the 'when' clause is explicit and specific, not merely implied.

5 / 5

Trigger Term Quality

Natural user phrasing is comprehensively covered with synonyms and the file extension: 'PDF files', 'PDFs', '.pdf file', plus task words users would actually say (merge, split, rotate, fill forms, OCR, scanned). This matches the anchor-5 example ('PDF files, PDFs, forms, document extraction, .pdf'); no common variation is missing.

5 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche — every trigger is PDF-specific ('PDF files', '.pdf file', 'PDF forms', 'scanned PDFs'), so it would not fire for Word, Excel, or generic document skills. It matches the anchor-5 pattern of distinct triggers with minimal overlap risk.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
eigent-ai/eigent
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.