Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Creates Slidev markdown presentations for developers. Activates for: slides with code highlighting, technical talks, conference presentations, workshop materials, live coding decks, or markdown-based slides. Not for PowerPoint/Google Slides or non-presentation documents.
.claude/skills/nicepkg-slidev-presentations/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 86% | 0% |
Generate professional, browser-based presentations using Slidev - the presentation framework for developers.
For complete API reference or advanced features, fetch the official LLM-optimized documentation:
https://sli.dev/llms-full.txtActivate when the user requests:
These prompts should activate this skill:
Do NOT activate for:
Follow the plan-first approach for quality presentations:
text1. Gather Context → 2. Create Plan → 3. Review Plan → 4. Generate Slides
| Scenario | Command | Output | | ----------------------------- | ----------------------------------------------- | ------------- | | New presentation on a topic | /slidev:plan [topic] then /slidev:from-plan | Plan + Slides | | Presentation about a codebase | /slidev:from-codebase [path] | Plan + Slides | | Quick slides (skip planning) | /slidev:new [topic] | Slides only | | Generate from existing plan | /slidev:from-plan [plan-file] | Slides only |
A presentation plan includes:
When creating a plan, gather:
See the assets/ directory for complete example presentations:
example-technical-talk.md - Conference-style deep dive (Kubernetes)example-tutorial.md - Workshop format with exercises (TypeScript)example-team-update.md - Internal team presentation (Q4 update)See the references/ directory for detailed documentation:
If the user doesn't have Slidev installed, provide these commands:
bash# Create new presentation (recommended) npm init slidev@latest # Or with pnpm pnpm create slidev # Or add to existing project npm install @slidev/cli @slidev/theme-default
Slidev's multi-frontmatter syntax conflicts with standard markdown linters. Always ensure a .markdownlint.json exists in the presentation directory before generating slides.
Slidev uses --- separators with per-slide frontmatter:
markdown--- layout: section ---
Standard markdownlint interprets layout: section + --- as a setext-style heading and "fixes" it to ## layout: section, corrupting the presentation.
Create .markdownlint.json in the presentation directory:
json{ "MD003": false, "MD024": false, "MD025": false, "MD026": false, "MD033": false, "MD041": false }
| Rule | Why Disabled | | ----- | -------------------------------------------------------- | | MD003 | Prevents setext→ATX conversion that corrupts frontmatter | | MD024 | Slides often have repeated headings across slides | | MD025 | Each slide can have its own H1 | | MD026 | Slide titles may end with punctuation | | MD033 | Slidev uses inline HTML for layouts and animations | | MD041 | First line is YAML frontmatter, not a heading |
All /slidev:* commands should check for and create this config file before writing slides.md. If modifying an existing presentation, verify the config exists first.
Run the presentation:
bash# Development mode with hot reload npx slidev # Build for production npx slidev build # Export to PDF (requires playwright-chromium) npx slidev export # Export to PPTX npx slidev export --format pptx
Generate a complete slides.md file that can be run directly with Slidev.
For full syntax details, see references/slidev-quick-reference.md.
markdown--- theme: default title: My Presentation transition: slide-left mdc: true --- # First Slide Content here --- # Second Slide More content
| Layout | Use Case | | ----------------- | ------------------------- | | cover | Title slide | | center | Centered content | | section | Section divider | | two-cols | Side-by-side content | | two-cols-header | Header + two columns | | image-right | Image right, content left | | fact | Highlight a statistic |
markdown--- layout: two-cols-header --- # Header ::left:: Left content ::right:: Right content
`markdown
function add(a: number, b: number) { const sum = a + b // highlighted return sum // highlighted }
`markdown
const a = 1 // click 1 const b = 2 // click 2 const c = 3 // click 3
html<!-- Reveal items one-by-one --> <v-clicks> - First item (click 1) - Second item (click 2) </v-clicks> <!-- Single element reveal --> <div v-click>Appears on click</div>
markdown# Slide Title Content <!-- Speaker notes here (presenter mode only) -->
`markdown
graph TD AStart] --> B{Decision} B -->|Yes| CAction] B -->|No| DEnd]
For advanced functionality, see references/advanced-features.md:
{monaco}, {monaco-run})For large presentations (30+ slides), split across multiple files. See references/multi-file-organization.md.
Quick example:
markdown--- src: ./slides/01-intro.md --- --- src: ./slides/02-content.md ---
Benefits: No linting conflicts, easier reorganization, better version control.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 31,486 | 25,177 | -20% | 1 | 1 | 0% | 5,483 | 6,503 | +19% | 0 | 0 | — |
case-02 | fail→pass | 26,531 | 19,885 | -25% | 1 | 1 | 0% | 4,862 | 5,908 | +22% | 0 | 0 | — |
case-03 | fail→pass | 29,658 | 25,532 | -14% | 1 | 1 | 0% | 4,982 | 6,632 | +33% | 0 | 0 | — |
case-04 | fail→pass | 15,341 | 6,212 | -60% | 1 | 1 | 0% | 2,544 | 3,301 | +30% | 0 | 0 | — |
case-05 | fail→pass | 11,823 | 8,234 | -30% | 1 | 1 | 0% | 1,901 | 3,538 | +86% | 0 | 0 | — |
case-06 | pass→pass | 11,668 | 5,623 | -52% | 1 | 1 | 0% | 1,820 | 3,098 | +70% | 0 | 0 | — |
case-07 | fail→fail | 5,451 | 3,864 | -29% | 1 | 1 | 0% | 893 | 2,870 | +221% | 0 | 0 | — |
case-08 | pass→pass | 9,096 | 5,666 | -38% | 1 | 1 | 0% | 1,592 | 3,148 | +98% | 0 | 0 | — |
case-09 | pass→pass | 3,752 | 3,440 | -8% | 1 | 1 | 0% | 603 | 2,804 | +365% | 0 | 0 | — |
case-10 | pass→pass | 4,060 | 2,713 | -33% | 1 | 1 | 0% | 698 | 2,667 | +282% | 0 | 0 | — |
case-11 | pass→pass | 11,140 | 5,269 | -53% | 1 | 1 | 0% | 1,849 | 3,012 | +63% | 0 | 0 | — |
case-12 | pass→pass | 12,354 | 8,790 | -29% | 1 | 1 | 0% | 2,066 | 3,788 | +83% | 0 | 0 | — |
case-13 | pass→pass | 6,732 | 3,626 | -46% | 1 | 1 | 0% | 1,009 | 2,856 | +183% | 0 | 0 | — |
case-14 | fail→pass | 7,296 | 3,775 | -48% | 1 | 1 | 0% | 1,180 | 2,835 | +140% | 0 | 0 | — |
case-15 | fail→pass | 11,354 | 4,346 | -62% | 1 | 1 | 0% | 1,993 | 3,019 | +51% | 0 | 0 | — |
case-16 | pass→pass | 6,393 | 4,567 | -29% | 1 | 1 | 0% | 1,179 | 3,076 | +161% | 0 | 0 | — |
case-17 | pass→pass | 8,217 | 2,749 | -67% | 1 | 1 | 0% | 1,412 | 2,670 | +89% | 0 | 0 | — |
case-18 | pass→pass | 3,141 | 2,449 | -22% | 1 | 1 | 0% | 556 | 2,686 | +383% | 0 | 0 | — |
case-19 | pass→pass | 6,646 | 4,127 | -38% | 1 | 1 | 0% | 986 | 2,975 | +202% | 0 | 0 | — |
case-20 | pass→pass | 3,453 | 4,884 | +41% | 1 | 1 | 0% | 493 | 3,087 | +526% | 0 | 0 | — |
case-21 | pass→pass | 5,556 | 6,773 | +22% | 1 | 1 | 0% | 1,032 | 3,433 | +233% | 0 | 0 | — |
case-22 | pass→pass | 6,499 | 6,377 | -2% | 1 | 1 | 0% | 1,114 | 3,241 | +191% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.