Skip to main content

slides

Create and manage presentation decks. Two modes - Slidev markdown (default) and "conference" hand-built HTML. Use when user asks to "create slides", "make a presentation", "add slides to this project", "set up a slide deck", or mentions "slidev", "pitch deck", "conference talk", "conference deck", or "slides folder".

来源信息

仓库
dwmkerr/claude-toolkit
最近来源活动
2026年7月3日 06:50
检测到的 SKILL.md 语言
英语
星标
23
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
19 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
slides
description
Create and manage presentation decks. Two modes - Slidev markdown (default) and "conference" hand-built HTML. Use when user asks to "create slides", "make a presentation", "add slides to this project", "set up a slide deck", or mentions "slidev", "pitch deck", "conference talk", "conference deck", or "slides folder".
# Slides Scaffold and manage presentation decks in any project. Two modes: - **Slidev mode (default)** - Markdown-driven decks using `@slidev/cli`. Best for project pitches, internal decks, README-driven content, and anything where the author edits markdown and lets Slidev render. Covered in the "Slidev Mode" section below. - **Conference mode** - Hand-built HTML deck modelled on the AI Native DevCon London 2026 talk. Dark theme, Inter + JetBrains Mono, right-arrow progressive reveal, fullscreen, page number, in-deck notes overlay, separate teleprompter sheet for a phone, deployable to GitHub Pages via a `gh-pages` worktree. No framework, no build step - the author edits HTML directly. Covered in the "Conference Mode" section further below. ## 0. Ask which mode When the user invokes the skill, ASK upfront: > "Slidev (default) or conference (hand-built HTML)?" Pick by signal too. Default to **Slidev** unless the user says any of: "conference", "conference talk", "conference deck", "hand-built", "no framework", "html deck", or references the AI Native DevCon style. If they pick conference, skip the Slidev sections and follow "Conference Mode" below. ## Slidev Mode ### 1. Ask where to keep slides Ask the user where to create the slides folder. Suggest `./slides` as default. ### 2. Scaffold the folder Create the following structure: ``` <slides-dir>/ ├── slides.md # Slide content (Slidev markdown) ├── package.json # Slidev dependencies ├── Makefile # Convenience targets └── public/ # Static assets (images, diagrams) ``` #### `package.json` ```json { "name": "slides", "private": true, "scripts": { "dev": "slidev slides.md --open", "build": "slidev build slides.md", "export": "slidev export slides.md" }, "dependencies": { "@slidev/cli": "^52.11.5", "@slidev/theme-default": "^0.25.0" } } ``` #### `Makefile` ```makefile .PHONY: slides slides-build slides-export slides-setup slides: node_modules ## Open slides in browser with hot-reload npx slidev slides.md --open slides-build: node_modules ## Build static SPA to ./dist npx slidev build slides.md slides-export: node_modules ## Export slides to PDF npx slidev export slides.md slides-setup: ## Install dependencies npm install node_modules: package.json npm install @touch node_modules ``` #### `slides.md` (starter) Generate a title slide using the project name. Use this template: ```markdown --- theme: default title: "<Project Name>" --- # <Project Name> <One-line project description from README or user prompt.> --- # Overview - Point one - Point two - Point three ``` ### 3. Install dependencies Run `npm install` inside the slides folder. ### 4. Add to .gitignore If a `.gitignore` exists in the slides folder or project root, ensure `node_modules/` and `dist/` are ignored. Check before adding to avoid duplicates. ## Content Generation When asked to generate or write slide content: 1. Read the source material (README, docs, solution.md, or user prompt) 2. Write slides in Slidev markdown format: - `---` separates slides - YAML frontmatter on first slide sets theme and title - Standard markdown for content (headers, lists, code blocks, images) - Images go in `public/` and are referenced as `/image.png` 3. Keep slides concise — one idea per slide, max 5-6 bullet points 4. Write directly to `slides.md` ### Slidev Markdown Quick Reference ```markdown --- theme: default title: "Deck Title" --- # Slide Title Regular markdown content. --- # Code Slide \`\`\`python def hello(): print("hello") \`\`\` --- # Image Slide <img src="/diagram.png" class="h-80" /> --- layout: two-cols --- # Left Column Content here. ::right:: # Right Column Content here. --- layout: center --- # Centered Content Big statement. ``` ### Available Layouts - `default` — standard content - `center` — centered on page - `two-cols` — split with `::right::` separator - `image-right` / `image-left` — content + image side by side - `cover` — title/cover slide - `section` — section divider ## Styling Keep `slides.md` readable. Prefer built-in layouts and theme classes before writing custom CSS. Add styles selectively — not preemptively. **Content first, styling after.** When a slide does need a `<style>` or `<style scoped>` block, put it at the *bottom* of the slide, just above the closing `---`. Slidev parses the whole slide regardless of position, so pushing CSS below the content means a reader opening `slides.md` sees the actual content first — if they then scroll past some styling, so be it. If a pattern is reused across many slides (typography, card layouts, shared tables), promote it to the theme under `themes/<name>/styles/` instead of repeating it inline. ## Revision When asked to edit slides: 1. Read `slides.md` 2. Make targeted edits — don't regenerate the whole deck 3. Suggest `make slides` to preview changes ## Themes By default, use `theme: default` in frontmatter. Do NOT suggest or apply custom themes unless the user specifically asks about available themes. Custom themes are local Slidev theme folders stored in this skill at `themes/<name>/`. To apply one, copy the theme folder into the slides directory and set `theme: ./<name>` in frontmatter. ### Available Themes #### qblabs Style inspired by QuantumBlack's publicly available visual identity. All colors, fonts, and design patterns sourced exclusively from public materials: - [quantumblack.com](https://quantumblack.com) — public website (redirects to mckinsey.com/capabilities/quantumblack) - [github.com/mckinsey/qbstyles](https://github.com/mckinsey/qbstyles) — matplotlib theme, dark bg `#0C1C23` - [brandfetch.com/mckinsey.com](https://brandfetch.com/mckinsey.com) — public brand colors For an example slide in this style, see [`references/qblabs-example-slide.html`](references/qblabs-example-slide.html). **Setup**: Copy `themes/qblabs/` into the slides directory, then: ```markdown --- theme: ./qblabs title: "Deck Title" --- ``` **Layouts**: - `cover` — dark navy background, blue accent bar, centered title - `default` — clean white background, blue underline on h1 - `section` — dark navy section divider with blue accent **Key colors** (from public QB website/branding): - `#051C2C` — Dark navy (hero/section backgrounds) - `#2251FF` — Electric blue (accent, links, CTAs) - `#222222` — Body text (on light backgrounds) - `#A2AAAD` — Secondary text (medium grey) **Fonts**: Georgia (serif, headings) and Arial (sans, body) — standard PowerPoint substitutes for Bower and McKinsey Sans which are not publicly licensed. **Utility classes**: `.qb-blue`, `.qb-navy`, `.qb-bg-dark`, `.qb-bg-light`, `.qb-accent-bar` ## Standalone HTML Slide Templates Two hand-built, single-file HTML slides live in `references/`. Each is a self-contained 1920x1080 slide with no dependencies - open in a browser, edit, save. - **QuantumBlack dark exemplar** ([`references/qblabs-example-slide.html`](references/qblabs-example-slide.html)) - dark, corporate, agentic-engineering style. Use for QB-branded or dark technical decks. - **dwmkerr.com timeline template** ([`references/dwmkerr-com-timeline-slide.html`](references/dwmkerr-com-timeline-slide.html)) - light off-white, shell-header, `# timeline` heading over four phase columns. Use for personal-site, terminal/shell-focused slides. ![dwmkerr.com timeline slide in edit mode](references/dwmkerr-com-timeline-slide.png) ### Keyboard edit / save mode Both slides support in-browser editing. Open the file, then: | Key | Action | |-----|--------| | `E` | Enter edit mode (click any text and type) | | `Cmd/Ctrl+S` | Save - downloads the edited slide as an HTML file | | `Esc` | Exit edit mode | Press `E`, edit text inline, `Cmd+S` to download the updated HTML, `Esc` to finish. Edits are made live in the browser; save writes a new HTML file you keep. The `E` shortcut is ignored while a field is focused, so it never inserts a stray character. ### Using the timeline template Copy `references/dwmkerr-com-timeline-slide.html`, open it in a browser, press `E` and edit the text, then `Cmd+S` to save. To add columns, duplicate a `.phase` block and bump the count in the `.phases` grid; relabel the timeline ticks by editing the `t0`...`t4` labels. ## Conference Mode A hand-built HTML conference deck. **No framework, no Vue, no Slidev, no build step.** The author edits `presentation.html` directly. Speaker notes live in `presentation.md` and are baked into a standalone `notes.html` teleprompter sheet for a phone or second screen. ### When to use it - A conference talk (20-45 minutes) where presence and feel matter as much as content. - Dark theme, typographic, whitespace-led, minimal chrome. - Custom interactions (right-arrow progressive reveal, hidden in-deck notes overlay, fullscreen toggle). - Deploys to GitHub Pages via a `gh-pages` worktree, with separate public URLs for the deck and for the phone-readable notes sheet. If the user wants a quick scaffold from a README, or wants Markdown-driven content with Slidev's built-in layouts, use **Slidev mode** instead. For a complete real-world example of a finished conference deck (structure, slide markup), see [`references/conference-example.html`](references/conference-example.html) — the final deck from a real AI Native DevCon talk. ### Setup flow 1. Ask where to keep the deck. Suggest `./presentation` or a conference-specific folder name (for example `./conferences/<year>-<event>/`). 2. Copy everything under `themes/conference/template/` into the target folder verbatim. No `npm install`, no dependencies. 3. Tell the user: - `make dev` serves `presentation.html` on `http://localhost:2663`. - `make notes` serves `notes.html` (open on a phone for a teleprompter). - Edit `presentation.html` to change slide content. - Edit `presentation.md` to change speaker notes, then regenerate `notes.html` from it. 4. If the user wants `make deploy` to work, ask for their site repo path and the public URL pattern, then update `SITE_REPO`, `PUBLIC_NOTES_URL`, and `PUBLIC_PRESENTATION_URL` at the top of the `Makefile`. ### File layout ``` <deck-dir>/ ├── presentation.html # The deck (single hand-edited HTML file) ├── presentation.md # Single source of truth for speaker notes ├── notes.html # Baked teleprompter sheet (regenerated from md) ├── Makefile # dev / notes / deploy / deploy-presentation / deploy-notes / lab / help ├── images/ # QR codes, photos, diagrams └── README.md # Quick start, conventions ``` ### Slide markup conventions - Each slide is a `<section class="slide <type>" data-name="<unique-id>">` block. - Each slide uses an **eyebrow + heading** pattern: `<div class="label-in">Section name</div>` then `<h3>One central idea</h3>` (or `<h1>` for title slides, `<h2>` for disclaimer / punch). - Slides that should reveal items one-at-a-time on Right have `data-reveal="true"` and mark each fragment with `class="revealable"`. - The provided slide types: `title`, `disclaimer`, `content`, `chartslide`, `punch` (section divider), `regtable` (two-column bad-vs-good table, optionally `recap-hero`), `jokes` (progressive reveal list with punchline), `title split` (title + image / QR on the right). ### Copy conventions - **No em-dashes.** Use a regular hyphen. Do not "tidy up" hyphens into em-dashes anywhere. - **No full stops at the end of slide leads or headings.** Body text and notes are normal prose. - One central idea per slide. Whitespace-led. The slide is not the script. ### Colour convention Apply consistently when colouring words, lines, table rows, and markers. | Token | Hex | Meaning | |-------|-----|---------| | Red | `#e8503a` | Bad / dysregulating / warning | | Green | `#6bbf73` | Good / regulating / managing | | Blue | `#4c8dd6` | Accent / anchored to baseline | | Yellow | `#f2c94c` | Support / highlight | The slate accent (`#5e8a9c`) and warm rust (`#d99161`) are the deck's neutral accents - eyebrows, section punches, decorative rules. ### Speaker notes flow - `presentation.md` is the **single source of truth** for speaker notes. The deck (`presentation.html`) is the public artefact and should not carry full notes inline. - Each slide in `presentation.md` is a `##` or `###` heading. On-slide content sits above `---`; speaker notes sit below `---`. End each notes block with `*Clock: X:XX*` for pacing. - Top-level `#` headings in the md are the author's organising structure (parts / acts) - they are scaffolding, not slides. Skip them when regenerating. - When notes change, regenerate `notes.html` by rewriting the entries inside its `<div id="list">` block from the parsed md, pairing each md slide by index with the deck's `data-name` order. Keep the `notes.html` shell (CSS, controls bar, fonts / theme JS) untouched. ### Deploy pattern `make deploy-presentation` and `make deploy-notes` publish straight to the `gh-pages` branch of `SITE_REPO` via a throwaway `git worktree`. Each pushes a single commit. The deck lives at `<site>/presentation/presentation.html`; the notes sheet lives at `<site>/presentation/notes.html`. The phone-readable notes URL is meant to be opened on a second screen during the talk. ## Example Interactions **User**: "Add slides to this project" 1. Ask: "Slidev (default) or conference (hand-built HTML)?" 2. If Slidev: ask where to keep them (suggest `./slides`), scaffold folder with `theme: default`, run `npm install`, tell user `cd slides && make slides` to open. 3. If conference: ask where to keep the deck (suggest `./presentation` or `./conferences/<year>-<event>/`), copy `themes/conference/template/*` into it, tell user `make dev` to open. **User**: "Create a conference talk deck" or "Set up a hand-built HTML deck" 1. Skip the Slidev question - go straight to conference mode. 2. Ask where to keep the deck. 3. Copy `themes/conference/template/*` into the target folder. 4. Tell user: `make dev` to preview, edit `presentation.html` for content and `presentation.md` for notes, regenerate `notes.html` from md when notes change.
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看