Official agent skill

Presentation Creator

by getsentry in getsentry/skills

Create data-driven presentation slides using React, Vite, and Recharts with Sentry branding.

OfficialApache-2.0Auto-check passedDocuments & Office

Install Presentation Creator

skills CLI
$ npx skills add getsentry/skills --skill presentation-creator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install getsentry/skills presentation-creator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/getsentry/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/presentation-creator .claude/skills/presentation-creator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
presentation-creator
GitHub stars
1k
Token cost
~2.3k tokens
SKILL.md length
807 words
Files
5 (incl. references)
Skills in repo
27
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create data-driven presentation slides using React, Vite, and Recharts with Sentry branding.

  • Works in 7 steps: Gather Requirements → Scaffold the Project → Build the Slide System → …
  • Asked to create a presentation
  • SKILL.md covers Step 1: Gather Requirements, Step 2: Scaffold the Project, Step 3: Build the Slide System and Step 4: Create Charts (Only…, plus 4 more sections
  • Calls npm; reaches fonts.googleapis.com

What it does

Presentation Creator is an agent skill from getsentry/skills, published by the product's own GitHub organization. Create data-driven presentation slides using React, Vite, and Recharts with Sentry branding. Use when asked to "create a presentation", "build slides", "make a deck", "create a data presentation", "build a Sentry presentation". Scaffolds a complete slide-based app with charts, animations, and single-file HTML output.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/chart-patterns.md` and `references/design-system.md`).

It sits in Documents & Office, covering Slides and decks. It works with Sentry, Vite and React. The repository describes itself as: Agent Skills used by the Sentry team for development. The licence is Apache-2.0.

When your agent uses it

  • Asked to create a presentation
  • Create a data presentation
  • Build a Sentry presentation

Example prompts

  • “create a presentation”
  • “build slides”
  • “make a deck”
  • “/presentation-creator”

Requirements

  • Node.js

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Gather Requirements
  2. Scaffold the Project
  3. Build the Slide System
  4. Create Charts (Only When Data Exists)
  5. Style with Sentry Design System
  6. Common Slide Patterns
  7. Iterate and Refine

What it can do on your machine

Read from SKILL.md and the folder at commit d18b7aa. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • fonts.googleapis.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Presentation Creator loads about 2.3k tokens when it runs, and up to ~7k if it reads all its reference files. Until then it costs about 85 tokens; SKILL.md has 807 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from getsentry/skills at commit d18b7aa, republished under its Apache-2.0 licence (© getsentry). 807 words, ~2,305 tokens.

Download SKILL.mdSave it as .claude/skills/presentation-creator/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
presentation-creator
description
Create data-driven presentation slides using React, Vite, and Recharts with Sentry branding. Use when asked to "create a presentation", "build slides", "make a deck", "create a data presentation", "build a Sentry presentation". Scaffolds a complete slide-based app with charts, animations, and single-file HTML output.

Sentry Presentation Builder

Create interactive, data-driven presentation slides using React + Vite + Recharts, styled with the Sentry design system and built as a single distributable HTML file.

Step 1: Gather Requirements

Ask the user:

  1. What is the presentation topic?
  2. How many slides (typically 5-8)?
  3. What data/charts are needed? (time series, comparisons, diagrams, zone charts)
  4. What is the narrative arc? (problem → solution, before → after, technical deep-dive)
Data Assessment (CRITICAL)

Before designing any slides, assess whether the source content contains real quantitative data (numbers, percentages, measurements, time series, costs, metrics). Only create Recharts visualizations for slides where real data exists. Do NOT fabricate, estimate, or invent data to fill charts.

  • Has real data → use a Recharts chart (bar, area, line, etc.)
  • Has no data → use text-based layouts: cards, tables, bullet columns, diagrams, or quote blocks. Do NOT create a chart with made-up numbers.

If the source content is purely qualitative (narrative, opinions, strategy, process descriptions), the presentation should use zero charts. Recharts and Charts.jsx should only be included in the project if at least one slide has real data to visualize.

Step 2: Scaffold the Project

Create the project structure:

<project-name>/
├── index.html
├── package.json
├── vite.config.js
└── src/
    ├── main.jsx
    ├── App.jsx
    ├── App.css
    └── Charts.jsx
index.html
html
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link href="https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap" rel="stylesheet" />
    <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" rel="stylesheet" />
    <title>TITLE</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.jsx"></script>
  </body>
</html>
package.json
json
{
  "name": "PROJECT_NAME",
  "private": true,
  "type": "module",
  "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview" },
  "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1", "recharts": "^2.15.3" },
  "devDependencies": { "@vitejs/plugin-react": "^4.3.4", "vite": "^6.0.0", "vite-plugin-singlefile": "^2.3.0" }
}
vite.config.js
javascript
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { viteSingleFile } from 'vite-plugin-singlefile'

export default defineConfig({ plugins: [react(), viteSingleFile()] })
main.jsx
jsx
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './App.css'

ReactDOM.createRoot(document.getElementById('root')).render(<App />)

Step 3: Build the Slide System

Read references/design-system.md for the complete Sentry color palette, typography, CSS variables, layout utilities, and animation system.

App.jsx Structure

Define slides as an array of functions returning JSX:

jsx
const SLIDES = [
  () => ( /* Slide 0: Title */ ),
  () => ( /* Slide 1: Context */ ),
  // ...
];

Each slide function returns a <div className="slide-content"> with:

  1. An <h2> heading
  2. Optional subtitle paragraph
  3. Main content (charts, cards, diagrams, tables)
  4. Animation classes: .anim, .d1, .d2, .d3 for staggered fade-in

Do NOT add category tag pills/badges above headings (e.g., "BACKGROUND", "EXPERIMENTS"). They look generic and add no value. Let the heading speak for itself.

Navigation

Implement keyboard navigation (ArrowRight/Space = next, ArrowLeft = prev) and a bottom nav overlay with prev/next buttons, dot indicators, and slide number. The nav has no border or background — it floats transparently. A small low-contrast Sentry glyph watermark sits fixed in the top-left corner of every slide.

jsx
function App() {
  const [cur, setCur] = useState(0);
  const go = useCallback((d) => setCur(c => Math.max(0, Math.min(SLIDES.length - 1, c + d))), []);

  useEffect(() => {
    const h = (e) => {
      if (e.target.tagName === 'INPUT') return;
      if (e.key === 'ArrowRight' || e.key === ' ') { e.preventDefault(); go(1); }
      if (e.key === 'ArrowLeft') { e.preventDefault(); go(-1); }
    };
    window.addEventListener('keydown', h);
    return () => window.removeEventListener('keydown', h);
  }, [go]);

  return (
    <>
      {cur > 0 && <div className="glyph-watermark"><SentryGlyph size={50} /><span className="watermark-title">TITLE</span></div>}
      <div className="progress" style={{ width: `${((cur + 1) / SLIDES.length) * 100}%` }} />
      {SLIDES.map((S, i) => (
        <div key={i} className={`slide ${i === cur ? 'active' : ''}`}>
          <div className={`slide-content${i === cur ? ' anim' : ''}`}>
            <S />
          </div>
        </div>
      ))}
      <Nav cur={cur} total={SLIDES.length} go={go} setCur={setCur} />
    </>
  );
}

Step 4: Create Charts (Only When Data Exists)

IMPORTANT: Only create charts for slides backed by real, concrete data from the source content. If a slide's content is qualitative (strategies, learnings, process descriptions, opinions), use text-based layouts instead (cards, tables, bullet lists, columns). Never invent numbers, fabricate percentages, or generate synthetic data to populate a chart. If you are unsure whether data is real or inferred, do NOT create a chart.

If NO slides require charts, skip this step entirely — do not create Charts.jsx or import Recharts.

When real data IS available, read references/chart-patterns.md for Recharts component patterns including axis configuration, color constants, chart types, and data generation techniques.

Put all chart components in Charts.jsx. Key patterns:

  • Use ResponsiveContainer with explicit height
  • Wrap in .chart-wrap div with max-width 920px
  • Use useMemo for data generation
  • Color rule: Use the Tableau-inspired categorical palette (CAT[]) for distinguishing data series and groups. Only use semantic colors (SEM_GREEN, SEM_RED, SEM_AMBER) when the color itself carries meaning (good/bad, success/failure, warning).
  • Common charts: ComposedChart with stacked Area/Line, BarChart, custom SVG diagrams
  • Every data point in a chart must come from the source content. Do not interpolate, extrapolate, or round numbers to make charts look better.
Show full SKILL.md (278 more words)Show less

Step 5: Style with Sentry Design System

Apply the complete CSS from the design system reference. Key elements:

  • Font: Rubik from Google Fonts
  • Colors: CSS variables for UI chrome (--purple, --dark, --muted). Semantic CSS variables (--semantic-green, --semantic-red, --semantic-amber) only where color conveys meaning. Categorical palette (CAT[]) for all other data visualization.
  • Slides: Absolute positioned, opacity transitions
  • Animations: fadeUp keyframe with staggered delays
  • Layout: .cols flex rows, .cards grid, .chart-wrap containers
  • Tags: .tag-purple, .tag-red, .tag-green, .tag-amber for slide labels
  • Logo: Read the official SVG from references/sentry-logo.svg (full wordmark) or references/sentry-glyph.svg (glyph only). Do NOT hardcode an approximation — always use the exact SVG paths from these files.

Step 6: Common Slide Patterns

Title Slide

Logo (from references/sentry-logo.svg or references/sentry-glyph.svg) + h1 + subtitle + author/date info.

Problem/Context Slide

Tag + heading + 2-column card grid with icon headers.

Data Comparison Slide

Tag + heading + side-by-side charts or before/after comparison table.

Technical Deep-Dive Slide

Tag + heading + full-width chart + annotation bullets below.

Summary/Decision Slide

Tag + heading + 3-column layout with category headers and bullet lists.

Step 7: Iterate and Refine

After initial scaffolding:

  1. Run npm install && npm run dev to start the dev server
  2. Iterate on chart data models and visual design
  3. Adjust animations, colors, and layout spacing
  4. Build final output: npm run build produces a single HTML file in dist/

Output Expectations

A working React + Vite project that:

  • Renders as a keyboard-navigable slide deck
  • Uses Sentry branding (colors, fonts, icons)
  • Contains Recharts visualizations only for slides with real quantitative data from the source content — no fabricated data
  • Omits Charts.jsx and the Recharts dependency entirely if no slides have real data
  • Builds to a single distributable HTML file
  • Has smooth fade-in animations on slide transitions

© getsentry, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in skills/presentation-creator of getsentry/skills.

  • SKILL.md
  • references/chart-patterns.md
  • references/design-system.md
  • references/sentry-glyph.svg
  • references/sentry-logo.svg

Open the folder on GitHubat commit d18b7aa

Compare with similar skills

Presentation Creator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Presentation Creator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Presentation Creator this skillgetsentry/skills1k—~2.3kAutomated safety check: PassApache-2.0
Slidesstackblitz/bolt-slides1.1k—~4.5kAutomated safety check: PassMIT
Web Video PresentationConardLi/garden-skills13k—~3.5kAutomated safety check: PassMIT
Using Docs Kitlobehub/lobe-ui2.2k—~2.8kAutomated safety check: PassMIT
Sentry React SDKgetsentry/sentry-for-ai268—~4.8kAutomated safety check: PassApache-2.0
Beautiful ArticleConardLi/garden-skills13k—~4.7kAutomated safety check: PassMIT

Similar skills

  • Slides

    stackblitz/bolt-slides

    Build a premium PRESENTED slide deck — classic one-slide-at-a-time slides you advance with a clicker — as a Vite + React app.

    1.1k GitHub stars~4.5k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Web Video Presentation

    ConardLi/garden-skills

    Turns an article or spoken script into a click-through, full-screen 16:9 web presentation that looks like a video, with optional synthesized narration.

    13k GitHub stars~3.5k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Using Docs Kit

    lobehub/lobe-ui

    Set up and author a documentation site with @lobehub/docs-kit (the lobedocs CLI, React Router + Vite static docs used by ui.lobehub.com).

    2.2k GitHub stars~2.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Sentry React SDK

    getsentry/sentry-for-ai

    Official

    Full Sentry SDK setup for React. An agent skill from getsentry/sentry-for-ai.

    268 GitHub stars~4.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Beautiful Article

    ConardLi/garden-skills

    Turns a URL, PDF, DOCX, Markdown file, text or screenshots into a designed, shareable single-file HTML article through a staged review workflow.

    13k GitHub stars~4.7k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Liteyuki Webui Frontend

    LiteyukiStudio/LiteyukiBot

    Build, review, or test LiteyukiBot v7's React/Vite WebUI under webui/ and its packaged static delivery in packages/webui/.

    157 GitHub stars~2.5k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed

More from getsentry/skills

All 27 skills in this repo
  • Skill Scanner

    getsentry/skills

    Official

    Scan agent skills for security issues. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 4 repos~2.5k tokens
    Auto-check: warnings
  • Gh Review Requests

    getsentry/skills

    Official

    Fetch unread GitHub notifications for open PRs where review is requested from a specified team or opened by a team member.

    1k GitHub starsUsed in 3 repos~621 tokens
    Auto-check: notes
  • Security Review

    getsentry/skills

    Official

    Security code review for vulnerabilities. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 4 repos~2.9k tokens
    Auto-check: notes
  • Skill Writer

    getsentry/skills

    Official

    Create, synthesize, and iteratively improve agent skills following the Agent Skills specification.

    1k GitHub stars~2.5k tokensUpdated 4 days ago
    Auto-check passed
  • Django Access Review

    getsentry/skills

    Official

    Django access control and IDOR security review. An agent skill from getsentry/skills.

    1k GitHub starsUsed in 3 repos~2.6k tokens
    Auto-check: notes
  • Gha Security Review

    getsentry/skills

    Official

    GitHub Actions security review for workflow exploitation vulnerabilities.

    1k GitHub starsUsed in 3 repos~2.2k tokens
    Auto-check: notes

Works with

Questions about Presentation Creator

What does Presentation Creator do?

Create data-driven presentation slides using React, Vite, and Recharts with Sentry branding. Presentation Creator is an agent skill from getsentry/skills, published by the product's own GitHub organization. Create data-driven presentation slides using React, Vite, and Recharts with Sentry branding.

When should I use Presentation Creator?

Presentation Creator fits situations like: asked to create a presentation; create a data presentation; build a Sentry presentation.

How do I install Presentation Creator in Claude Code?

Run `npx skills add getsentry/skills --skill presentation-creator -a claude-code`. Or copy the skill folder (skills/presentation-creator in getsentry/skills) into .claude/skills/presentation-creator in your project. Claude Code loads it when a task matches its description.

How do I install Presentation Creator in Codex?

Run `npx skills add getsentry/skills --skill presentation-creator -a codex`. Or copy the skill folder (skills/presentation-creator in getsentry/skills) into .agents/skills/presentation-creator in your project. Codex loads it when a task matches its description.

Can I use Presentation Creator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add getsentry/skills --skill presentation-creator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/presentation-creator, .gemini/skills/presentation-creator, .github/skills/presentation-creator and .opencode/skills/presentation-creator in your project.

What does Presentation Creator need to run?

Going by SKILL.md and its folder, Presentation Creator needs the command-line tools its instructions call (npm). Our summary lists: Node.js.

Does Presentation Creator access the network?

SKILL.md names 1 domain. In commands or code: fonts.googleapis.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Presentation Creator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Presentation Creator use?

Presentation Creator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Presentation Creator use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.7k tokens, read only when the agent opens those files.

What are the alternatives to Presentation Creator?

Skills that share tags, products or a category with Presentation Creator: Slides (stackblitz/bolt-slides, 1.1k stars), Web Video Presentation (ConardLi/garden-skills, 13k stars), Using Docs Kit (lobehub/lobe-ui, 2.2k stars) and Sentry React SDK (getsentry/sentry-for-ai, 268 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Presentation Creator?

getsentry (a GitHub organization, an official publisher) maintains it in getsentry/skills, which has 1,037 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 2, 2026.

Source: getsentry/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.