Claude Code, Skill Development.

Using a pdf-editor example, this video explains how SKILL.md, progressive disclosure, and a precise trigger description determine whether a Claude Code skill fires reliably.

2:05 video3 min readWatch on YouTube

Getting Claude to reliably repeat a task your way isn't something you ask for in conversation, conversations end and reminders fade. It's something you build and hand to Claude as a Skill. This video walks through the actual structure of a Claude Code skill using a pdf-editor example, and shows the two specific mistakes that keep a skill from firing when it should.

The structure of a skill

A skill is a SKILL.md file with YAML frontmatter, name and description are required, plus an imperative body written as direct steps. Around that file sit three optional folders: scripts/ for code, references/ for documentation, and assets/ for output files. None of the three folders are required, a skill can be just the file itself, but they give a skill a place to keep supporting material out of the main body.

Progressive disclosure, in three levels

The video's central concept is progressive disclosure, which loads a skill in stages rather than all at once. The name and description sit in context for every conversation, always visible regardless of what's being discussed. The body loads only once the description matches what's actually being asked. The resource folders, scripts, references, and assets, load only when Claude decides during execution that it needs them. This staged loading is why the description field matters so much, it's the only part of the skill Claude sees before deciding whether the rest is relevant.

Built to be found, or built to be missed

Using a pdf-editor skill as the example, the video shows what a working description looks like: it names the trigger phrase directly, something like used when the user asks to rotate a PDF or convert PDF pages, because that's the only sentence Claude sees before deciding. Written that way, the skill fires exactly when someone asks to rotate a PDF, every time, because Claude is matching a specific phrase, not guessing at relevance. Write a vague description instead, something like use this skill for PDF tasks, and the skill won't fire reliably at all, since there's no specific trigger for Claude to match against.

The second failure mode: skipping progressive disclosure

There's a second, separate mistake the video calls out: where the rotation code lives. Paste the rotation script straight into the SKILL.md body instead of putting it in its own scripts/ file, and the whole skill loads in full on every single trigger. The lean file meant to load only the parts Claude needs becomes exactly the thing progressive disclosure was built to avoid, everything loads at once regardless of whether it's needed for that particular request.

Key takeaways

  • A skill is SKILL.md (required name and description in YAML frontmatter, plus an imperative body) with three optional folders: scripts/, references/, assets/.
  • Progressive disclosure loads a skill in three levels: name and description always visible, the body on a description match, resource folders only when Claude decides it needs them.
  • A description that names the trigger phrase directly makes the skill fire reliably every time that phrase comes up.
  • A vague description, such as "use this for PDF tasks," causes the skill to fire unreliably or not at all.
  • Putting code directly in the SKILL.md body instead of a scripts/ file forces the whole skill to load in full on every trigger, defeating progressive disclosure.

Who this is for

This is for developers building Claude Code plugins or custom skills who want their skill to trigger reliably and load efficiently, rather than guessing at why a skill isn't firing or is loading more than it should.

Chapters

  1. 0:00How do I add a reminder so Claude always follows my PDF workflow?
  2. 0:12Always visible, loaded as needed
  3. 0:31Built to be found — the anchor
  4. 0:54Found — then lost two ways
  5. 1:20Carry-out
  6. 1:30Your turn
  7. 2:01Outro
Full transcript(auto-generated, with timestamps)

How do I add a reminder so Claude always follows my PDF workflow?

[0:00]Someone asks Claude to just remember their PDF workflow, but conversations end and reminders fade. The real fix is a skill, a packaged capability Claude can find on its own. What's inside one? A reminder lives inside this

Always visible, loaded as needed

[0:12]Conversation. Once it scrolls away or a session ends, it's gone. A skill lives in a file Claude reads before you even ask. Its name and description sit in front of every conversation, always visible. The rest, the instructions and any scripts, references, or output files, loads only once Claude decides the skill applies.

Built to be found — the anchor

[0:31]Picture a skill called PDF editor for rotating PDFs and converting pages to images. Its description has to name the trigger directly. Used when the user asks to rotate a PDF or convert PDF pages because that's the only sentence Claude sees before it decides. The instructions inside are written as direct steps, not advice, and the actual rotation code lives in its own script file, referenced by name. Get the description right and PDF editor fires

Found — then lost two ways

[0:55]Exactly when someone asks to rotate a PDF every time because Claude is matching a specific phrase, not guessing. But swap that for vague line like use this skill for PDF tasks and it won't fire reliably at all. And paste the rotation script directly into the body instead of its own file and the whole skill loads in full on every single trigger. The lean file you wrote becomes the thing progressive disclosure was built to avoid. A skill isn't

Carry-out

[1:20]Something you ask Claude to remember. It's a file whose description has to do the finding and everything inside it only loads once that description matches. Turn Here's the prompt, read it with me.

Your turn

[1:31]Create a skill for my plugin called PDF editor that handles rotating PDFs and converting pages to images. Watch three things when Claude answers. Does the description read in third person with a specific trigger phrase? This skill should be used when the user asks to rotate a PDF or convert pages instead of something vague like use this for PDF tasks. Is the body written as direct steps, not advice? And does the actual rotation code live in its own script file, referenced by name instead of pasted into the body. Lay 'em in for bare. Claude code skill development Lay 'em in

Outro

[2:03]For bare.

More from Claude Code

Humanitarians AI Lyrical Literacy Project