CtrlK
BlogDocsLog inGet started
Tessl Logo

pdf-explore

Use this skill when the user has attached a PDF, paper, report, or other document and the answer needs content from more than one place in it: summarize the methods or any other section, compare sections, find where a topic is discussed, read a value or label off a figure or chart, or find/list/extract every instance of something across the whole document (datasets, benchmarks, citations, figures, table rows, accession numbers — including appendices). Parses the PDF once with a deterministic Python kernel: `pdf_pages` (pages as persistent text, or high-res images), `pdf_outline` (embedded TOC), `pdf_scan` (a lexical pre-filter that narrows a long doc to candidate pages), `pdf_grep` (regex sweep for exhaustive pattern extraction). You read the shortlist and do the relevance / summary / extraction judgment yourself. For PDF creation/manipulation, use reportlab/pypdf directly.

72

Quality

88%

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

SKILL.md
Quality
Evals
Security

Quality

Content

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

An excellent, highly actionable body: every recipe is executable as written, the decision flow (outline → scan → grep → pages) is explicitly ordered, and failure modes have concrete recovery paths. The only deductions are minor verbosity (the licensing aside) and a single-file layout that forgoes any one-level-deep reference split for its ~240 lines of recipes.

Suggestions

Trim or relocate the AGPL/PyMuPDF licensing paragraph (lines ~53-57) — it is background knowledge tangential to using the helpers, or could live in a one-line note.

Consider moving one or two of the longer recipes (e.g., the figure-crop and exhaustive-extraction recipes) into a references/ file with a clearly signaled link, keeping SKILL.md as a tighter overview with the helper table and setup.

Drop rhetorical framing like "Nothing you read vanishes: it is ordinary text and ordinary files" in the intro; the operational facts already carry the point.

DimensionReasoningScore

Conciseness

The body is dense and assumes competence — no space is spent explaining what a PDF is or how Python works, and details like "pillow does the PNG encoding for mode='image'; it is not pulled in by the pypdfium2 wheel" are genuinely non-obvious. It sits at 4 rather than 5 because of minor trimmable asides, notably the AGPL/PyMuPDF licensing paragraph and editorializing like "Nothing you read vanishes: it is ordinary text and ordinary files".

4 / 5

Actionability

Every recipe ships copy-paste-ready, complete code: the exec loader line, the multi-range pdf_pages pull with file-write and byte-count print, the outline printer, the pdf_scan shortlist loop, the high-DPI render plus pillow crop sequence, and a working DOI regex with a de-duplication comprehension. This matches the 5 anchor ("Fully executable; copy-paste ready... specific examples cover the common cases") rather than 4, which would imply gaps in the code.

5 / 5

Workflow Clarity

Sequencing is explicit and ordered ("Recipe — navigate by outline (try this first)", "fall through to pdf_scan", "skip the narrowing" when short), and each recipe carries its own feedback loops: "If a helper is 'not defined', you haven't exec'd kernel.py yet — go back and run the line above", "broaden top_k if the shortlist looks thin", "if the PDF has none it returns []... build the outline yourself", and mode="auto" re-rendering for scanned pages. This matches the 5 anchor's explicit error-recovery loops; the 4 anchor's "minor validation gaps" understates the coverage, and the destructive/batch cap does not apply since the skill is read-only.

5 / 5

Progressive Disclosure

Structure is good: a helper-selection table up front, one section per recipe, and clearly signaled setup pointing to the single external kernel.py ("exec(open(...kernel.py).read())"). No bundle files exist (no references/, scripts/, or assets/), and at ~240 lines all recipes live inline in SKILL.md — appropriately placed overall, but the figure/extract recipes could plausibly live in one-level-deep reference files, which is the 4 anchor's "minor organization gaps" rather than the 5 anchor's well-signaled reference split.

4 / 5

Total

18

/

20

Passed

Description

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

A strong description with an explicit and detailed trigger clause, comprehensive concrete capabilities, and thoughtful boundary guidance that minimizes conflict with PDF-creation skills. The main deductions are a second-person sentence (penalized on specificity per the rubric) and the absence of file extensions like ".pdf" in the trigger terms.

Suggestions

Rewrite the second-person sentence ("You read the shortlist and do the relevance / summary / extraction judgment yourself") in third person (e.g., "The agent then reads the shortlist and makes the relevance/summary/extraction judgment") to satisfy the voice guideline and recover the specificity point.

Add natural trigger synonyms and the file extension — e.g., mention ".pdf" files, "tables", and "graphs" alongside the existing "PDF, paper, report, document" vocabulary to reach comprehensive trigger coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete capabilities ("summarize the methods or any other section, compare sections, find where a topic is discussed, read a value or label off a figure or chart, or find/list/extract every instance of something") and names all four helper functions with their behaviors, which approaches the comprehensive 5-anchor. However, the judging guidelines mandate a 1-point specificity penalty for second-person voice, and "You read the shortlist and do the relevance / summary / extraction judgment yourself" is directly addressed to the user, capping this at 4.

4 / 5

Completeness

Both questions are answered explicitly: the trigger clause "Use this skill when the user has attached a PDF... and the answer needs content from more than one place in it" gives concrete 'when' conditions, and "Parses the PDF once with a deterministic Python kernel: pdf_pages... pdf_outline... pdf_scan... pdf_grep" gives a clear 'what'. It even adds a boundary condition ("For PDF creation/manipulation, use reportlab/pypdf directly"), matching the 5 anchor rather than the 4 anchor's weaker 'when'.

5 / 5

Trigger Term Quality

Natural trigger phrases are abundant: "attached a PDF, paper, report", "summarize the methods", "compare sections", "figure or chart", "datasets, benchmarks, citations, figures, table rows, accession numbers" — these are phrases a user would genuinely say. It falls short of the 5 anchor because it omits file extensions (no ".pdf") and common variations like "tables" or "graphs", so a few natural terms are missing.

4 / 5

Distinctiveness Conflict Risk

The niche is clear — navigating and extracting from large existing PDFs — and it actively reduces conflict risk by redirecting adjacent use cases elsewhere ("For PDF creation/manipulation, use reportlab/pypdf directly") and scoping triggers to multi-location reads rather than single lookups. This matches the 5 anchor's "clear niche with distinct triggers; minimal conflict risk"; the 4 anchor's "minor overlap risk" understates the explicit boundary guidance.

5 / 5

Total

18

/

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
UnicomAI/wanwu
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.