Back to Phase 1

Skill Definition WF4 - Fleet Variants

Source: c92 skill-definition — wireframe 4. Argument: Skill detail is a fleet rollup keyed on a name, but the definition lives per install and drifts. Before showing any definition the page must say which one — so the spine is the set of distinct definitions, and the preview is of whichever the reader picks.

fixture
/inventory/skills/detail?skill=pdf
Harness Inventory › Skills › pdf
✦pdf
configured/claude-cli/ never invoked at runtime
Installs
12
Metadata
NamepdfDescriptionUse this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.Harness typesclaude-cliPeople9
Definitions3 distinct across 12 installs
Show all metadata
Installs
12
with this skill configured
People
9
who own those installs
Sessions
31
on those installs · could have run it, not did
Invocations
0
no harness emits skill calls yet
DefinitionsDefinitionInstallsSessionsSurface← new sections in bold

Definitions

3 distinct · by SKILL.md hash

One skill name, as many definitions as the carrying installs hold. Canonical is the most-installed; every other row is drift from it.

Distinct definitions
3
On canonical
9 of 12
Drifted installs
3
the attention device
Newest definition
2026-09-19
hashinstallsharnessesfirst seendelta vs canonical
frontmatter across definitions
a91f3c0e4be07d12c0d8e551
namepdfpdfpdf
description(same)(same)(same)
licenseProprietary. LICENSE.txt has complete termsProprietary. LICENSE.txt has complete termsProprietary. LICENSE.txt has complete terms
allowed-tools—Bash, Read, WriteRead, Bash(python:*)

Definition

a91f3c0e · canonical · on 9 installs · 314 linesRendered · Raw ·

As scanned on mbp-sofia at 2026-07-14 09:12 — the install the variant was first seen on. Shaded lines differ from canonical.

SKILL.mdsha256 a91f3c0e7.9 KB314 linescopy
1---
2name: pdf
3description: Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
4license: Proprietary. LICENSE.txt has complete terms
5---
6# PDF Processing Guide
7
8## Overview
9
10This guide covers essential PDF processing operations using Python libraries and command-line tools. For advanced features, JavaScript libraries, and detailed examples, see REFERENCE.md. If you need to fill out a PDF form, read FORMS.md and follow its instructions.
11
12## Quick Start
13
14```python
15from pypdf import PdfReader, PdfWriter
16
17# Read a PDF
18reader = PdfReader("document.pdf")
19print(f"Pages: {len(reader.pages)}")
20
21# Extract text
22text = ""
23for page in reader.pages:
24 text += page.extract_text()
25```
26
27## Python Libraries
28
29### pypdf - Basic Operations
30
31**Merge PDFs**
32
33```python
34writer = PdfWriter()
35for pdf_file in ["doc1.pdf", "doc2.pdf"]:
36 reader = PdfReader(pdf_file)
37 for page in reader.pages:
38 writer.add_page(page)
39with open("merged.pdf", "wb") as output:
40 writer.write(output)
41```
42
43### pdfplumber - Text and Table Extraction
44
45Use `scripts/extract_form_structure.py` to dump the field tree before filling a form, and `scripts/check_bounding_boxes.py` to validate placement afterwards.
46
47## Command-Line Tools
48
49- `pdftotext -layout in.pdf out.txt` keeps column layout
50- `qpdf --decrypt --password=… in.pdf out.pdf` strips owner encryption
51- `gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook` compresses for email
52
53## Scanned PDFs
54
55Run OCR (`ocrmypdf --skip-text`) first; the extraction recipes above only see the text layer.

Bundle files for this variant: 12 — the file ledger (WF1) or browser (WF2) sits here in the combined design.

Installs — 12 with this skill configured
as built (providers-skills, 2026-09-22) — unchanged by this option
Sessions — 31 on those installs, past 7 days
as built (providers-skills, 2026-09-22) — unchanged by this option
Surface
as built (providers-skills, 2026-09-22) — unchanged by this option

Readout

The only option that answers the question the other three assume away: with 12 installs carrying 'pdf', which SKILL.md is the definition? On a fleet with a synced marketplace skill the answer is usually one, and this collapses to a single-row ledger plus a preview (see the capture and deploy fixtures) — cheap. When it isn't one, the drift is the finding: a user-edited copy that added Bash to allowed-tools is exactly what a security reviewer wants surfaced, and no other option can show it. Costs a comparison device the page otherwise doesn't need, and hashing per install in the inspector.

Costs: the inspector must hash the SKILL.md (and ideally each bundle file) per install and ship the body per distinct hash; qdash groups installs by hash, elects the canonical (most installs, ties to oldest), and computes a one-line delta per variant — a frontmatter diff plus a body line-count delta is enough for the ledger, a real diff for the preview.

Qpoint Brand Style Guide