Token导航 LogoToken导航

Agent Skill · 研究检索

slide-deck(幻灯片)

slide-deck 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

slide-deck 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 30,336。

总安装 2,893周安装 123GitHub Stars 88下载 1,014核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:slide-deck(幻灯片)
来源仓库:https://github.com/code-on-sunday/slide-deck-generator
仓库路径:skills/slide-deck
安装命令:
npx skills add https://github.com/code-on-sunday/slide-deck-generator --skill slide-deck
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/code-on-sunday/slide-deck-generator --skill slide-deck

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

slide-deck 构建浏览器端演示文稿系统,基于 React + Vite 打造具有手工质感的专业幻灯片应用。适用于技术分享、架构讲解或项目汇报等需要直观呈现复杂信息的场合。严格遵循用户提供的主题内容,禁止虚构信息,所有内容必须源自明确输入或 slide-guidelines.md。

首次使用需用户提供演讲主题,随后分阶段输出脚手架、样式系统与逐页内容开发。slide-deck 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/slide-deck

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/code-on-sunday/slide-deck-generator --skill sl…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

slide-deck 怎么安装?

在终端执行 npx skills add https://github.com/code-on-sunday/slide-deck-generator --skill slide-deck。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

slide-deck 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

slide-deck 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

slide-deck 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

slide-deck 用的人多吗?

公开数据是累计安装 2,893 次,近一周安装 123 次,下载 1,014 次,GitHub 88 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

slide-deck 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
slide-deck

幻灯片 · 本页

2,89388操作浏览器未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Slide Deck Builder — Technical Instructions

You are building a browser-based presentation slide deck as a React + Vite app. Your job is to produce slides that feel handcrafted and intentional — never generic or AI-generated looking.

Before you begin coding any slides, you MUST ask the user for the presentation content/topic if it has not been provided. Do not invent content. You may scaffold the app shell and styling system first, but all actual slide content must come from the user or from slide-guidelines.md in this directory.


1. Tech Stack

LayerChoice
BuildVite
FrameworkReact 18+ with TypeScript
AnimationFramer Motion (motion/react)
StylingTailwind CSS v4
ChartsRecharts
IconsLucide React
RoutingKeyboard/click navigation (no router needed)
Code highlighting(only if needed) Prism React Renderer

Install only what you need. Do not add libraries speculatively.


2. Project Structure

slides/
├── index.html
├── package.json
├── vite.config.ts
├── tailwind.config.ts
├── tsconfig.json
├── public/
│   └── images/          # All slide images go here
├── src/
│   ├── main.tsx
│   ├── App.tsx          # Slide deck shell, navigation, keyboard controls
│   ├── index.css        # Tailwind imports + custom fonts + base styles
│   ├── slides/
│   │   ├── index.ts     # Export ordered array of all slides
│   │   ├── 01-intro.tsx
│   │   ├── 02-problem.tsx
│   │   └── ...          # One file per slide or small group of related slides
│   ├── components/
│   │   ├── SlideLayout.tsx      # Shared slide wrapper (scaling, padding, background)
│   │   ├── AnimatedText.tsx     # Reusable text entrance animations
│   │   ├── Chart.tsx            # Recharts wrapper
│   │   ├── ImageSlide.tsx       # Image display component
│   │   ├── InteractiveBlock.tsx # For custom interactive UI per slide
│   │   └── ...
│   └── lib/
│       ├── animations.ts    # Shared Framer Motion variants and transitions
│       ├── theme.ts         # Color palette, font sizes, spacing tokens
│       └── useSlideScale.ts # Hook for viewport-fitting scale

3. Style Discovery — Mood & Presets

Step 1: Ask the User for Mood

Before choosing colors and fonts, ask the user what feeling the audience should have:

MoodDescription
Impressed / ConfidentProfessional, trustworthy, bold
Excited / EnergizedInnovative, bold, creative
Calm / FocusedClear, thoughtful, minimal
Inspired / MovedEmotional, memorable, elegant

Step 2: Pick a Style Preset

Based on mood, suggest 2-3 presets from the table below. Each preset defines fonts, colors, and signature visual elements. Do NOT mix and match randomly — commit to one preset fully.

Dark Presets
PresetMoodDisplay FontBody FontColorsSignature
Bold SignalConfidentArchivo Black (900)Space Grotesk (400)#1a1a1a bg, #FF5722 accent card, white textColored card as focal, large section numbers, grid layout
Electric StudioConfidentManrope (800)Manrope (400)#0a0a0a bg, #4361ee accent blue, white textTwo-panel vertical split, accent bar on edge
Creative VoltageEnergizedSyne (700)Space Mono (400)#0066ff primary, #1a1a2e dark, #d4ff00 neonElectric blue + neon yellow, halftone textures
Dark BotanicalInspiredCormorant (400) serifIBM Plex Sans (300)#0f0f0f bg, #d4a574 warm accent, #e8b4b8 pinkAbstract blurred gradient circles, thin accent lines
Light Presets
PresetMoodDisplay FontBody FontColorsSignature
Notebook TabsOrganizedBodoni Moda (700) serifDM Sans (400)#f8f6f1 page, #2d2d2d outer, colorful tabsPaper card on dark bg, colored section tabs
Pastel GeometryFriendlyPlus Jakarta Sans (700)Plus Jakarta Sans (400)#c8d9e6 bg, #faf9f7 card, pastel pillsRounded card, vertical pills, soft shadow
Vintage EditorialInspiredFraunces (700) serifWork Sans (400)#f5f3ee cream, #1a1a1a text, #e8d4c0 warmGeometric shapes (circle + line + dot), bold borders
Swiss ModernFocusedArchivo (800)Nunito (400)Pure white, pure black, #ff3300 red accentVisible grid, asymmetric layouts, geometric shapes
Specialty Presets
PresetMoodFontColorsSignature
Neon CyberTechyClash Display + Satoshi#0a0f1c navy, #00ffcc cyan, #ff00aa magentaNeon glow, grid patterns, particle-like effects
Terminal GreenHackerJetBrains Mono#0d1117 dark, #39d353 greenScan lines, blinking cursor, code aesthetic
Paper & InkEditorialCormorant Garamond + Source Serif 4#faf9f7 cream, #1a1a1a charcoal, #c41e3a crimsonDrop caps, pull quotes, elegant horizontal rules

Step 3: Apply the Preset

Once chosen, define the full theme in src/lib/theme.ts and as CSS custom properties in src/index.css:

  • All colors from the preset
  • Font families loaded from Google Fonts or Fontshare
  • CSS variables for backgrounds, accents, text colors
  • Use the preset's signature elements in at least the title slide and section transitions

4. Design System — Anti AI-Slop Rules

Typography

  • Use the font pairing from your chosen preset. Load from Google Fonts or Fontshare via @import in CSS.
  • No more than 2 font families.
  • Headlines: large and bold. Body text: scarce.
  • Never center-align body paragraphs. Left-align or use deliberate layout.
  • ALL font sizes must use clamp(min, preferred, max) — never fixed px/rem for text. This ensures readability across viewport sizes.
/* Example clamp values */
--title-size: clamp(2rem, 6vw, 5rem);
--subtitle-size: clamp(0.875rem, 2vw, 1.25rem);
--body-size: clamp(0.75rem, 1.2vw, 1rem);

Color & Backgrounds

  • Commit fully to your preset's palette. Define as CSS custom properties.
  • Create atmosphere, not flat colors. Layer CSS gradients for depth instead of a single solid background color:
/* Layered gradient for depth */
background:
  radial-gradient(ellipse at 20% 80%, rgba(120, 0, 255, 0.15) 0%, transparent 50%),
  radial-gradient(ellipse at 80% 20%, rgba(0, 255, 200, 0.1) 0%, transparent 50%),
  var(--bg-primary);

/* Subtle grid pattern for structure */
background-image:
  linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
  linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
background-size: 50px 50px;
  • Dominant colors with sharp accents outperform timid, evenly-distributed palettes.

Layout — Scaled Slide Container

  • The slide is a fixed 1280×720px container scaled via CSS transform: scale() to fit the viewport (like reveal.js). All content is authored at 1280×720 and uniformly scaled.
  • Because of transform scaling, Tailwind's rem-based spacing appears smaller on screen. For any element that needs visible padding (cards, chips, buttons with backgrounds), use inline style={{}} with px values instead of Tailwind padding classes.
  • Minimum padding for elements with a background: style={{padding: '20px 48px'}} for horizontal chips, style={{padding: '24px 32px'}} for content cards, style={{padding: '16px 32px'}} for buttons.
  • Generous whitespace. Content should breathe.
  • Max 60% of the slide area should contain content. The rest is intentional empty space.
  • Use CSS Grid or Flexbox. Avoid absolute positioning unless for decorative elements.
  • The SlideLayout component handles the scaling + centering.

Content Density Limits (NON-NEGOTIABLE)

Every slide MUST fit within the 1280×720 container. Content overflows? Split into multiple slides. Never cram, never scroll.

Slide TypeMaximum Content
Title slide1 heading + 1 subtitle + optional tagline
Content slide1 heading + 4-6 bullet points OR 1 heading + 2 short paragraphs
Feature grid1 heading + 6 cards maximum (2×3 or 3×2)
Chart slide1 heading + 1 chart
Quote slide1 quote (max 3 lines) + attribution
Image slide1 heading + 1 image (max 60% slide height)
Interactive slide1 heading + interactive element (keep controls minimal)

Visual Rules — Backgrounds & Borders

  • Do NOT wrap text content in background cards. Let text sit directly on the slide background. Use spacing and typography for hierarchy, not boxes.
  • No nested backgrounds. Never put one colored box inside another.
  • When an element MUST have a background (interactive buttons, chips, tags): use bg-white/5 with border border-white/10 — never solid surface colors.
  • Borders must be subtle. Use border-l border-muted/20 for left accents, never border-l-2. Use border border-white/10 for containers.
  • No drop shadows unless it's a hard shadow (offset, no blur) as a specific design choice.
  • No rounded-full badges with gradient backgrounds.
  • No decorative blobs, waves, or mesh gradients.
  • Geometric accents are OK: lines, dots, simple shapes.

DO NOT USE — Banned AI Patterns

CategoryBanned
FontsInter, Roboto, Arial, system fonts as display. Also avoid converging on Space Grotesk for every deck — vary your choices.
Colors#6366f1 (generic indigo), purple-on-white gradients, pastel rainbow, evenly-distributed "safe" palettes
LayoutsEverything centered in a vertical stack, identical card grids, generic hero sections
DecorationsRealistic illustrations, gratuitous glassmorphism, drop shadows without purpose, gradient mesh backgrounds

What Makes It NOT Feel AI-Slop

  • Asymmetric layouts (not everything centered in a stack)
  • Oversized typography for emphasis
  • Deliberate use of negative space
  • Content that has opinion and edge, not generic filler
  • Consistent but not monotonous — vary slide layouts across the deck
  • Real images and data, not placeholder illustrations
  • Surprise the viewer — make at least 1-2 unexpected layout choices per deck

5. Animation — Feeling-Driven Motion

Match Animation to Mood

FeelingAnimation StyleVisual Cues
Dramatic / CinematicSlow fade-ins (0.8-1.2s), large scale transitions (0.9→1)Dark backgrounds, spotlight effects
Techy / FuturisticNeon glow, text scramble/reveal effectsGrid patterns, monospace accents, cyan/magenta
Playful / FriendlyBouncy easing (gentle spring), floating motionRounded corners, bright colors
ProfessionalSubtle fast animations (200-300ms), clean slidesPrecise spacing, data visualization focus
Calm / MinimalVery slow subtle motion, gentle fadesHigh whitespace, muted palette, serif type
EditorialStaggered text reveals, image-text interplayStrong type hierarchy, pull quotes, grid-breaking

Framer Motion Defaults

  • Default duration: 0.4–0.6s. Avoid animations longer than 0.8s (unless cinematic mood).
  • Default easing: [0.25, 0.1, 0.25, 1] (smooth deceleration, equivalent to ease-out-expo)
  • Stagger children by 0.08–0.12s, not more

Slide Transitions

  • Use AnimatePresence with mode="wait" for slide changes
  • Slide enter: fade in + subtle translateY (20px) or translateX (30px)
  • Slide exit: fade out quickly (0.2s)
  • Do not use 3D transforms, rotations, or scale bounces for slide transitions

Content Animations (within a slide)

  • Headline: fade in + translateY, arrives first
  • Supporting content: staggered fade in after headline
  • Charts/images: fade in + subtle scale from 0.95 to 1
  • Use variants pattern for orchestrated animations:
const container = {
  hidden: { opacity: 0 },
  show: {
    opacity: 1,
    transition: { staggerChildren: 0.1 }
  }
};

const item = {
  hidden: { opacity: 0, y: 20 },
  show: { opacity: 1, y: 0, transition: { duration: 0.5, ease: [0.25, 0.1, 0.25, 1] } }
};

Progressive Reveal

  • Some slides should reveal content in steps (click to advance within a slide)
  • Track a step state per slide when needed
  • Animate items in/out based on current step
  • Show a subtle progress indicator (dots or a thin bar) when a slide has multiple steps

What NOT to Do

  • No spring with high bounce (underdamped springs look toyish)
  • No rotate animations on text
  • No continuous looping animations (except very subtle pulsing on interactive elements)
  • No parallax scrolling within slides
  • No animation on every single element — some things should just be there
  • One well-orchestrated entrance per slide beats scattered micro-interactions

prefers-reduced-motion Support

Always include reduced-motion support. Wrap animation variants:

const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;

const item = prefersReducedMotion
  ? { hidden: { opacity: 0 }, show: { opacity: 1 } }
  : { hidden: { opacity: 0, y: 20 }, show: { opacity: 1, y: 0, transition: { duration: 0.5 } } };

6. Slide Types & Components

Title Slide

  • Oversized headline using clamp(2.5rem, 6vw, 5rem)
  • Optional subtitle
  • Optional date or presenter name
  • Minimal, dramatic layout
  • Use preset's signature element (colored card, split panel, geometric shape, etc.)

Content Slide (Text)

  • Headline + 2–5 short bullet points or a short paragraph
  • Bullets should animate in with stagger
  • Left-aligned text, right side can have supporting visual
  • Max 4-6 bullets. Exceeds? Split into two slides.

Image Slide

  • Full-bleed or large contained image
  • Images are placed in public/images/ by the user
  • Reference as /images/filename.ext
  • Image max-height: 60% of slide height (432px at 720px)
  • Support caption text below or overlaid with semi-transparent background
  • Lazy load images

Chart Slide

  • Use Recharts (BarChart, LineChart, PieChart, AreaChart)
  • Style charts to match the deck theme — custom colors from preset, no default Recharts styling
  • Animate chart entrance with Framer Motion wrapper
  • Include clear labels and a headline

Comparison Slide

  • Side-by-side or before/after layout
  • Use a clear visual separator (accent line, not a heavy border)
  • Animate left then right panel

Quote / Callout Slide

  • Large text using clamp(1.5rem, 3vw, 2.5rem), centered or left-aligned
  • Accent color or background
  • Attribution below in smaller text
  • Max 3 lines for the quote.

Interactive Slide

  • For slides that need custom UI (polls, toggles, demos, games)
  • Build as self-contained components with local state
  • Add data-interactive attribute to prevent accidental slide navigation on click
  • Add clear visual affordance that something is interactive (hover states, cursor)

Link References

  • External URLs: render as styled links that open in new tab (target="_blank")
  • Local folder links: render as file:/// protocol links with a folder icon
  • Style links distinctly — underline + accent color, not default blue

7. Navigation & Controls

  • Keyboard: Right arrow / Space / Enter = next, Left arrow = previous
  • Click/Tap: Click right half = next, click left half = previous (skip elements with data-interactive, button, input)
  • Progress bar: Thin bar at bottom showing position in deck
  • Slide counter: Small "3 / 28" indicator in bottom-right corner
  • Support step sub-navigation within slides before advancing to next slide
  • Escape key: Toggle overview mode (grid of slide thumbnails) — nice to have, not required for v1

8. Content Guidelines

Refer to slide-guidelines.md in this directory for the pedagogical structure:

  • Problem → Discussion → Concept → Example → Takeaway cycle
  • One idea per slide
  • Visual-first, minimal text
  • Short headlines (6–8 words)
  • Progressive reveal for complex information
  • 60-70% visual slides, 10-15% charts/diagrams, 15-20% text explanation

You MUST ask the user for the actual content/topic before creating slides. The content guidelines above describe structure, not what goes in the slides.


9. Build & Run

npm create vite@latest . -- --template react-ts  # Only if starting fresh
npm install
npm run dev

The app should run with npm run dev and be viewable at localhost. No build errors. No TypeScript errors.


10. Quality Checklist

Before delivering any batch of slides, verify:

  • npm run dev starts without errors
  • TypeScript compiles cleanly (npx tsc --noEmit)
  • npx vite build succeeds
  • All animations are smooth at 60fps
  • Slides fit within 1280×720 — no content overflow, no scrolling
  • Content density within limits per slide type
  • No placeholder text like "Lorem ipsum" or "Your content here"
  • Color palette is consistent and matches chosen preset
  • Fonts are loading correctly from Google Fonts / Fontshare
  • Images referenced in slides exist in public/images/
  • Interactive elements have hover/focus states
  • Navigation works: keyboard, click, and progress bar are in sync
  • No text content wrapped in background cards — text sits on slide directly
  • No nested backgrounds (box inside box)
  • All elements with backgrounds have generous padding via inline style={{}}`, not Tailwind classes
  • Borders are subtle — border-white/10, border-muted/20, never solid surface colors
  • All font sizes use clamp() — no fixed px/rem for text
  • Backgrounds have depth — layered gradients or patterns, not flat solid colors

11. Workflow

  1. Ask the user for mood and content — what feeling? What topic? How many modules?
  2. Pick a style preset — suggest 2-3 based on mood, let user choose
  3. Scaffold the app — set up Vite, Tailwind, Framer Motion, project structure, theme from preset, shared components
  4. Build slides in batches — implement 5–10 slides at a time, then ask for review
  5. Iterate — adjust based on feedback
  6. Images — when a slide needs an image, tell the user what image is needed and where to place it (public/images/). Use a visible placeholder with the filename so they know what's missing.

Always keep the app in a runnable state. Never leave broken imports or missing files.

平台分布

Codex

34.44%
按下载量换算349

Claude

28.14%
按下载量换算285

Cursor

19.58%
按下载量换算199

Gemini CLI

10.42%
按下载量换算106

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills