CtrlK
BlogDocsLog inGet started
Tessl Logo

pdf-extraction-fallback-7db3aa

Resilient multi-tier PDF extraction with sequential fallback strategies when initial reading fails

57

Quality

65%

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

Fix and improve this skill with Tessl

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

Quality

Content

67%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.

The content is a well-structured, actionable fallback workflow with concrete code at each tier and clear sequencing with validation checkpoints. Its main weaknesses are duplicative code between the per-tier snippets and the consolidated function, an unintegrated and buggy validate_extraction routine, and inconsistent content thresholds.

Suggestions

Consolidate the per-tier snippets with the Implementation Pattern function to remove duplicated logic, or move the standalone snippets into a reference file and keep SKILL.md focused on the resilient function.

Fix validate_extraction: text.count('') always returns len(text)+1 so the replacement-character check is always true — replace it with a real check (e.g. text.count('\ufffd')) and call validate_extraction inside extract_pdf_resilient before returning.

Reconcile the acceptance threshold (the inline check uses >100 chars while Best Practices says <50) to a single documented minimum, and define run_shell/ExtractionError or note them as assumed helpers.

DimensionReasoningScore

Conciseness

The body is mostly code and reasonably efficient, but it duplicates logic by showing per-tier snippets (PyPDF2, pdfplumber, pypdf) and then re-implementing them in the consolidated extract_pdf_resilient function, and the Tier 2 three-library listing echoes the discouraged 'use X or Y or Z' pattern, fitting score 3 ('Mostly efficient but includes some unnecessary explanation or could be tightened'). The duplication is more than the 'minor' trimmable instances at score 4.

3 / 5

Actionability

It provides concrete, mostly executable commands and code (pdftotext, pdfplumber, tesseract, a full fallback function, validate_extraction) covering the common cases, matching score 4 ('Mostly executable guidance; concrete code or commands with minor gaps'). It is not score 5 because the main function relies on an undefined run_shell helper, raises an undefined ExtractionError, and validate_extraction has a logic bug.

4 / 5

Workflow Clarity

The Tier 1 -> Tier 2 -> Tier 3 sequence is clear with validation checkpoints (output-length checks, validate_extraction, a Decision Criteria table) and a fall-through feedback loop; this is read-only extraction so the destructive/batch cap does not apply, matching score 4 ('Clear sequence with most checkpoints present; minor validation gaps'). It stops short of score 5 because validate_extraction is not integrated into the main flow, contains a bug, and thresholds are inconsistent (>100 inline vs <50 in Best Practices).

4 / 5

Progressive Disclosure

The skill is a single file with no bundle directories, yet is well organized into clearly headed sections (Purpose, When to Use, Fallback Sequence tiers, Implementation Pattern, Decision Criteria, Best Practices, Error Handling, Output Quality Check), matching score 4 ('Good structure; most content is appropriately placed; minor organization gaps'). The under-50-line exception for score 5 does not apply to this ~150-line body, and the per-tier/consolidated code duplication is a minor organization gap.

4 / 5

Total

15

/

20

Passed

Description

62%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.

The description is concise and specific, clearly stating both what the skill does (multi-tier PDF extraction with fallback) and a trigger condition (when initial reading fails). Its main weaknesses are limited trigger-term coverage (only 'PDF extraction', missing common synonyms) and a narrow 'when' clause that could enumerate more failure scenarios.

Suggestions

Broaden trigger terms to include natural variations users say, e.g. 'PDFs', 'PDF files', '.pdf', 'scanned PDFs', 'forms', and 'garbled/incomplete extraction'.

Expand the 'when' clause into multiple concrete triggers, e.g. 'Use when initial PDF reading fails, returns empty/garbled content, or the document is scanned/image-based.'

Optionally name a second concrete capability (e.g. table extraction via OCR fallback) to lift specificity toward score 4-5.

DimensionReasoningScore

Specificity

Names the domain and one concrete action ("PDF extraction") plus the fallback mechanism, but does not list multiple specific actions like tables or forms, matching the score-3 anchor 'Names domain and 1-2 concrete actions, but not comprehensive'. It is more concrete than score 2 ('Processes PDF files') but lacks the several actions needed for score 4.

3 / 5

Completeness

Provides a clear 'what' ("multi-tier PDF extraction with sequential fallback strategies") and an explicit 'when' ("when initial reading fails"), so it has both and is not capped at 3; the 'when' is a single narrow condition rather than multiple concrete trigger phrases, matching score 4 ('Has both what and when; when could be more explicit or specific'). It falls short of score 5, which requires multiple concrete trigger phrases.

4 / 5

Trigger Term Quality

Contains the relevant phrase "PDF extraction" but is missing common variations and synonyms users actually say ("PDFs", "PDF files", ".pdf", forms, scanned documents), fitting score 3 ('Some relevant keywords but missing common variations or synonyms'). It is more specific than the score-2 'Works with files' yet short of the good keyword coverage at score 4.

3 / 5

Distinctiveness Conflict Risk

The fallback-on-failure framing carves a distinct niche with a specific failure-condition trigger, leaving only minor overlap risk with closely related general PDF-extraction skills, matching score 4 ('Mostly distinct; minor overlap risk with closely related skills'). It is more specific than the score-3 'Works with document files' but does not reach the minimal-conflict clarity of score 5.

4 / 5

Total

14

/

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.

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.