Back to Phase 1

Skill Definition WF3 - Load Order

Source: c92 skill-definition — wireframe 3. Argument: show the definition the way the harness discloses it. Skills load progressively — name and description always, the body on trigger, the bundle on demand — so the page's spine is those three tiers, and the reach the skill gains at each one.

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
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
AlwaysOn triggerOn demandReachInstallsSessionsSurface← new sections in bold
tier 1

Always in context

~118 tokens · in every session on 12 installs

The only part of the skill the model sees before it triggers — the routing text. Verbatim, as the harness lists it.

name: pdf
description: 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.
invocation model + userinvoke as /pdflisted by claude-cli · user scope
tier 2

On trigger

SKILL.md body · 314 lines · ~2140 tokens

What enters the context when the skill fires — the instructions, and the controls the frontmatter sets on that moment.

disable-model-invocation
unset → model may trigger
user-invocable
unset → in the / menu
allowed-tools
unset → inherits session
model / context
unset → inherit · same context
argument-hint
unset
size
314 of the 500-line guidance
PDF Processing Guide
Overview

This 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.

Quick Start
from pypdf import PdfReader, PdfWriter

# Read a PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

# Extract text
text = ""
for page in reader.pages:
    text += page.extract_text()
Python Libraries
pypdf - Basic Operations

Merge PDFs

writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf"]:
    reader = PdfReader(pdf_file)
    for page in reader.pages:
        writer.add_page(page)
with open("merged.pdf", "wb") as output:
    writer.write(output)
pdfplumber - Text and Table Extraction

Use scripts/extract_form_structure.py to dump the field tree before filling a form, and scripts/check_bounding_boxes.py to validate placement afterwards.

Command-Line Tools
  • pdftotext -layout in.pdf out.txt keeps column layout
  • qpdf --decrypt --password=… in.pdf out.pdf strips owner encryption
  • gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook compresses for email
Scanned PDFs

Run OCR (ocrmypdf --skip-text) first; the extraction recipes above only see the text layer.

show all 314 lines · raw · dashed boxes mark placeholders ($ARGUMENTS, ${'{'}CLAUDE_*{'}'}) and load-time shell (!`cmd`) — none in this body
tier 3

On demand

5 referenced · 6 bundled only · ~11800 tokens if all read

Files the body points to, loaded only when the model follows the pointer — and the files it bundles without pointing to.

referenced from SKILL.md
REFERENCE.mdreferenceline 5 · 13.9 KB
FORMS.mdreferenceline 5 · 6.0 KB
LICENSE.txtlicenseline 4 · 1.1 KB
scripts/extract_form_structure.pyscriptline 41 · 2.6 KB
scripts/check_bounding_boxes.pyscriptline 41 · 1.9 KB
bundled, never referenced
scripts/fill_fillable_fields.pyscript · exec3.8 KB
scripts/convert_pdf_to_images.pyscript · exec1.4 KB
scripts/extract_form_field_info.pyscript · exec2.2 KB
scripts/create_validation_image.pyscript · exec2.0 KB
scripts/fill_pdf_form_with_annotations.pyscript · exec5.2 KB
scripts/check_fillable_fields.pyscript · exec880 B
reachable only by path — a script the model runs, or a tool call it improvises

Reach

what triggering this skill lets the harness do
tools
all
(unrestricted — no allowed-tools)
scripts
8
8 executable
shell in body
3
commands the body tells the model to run
load-time shell
0
!`cmd` blocks · run before the model sees the body
network
none found
no URLs or fetches in the bundle

Static reads of the bundle, not runtime facts — the runtime side stays the honest zero until a harness emits skill calls.

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 most literate option: it teaches a reader what the model can see at each moment, which is the question a governance person actually asks (“is this description in every session’s context? what runs when it triggers?”). Tier 1 is also the honest answer to “this is configured on 12 installs” — that text is in 12 fleets' prompts today. Costs a page that is longer and more didactic than the sibling detail pages; the tier labels may be better as captions inside WF1 than as sections.

Costs: everything WF1 needs, plus derived facts the inspector or qdash must compute: token estimates per tier, which bundle files the body references (a path grep), placeholder and load-time-shell detection in the body, and the invocation matrix decoded per harness (three spellings across Claude, Codex, Cursor, OpenClaw).

Qpoint Brand Style Guide