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.
Definitions
3 distinct · by SKILL.md hashOne skill name, as many definitions as the carrying installs hold. Canonical is the most-installed; every other row is drift from it.
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.
1---2name: pdf3description: 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 terms5---6# PDF Processing Guide78## Overview910This 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.1112## Quick Start1314```python15from pypdf import PdfReader, PdfWriter1617# Read a PDF18reader = PdfReader("document.pdf")19print(f"Pages: {len(reader.pages)}")2021# Extract text22text = ""23for page in reader.pages:24 text += page.extract_text()25```2627## Python Libraries2829### pypdf - Basic Operations3031**Merge PDFs**3233```python34writer = 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```4243### pdfplumber - Text and Table Extraction4445Use `scripts/extract_form_structure.py` to dump the field tree before filling a form, and `scripts/check_bounding_boxes.py` to validate placement afterwards.4647## Command-Line Tools4849- `pdftotext -layout in.pdf out.txt` keeps column layout50- `qpdf --decrypt --password=… in.pdf out.pdf` strips owner encryption51- `gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook` compresses for email5253## Scanned PDFs5455Run 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.
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.