# Using the prebuilt skills: documents, slides, spreadsheets, pdfs
Ask Claude to "make me a deck" and it can hand you an actual .pptx file you download and open in PowerPoint or Keynote. We cover why a Skill produces a real downloadable file instead of a wall of text in detail in the previous lesson, What Skills Are and Why They Matter.
This lesson shows you how those four skills work, how to turn them on, and walks through generating a three-slide deck end to end, including how to get the file out.
A Skill is a packaged folder of instructions plus optional scripts and resources that Claude loads on demand when a task matches it. Think of it as a specialized capability Claude reaches for, rather than something baked into every response. The document skills ship from Anthropic and are maintained in the open at github.com/anthropics/skills.
The key thing that makes the document skills different from a normal Artifact: they execute inside Claude's code execution environment. The pptx skill, for example, drives the python-pptx library. Claude writes Python, runs it in a sandbox, the script writes a binary file to disk, and you download that file. The chat is just the control surface.
This matters because the output is genuinely editable downstream. A spreadsheet from the
xlsxdocxpptxThe document skills depend on code execution, so that has to be available first.
In the Claude apps (web, desktop, mobile):
1. Open Settings, then look for the Capabilities or Features area where code execution / file creation lives.
2. Enable file creation and analysis. On consumic and Team plans this is the toggle that lets Claude build and return files.
3. Skills surface automatically when relevant, but you can confirm and manage which are active in the Skills section of settings.
You do not "install" the four Anthropic document skills the way you would a custom one. They are first-party and available once file creation is on. Custom skills are a separate workflow, which you will see in the next lesson.
For developers via the API, code execution and Skills are exposed as tools you attach to a request. Anthropic documents the current setup in the Skills docs at docs.claude.com. The APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → path is how you would wire deck generation into your own product rather than driving it by hand in the chat.
Here is the concrete run. Open a chat with file creation enabled and prompt:
> Create a 3-slide PowerPoint pitching a weekly internal AI office-hours program. Slide 1: title slide with the program name "AI Office Hours" and a one-line tagline. Slide 2: three bullets on why it helps the team. Slide 3: how to join, with a time and a sign-up link placeholder. Keep the design clean and corporate.
What happens behind the scenes:
1. Claude recognizes this as a slide task and loads the pptx skill.
2. It writes a Python script using python-pptx.
3. The script runs in the sandbox and writes ai-office-hours.pptx.
4. Claude returns a download link (and usually a short summary of what it built).
You click the file, it downloads, you open it in PowerPoint, Google Slides, or Keynote. Done.
You do not write this code, but seeing it demystifies the skill. This is the shape of what the pptx skill executes:
from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
# Slide 1: title
title_slide = prs.slides.add_slide(prs.slide_layouts[0])
title_slide.shapes.title.text = "AI Office Hours"
title_slide.placeholders[1].text = "Bring your messiest AI questions, leave with answers."
# Slide 2: why it helps
why = prs.slides.add_slide(prs.slide_layouts[1])
why.shapes.title.text = "Why it helps"
body = why.placeholders[1].text_frame
for i, point in enumerate([
"Unblocks real work instead of abstract demos",
"Spreads good prompting habits across teams",
"Surfaces tools people did not know we had",
]):
para = body.paragraphs[0] if i == 0 else body.add_paragraph()
para.text = point
para.font.size = Pt(20)
# Slide 3: how to join
join = prs.slides.add_slide(prs.slide_layouts[1])
join.shapes.title.text = "How to join"
join.placeholders[1].text = "Thursdays, 2pm. Sign up: [link]"
prs.save("ai-office-hours.pptx")Notice the file is a real Presentation object. Every slide is a structured layout, every bullet is a paragraph with a font size. That is why the result opens cleanly and stays editable.
In the apps, the file appears as a downloadable attachment in Claude's reply. Click it. On desktop it lands in your normal Downloads folder; on mobile you get a share or save sheet.
Via the APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition →, the model returns a reference to a file produced in the code execution environment, and you fetch it with a follow-up files request. The pattern is: run the request, read the file ID from the response, download the bytes. The exact field names live in the current APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.View full definition → reference, so check the Messages API docs rather than trusting a snippet that may drift.
The real power is the follow-up turn. Because the deck exists as a file Claude built, you can refine it conversationally:
> Add a fourth slide listing three example questions someone might bring.
> Make slide 2's bullets shorter, max six words each.
> Re-export with our brand color #1A73E8 on the title slides.
Claude reruns the script with changes and hands back a new file. You are editing through language, then leaving with a normal .pptx you can polish by hand. This loop is the entire reason the skill beats copy-pasting bullets: the artifact is durable and structured.
The same mechanics apply across the family. What changes is the underlying library and what "good output" means.
Best for structured prose: reports, memos, contracts, formatted letters. It preserves heading hierarchy, lists, and styles. Prompt it to "produce a two-page project brief with an executive summary, three sections, and a risks table" and you get a real Word file with a real table object, not Markdown pretending to be one.
This is the one people underestimate. It writes live formulas, not just values. Ask for "a 12-month cash-flow model with revenue, costs, and a running balance," and the balance column contains =SUM(...) formulas that recalculate when you change inputs. Combine it with uploaded data: feed Claude a messy CSV and ask for a cleaned, formatted, formula-driven workbook back.
The pdf skill leans two directions. It can generate polished PDFs (think a one-page summary with layout), and it pairs with Claude's strong document reading to fill forms or extract structured data from PDFs you upload. A common workflow: upload an invoice PDF, ask Claude to pull the line items into an xlsx. That is two skills cooperating in one task.
Knowledge check
1. What fundamentally distinguishes the document Skills (xlsx, docx, pptx, pdf) from a normal Artifact?
2. According to the lesson, what does a Skill consist of?
3. Which underlying capability must be available before the document Skills can be used?
4. Select ALL correct answers about why output from the document Skills is considered genuinely editable downstream.
Sélectionnez toutes les réponses correctes.
5. Select ALL correct answers about how the pptx skill produces a deck.
Sélectionnez toutes les réponses correctes.
Skills are loaded by relevance, which is usually invisible and correct. But two situations trip people up.
Ambiguous output format. "Summarize this quarterly data" might give you a chat reply, an Artifact, or a file. If you want a downloadable spreadsheet, say so: "return it as an xlsx file." Naming the format nudges the right skill.
Skill availability. If file creation is off, Claude will write you a nicely formatted answer in the chat and no file appears. If you expected a download and got text, check that capability first. This is the single most common "it didn't work" cause.
A clean habit: state the artifact and the format up front. "Build a deck (pptx) ..." or "Give me a workbook (xlsx) with ..." removes the guesswork.
These skills shine when the file is the deliverable. A few concrete patterns worth stealing:
xlsx layout each week. The Project's context keeps the format consistent.pptx skeleton in seconds, then spend your time on the two slides that actually matter instead of building structure from scratch.docx action-items memo." The skill handles structure; Claude handles the editorial call about what matters.The mental model: the chat is the editor, the skill is the printer, and the file that drops out is yours to keep and edit forever.
xlsx, docx, pptx, pdf) only work when code execution / file creation is enabled in your Claude settings. No toggle, no download.