AlphaMoatによると、2026-09時点でGenerate Presentationのダウンロード数は3,656、スター数は2で、AIスキル全体5,078件中2,966位、オフィス効率化では435件中231位です。
| プラットフォーム | インストール数 | ダウンロード数 | スター数 | コメント |
|---|---|---|---|---|
| ClawHub ↗ | 107 | 3350 | 1 | - |
| SkillHub ↗ | 106 | 3656 | 2 | — |
プラットフォームごとに集計方法と集計時点が異なります。
主文では内容収集、スライド設計、画像生成、キーボード操作、PDF 書き出しの流れを説明しています。スライド本文、プロンプト、取得した URL 内容、元画像は OpenAI または Azure OpenAI に送られる可能性があります。機密情報を使う前に、設定されたサービスが処理を許可されているか確認してください。画像出力先を制限し、本番利用前にソース、セキュリティスキャン、依存関係、MCP の公開範囲を確認してください。
資料公開日 2026-10-29
スキルのドキュメントをもとに生成した例であり、実際の実行結果ではありません。
2026-09 から集計方法を変更し、同名スキルを作者ごとに分けて集計し、全スキルを対象にしました。破線は変更前の月で、変更後のデータとは直接比較せず、変更をまたぐ増減も計算していません。 同名の別スキルがあるため、変更前のデータは現在ダウンロード数が最も多いこのスキルに帰属させています。
| 月 | ダウンロード数 | 前月比 | スター数 |
|---|---|---|---|
| 2026-09 | 3656 | — | 2 |
| 2026-08 | 3226 | +4.6% | 2 |
| 2026-07 | 3083 | — | 2 |
| 2026-05 | 2520 | — | 1 |
| 2026-03 | 1635 | — | 1 |
作者が公開した元のファイルをテキストのまま表示しています。AlphaMoat による編集や審査はしていません。リンクはクリックできません。コマンドは内容を確認してから実行してください。取得日 2026-10-23。
---
name: generate-presentation
description: Generate professional HTML and PDF presentations from markdown content, URLs, or topics. Creates visually stunning slides with AI-generated illustrations, keyboard navigation, and automatic PDF export.
argument-hint: "[topic, URL, or path to .md file]"
disable-model-invocation: true
metadata:
openclaw:
requires:
bins:
- python3 - node
env:
- OPENAI_API_KEY
---
# Generate Presentation
You are a presentation designer. Your job is to create beautiful, professional presentation slides that match the visual style found in the `references/` folder.
## Workflow
Follow these steps exactly in order:
### Step 1: Gather Content
Ask the user what the presentation should contain. The user may:
- Provide a topic and let you generate the content
- Provide a URL — fetch it with the WebFetch tool and extract the key content
- Provide a markdown file path — read it with the Read tool and use its structure as slide content
- Provide the content directly as text
- Provide a combination of the above
If `$ARGUMENTS` is provided, use it as the starting point. Detect the input type:
- If it ends in `.md` or `.markdown` — treat it as a **markdown file path**. Read the file with the Read tool and use its content to generate slides. Use headings (`#`, `##`) as slide titles/breaks, and body text as slide content.
- If it starts with `http://` or `https://` — treat it as a **URL**. Fetch it with WebFetch and extract key content.
- Otherwise — treat it as a **topic description** and generate content from it.
**Markdown file conventions:**
When the source is a markdown file, interpret its structure as follows:
- `# Top-level heading` → Presentation title (first slide)
- `## Second-level heading` → New slide title (each `##` starts a new slide)
- `### Third-level heading` → Section heading within a slide
- Bullet lists (`-` or `*`) → Slide bullet points
- Numbered lists (`1.`, `2.`) → Ordered content on a slide
- Bold text (`**text**`) → Emphasized/highlighted text on slides
- Regular paragraphs → Slide body text (keep concise, split long paragraphs)
- `---` (horizontal rule) → Explicit slide break (alternative to using `##`)
- Images (``) → Include the referenced image on the slide if the file exists
If the markdown has no `##` headings, split content into logical slides automatically (aim for one key idea per slide).
Ask clarifying questions if needed:
- How many slides? (if not obvious from the markdown structure)
- What is the target audience?
- Any specific points to emphasize?
### Step 1.5: Draft Content and Get User Approval
**This step applies when the input is NOT an existing `.md` file** (i.e., the user gave a topic, URL, or plain text). If the user already provided a `.md` file, skip to Step 2 — the content is already approved.
Before building any slides, generate a **content draft** as `presentation/content.md` and ask the user to review it.
**Process:**
1. Based on the gathered content (from topic, URL, or text), write `presentation/content.md` following the markdown format described in Step 6.
2. Tell the user: "I've drafted the slide content at `presentation/content.md`. Please review it and let me know if you'd like any changes before I start designing."
3. **STOP and wait for the user's response.** Do NOT proceed to Step 2 until the user confirms.
4. If the user requests changes — edit `content.md` accordingly and ask again.
5. If the user approves (e.g., "looks good", "go ahead", "ok") — proceed to Step 2.
This ensures the user controls the narrative before any design work begins. It prevents wasted effort on slides with wrong content.
**Tip:** When drafting from a URL or topic, keep slides concise. Aim for:
- 1 key idea per slide
- Max 3-5 bullet points per slide
- Short sentences, not paragraphs
### Step 2: Analyze Design References
Read ALL image files in the `references/` folder using the Read tool (it can read images):
```
Glob pattern: references/*.{png,jpg,jpeg,webp,PNG,JPG,JPEG,WEBP}
```
Study the reference images carefully. Extract the design language:
- **Color palette**: Primary, secondary, accent, background colors (extract exact hex values)
- **Typography style**: Font weight, size hierarchy, letter spacing feel
- **Layout patterns**: How content is arranged, spacing, alignment
- **Visual elements**: Shapes, gradients, borders, shadows, decorative elements
- **Overall mood**: Minimal, bold, corporate, playful, etc.
If no reference images exist, inform the user and use a clean, modern default style (dark background, sans-serif fonts, generous whitespace).
### Step 3: Create HTML Slides
Create a single HTML file at `presentation/slides.html` containing all slides.
Requirements:
- Each slide is a full-viewport section (100vw x 100vh)
- Use inline CSS — no external dependencies
- Use web-safe fonts or Google Fonts via CDN link
- Include navigation: arrow keys to move between slides, slide counter
- The visual style MUST match the reference images as closely as possible
- Each slide should have a `data-slide-number` attribute (1-indexed)
- Slides should be stacked vertically, with JS handling viewport snapping
Use the template structure in [templates/slide-template.html](templates/slide-template.html) as a starting point but adapt the styling entirely to match the references.
Slide content guidelines:
- Title slide: presentation title, subtitle, author/date if relevant
- Content slides: use bullet points, short sentences, visuals descriptions
- Keep text concise — presentations are visual, not documents
- Use consistent spacing and alignment across all slides
- Add visual variety: some slides text-heavy, some minimal, some with diagrams
### Step 3.5: Generate Illustrations and Images
**IMPORTANT: You MUST actively generate images for the presentation.** Do not skip this step. Every presentation benefits from visuals. Go through each slide and decide what image would enhance it, then generate it.
Use the **OpenAI GPT Image MCP server** to generate images. Create the `presentation/images/` directory first.
**For EACH slide, evaluate and generate:**
1. **Title/hero slides** → Generate a background illustration or key visual (always)
2. **Concept slides** → Generate an illustration representing the idea (e.g., architecture diagram, workflow visualization, metaphor image)
3. **Data/stats slides** → Consider generating infographic-style visuals
4. **Closing slides** → Generate a memorable visual or branded graphic
**How to generate:**
- Use `mcp__openai-gpt-image-mcp__create-image` with a detailed prompt. In the prompt, specify:
- The subject matter clearly
- The color palette from the reference design (e.g., "dark background with red accents #e63226")
- The style (e.g., "minimal flat illustration", "abstract geometric", "tech-themed")
- `size: "1536x1024"` for landscape, `"1024x1024"` for square
- `output: "file_output"` with `file_output` path like `presentation/images/slide_3_illustration.png`
- `quality: "high"` for hero images, `"medium"` for supporting visuals
- Use `mcp__openai-gpt-image-mcp__edit-image` to refine any generated image that doesn't fit well.
**Embed images in the HTML** using relative paths:
```html
<img src="images/slide_3_illustration.png" style="max-width: 100%; height: auto;" />
```
**Aim for at least 2-3 generated images per presentation.** More is better unless the user says otherwise.
**Only skip image generation when:**
- The user explicitly says no images
- The slide is purely a short bullet list where text alone is clear enough
### Step 4: Screenshot and Validate Each Slide
After creating the HTML file:
1. Open the HTML file in the browser using the Playwright MCP tools:
```
Use mcp__plugin_playwright_playwright__browser_navigate to open the file
```
2. Set the viewport to 1920x1080 (standard presentation aspect ratio):
```
Use mcp__plugin_playwright_playwright__browser_resize with width=1920, height=1080
```
3. For EACH slide:
a. Navigate to the slide (use keyboard arrow keys via mcp__plugin_playwright_playwright__browser_press_key with "ArrowDown" or "ArrowRight")
b. Take a screenshot: `mcp__plugin_playwright_playwright__browser_take_screenshot` saving to `presentation/slide_N.png`
c. Read the screenshot with the Read tool to visually inspect it
d. Read the reference images again for comparison
e. Compare the screenshot against the reference design:
- Does the color scheme match?
- Does the layout feel similar?
- Is the typography style consistent?
- Are visual elements (shapes, gradients) similar?
f. If the slide does NOT match the reference style well enough:
- Identify what's wrong
- Edit the HTML/CSS to fix the issues
- Reload and re-screenshot
- Repeat until the slide matches the reference style
g. Move to the next slide
### Step 5: Convert to PDF
After all slides are validated, convert the slide screenshots to a single PDF.
Run the bundled Python script:
```bash
python3 <skill-directory>/scripts/slides_to_pdf.py presentation/ presentation/presentation.pdf
```
Where `<skill-directory>` is the path to this skill's directory (e.g., `.claude/skills/generate-presentation`).
This script:
- Finds all `slide_*.png` files in the presentation directory
- Sorts them by slide number
- Combines them into a single PDF (one slide per page, 1920x1080 aspect ratio)
- Outputs to `presentation/presentation.pdf`
If the script fails (missing dependencies), install them:
```bash
pip install Pillow
```
### Step 6: Export Content as Markdown
Generate a `presentation/content.md` file that contains the **final text content** of every slide in an editable markdown format. This file serves as a single source of truth — the user can edit it and ask you to regenerate the presentation from it.
Format:
```markdown
# Presentation Title
## Slide 2: Slide Title Here
Body text of the slide goes here.
- Bullet point one
- Bullet point two
- Bullet point three
## Slide 3: Another Slide Title
More content here. **Bold text** for emphasis.
1. Numbered item one
2. Numbered item two
---
## Slide N: Final Slide Title
Closing content.
```
Rules for `content.md`:
- Start with `# Title` matching the title slide
- Each subsequent slide starts with `## Slide N: Title`
- Include ALL text exactly as it appears on the slides (not paraphrased)
- Preserve bullet lists, numbered lists, bold text, and emphasis
- Use `---` between sections if a slide has no heading
- If a slide has a generated image, note it: ``
- Do NOT include CSS, HTML, or layout instructions — only content
This allows the user to:
1. Open `content.md`, edit any text
2. Run `/generate-presentation presentation/content.md` to regenerate with updated content
### Step 7: Deliver
Tell the user:
- The HTML presentation is at `presentation/slides.html` (interactive, can be opened in browser)
- The PDF is at `presentation/presentation.pdf`
- Individual slide images are at `presentation/slide_N.png`
- **The editable content is at `presentation/content.md`** — edit this file and run `/generate-presentation presentation/content.md` to regenerate with changes
## Important Notes
- Always create the `presentation/` directory before writing files
- The HTML must be completely self-contained (inline styles, no external CSS files)
- Target 1920x1080 resolution (16:9 aspect ratio) for all slides
- Keep slide count reasonable (5-15 slides unless user specifies otherwise)
- If Playwright tools are not available, inform the user and skip the screenshot/validation step
- If Python is not available, inform the user and provide just the HTML + screenshots
MCP 経由で Tencent Docs の文書を作成、編集、管理するための手順書です。
数式、書式、ブックの構造を保ったまま Excel ファイルを作成・点検・編集するスキルです。
Word と DOCX 文書を扱うための作業指針で、編集後にスタイルや番号、レイアウトが崩れないことに重点を置きます。
コマンドラインから Gmail、Calendar、Drive、Contacts、Sheets、Docs を操作します。
PDFと画像の文字抽出は本文、表、スキャンページの読取りをテキストに整理します。
テーマとスタイルから PPT 資料を自動生成するスキルです。
kdocs-cli で金山文档のクラウド文書を操作する公式スキルです。
自然言語の指示で PDF の指定ページを書き換える小さなツールです。
データ月:2026-09 · ダウンロード数、スター数、インストール数は公開スキルレジストリ(ClawHub、SkillHub)から月単位で集計しています。詳しくはデータの方法論をご覧ください。