CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

paperkit

Add drawings, shapes, and a consistent markup experience using PaperKit. Use when integrating PaperMarkupViewController for markup editing, adding shape recognition, working with PaperMarkup data models, embedding markup tools in document editors, or building annotation features that need the system-standard markup toolbar. New in iOS 26.

Quality

76%

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 ./skills/paperkit/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 body is a well-organized, token-efficient overview with genuinely useful mistake and checklist sections, but it functions as a table of contents whose deep links are broken: every Route by Task anchor targets a heading that does not exist, and the promised SwiftUI integration content is absent from the bundle entirely. Actionability also suffers from having no inline code or minimal example to anchor the named APIs.

Suggestions

Fix the Route by Task links: either add the missing headings (PaperMarkupViewController Setup, SwiftUI Integration, Tool Picker Coordination, Persistence and Thumbnails) to references/paperkit-patterns.md or point the links at the sections that actually exist (e.g. Full iOS Setup with Tool Picker and Insertion Menu, Data Persistence).

Add a minimal executable quick-start snippet in the body (e.g. instantiating PaperMarkupViewController with FeatureSet.latest behind an @available(iOS 26.0, *) guard) so the named APIs are anchored to runnable code.

Turn 'Persistence and Feature Sets' into a genuine sequenced workflow with an explicit validation checkpoint (e.g. load → check FeatureSet compatibility → handle incompatible content), mirroring the reference file's 'Check on Load' section.

DimensionReasoningScore

Conciseness

The body is lean — compact tables, short lists, a beta-availability warning, and no explanation of concepts Claude already knows — matching 'efficient; minor instances of over-explanation that could be trimmed'. Not a 5 because the ASCII architecture diagram and the Core Components table partly duplicate each other (both convey PKToolPicker/MarkupEditController roles inside PaperMarkupViewController).

4 / 5

Actionability

Concrete API names appear ('markup.dataRepresentation()', 'FeatureSet.latest', '@available(iOS 26.0, *)') and Common Mistakes/Review Checklist are specific, but the body contains no executable code or step-level instructions — the 'some concrete guidance but incomplete; missing key details' anchor. It is not a 4 because even a minimal quick-start snippet is absent and all executable detail is deferred to the reference file.

3 / 5

Workflow Clarity

'Persistence and Feature Sets' is a numbered list of three separate concerns rather than a sequenced workflow, and no validation checkpoints exist outside the Review Checklist — the 'steps listed but validation gaps' anchor. It is not a 4 because Route by Task, the closest thing to a workflow, points to anchors that do not exist in the reference file, so the routing itself breaks when followed.

3 / 5

Progressive Disclosure

The overall shape is right — a short overview with one-level-deep references to a single 661-line reference file — but all four Route by Task anchors (#papermarkupviewcontroller-setup, #swiftui-integration, #tool-picker-coordination, #persistence-and-thumbnails) do not exist in references/paperkit-patterns.md, and the reference contains no SwiftUI content at all. Per scoring against the actual bundle structure, broken navigation to wrong/missing sections is more than the 'minor organization gaps' of the 4 anchor.

3 / 5

Total

13

/

20

Passed

Description

83%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 'Use when...' clause, multiple concrete API-named trigger tasks, and a clear niche. It could reach the top band by trimming the vague 'consistent markup experience' phrase, adding persistence/thumbnail capabilities, and disambiguating against PencilKit.

DimensionReasoningScore

Specificity

Quotes several concrete, API-anchored actions — 'integrating PaperMarkupViewController for markup editing, adding shape recognition, working with PaperMarkup data models, embedding markup tools in document editors, or building annotation features' — matching the 'several specific actions; minor gaps' anchor. Not a 5 because 'a consistent markup experience' is mildly fluffy and capabilities covered in the body (serialization, thumbnails, FeatureSet compatibility) are absent.

4 / 5

Completeness

Explicitly answers both: what ('Add drawings, shapes, and a consistent markup experience using PaperKit') and when ('Use when integrating PaperMarkupViewController... adding shape recognition... embedding markup tools...'), with five concrete trigger phrases — matching the 5 anchor's what-AND-when-with-concrete-triggers pattern. The 4 anchor's 'when could be more explicit' caveat does not apply given the detailed trigger list.

5 / 5

Trigger Term Quality

Good natural-term coverage: 'drawings', 'shapes', 'markup', 'annotation features', 'markup toolbar', 'document editors', 'shape recognition'. Not a 5 because common variations users might say ('PencilKit', 'annotating', 'signatures', 'inking') are missing, and no equivalent of the synonym/file-extension breadth in the 5 anchor.

4 / 5

Distinctiveness Conflict Risk

Names the niche clearly (PaperKit, PaperMarkupViewController, system-standard markup toolbar, iOS 26), but 'Add drawings, shapes' overlaps with a closely related PencilKit skill and the description offers no boundary disambiguation (the body does). Fits 'mostly distinct; minor overlap risk with closely related skills' rather than the 5 anchor's 'minimal conflict risk'.

4 / 5

Total

17

/

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

thienqo/ios-skills

Path

skills/paperkit/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.