CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

pdfkit

Display and manipulate PDF documents using PDFKit. Use when embedding PDFView to show PDF files, creating or modifying PDFDocument instances, adding annotations (highlights, notes, signature widgets), extracting text with PDFSelection, navigating pages, generating thumbnails, filling PDF forms, or wrapping PDFView in SwiftUI.

Quality

88%

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

The canonical home for this skill is dpearson2699/swift-ios-skills

SKILL.md
Quality
Evals
Security

Quality

Content

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

A well-structured API reference skill: executable code for all common PDFKit tasks, a strong mistakes section and review checklist, and clean progressive disclosure into a single verified reference file. The main gaps are the code-less async search section and a few sections that could be tightened.

Suggestions

Add a short executable async-search example (beginFindString(_:withOptions:) plus the PDFDocumentDelegate methods) instead of only naming the delegate callbacks in prose.

Trim inferable API enumerations — the display-modes table and the goToNextPage/goToFirstPage/goToLastPage listing — to one-line mentions to reduce token cost.

Deduplicate the updateUIView `!==` identity pattern, which appears in both the SwiftUI Integration example and the Common Mistakes section.

DimensionReasoningScore

Conciseness

The body is dominated by lean, executable Swift with minimal prose and valuable non-obvious notes ("Pages are zero-based. Validate indices; out-of-range calls raise exceptions", "PDFKit requires no entitlements"). Minor trimming is possible — the display-modes table, the sequential goToNextPage/goToPreviousPage listing, and the updateUIView `!==` pattern appearing both in the SwiftUI section and Common Mistakes — so it sits at anchor 4 rather than the every-token-earns-its-place level 5.

4 / 5

Actionability

Nearly all examples are complete, copy-paste-ready Swift (PDFViewController, addHighlight(to:selection:), PDFKitView, password unlock, thumbnail generation). It falls short of anchor 5 because the async search section only names delegate methods ("Implement `didMatchString(_:)` to receive each match") without executable code, and form filling is entirely deferred to the reference file — but it is far above anchor 3's pseudocode level.

4 / 5

Workflow Clarity

The reference is logically sequenced (setup → display → loading → navigation → search → annotations → thumbnails → SwiftUI) with a Contents TOC, WRONG/CORRECT Common Mistakes patterns, and a 12-item Review Checklist serving as checkpoints. No validate→fix→retry feedback loops are present, but none are strictly required since the skill documents an API rather than a destructive or batch process — matching anchor 4's clear sequence with most checkpoints present.

4 / 5

Progressive Disclosure

SKILL.md is a well-organized overview with a TOC, and extended material is correctly split into a single one-level-deep reference (references/pdfkit-patterns.md, verified to exist and to cover its advertised topics: forms, watermarks, merging, printing, overlays, outlines, custom drawing). The reference is clearly signaled at three points with explicit topic lists, exactly matching the anchor-5 structure.

5 / 5

Total

17

/

20

Passed

Description

92%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: concrete, comprehensive action list anchored to the PDFKit framework, with an explicit "Use when" trigger clause covering the framework's main use cases. Only minor improvement possible around natural synonyms and file extensions like "PDFs" and ".pdf".

DimensionReasoningScore

Specificity

Lists many concrete actions — "embedding PDFView to show PDF files", "adding annotations (highlights, notes, signature widgets)", "extracting text with PDFSelection", "generating thumbnails", "filling PDF forms", "wrapping PDFView in SwiftUI" — covering display, editing, annotation, extraction, navigation, thumbnails, forms, and SwiftUI with no notable gaps. This matches the anchor-5 comprehensive-coverage example; it is above anchor 4, which allows minor coverage gaps.

5 / 5

Completeness

Explicitly answers both: the what is "Display and manipulate PDF documents using PDFKit" and the when is a full "Use when embedding PDFView..., creating or modifying PDFDocument instances..., or wrapping PDFView in SwiftUI" clause with concrete trigger phrases. This mirrors the anchor-5 example structure exactly; the when clause is fully explicit, not merely present as in anchor 4.

5 / 5

Trigger Term Quality

Good natural-language coverage: "PDF files", "annotations", "highlights", "notes", "extracting text", "thumbnails", "PDF forms", "SwiftUI" — phrases users would naturally say. It falls short of anchor 5 because it lacks common synonyms and file extensions (bare "PDFs", ".pdf", "search"), but is well above anchor 3's partial keyword coverage.

4 / 5

Distinctiveness Conflict Risk

Clear niche (Apple's PDFKit framework) with distinct API-specific triggers — "PDFView", "PDFDocument", "PDFSelection", "wrapping PDFView in SwiftUI" — making wrong-skill triggering unlikely. Generic phrases like "filling PDF forms" create at most minimal overlap with generic PDF-processing skills, fitting anchor 5 rather than anchor 4's meaningful overlap with closely related skills.

5 / 5

Total

19

/

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.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

dpearson2699/swift-ios-skills

Path

skills/pdfkit/SKILL.md

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.