Edit PDFs with natural-language instructions using the nano-pdf CLI.
59
46%
Does it follow best practices?
Impact
81%
2.61xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/nano-pdf/SKILL.mdQuality
Discovery
32%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 identifies the domain (PDF editing) and tool (nano-pdf CLI), but it lacks specific concrete actions and has no explicit 'Use when...' trigger clause. It would benefit from listing specific editing capabilities and adding natural trigger terms to help Claude distinguish this skill from other PDF-related skills.
Suggestions
Add a 'Use when...' clause with explicit triggers, e.g., 'Use when the user wants to edit, modify, annotate, or update PDF files.'
List specific concrete actions the skill supports, e.g., 'Add text, remove pages, merge documents, fill forms, annotate, or rearrange pages in PDF files.'
Include common natural-language variations users might say, such as 'modify PDF', '.pdf files', 'change PDF content', 'update a PDF document'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (PDFs) and a general action (edit), and mentions the tool (nano-pdf CLI), but does not list specific concrete actions like extracting text, filling forms, merging documents, etc. | 2 / 3 |
Completeness | Describes what it does (edit PDFs) but has no 'Use when...' clause or equivalent explicit trigger guidance, which per the rubric caps completeness at 2, and the 'what' is also quite thin, bringing this to a 1. | 1 / 3 |
Trigger Term Quality | Includes 'PDFs' and 'edit' as natural keywords, but misses common variations like '.pdf files', 'modify PDF', 'update PDF', 'PDF editing', or specific operations users might request. | 2 / 3 |
Distinctiveness Conflict Risk | The mention of 'nano-pdf CLI' adds some distinctiveness, and 'edit PDFs' is reasonably specific, but it could overlap with other PDF-related skills since 'edit' is broad and no specific operations are listed. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
60%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill is admirably concise and provides a concrete CLI example, but it lacks important workflow details for a tool that destructively modifies PDFs. There is no installation/setup guidance, no validation step beyond a vague 'sanity-check,' and no error-handling or recovery workflow. The page-numbering ambiguity note highlights a real issue but doesn't resolve it with a clear process.
Suggestions
Add an explicit validation step (e.g., 'Open the output PDF and verify the edited page before replacing the original') with a concrete command or approach rather than just 'sanity-check.'
Include a brief workflow sequence: backup original → edit → validate output → confirm, especially since PDF edits are destructive.
Document how to install nano-pdf (e.g., `npm install -g nano-pdf` or equivalent) so the skill is fully actionable without prior knowledge of the tool.
Clarify the page-numbering convention definitively or provide a concrete way to check (e.g., `nano-pdf info deck.pdf` to list pages) rather than suggesting trial-and-error.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Very lean — no unnecessary explanation of what PDFs are or how CLI tools work. Every line serves a purpose. The notes are brief and practical. | 3 / 3 |
Actionability | The quick start example is concrete and copy-paste ready, but there's no guidance on installation, no additional subcommands or options documented, and no example of handling errors or multi-page edits. The 'sanity-check the output' note is vague rather than actionable. | 2 / 3 |
Workflow Clarity | For a tool that performs destructive edits to PDFs, there is no explicit validation step, no feedback loop for error recovery, and no sequenced workflow. 'Sanity-check the output' is too vague to count as a validation checkpoint, and the page-numbering ambiguity note suggests a retry without a clear process. | 1 / 3 |
Progressive Disclosure | This is a very simple, single-purpose skill under 50 lines. The content is well-organized with a quick start section and concise notes. No external references are needed for this scope. | 3 / 3 |
Total | 9 / 12 Passed |
Validation
72%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 8 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
metadata_field | 'metadata' should map string keys to string values | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 8 / 11 Passed | |
4467e04
Table of Contents
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.