CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

pdf-skill

All-in-one PDF read / write / convert / OCR. Trigger scenarios: summarize a PDF, extract text or tables, fill an AcroForm, render pages as images, merge, split, add a watermark, rotate, encrypt/decrypt, create a new PDF (invoice / report / receipt), convert between PDF and docx/md/txt. Typical phrasings: "summarize this PDF", "fill out this PDF form", "merge these PDFs", "add a watermark to the PDF", "convert PDF to Word", "OCR this scan", "show me what page 3 of the PDF looks like". Load this skill whenever the user mentions a .pdf file, needs to produce a PDF, or wants to make any change to a PDF.

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

75%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, dense body: fully executable demos covering the common PDF operations, a clear summary→branch workflow, and an unusually useful error-fallback table encoding real failure modes. The gaps are consistent but small — a non-executable fragment in §2.5, abbreviated invocations outside §1, no explicit post-write verification step, and some repeated routing instructions that could be stated once.

Suggestions

Make §2.5 executable like the other demos (declare the pdf-lib/fs/degrees imports and show how buf is read) and write the OCR and DocConvert sections in the same full-argument invocation format used in §1 (e.g. PdfInspect { action: "render", filePath: "…", pageRange: "1-5" }) so every snippet is copy-paste ready.

Add an explicit verification checkpoint after write/convert operations — e.g. re-run PdfInspect(summary) on the output to confirm page count and encryption status — so batch operations like merge and watermark close the loop rather than relying on the demos' implicit console.log page counts.

State the 'all writes must go through JsSandbox' routing rule once and let the tool table carry it; consider moving the §2 demos (particularly the 30-line invoice example) to a references/ file so the main SKILL.md stays a lean overview.

DimensionReasoningScore

Conciseness

Efficient and assumes competence — no 'what is a PDF' padding, and the content is dense with non-obvious knowledge (checkedValue handling, CJK registerFont, pdfkit lacking save/restore). It falls short of anchor 5 because the 'all writes go through JsSandbox' routing rule is stated three times (intro line, tool table, loading callout) and the tool table partially restates the opening paragraph — minor trimmable redundancy, matching anchor 4.

4 / 5

Actionability

Demos 2.1–2.4 are complete, copy-paste-ready scripts covering the common cases (create, watermark, merge, fill) with real edge-case fixes, and the error-fallback table gives concrete symptom→cause→fix guidance. Not anchor 5: §2.5 is a sketch with undefined variables (buf, fs, degrees are never imported/declared in that block), and the OCR/DocConvert sections use abbreviated invocations ('PdfInspect(summary)', "DocConvert(from='pdf', ...)") rather than the full argument format shown in §1 — minor gaps per anchor 4.

4 / 5

Workflow Clarity

Sequences are clear: summary → branch on textType → per-branch action; form-fields before filling; pageRange for large PDFs; a 3-step OCR pipeline; and the fallback table provides error recovery. The destructive/batch cap is not triggered because writes target new output files, but validation is implicit only (demos log page counts) with no explicit 'verify the output' checkpoint after write/convert operations — anchor 4's 'clear sequence with most checkpoints present; minor validation gaps'.

4 / 5

Progressive Disclosure

A single self-contained ~200-line doc with well-organized sections (Read / Write / OCR / Convert / Errors), a tool-responsibility table, and a prominent loading callout — easy to navigate, no buried or nested references. Not anchor 5: no reference files are used at all, and the ~110 lines of demo code (especially the full invoice example) could live in a references/ file to slim the main doc; not anchor 3: structure is good and nothing that clearly belongs elsewhere is inline to the point of bloat.

4 / 5

Total

16

/

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: comprehensive concrete actions, verbatim user phrasings including the .pdf extension and format synonyms, and an explicit load condition covering both what the skill does and when to use it. The only theoretical overlap is with document-format skills on conversion phrasings, which is intentional and minor.

DimensionReasoningScore

Specificity

Lists a comprehensive set of concrete actions: 'summarize a PDF, extract text or tables, fill an AcroForm, render pages as images, merge, split, add a watermark, rotate, encrypt/decrypt, create a new PDF (invoice / report / receipt), convert between PDF and docx/md/txt' — full coverage of read/write/convert/OCR with no generic filler. Anchor 4 requires 'minor gaps in coverage'; none are evident, so it sits at 5.

5 / 5

Completeness

Explicitly answers both questions: 'what' via the full action list, and 'when' via 'Load this skill whenever the user mentions a .pdf file, needs to produce a PDF, or wants to make any change to a PDF' plus concrete typical phrasings. This mirrors anchor 5's example structure exactly; a missing or vague 'when' clause would cap it at 3, but the trigger guidance is explicit.

5 / 5

Trigger Term Quality

Natural phrasings users would actually say are quoted verbatim ('summarize this PDF', 'fill out this PDF form', 'merge these PDFs', 'add a watermark to the PDF', 'convert PDF to Word', 'OCR this scan', 'show me what page 3 of the PDF looks like') alongside the '.pdf' file extension and the 'PDF to Word' synonym for docx. Matches anchor 5's requirement for synonyms and file extensions; nothing common is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche — every trigger and capability is anchored on PDFs ('mentions a .pdf file, needs to produce a PDF'), so it would not fire for non-PDF work. The only overlap is pdf↔docx/md/txt conversion, where 'convert PDF to Word' could also match a document-format skill; however, docx appears only as a conversion target of the PDF pipeline, not a co-equal domain as in anchor 4's example ('Works with PDF and Word document files'), so conflict risk is minimal.

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

itsablabla/openloaf-web

Path

apps/server/src/ai/builtin-skills/pdf/en/SKILL.md

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.