pdf-operations

Generated source view for the actual executable productivity/pdf-operations skill. The durable routing article is Browser Testing Skills. Source: skills/productivity/pdf-operations/SKILL.md

Runtime Source

Field Value
Category productivity
Origin personal
Slug pdf-operations
Source slug pdf-operations
Family Browser Testing Skills
Source skills/productivity/pdf-operations/SKILL.md

Bundled Resources

No bundled resource files.

Description

Route and execute private PDF work. Use when Kevin asks to read, search, merge, split, reorder, compress, convert, OCR, sign, redact, secure, edit, batch, or automate PDF files. Uses pdf-inspector for fast local text/scanned/mixed preflight when OCR routing is uncertain, chooses the extraction stack for reading, PDFCraft for browser-local one-off or visual workflows, and Stirling-PDF for self-hosted multi-user, API, OCR, or persistent automation. Preserves originals and requires output verification.

Skill Source

---
name: pdf-operations
description: Route and execute private PDF work. Use when Kevin asks to read, search, merge, split, reorder, compress, convert, OCR, sign, redact, secure, edit, batch, or automate PDF files. Uses pdf-inspector for fast local text/scanned/mixed preflight when OCR routing is uncertain, chooses the extraction stack for reading, PDFCraft for browser-local one-off or visual workflows, and Stirling-PDF for self-hosted multi-user, API, OCR, or persistent automation. Preserves originals and requires output verification.
origin: personal
source_slug: pdf-operations
---

# PDF Operations

Choose the privacy boundary and deployment shape before choosing the tool.

## Route

| Intent | Route |
| --- | --- |
| Classify text/scanned/image/mixed input or decide which pages need OCR | `pdf-inspector` locally; retain its confidence and page-level OCR reasons |
| Read, search, answer questions, or extract text/layout | use the preflight when uncertainty or batch cost warrants it, then `liteparse`; escalate to MarkItDown, MinerU, or OmniParse by document complexity |
| One-off private merge/split/compress/edit/secure job or visual operation chain | PDFCraft in the browser or a verified local static/container build |
| Repeated batch job, server API, multi-user surface, OCR pipeline, signing, or redaction | Self-hosted Stirling-PDF |

Read `wiki/tools/pdf-operations.md` for the current source snapshot and route.
Do not upload a sensitive PDF to an unverified hosted converter.

## Procedure

1. Record the input path, requested output, sensitivity, and whether mutation or
   extraction is required.
2. Preserve the original. Choose a distinct output path; never overwrite unless
   Kevin explicitly asks after seeing the planned operation.
3. For extraction, preflight with pinned `pdf-inspector` when the corpus mixes
   born-digital, scanned, image-only, broken-font, or mixed pages. Route only
   pages that actually require OCR when the returned confidence and reasons are
   sufficient; otherwise treat the result as uncertain. Then use the installed
   document skill and parse once. Inspect page screenshots when OCR, layout,
   charts, signatures, or redactions matter.
4. For a one-off visual workflow, use PDFCraft. Prefer browser-local/offline
   execution; inspect any container or checkout before running confidential data.
5. For a repeatable service/API workflow, use Stirling-PDF. Record its image tag
   or digest, bind to localhost/private network by default, and configure auth,
   storage, logs, and egress before exposing it.
6. State the operation plan: page ranges/order, OCR language, form/annotation
   behavior, redaction regions, encryption/permissions, metadata, and expected
   page count.
7. Execute the smallest representative sample first. For a batch, get approval
   after reporting the sample result and projected scope.
8. Verify output before handoff.

## Verification Receipt

Report:

- input and output paths plus SHA-256 digests;
- tool, source/version or container image digest, and local/network boundary;
- page count and ordering before/after;
- representative visual inspection pages;
- searchable-text/OCR result when relevant;
- preflight class, confidence, per-page OCR route, and machine-readable OCR
  reason when `pdf-inspector` was used;
- redaction, signature, encryption, permission, form, and metadata behavior when
  relevant;
- failures, skipped files, and a resumable recipe for batch work.

Redaction requires visual inspection and a text/content check; drawing a black
rectangle is not proof that underlying content was removed. A successful exit
code is not document-quality proof.

## Installation Boundary

Do not globally install or deploy any application merely because this skill
fires. `pdf-inspector` is MIT, but a pinned local binding still needs a canary
against the actual document family before becoming a batch default. PDFCraft is
AGPL-3.0. Stirling-PDF's root license is MIT only outside
named directories with separate licenses. Inspect the exact source/version and
get approval before adding a persistent service, hook, container, or exposed
port.

Timeline