agent-instructions
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what does not, structure, and…
Use when creating or editing slide decks (.pptx). Covers slide structure, using layouts and templates correctly, charts and images, speaker notes, and building a deck that communicates rather than decorates.
$ npx -y skills add nimadorostkar/Claude-Skills-collection --skill presentations --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/presentationsContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when creating or editing slide decks (.pptx). Covers slide structure, using layouts and templates correctly, charts and images, speaker notes, and building a deck that communicates rather than decorates.
name: presentations description: Use when creating or editing slide decks (.pptx). Covers slide structure, using layouts and templates correctly, charts and images, speaker notes, and building a deck that communicates rather than decorates. metadata: category: documents version: 1.0.0 tags: [pptx, powerpoint, slides, presentations, templates]
Build slide decks programmatically, using the template's layouts rather than positioning text boxes by hand — and with a structure that carries an argument rather than a list of topics.
1. **Write the argument before the slides** — What is the conclusion, and what supports it? A deck assembled from available material rather than toward a point is a document with page breaks. 2. **Use the template's layouts** — Each layout has placeholders. Filling a placeholder inherits the template's fonts, sizes, and positions. Adding a free-floating text box does not, and it will look wrong on a projector. 3. **One idea per slide** — The slide title should state the point, not the topic. "Revenue grew 40% on enterprise expansion" is a title; "Revenue" is a label. 4. **Put the detail in the notes** — The slide carries the point; the speaker or the notes carry the argument. A slide with eight bullet points will be read instead of listened to. 5. **Verify it renders** — Open it. Text that overflows its placeholder is invisible in the XML and obvious on screen.
**Building on a template's layouts:**
from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation("templates/corporate.pptx") # inherit the house style
# Layouts come from the template. Inspect them rather than guessing indices.
# for i, layout in enumerate(prs.slide_layouts):
# print(i, layout.name)
# 0 Title Slide | 1 Title and Content | 5 Title Only | 6 Blank
title_slide = prs.slides.add_slide(prs.slide_layouts[0])
title_slide.shapes.title.text = "Q2 Operations Review"
title_slide.placeholders[1].text = "Platform Team | July 2026"
# A slide whose title is a claim, not a label.
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "Availability met target every month; two incidents exceeded RTO"
body = slide.placeholders[1].text_frame
body.text = "99.94% availability against a 99.9% target"
for point in [
"Two incidents exceeded the 30-minute recovery objective",
"Both traced to the same cause: no automated rollback on the pricing service",
"Automated rollback ships this quarter",
]:
p = body.add_paragraph()
p.text = point
p.level = 1
# The detail lives in the notes, not on the slide.
slide.notes_slide.notes_text_frame.text = (
"The 99.94% figure is the weighted average across all three regions. "
"eu-west-1 was 99.87% in May, below target, driven entirely by the "
"14 May incident. Without automated rollback, mean recovery time is "
"41 minutes against a 30-minute objective — the incidents were not "
"unusually severe, the recovery was unusually manual."
)
prs.save("output/q2-review.pptx")**A native chart rather than a pasted image:**
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
slide = prs.slides.add_slide(prs.slide_layouts[5])
slide.shapes.title.text = "Incident count fell 40% after the rollback change"
chart_data = CategoryChartData()
chart_data.categories = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
chart_data.add_series("Incidents", (12, 14, 11, 8, 7, 7))
slide.shapes.add_chart(
XL_CHART_TYPE.COLUMN_CLUSTERED,
Inches(1), Inches(1.8), Inches(8), Inches(4.5),
chart_data,
)
# Editable in PowerPoint, rescales with the slide, and readable on a projector.A curated library of 137 production-grade skills for Claude and other AI coding agents. Every skill follows one structure, speaks with one voice, and earns its place by changing what the agent does.
Repo: nimadorostkar/Claude-Skills-collection
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what does not, structure, and…
Use when an agent needs state that survives a session or a context compaction. Covers what to persist, file-based memory, structuring notes for retrieval, and…
Use when automating agent behavior with lifecycle hooks. Covers hook events, deterministic enforcement of rules the model should not be trusted to remember,…
Use when packaging skills, commands, hooks, and MCP servers into a distributable plugin. Covers manifest structure, bundling, versioning, testing, and…
Use when writing a new skill for an AI agent. Covers scoping, description writing for reliable triggering, progressive disclosure, and the difference between a…
Use when reviewing or improving an existing agent skill. Covers triggering accuracy, content quality, redundancy with the base model, and measuring whether the…