Skip to content
Development
Skill

/oma-slide

Create, import, revise, or export presentation decks through the

From plugin
oma
1.4k33 skills12 agents4 hooks3 MCP

Claude Code

$ npx -y skills add first-fluke/oh-my-agent --skill oma-slide --agent claude-code

SKILL.md

oma-slide.SKILL.md
name: oma-slide
description: Create, import, revise, or export presentation decks through the
  OMA slide CLI or the ppt-master route. Use for HTML slides, editable PPTX, and
  PDF, PNG, or PPTX deck delivery.

Slide Agent — Animation-Rich HTML Deck Generator

Scheduling

Goal

Generate distinctive, anti-"AI slop" HTML presentation decks authored at a fixed 1920×1080 stage, validate geometry deterministically via the `oma slide` CLI, and deliver self-contained bundles exportable to PDF, PNG, and PPTX.

Intent signature

  • User asks to create a slide deck, presentation, keynote, or series of slides.
  • User provides a topic, outline, `.pptx` to import, or existing deck to enhance.
  • User mentions slide, deck, pptx, keynote, 슬라이드, 발표자료, プレゼン, 幻灯片, 演示文稿.
  • User mentions Canva, canva export, canva import, 캔바, キャンバ.
  • User needs an editable PowerPoint (편집 가능한 PPT), wants an existing PPTX filled or edited

with its design kept, a document (PDF/DOCX/XLSX/URL) turned into a PPTX deck, a reusable brand/style/layout/deck template, or a narrated PPTX/MP4 → `native-pptx` route.

  • Another skill needs a visual output artifact (e.g., a research result delivered as a deck).

When to use

  • Creating a new presentation from a topic or outline
  • Enhancing or reformatting an existing deck
  • Generating per-slide HTML with animations and design-doctrine aesthetics
  • Exporting a deck to PDF, PNG, or image-backed PPTX after generation
  • Applying a named style preset or bold template to a deck
  • Exporting a generated deck to Canva as a presentation
  • Importing a Canva design as input for enhancement
  • Producing a natively editable PPTX through the upstream ppt-master skill (`resources/native-pptx.md`)

When NOT to use

  • Plain document creation (no slides needed) → use oma-backend or direct output
  • Image generation alone → use oma-image directly
  • Brand/design-system definition → defer to oma-design
  • Deterministic CLI ops (validate/bundle/export) without generation → call `oma slide` CLI directly
  • Long-form scrolling code-change explainer document → use oma-explanation (deck is a fixed 1920×1080 stage)

Expected inputs

  • Topic, title, or outline (text or markdown)
  • Optional: `.pptx` file to import (`oma slide import pptx`)
  • Optional: user-provided images/video in `./assets/`
  • Optional: slide count, density preference (sparse/balanced/dense), target audience
  • Optional: named style preset or `oma slide style get <slug>` reference
  • Optional: Canva design ID or URL for import
  • Optional: acknowledgement that exported PPTX and Canva uploads are raster-backed when editable text is not required

Expected outputs

  • Per-slide `slide-NN.html` fragments under `.agents/results/slides/<session-id>/`

(authored at 1920×1080 px)

  • Updated `meta.json` with `{ title, order[], style, density, speakerNotes }`
  • Validation pass via `oma slide validate` (or a surfaced diff if auto-fix fails after 3 iterations)

<!-- oma-docs:ignore-start -->

  • Optional: `viewer.html`, `out/deck.html` bundle, exports

<!-- oma-docs:ignore-end -->

  • Optional: Canva design URL (when Canva export is requested)
  • HTML route: PPTX export contains one raster image per slide; it has no editable text or shape layers.
  • `native-pptx` route: an upstream ppt-master project under `.agents/results/slides/<session-id>/<project>/`

with a natively editable PPTX in `exports/`

outputs:
  - name: slide-fragments
    description: Per-slide 1920×1080 HTML fragments authored by the skill
    artifact: ".agents/results/slides/*/slide-*.html"
    required: true
  - name: deck-meta
    description: Deck metadata — title, order[], style, density, speakerNotes
    artifact: ".agents/results/slides/*/meta.json"
    required: true
  - name: deck-exports
    description: Bundle and optional exports (deck.html, deck.pdf, png/, deck.pptx)
    artifact: ".agents/results/slides/*/out/*"
    required: false
  - name: native-pptx
    description: Natively editable PPTX from the native-pptx route (upstream ppt-master project)
    artifact: ".agents/results/slides/*/*/exports/*.pptx"
    required: false

Dependencies

  • `oma slide` CLI (all deterministic ops — scaffold, validate, bundle, export, viewer, editor)
  • `oma-image` skill (image generation; oma-slide never calls image APIs directly)
  • `resources/generation-protocol.md` (Phase 0–6 workflow)
  • `resources/design-doctrine.md` (anti-"AI slop" aesthetics; CJK → Pretendard rule)
  • `resources/fixed-stage.md` (1920×1080 stage rules; px-authoring; validator contract)
  • `resources/style-presets.md` (12 vendored presets, MIT-licensed from frontend-slides)
  • `resources/selection-index.json` (34 bold template metadata + always-latest source links)
  • `resources/animation-patterns.md` (effect-to-feeling guide)
  • Canva Remote MCP (`https://mcp.canva.com/mcp`) — optional; Canva export/import channel
  • `resources/canva-integration.md` (Canva MCP tool mapping and pipeline)
  • `native-pptx` route: upstream [hugohe3/ppt-master](https://github.com/hugohe3/ppt-master) (MIT)

from the runtime skill catalog or `bunx skills use hugohe3/ppt-master@ppt-master`; Python packages from its `requirements.txt`, installed only with user consent (`resources/native-pptx.md`)

Control-flow features

  • Branches by route: HTML (default) / `native-pptx` (Phase 0 step 0)
  • Branches by mode: new / import / import-canva / enhance (Phase 0 detection)
  • Branches by CJK content presence (→ Pretendard font required)
  • Branches by Canva availability: probes `search-designs` using the discovered tool schema on startup; offers auto-provisioning if not configured; skips if unavailable or declined
  • Validate loop: max 3 auto-fix iterations, then surfaces diff to user
  • Defers image generation to oma-image; defers video download to `oma slide asset fetch-video`
  • Style discovery: generates 3 live previews (safe preset + bold + wildcard) → user picks

Structural Flow

Entry

0. Select the route (`generation-protoc

Read more
@first-fluke
Ships withoma

Ship 400+ commits a day. oh-my-agent (oma) turns Claude Code, Codex CLI, Cursor and 11 other coding agents into a team. A planner splits the work, engineers build in parallel, a reviewer checks the result, and a debugger fixes the root cause.

1.4k33 skills12 agents3 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.4k
Star history of first-fluke/oh-my-agent on GitHub, a chart by star-history.com

Other skills on oma.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about oma-slide.

Which coding agents can use oma-slide?
oma-slide installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.