Skills in Action
Four real people. Four real tasks. Step-by-step breakdowns showing exactly which files Claude opens, which code it runs, and what you get at the end.
In Part 1, we opened up the Skill files and explained the mechanics — the SKILL.md, the scripts, the three layers. Now let's watch them work. Four people, four tasks, zero ambiguity about what's happening at each step.
Each walkthrough shows: what you type, which Skill file activates, what code runs inside Claude's private workspace, and what file appears in your conversation. We're pulling the curtain all the way back.
The Teacher Making a Grading Rubric
"Create a grading rubric for an 8th grade science fair project as a Word document. Categories: hypothesis quality, experimental design, data analysis, presentation, and creativity. Four levels: Exceeds (4), Meets (3), Approaching (2), Beginning (1). Include a total score row."
What happens behind the scenes
Claude scans every installed Skill's description. The docx Skill's description says: "Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents." Maya said "Word document" — match found.
name: docx description: "Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx'..."
Now Claude loads the complete SKILL.md body — 590 lines of instructions on how to create Word documents. It learns to use the docx-js JavaScript library, set US Letter page size, and create tables with proper formatting.
## Creating New Documents Generate .docx files with JavaScript, then validate. const { Document, Packer, Paragraph, Table, TableRow, TableCell, TextRun, AlignmentType, WidthType, HeadingLevel } = require('docx'); // CRITICAL: Always set US Letter, not A4 page: { size: { width: 12240, height: 15840 } // 8.5 × 11 inches in DXA units }
Why this matters for Maya: Without these instructions, Claude might create a table as plain text or use A4 paper size (which would look slightly off when printed in the US). The Skill ensures the rubric uses correct page dimensions and proper Word table formatting.
In its private workspace, Claude writes a JavaScript file that creates a Word document with a 5-row × 5-column table (5 categories × 4 scoring levels plus headers), formatted headers, a total score row, and Maya's school info.
const doc = new Document({ styles: { default: { document: { run: { font: "Arial", size: 24 } }}}, sections: [{ properties: { page: { size: { width: 12240, height: 15840 // US Letter }}}, children: [ new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun("Science Fair Project Rubric")] }), createRubricTable(categories, levels), // ... total score row, teacher signature line ] }] }); Packer.toBuffer(doc).then(buf => fs.writeFileSync("rubric.docx", buf) );
After creating the file, Claude runs the validation script from the Skill's scripts/ folder. This checks that the .docx is properly formed — valid XML, correct structure, no corruption.
# Claude runs this automatically after every .docx python scripts/office/validate.py rubric.docx ✓ Valid .docx — 1 section, 1 table, 7 paragraphs ✓ No XML errors ✓ File size: 12KB
What if Maya had said it differently?
If Maya typed "give me a rubric for the science fair" without saying "Word document," Claude would produce the rubric as formatted text in the conversation — useful, but not a downloadable file. The word "Word document" (or "docx," "save as a file") is what triggers the Skill. The content of the answer is the same; the delivery format changes.
The Lawyer Analyzing a Contract
"Read this commercial lease agreement and extract: monthly rent, annual escalation rate, security deposit, early termination clause, and tenant improvement allowance. Summarize each term in a table."
What happens behind the scenes
David uploaded a PDF. The File Reading Skill activates first — it's the traffic cop. It looks at the file extension (.pdf) and checks its dispatch table to decide the right approach:
Extension → First Move → Hand off to ───────────────────────────────────────────────────── .pdf → Content inventory → pdf-reading/SKILL.md .docx → pandoc to markdown → docx/SKILL.md .xlsx → openpyxl sheet names → xlsx/SKILL.md
The traffic cop routes to the specialist. File Reading doesn't read the PDF itself — it identifies the type and hands off to the PDF Reading Skill, which knows the specialized techniques for PDF extraction.
Before reading the actual content, Claude diagnoses what kind of PDF this is. Is it a digital document with selectable text? A scanned image? Does it have tables, forms, or embedded files?
# Step 1: Page count and metadata pdfinfo lease-agreement.pdf → Pages: 40 | PDF version: 1.7 | Encrypted: no # Step 2: Is it text or a scanned image? pdftotext -f 1 -l 1 lease-agreement.pdf - | head -20 → "COMMERCIAL LEASE AGREEMENT..." ✓ Text PDF — good, direct extraction will work # If the text check returned nothing, # Claude would switch to OCR (image-to-text)
The Skill uses Python's pypdf library to extract text from every page, preserving paragraph structure:
from pypdf import PdfReader reader = PdfReader("lease-agreement.pdf") full_text = "" for page in reader.pages: full_text += page.extract_text() # Claude now has all 40 pages of text # and can search for the specific terms # David asked about
This is where Claude's intelligence (not the Skill) does the work. Claude reads the full lease text, identifies the relevant clauses, understands the legal language, and pulls out each term David asked about. The Skill handled the mechanics of extraction; Claude handles the understanding.
Key distinction: Skills handle the how (reading PDFs, building files). Claude's intelligence handles the what (understanding legal language, identifying relevant clauses, summarizing correctly). They work together.
Monthly Rent: $18,500/month (Section 4.1, Page 8)
Annual Escalation: 3% per year (Section 4.3, Page 9)
Security Deposit: $55,500 — 3 months' rent (Section 5.1, Page 12)
Early Termination: Permitted after Month 36 with 6 months' notice and 4 months' rent penalty (Section 22.4, Page 31)
TI Allowance: $45/sq ft up to $67,500, must submit plans within 90 days (Section 8.2, Page 16)
Notice Claude cites the exact section numbers and page numbers. This is possible because the PDF Reading Skill preserved the page structure during extraction — Claude knows which text came from which page.
The Bakery Owner Building a Pitch Deck
"Create a 10-slide investor pitch deck for my bakery 'Flour & Fold.' We're a South Indian-inspired bakery in Austin, TX. Revenue is $340K this year, up 40% from last year. We want to open a second location. Include slides for: title, our story, the problem we solve, our menu, traction/financials, team, market opportunity, the ask ($250K for location 2), use of funds, and closing."
What happens behind the scenes
The pptx Skill description says: "Trigger whenever the user mentions 'deck,' 'slides,' 'presentation.'" Priya said "pitch deck" — match.
The main SKILL.md is short — it's a router. For "create from scratch" (no template), it says: "Read pptxgenjs.md for full details." Claude loads this second file — 420 lines covering slide layouts, text formatting, charts, tables, and shapes.
| Task | Guide | |-----------------------|------------------------| | Read/analyze content | markitdown + thumbnail | | Edit from template | Read editing.md | | Create from scratch | Read pptxgenjs.md |
Two-level loading in action. The main SKILL.md is ~230 lines (the menu + router). The reference file pptxgenjs.md is ~420 lines (the detailed recipe). Claude only loads the reference file because Priya needs a new deck from scratch. If she was editing an existing file, Claude would load editing.md instead.
Using the PptxGenJS library it learned from the Skill, Claude generates code for each slide with proper layouts, text positioning, colors, and a chart for the financials:
let slide5 = pres.addSlide(); slide5.addText("Traction & Financials", { x: 0.5, y: 0.3, w: 9, h: 0.8, fontSize: 28, fontFace: "Arial", bold: true, color: "2D2D2D" }); // Revenue chart — bar chart with 3 years slide5.addChart(pres.charts.BAR, [{ name: "Revenue", labels: ["2024", "2025", "2026 (proj)"], values: [175000, 243000, 340000] }], { x: 0.5, y: 1.5, w: 4.5, h: 3.5, showValue: true, catAxisOrientation: "minMax" }); // Key metrics text slide5.addText([ { text: "40% YoY Growth", options: { bold: true, fontSize: 22, breakLine: true }}, { text: "$340K run rate", options: { fontSize: 18, breakLine: true }}, { text: "2,100+ monthly customers", options: { fontSize: 18 }} ], { x: 5.5, y: 1.8, w: 4, h: 3 });
The Freelancer Designing a Portfolio Site
"Build me a portfolio landing page for my photography business. I shoot weddings and landscapes. I want it to feel like a gallery — lots of white space, elegant typography, no clutter. Think editorial magazine layout. Dark text on light background."
What happens behind the scenes
The Frontend Design Skill activates. Unlike the document Skills, this one doesn't have scripts — it's pure instructions. But those instructions fundamentally change Claude's approach to design.
The Skill forces Claude to stop and think about design before writing any code. This is the key difference from a response without the Skill:
## Design Thinking Before coding, understand the context and commit to a BOLD aesthetic direction: - Purpose: What problem does this solve? Who uses it? - Tone: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic, luxury/refined, editorial/magazine... - Differentiation: What makes this UNFORGETTABLE? CRITICAL: Choose a clear conceptual direction and execute with precision.
This is why the result looks designed, not generated. The Skill explicitly tells Claude to commit to a direction — Alex said "editorial magazine layout," so Claude will make every design decision through that lens: serif typography, generous whitespace, image-forward grid.
The Skill has an explicit blacklist of what not to do — the patterns that make AI-generated pages look generic:
NEVER use generic AI-generated aesthetics: ❌ Overused fonts (Inter, Roboto, Arial, system) ❌ Cliched colors (purple gradients on white) ❌ Predictable layouts and component patterns ❌ Cookie-cutter design without character Instead: ✓ Typography: Distinctive, characterful font choices. Pair a display font with a refined body font. ✓ Color: Dominant colors with sharp accents. Not timid, evenly-distributed palettes. ✓ Motion: Staggered scroll reveals, hover states that surprise. One orchestrated page load. ✓ Composition: Asymmetry. Overlap. Grid-breaking. Generous negative space OR controlled density.
Guided by the Skill's philosophy and Alex's brief ("editorial, gallery, white space"), Claude writes a complete, working page — distinctive fonts from Google Fonts, a masonry-style photo grid, subtle scroll-reveal animations, and responsive design that works on phones.
The design brief matters
Alex said "editorial magazine layout" — that phrase shaped every design decision. If Alex had said "build me a website" with no aesthetic direction, the Skill still improves the output, but can't commit to a specific vision. The more specific your brief, the better the result. "Playful, colorful, Bauhaus-inspired" gives Claude a completely different starting point than "minimal, dark, brutalist."
What All Four Scenarios Have in Common
Look at what happened in every case:
1. A normal, human request. None of these people used technical language. Maya said "Word document." David attached a PDF. Priya said "pitch deck." Alex said "landing page." Normal words.
2. Automatic Skill activation. Nobody said "use the pptx Skill." Nobody knew Skills existed. The description field in each Skill is specifically written to match the way real people talk.
3. Specialized tools behind the scenes. JavaScript libraries building real PowerPoint files. Python scripts extracting text from PDFs. Validation scripts checking file integrity. Design frameworks preventing generic output. All invisible to the user.
4. A real, usable output. Not suggestions. Not templates. Not "here's what you could do." Actual files you can open, edit, print, present, and share.
That's what Skills do. They turn Claude from a conversationalist into a toolmaker. And they do it without requiring you to know they exist.
If you want Claude to create a file (not just text), mention the file type: "as a Word document," "as a PowerPoint," "as a spreadsheet," "as a PDF." Those words activate the Skill. Without them, Claude gives you excellent text. With them, Claude gives you an excellent file.