agentleFS
saleem-hadadsaleem-hadad/presentation-slides/SKILL.md

presentation-slides

Skill4 starsChanged 7 months agoMITView on GitHub

Create HTML presentations in a warm, playful visual style with marker highlights, dashed borders, and hand-drawn feel. Supports 5 languages including Arabic RTL. Use when the user asks to create slides, a presentation, a deck, or webinar visuals.

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. Scodive/Paper-Agent-Skills★ 20same 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

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 11 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create zero-dependency HTML presentations in a warm, hand-crafted design language.

    line 8
  2. Very specific:

    Every .slide must have height: 100vh.

    line 22
  3. Very specific:

    ALL font sizes and spacing must use clamp(min, preferred, max) — never fixed px/rem

    line 23
  4. Distinctive:

    When enhancing existing presentations, viewport fitting is the biggest risk:

    line 55
  5. Very specific:

    Adding images: Must have max-height: min(50vh, 400px).

    line 58
  6. Distinctive:

    Proactively reorganize: If modifications will cause overflow, automatically split content and inform the user.

    line 61
  7. Distinctive:

    Do you have content ready?

    line 79
  8. Distinctive:

    If user has content, ask them to share it.

    line 81
  9. Distinctive:

    Use the language-appropriate Google Font (see html-template.md)

    line 102
  10. Distinctive:

    Use marker highlights on 1–2 key words per slide, not more

    line 104
  11. Distinctive:

    Add wavy SVG decorations on ~30% of slides

    line 105
  12. Distinctive:

    Add question mark decorations on thought-provoking slides

    line 106
  13. Distinctive:

    After delivery, ask the user: "Would you like to share this presentation?

    line 123
  14. Distinctive:

    If the user declines, stop here.

    line 127
  15. Very specific:

    Run bash scripts/deploy.sh <path-to-html>.

    line 131
  16. Very specific:

    Run bash scripts/export-pdf.sh <path-to-html> [output.pdf].

    line 135

≈ “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

Presentation Slides

Create zero-dependency HTML presentations in a warm, hand-crafted design language. Supports English, Arabic (RTL), French, Spanish, and German.

Core Principles

  1. Zero Dependencies — Single HTML files with inline CSS/JS. No npm, no build tools.
  2. Multi-Language — Ask the user which language. Adapt font, direction, and navigation accordingly.
  3. Warm Aesthetic — Warm, playful, hand-crafted feel. Never generic, never corporate, never dark.
  4. Viewport Fitting (NON-NEGOTIABLE) — Every slide MUST fit exactly within 100vh. No scrolling within slides. Content overflows? Split into multiple slides.
  5. One Idea Per Slide — Big text, few words. Each slide is a talking point, not a wall of text.

Viewport Fitting Rules

These invariants apply to EVERY slide in EVERY presentation:

  • Every .slide must have height: 100vh; height: 100dvh; overflow: hidden;
  • ALL font sizes and spacing must use clamp(min, preferred, max) — never fixed px/rem
  • Content containers need max-height constraints
  • Images: max-height: min(50vh, 400px)
  • Breakpoints required for heights: 700px, 600px, 500px
  • Include prefers-reduced-motion support

When generating, read viewport-base.css and include its full contents in every presentation.

Content Density Limits Per Slide

Slide TypeMaximum Content
Title slide1 heading + 1 subtitle + optional stat row
Statement slide1 tag + 1 heading + 1 body paragraph
Comparison slide1 heading + 2 column cards (max 6 items each)
Evidence slide1 tag + 1 heading + 1 body + 1 commit log (max 5 entries)
Question slide1 heading only (with decorative question marks)
Chart slide1 heading + 1 bar chart + 1 caption line

Content exceeds limits? Split into multiple slides. Never cram, never scroll.


Phase 0: Detect Mode

Determine what the user wants:

  • Mode A: New Presentation — Create from scratch. Go to Phase 1.
  • Mode B: Enhancement — Improve an existing HTML presentation. Read it, understand it, enhance. Follow Mode B modification rules below.

Mode B: Modification Rules

When enhancing existing presentations, viewport fitting is the biggest risk:

  1. Before adding content: Count existing elements, check against density limits
  2. Adding images: Must have max-height: min(50vh, 400px). If slide already has max content, split into two slides
  3. Adding text: Max 4-6 bullets per slide. Exceeds limits? Split into continuation slides
  4. After ANY modification, verify: .slide has overflow: hidden, new elements use clamp(), images have viewport-relative max-height, content fits at 1280x720
  5. Proactively reorganize: If modifications will cause overflow, automatically split content and inform the user. Don't wait to be asked

Phase 1: Content Discovery

Ask ALL questions in a single AskUserQuestion call so the user fills everything out at once:

Question 1 — Purpose (header: "Purpose"): What is this presentation for? Options: Pitch deck / Webinar-Talk / Teaching-Tutorial / Internal presentation

Question 2 — Length (header: "Length"): Approximately how many slides? Options: Short 5-10 / Medium 10-20 / Long 20+

Question 3 — Language (header: "Language"): What language? Options: English / Arabic (RTL) / French / Spanish / German

Question 4 — Content (header: "Content"): Do you have content ready? Options: All content ready / Rough notes / Topic only

If user has content, ask them to share it.

There is no style discovery phase. The style is always this design system. There is no style choice.


Phase 2: Generate Presentation

Generate the full presentation using content from Phase 1 and the design system defined in this file.

Before generating, read these supporting files:

  • html-template.md — HTML architecture, JS features, and slide structure
  • viewport-base.css — Mandatory responsive CSS (include in full)
  • animation-patterns.md — Animation reference

Key requirements:

  • Single self-contained HTML file, all CSS/JS inline
  • Set lang and dir attributes based on language choice (see html-template.md)
  • Include the FULL contents of viewport-base.css in the <style> block
  • Use the language-appropriate Google Font (see html-template.md)
  • Rotate slide backgrounds — never two adjacent slides with the same color
  • Use marker highlights on 1–2 key words per slide, not more
  • Add wavy SVG decorations on ~30% of slides
  • Add question mark decorations on thought-provoking slides
  • Mobile responsive with single-column fallback for grids

Phase 3: Delivery

  1. Open — Use open [filename].html to launch in browser
  2. Summarize — Tell the user:
    • File location and slide count
    • Navigation controls (direction-aware based on language)
    • How to customize: CSS variables in :root for colors, font link for typography

Phase 4: Share & Export (Optional)

After delivery, ask the user: "Would you like to share this presentation? I can deploy it to a live URL or export it as a PDF."

Options: Deploy to URL / Export to PDF / Both / No thanks

If the user declines, stop here.

Deploy to URL (Vercel)

Run bash scripts/deploy.sh <path-to-html>. See the script for full instructions on Vercel setup.

Export to PDF

Run bash scripts/export-pdf.sh <path-to-html> [output.pdf]. The script captures each slide as a screenshot and combines them into a PDF. Note: animations are not preserved — the PDF is a static snapshot.


Supporting Files

FilePurposeWhen to Read
viewport-base.cssMandatory responsive CSS — copy into every presentationPhase 2 (generation)
html-template.mdHTML structure, JS features, language configPhase 2 (generation)
animation-patterns.mdCSS animation snippets and patternsPhase 2 (generation)
scripts/deploy.shDeploy slides to Vercel for sharingPhase 4 (sharing)
scripts/export-pdf.shExport slides to PDFPhase 4 (export)

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.