CtrlK
BlogDocsLog inGet started
Tessl Logo

pdf-text-extraction-fallback

Extract text from PDFs using pdftotext when read_file returns binary data

58

Quality

66%

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/pdf-text-extraction-fallback/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%

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

The body is well-structured and provides concrete executable extraction commands, but suffers from redundant command repetition, an undefined helper function, and stubbed-out error handling that weakens actionability and workflow feedback.

Suggestions

Replace the undefined looks_like_binary(content) call with a concrete, runnable check (e.g., detecting byte-string markers or non-printable characters) so the example workflow is fully executable.

Flesh out the error-handling branch instead of `pass` — e.g., detect 'pdftotext not found' on stderr and run the install command, or retry via the file-output alternative.

De-duplicate the pdftotext invocation: present the command once and reference it from the Example Workflow rather than repeating it across steps 3, 4, and the workflow.

DimensionReasoningScore

Conciseness

Mostly efficient with executable commands and no over-explanation of concepts Claude knows, but the pdftotext command is repeated across steps 3, 4, and the Example Workflow, and minor filler like 'This is a common issue...' could be trimmed.

2 / 3

Actionability

Core commands are executable and copy-paste ready, but the undefined helper looks_like_binary(), the `pass`-only error-handling body, and the placeholder comments leave key details incomplete.

2 / 3

Workflow Clarity

Steps are clearly numbered with a binary-detection checkpoint (step 2) and an stderr check (step 4), but error recovery is just `pass` with no fix-and-retry feedback loop.

2 / 3

Progressive Disclosure

A single self-contained file with well-organized sections (When to Use, Steps, Example Workflow, Installation Notes, Alternative, Best Practices) and no nested or external references, so the structure is easy to navigate.

3 / 3

Total

9

/

12

Passed

Description

75%

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 clear, third-person, and explicitly pairs a concrete action with a trigger condition. It is somewhat narrow in action coverage and relies on internal jargon for its trigger terms.

DimensionReasoningScore

Specificity

Names a concrete domain (PDFs) and a specific tool (pdftotext) with a single action (extract text), but does not list multiple distinct actions, so it falls short of the 'multiple specific concrete actions' anchor.

2 / 3

Completeness

Clearly answers both what ('Extract text from PDFs using pdftotext') and when ('when read_file returns binary data') with an explicit trigger clause.

3 / 3

Trigger Term Quality

Includes the natural term 'PDFs', but the remaining triggers ('pdftotext', 'read_file returns binary data') are technical/internal rather than phrasings users naturally say, missing common variations like 'document extraction'.

2 / 3

Distinctiveness Conflict Risk

Targets a narrow fallback niche (binary-data return from read_file) with a distinct trigger, making it unlikely to fire for unrelated PDF skills.

3 / 3

Total

10

/

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.