From rune
Generates Marp-compatible markdown slide decks from JSON schema. Analyzes context for feature demos, sprint reviews, tech talks, and tutorials.
npx claudepluginhub rune-kit/rune --plugin @rune/analyticsThis skill uses the workspace's default tool permissions.
Generates structured slide decks as Marp-compatible markdown. The agent analyzes context (feature, sprint, tutorial) and produces a JSON slide schema, then calls `build-deck.js` to convert it to presentation-ready markdown. The script standardizes output format — preventing agent freestyle errors when context runs low.
Author MARP Markdown slide decks exportable to PDF, PPTX, and HTML via marp-cli. Covers Marpit directives, custom CSS themes, SVG charts, and dashboard components.
Generates professional .pptx and .pdf presentations from JSON deck specs using 18 slide types with themes for stakeholder updates, product reviews, and team presentations.
Generates professional slide deck images from Markdown content with styles like blueprint or sketch-notes, audience targeting, and PPTX/PDF export scripts.
Share bugs, ideas, or general feedback.
Generates structured slide decks as Marp-compatible markdown. The agent analyzes context (feature, sprint, tutorial) and produces a JSON slide schema, then calls build-deck.js to convert it to presentation-ready markdown. The script standardizes output format — preventing agent freestyle errors when context runs low.
/rune slides — manual invocationmarketing (L2): launch presentations, product demosvideo-creator (L3): slide-based video storyboardsNone — pure L3 utility.
Determine the presentation type from the user's request:
| Context | Template | Typical Slides |
|---|---|---|
| Feature demo | Demo walkthrough | Problem → Solution → Architecture → Live demo → Next steps |
| Sprint review | Sprint summary | Goals → Completed → Metrics → Blockers → Next sprint |
| Tech talk | Teaching format | Hook → Concept → Deep dive → Code examples → Takeaways |
| Tutorial | Step-by-step | Intro → Prerequisites → Step 1-N → Summary → Resources |
| Pitch | Persuasion | Problem → Market → Solution → Traction → Ask |
Create a JSON file following this schema:
{
"title": "Presentation Title",
"author": "Author Name (optional)",
"theme": "default|gaia|uncover",
"slides": [
{
"type": "title|content|code|diagram|image|quote|section",
"heading": "Slide Heading",
"body": "Markdown body text",
"notes": "Speaker notes (optional)",
"code": { "lang": "javascript", "source": "console.log('hi')" },
"diagram": "graph LR; A-->B"
}
]
}
Slide types:
title — opening slide with # headingcontent — standard slide with ## heading + bodycode — slide with syntax-highlighted code blockdiagram — slide with Mermaid diagramimage — slide with image reference in bodyquote — slide with blockquote formattingsection — section divider with # headingSave the JSON to a temporary file (e.g., slides.json).
Execute the build script:
node {scripts_dir}/build-deck.js --input slides.json --output deck.md
The script outputs Marp-compatible markdown with:
marp: true, theme)---)Show the user:
deck.md file pathnpx @marp-team/marp-cli deck.md --preview (or any Marp viewer)npx @marp-team/marp-cli deck.md --pdfFallback: If {scripts_dir}/build-deck.js is unavailable, generate the Marp markdown directly — the script is an optimization, not a hard dependency.
---
marp: true
theme: default
---
# Presentation Title
Author Name
---
## Slide Heading
Slide body content
<!-- notes: Speaker notes here -->
| Failure Mode | Severity | Mitigation |
|---|---|---|
| build-deck.js not found | LOW | Agent generates Marp markdown directly (fallback) |
| Invalid JSON input | MEDIUM | Script exits 1 with parse error — agent fixes JSON and retries |
| Marp not installed | LOW | Script outputs plain .md — user installs Marp CLI separately |
| Too many slides (>30) | MEDIUM | Agent should split into multiple decks or summarize |
@marp-team/marp-cli){scripts_dir}| Artifact | Format | Location |
|---|---|---|
| Slide schema | JSON | slides.json (temporary) |
| Presentation deck | Marp Markdown | deck.md or user-specified path |
~500-1500 tokens input, ~300-800 tokens output. Sonnet for quality copy and structure.