agentleFS
jatinchuglanijatinchuglani/claude-skills/skills/build-presentation/SKILL.md

build-presentation

Skill0 starsChanged 4 months agoMITView on GitHub

Create polished, on-brand PowerPoint decks. Use whenever building, generating, or overhauling a slide deck / presentation / PPTX. Bakes in template-driven sizing, theme-only colors, auto-diagrams, per-slide visual design with mocks/placeholders, and mandatory render-and-inspect verification.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. olivMertens/copilot-skills★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 8 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If no template exists, create one deliberately once and reuse it — a blank deck has no theme to anchor colors and fonts, which defeats Step …

    line 14
  2. Distinctive:

    Never invent a color palette: Every fill, line, text, chart, and diagram color must come from the template's own theme.

    line 18
  3. Very specific:

    After building, audit every shape's fill/line/font against the theme set and report "0 non-theme colors" or fix what leaked.

    line 23
  4. Distinctive:

    Check the actual slide size before choosing font sizes.

    line 39
  5. Very specific:

    Bullet size: use buSzPct val="100000" (never buSzPts) so the dot scales with text.

    line 47
  6. Distinctive:

    Treat every slide as a design problem.

    line 55
  7. Distinctive:

    Don't over-diagram: a pure statement slide or section divider stays clean.

    line 60
  8. Distinctive:

    Push detail to speaker notes: If the slide's title + visual elements already convey the message, put the supporting detail in the slide's …

    line 61
  9. Very specific:

    Don't trust a layout is "blank" from placeholder count alone — templates bake mascots/sparkles/watermarks into layout/master backgrounds.

    line 65
  10. Distinctive:

    Keep framing consistent and lead with the strategic objective the work serves, then the specifics.

    line 72
  11. Distinctive:

    Look at every PNG and confirm: no background junk, readable contrast, nothing clipped or overlapping, fonts big enough.

    line 84

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Build Presentation

Author a slide deck that is on-brand, visually designed per slide, and verified by eye before you call it done. Follow all of it, every time.

Step 0 — Pick the template (never start blank)

Choose the base template up front and load it — do NOT create a blank Presentation(). Keep a small map of your own templates (corporate, summit, etc.) and pick by deck type. Load with Presentation('<template path>'), not a blank deck.

If no template exists, create one deliberately once and reuse it — a blank deck has no theme to anchor colors and fonts, which defeats Step 1.

Step 1 — Extract the theme (colors + font) BEFORE drawing anything

Never invent a color palette. Every fill, line, text, chart, and diagram color must come from the template's own theme.

  • Unzip the .pptx and read ppt/theme/theme1.xml → <a:clrScheme> (dk1, lt1, dk2, lt2, accent1–6, hlink, folHlink) and <a:fontScheme> for the typeface. Use ONLY those hexes + that font.
  • Missing semantic role (e.g. no green/grey)? Reuse an existing theme color for that semantic — never add a new one.
  • Auto-contrast: compute luminance of a fill and place dk1 or lt1 text on it — don't guess.
  • After building, audit every shape's fill/line/font against the theme set and report "0 non-theme colors" or fix what leaked.
# Extract theme colors and fonts
unzip -p deck.pptx ppt/theme/theme1.xml | python3 -c "
import sys, re
xml = sys.stdin.read()
for m in re.finditer(r'<a:(dk1|lt1|dk2|lt2|accent[1-6]|hlink|folHlink)>.*?(?:srgbClr val=\"([0-9A-Fa-f]{6})\"|sysClr[^>]*lastClr=\"([0-9A-Fa-f]{6})\")', xml):
    print(m.group(1), '#'+(m.group(2) or m.group(3)))
for m in re.finditer(r'<a:(majorFont|minorFont)>.*?typeface=\"([^\"]+)\"', xml):
    print(m.group(1), m.group(2))
"

Step 2 — Size for your template's slide dimensions

Check the actual slide size before choosing font sizes. Standard 16:9 decks are 10" × 7.5" (or 13.3" × 7.5"); some corporate templates use double-scale slides (e.g. 20" × 11.25"), in which case all fonts scale up proportionally. Text that is unreadable when projected gets decks rebuilt.

Guidance for a standard 13.3" × 7.5" deck (scale up for double-size templates):

  • Title: 28–36pt bold · Subtitle: 18–22pt · Body/bullets: 14–18pt, never below 12pt
  • Bullet spacing: space_before=Pt(6), space_after=Pt(8)
  • Max 6–8 bullets per body area. More content → split across slides. Never pack 15+ bullets on one slide.
  • Bullet structure: section headings/labels inside a body placeholder (larger font) use buNone (plain bold text); only real list items get buChar. Never bullet a heading.
  • Bullet size: use buSzPct val="100000" (never buSzPts) so the dot scales with text.
  • Titles: Capitalize All Slide Titles for consistency.

Pick layouts by inspecting the template's own slide layouts

Enumerate ppt/slideLayouts/slideLayoutN.xml and map each to a use (title slide, single-body, two-column comparison, section divider, title+body+footer). Match the layout to each slide's message — don't default everything to title + bullets. Watch out for footer-strip placeholders (very short height ~0.5") — never use them for body content.

Step 3 — Design each slide to communicate (not default to bullets)

Treat every slide as a design problem. Pick the layout that best carries that slide's message. Prefer well-structured visual layouts, and add mocks / placeholders wherever possible.

  • Choose per message: two-column, comparison table, timeline, diagram + caption, quote block, big-number stat, UI mock.
  • Add mocks/placeholders liberally: UI mockup boxes, chart/graph shells with representative shape, labeled screenshot placeholders ("[Dashboard: metric here]"), diagram frames.
  • Auto-add diagrams without being asked wherever they strengthen the message — architecture, flows, timelines/roadmaps, comparison visuals. Use Mermaid (rendered to PNG) for flows/architecture, python-pptx shapes for timelines/roadmaps, tables for comparisons.
  • Don't over-diagram: a pure statement slide or section divider stays clean.
  • Push detail to speaker notes. If the slide's title + visual elements already convey the message, put the supporting detail in the slide's speaker notes — not on the slide. Keep the slide clean and visual; narration lives in the notes (python-pptx: slide.notes_slide.notes_text_frame.text).

Step 4 — Layout hygiene (kill template background junk)

  • Don't trust a layout is "blank" from placeholder count alone — templates bake mascots/sparkles/watermarks into layout/master backgrounds.
  • Inspect ppt/slideLayouts/slideLayoutN.xml for <p:pic> and large decorative <p:sp>; prefer a layout with pic=0 and a plain <p:bg> solidFill.
  • Belt-and-suspenders: on every slide set cSld showMasterSp="0" AND draw a full-bleed theme-color background rectangle as the first shape.

Step 5 — Language rules

  • Match terminology to your audience. For customer-facing decks, use official external product names only; internal decks may use internal names. Keep a name-mapping if your product has both.
  • Keep framing consistent and lead with the strategic objective the work serves, then the specifics.

Step 6 — Render and LOOK before declaring done (MANDATORY)

Geometry checks are not enough — they miss baked-in graphics and low-contrast slides. Render to images and visually inspect every slide:

SOFF=/Applications/LibreOffice.app/Contents/MacOS/soffice   # adjust per OS
"$SOFF" --headless --convert-to pdf --outdir /tmp/deckpng "<the.pptx>"
pdftoppm -png -r 80 /tmp/deckpng/*.pdf /tmp/deckpng/slide   # then view each slide-*.png

Look at every PNG and confirm: no background junk, readable contrast, nothing clipped or overlapping, fonts big enough. Only then say it's done. If soffice isn't installed, say so and flag the deck as unverified.

Definition of done

  • Built on a real template (not blank)
  • 0 non-theme colors; theme font only
  • Fonts sized for the actual slide dimensions (readable when projected)
  • Each slide visually designed for its message; mocks/placeholders + diagrams added where useful
  • Consistent, audience-appropriate terminology
  • No layout/master background junk
  • Rendered to images and every slide visually inspected

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.