agentleFS
heartnetkungheartnetkung/claude-skills/skills/slides/SKILL.md

slides

Skill1 starsChanged 50 days agoMITView on GitHub

Build PowerPoint decks from a Markdown source with pandoc, reloading LibreOffice Impress after every change. Use when asked to make a presentation, slide deck, or .pptx; when editing a *-slides.md deck; when asked to review a deck (`/slides review`); or when asked to add diagrams, photos, or visuals to slides (`/slides visuals`).

  • Installs packages

82 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use banner-design, ui-styling and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • seikaikyoSkill

    banner-design

    Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with optional generated or supplied visuals. Actions: design, create, generate banner. Platforms: Facebook, Twitter/X, LinkedIn, YouTube, Instagram, Google Display, website hero, print. Styles: minimalist, gradient, bold typography, photo-based, illustrated, geometric, retro, glassmorphism, 3D, neon, duotone, editorial, collage.

    Also in 39 projects that use this

  • MicrosoftSkill

    ui-styling

    Guide for the visual style, structure, and shared building blocks used by Semantic Link Labs interactive UI tools (HTML widgets and anywidget-based widgets). Use this when adding a new interactive UI, modifying an existing one, or adding shared visual components.

    Also in 38 projects that use this

  • seikaikyoSkill

    brand

    Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.

    Also in 44 projects that use this

  • jpoindexterSkill

    fal-restore

    Restore and fix image quality — deblur, denoise, fix faces, and restore old documents using fal.ai's hosted restoration models.

    Also in 3 projects that use this

  • jpoindexterSkill

    faq-page

    A Frequently Asked Questions (FAQ) page with collapsible accordion sections, search functionality, and category filtering. Use when the brief asks for "FAQ", "help center", "questions", or "support page".

    Also in 3 projects that use this

  • xfstudioSkill

    fal-generate

    Generate images and videos using fal.ai AI models

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 34 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the argument, then read all of that phase's files in one parallel turn.

    line 17

“Common” is measured: kept by at least 6 in 10 of the 34 edited versions of this file we could read. “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

Slides: Markdown in, PowerPoint out

The Markdown file is the deck. The .pptx is built from it and never edited by hand. Every change is: edit the .md → build → check → reload LibreOffice.

Resolve the skill directory first. It is the base directory Claude Code printed when this skill loaded (a symlink path is fine). Every path below written <skill-dir>/… means that directory, made absolute. The deck folder is where the deck's *-slides.md lives; pass it absolute too.

Route to one phase

Read the argument, then read all of that phase's files in one parallel turn. They're next to this file:

RequestRead together
A new deck, or no *-slides.md exists yetoutline.md + visual-rules.md
review, or "review / check / critique the slides". Only when the user asks: never start or suggest a review yourself, since it runs two agents.review.md (the reviewers read their own rubrics)
visuals, or "add diagrams / photos / images / visuals"visuals.md + visual-rules.md, plus svg-style.md unless it's photos only
Anything else: an edit, a rebuild, a fixnothing more; the loop below is the whole job

Files in a deck folder

FileLifetime
NAME-slides.mdthe deck, permanent
NAME.pptxbuilt output, rebuilt every change
NAME-outline.mdshort-lived: exists from the outline until the first draft is complete
CLAUDE.mdthe deck's own rules: audience, tone, numbering, banned words
reference.pptxfrozen copy of <skill-dir>/assets/reference.pptx, so the deck builds even if the skill changes
template.pptxoptional: a company or Google Slides template; wins over reference.pptx
images/diagram sources and renders, photos, and CREDITS.md

Read the deck folder's CLAUDE.md before editing a deck. Its rules beat the general ones below.

The loop, after every edit

One command, not three:

<skill-dir>/scripts/loop.sh DECK_DIR/NAME-slides.md [--png DIR]

It runs build.sh (lint + pandoc → NAME.pptx), then check.py (overflow report), then reload.py (show it in LibreOffice).

  • Lint errors stop the build, and nothing is reloaded. Fix the Markdown; don't work around the linter.
  • Check error: means content runs off the slide; warning: means text runs past its box, which in practice is text touching the bottom edge. Fix both: cut words, split the slide, or move detail to speaker notes. To see a slide, add --png DIR (a scratch directory) and read DIR/slide-NN.png.
  • A check error still reloads, so the user sees the problem slide, but loop.sh exits 1.
  • To run a step on its own, use the script directly. Run check.py and reload.py with /usr/bin/python3: the uno module comes from the system LibreOffice package.

LibreOffice safety

reload.py talks to LibreOffice through a local pipe (claude_slide). It starts LibreOffice if nothing is listening, and otherwise closes and reopens only this deck's window.

  • Never open the deck with xdg-open: that LibreOffice has no pipe, so later reloads can't reach it.
  • If LibreOffice is running without the pipe (pgrep -a soffice shows no --accept), don't kill it; the user may have unsaved work. Ask them to close it, then run reload.py.
  • check.py runs its own headless LibreOffice with a throwaway profile, so it's safe at any time.

Markdown structure

  • ## makes a section title slide, ### a content slide. Never #.
  • Never two title slides in a row. The front-matter title slide and every ## must be followed by a ###. The linter enforces this.
  • ::: notes … ::: is speaker notes, not shown on the slide.
  • An HTML comment (<!-- … -->) isn't converted. The one at the top of the deck is for the presenter: how to convert, open questions.
  • Side by side: :::::: {.columns} holding two ::: {.column} blocks.
  • Images live in images/. Credit every image from outside the project in that slide's notes (source and license).

Writing limits

  • About 6 bullets per slide, tables of 7 rows or fewer. The linter warns past both.
  • A slide says one thing. Detail the presenter needs goes in the notes, not on the slide.
  • Which slides get a diagram or a photo is decided by visual-rules.md: diagrams wherever items connect, photos only in four cases.

Requirements

  • pandoc on the PATH. If missing, install without sudo from the static release: curl -L https://github.com/jgm/pandoc/releases/download/<v>/pandoc-<v>-linux-amd64.tar.gz | tar xz --strip-components 2 -C ~/.local/bin pandoc-<v>/bin/pandoc
  • The template's fonts, or fonts with the same letter widths, or the overflow check measures the wrong widths (check.py warns). For reference.pptx that's Calibri or Carlito: sudo apt install fonts-crosextra-carlito, or without sudo, put the four Carlito-*.ttf files from github.com/google/fonts (ofl/carlito) into ~/.local/share/fonts and run fc-cache -f.
  • LibreOffice Impress with Python UNO (/usr/bin/python3 -c "import uno"), and pdftocairo (poppler-utils) for --png.
  • For visuals.md: Google Chrome or Chromium for diagrams (falls back to LibreOffice, which renders fonts worse), and numpy and Pillow (/usr/bin/python3 -c "import numpy, PIL") for photo search.

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.