Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Paperkit

ASecurity

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.

3 stars
0 votes
0 copies
0 views
Added 9/28/2026
developmentswiftdocumentation

Security Analysis

A100/100

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add thiennc-tesoglobal/ios-skills --skill paperkit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Paperkit?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Paperkit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thiennc-tesoglobal-paperkit/badge)](https://www.skillsdirectory.com/skills/thiennc-tesoglobal-paperkit)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: paperkit
description: "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."
---

# PaperKit

Combine freeform PencilKit drawings with structured markup elements (shapes, text boxes, images, connectors) using `PaperKit` (`PaperMarkupViewController`, `PaperMarkup`). Targets Swift 6.3 / iOS 26+.

> **Beta-sensitive:** PaperKit is new in iOS/iPadOS 26, macOS 26, and visionOS 26. Verify availability guards and SDK versions before production release.

## Contents

- [PaperKit Architecture](#paperkit-architecture)
- [PencilKit vs PaperKit Boundary](#pencilkit-vs-paperkit-boundary)
- [Core Components](#core-components)
- [Persistence and Feature Sets](#persistence-and-feature-sets)
- [Route by Task](#route-by-task)
- [Common Mistakes](#common-mistakes)
- [Review Checklist](#review-checklist)
- [References](#references)

## PaperKit Architecture

PaperKit provides an interactive document canvas hosting both vector PencilKit strokes and structured document annotations.

```
┌────────────────────────────────────────────────────────┐
│            PaperMarkupViewController                   │
│  ┌───────────────────────┐  ┌────────────────────────┐ │
│  │   PKToolPicker        │  │ MarkupEditController   │ │
│  │  (PencilKit Inking)   │  │ (Shapes, Text, Images) │ │
│  └───────────────────────┘  └────────────────────────┘ │
│                                                        │
│  Canvas: PaperMarkup (Strokes + Shapes + Text Objects) │
└────────────────────────────────────────────────────────┘
```

## PencilKit vs PaperKit Boundary

- **`pencilkit`**: Use for pure freehand sketchbooks, drawing-only canvases, raw vector stroke analysis, or when supporting iOS 17 and earlier.
- **`paperkit`**: Use when users need to place shapes, typed text, sticky notes, or signature annotations alongside freehand drawings in document editors.

## Core Components

| Component | Role |
|---|---|
| `PaperMarkupViewController` | Scrollable interactive markup canvas hosting drawings and elements |
| `PaperMarkup` | Serializable document model representing canvas elements and bounds |
| `MarkupEditViewController` | System UI for inserting shapes, text, arrows, and signatures |
| `MarkupToolbarViewController` | Toolbar controller coordinating tools on desktop and iPad |
| `FeatureSet` | Capability configuration declaring supported tools and element types |

## Persistence and Feature Sets

1. **Serialization**: Save and restore `PaperMarkup` using `markup.dataRepresentation()`.
2. **FeatureSet Compatibility**: Initialize view controllers with explicit feature sets (e.g. `FeatureSet.latest` or targeted subsets) to prevent forward-compatibility loading errors.
3. **Thumbnail Rendering**: Generate raster thumbnail previews off the main thread for fast document list loading.

## Route by Task

- For full UIKit setup, delegate lifecycle, and embedding in parent controllers, read [PaperMarkupViewController Setup](references/paperkit-patterns.md#papermarkupviewcontroller-setup).
- For SwiftUI integration with `UIViewControllerRepresentable`, read [SwiftUI PaperKit Integration](references/paperkit-patterns.md#swiftui-integration).
- For custom tool picker coordination and first-responder management, read [Tool Picker Coordination](references/paperkit-patterns.md#tool-picker-coordination).
- For document serialization, thumbnail generation, and backward compatibility, read [Persistence and Thumbnails](references/paperkit-patterns.md#persistence-and-thumbnails).

## Common Mistakes

- Presenting markup insertion controllers without anchoring to a valid bar button or source rect.
- Recreating `PaperMarkupViewController` on every SwiftUI view update rather than using coordinator pattern.
- Performing `PaperMarkup` serialization synchronously on the main thread for large multi-element documents.
- Omitting availability checks (`@available(iOS 26.0, *)`) when deploying to earlier OS versions.
- Failing to synchronize document bounds between `PaperMarkup` and the hosting view layout.

## Review Checklist

- [ ] `PaperMarkupViewController` hosted in a stable UIKit container or SwiftUI Coordinator
- [ ] Availability guarded for iOS 26+
- [ ] Insertion controllers properly anchored to source views or bar button items
- [ ] `PKToolPicker` added as observer to the paper markup controller
- [ ] Document serialization performed asynchronously in background tasks
- [ ] Undo and redo actions integrated with the canvas `UndoManager`

## References

- [PaperKit extended recipes and SwiftUI wrappers](references/paperkit-patterns.md)
- [PaperKit documentation](https://sosumi.ai/documentation/paperkit)
- [PencilKit documentation](https://sosumi.ai/documentation/pencilkit)

Attribution

thiennc-tesoglobalthiennc-tesoglobal
View sourceMore from thiennc-tesoglobal →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284972 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

10311 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →