CtrlK
BlogDocsLog inGet started
Tessl Logo

reliable-pdf-extraction

Use shell commands or Python libraries to extract PDF text when read_file PDF handler fails

57

Quality

64%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./benchmarks/gdpval/skills/reliable-pdf-extraction/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

72%

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

The content is highly actionable with executable code for every method and is well-organized as a self-contained skill, but it loses conciseness to duplicated examples and its workflow stops short of validating the fallback output or recovering from a failed extraction.

Suggestions

Remove or merge the redundant "Example Usage" section, since its pdftotext and pdfplumber snippets duplicate the "Methods" code.

Add a validation step after the fallback (e.g. check that extracted text is non-empty/non-garbage) and a recovery branch for when pdftotext or the Python library also fails.

Tighten the "Solution" section so it only states the approach once, leaving specifics to "Methods".

DimensionReasoningScore

Conciseness

The body is mostly lean and avoids explaining PDF/library basics, but the "Solution" and "Example Usage" sections repeat code and guidance already shown in "Methods", so it could be tightened by consolidating the duplicates.

2 / 3

Actionability

It provides fully executable, copy-paste-ready commands and code for all four methods (pdftotext, pdfinfo, PyMuPDF, pdfplumber) with concrete invocation examples, matching the anchor for complete executable guidance.

3 / 3

Workflow Clarity

The four-step Workflow has a clear sequence and an explicit decision checkpoint ("Check output" with failure signs), but it lacks validation of the fallback result and any error-recovery loop if the chosen method also fails.

2 / 3

Progressive Disclosure

The skill is a self-contained how-to with no bundle files, organized into clearly labeled sections (Problem, Solution, Methods, Workflow, Example Usage, Tips) and no nested references, giving easy navigation.

3 / 3

Total

10

/

12

Passed

Description

57%

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

The description is specific and distinguishable with an explicit trigger, but the trigger is a technical internal condition rather than a natural user-facing "Use when..." clause, and it covers only a single action with limited keyword variation.

Suggestions

Rewrite the trigger as a natural "Use when..." clause, e.g. "Use when extracting text from PDFs, .pdf files, or scanned documents, or when read_file's PDF handler returns errors or binary data."

Broaden the keyword coverage to include common user terms ("PDFs", ".pdf", "document extraction", "tables") so the skill surfaces for more phrasings.

Mention additional concrete capabilities (metadata via pdfinfo, tables via pdfplumber) to lift specificity toward the multiple-actions anchor.

DimensionReasoningScore

Specificity

The description names a concrete domain and action ("extract PDF text") plus two method families ("shell commands or Python libraries"), but it describes only a single action rather than the multiple specific capabilities (tables, metadata, merge) that anchor a 3.

2 / 3

Completeness

It states what the skill does ("extract PDF text") and gives an explicit when ("when read_file PDF handler fails"), but the trigger is a narrow internal error condition rather than a natural usage trigger, falling short of the anchor-3 "Use when..." pattern.

2 / 3

Trigger Term Quality

It includes some natural terms a user might say ("extract PDF text", "PDF") but leans on internal jargon ("read_file PDF handler") and misses common variations like "PDFs", ".pdf", or "document extraction".

2 / 3

Distinctiveness Conflict Risk

The fallback framing ("when read_file PDF handler fails") carves out a clear, distinctive niche for PDF text extraction that is unlikely to trigger for the wrong skill.

3 / 3

Total

9

/

12

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
HKUDS/OpenSpace
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.