huashu-slides — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited huashu-slides (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Create professional presentations: Content → Design → Build → Assembly → Polish.
At the start of every presentation task, ask the user TWO choices:
| Mode | Description | Checkpoints |
param($m) $inner = $m.Groups[1].Value
$cells = $inner -split '\|' $fixedCells = $cells | ForEach-Object { $cell = --- name: huashu-slides description: End-to-end presentation creation from content to finished PPTX, with AI illustration generation and 18 design styles. Use when the user mentions "make a PPT", "create slides", "presentation", "Keynote", or "slides".
Create professional presentations: Content → Design → Build → Assembly → Polish.
At the start of every presentation task, ask the user TWO choices:
| Mode | Description | Checkpoints |
|---|---|---|
| Full Auto | Minimal interaction. Confirm topic only, deliver final PPTX. | 1 checkpoint |
| Guided (recommended) | Confirm outline, pick design, preview before assembly. | 3 checkpoints |
| Collaborative | Review every slide, approve every illustration, full control. | Per-slide |
If the user doesn't specify, default to Guided mode.
| Method | How it works | Best for |
|---|---|---|
| Editable HTML (Path A) | HTML slides + selective AI illustrations → html2pptx → editable PPTX | Need to edit text later, precise layout, corporate decks |
| Full AI Visual (Path B) | Every slide as a complete AI-generated image → image PPTX | Maximum visual impact, artistic presentations |
Trade-offs:
| Path A: Editable HTML | Path B: Full AI Visual | |
|---|---|---|
| Text | Editable in PPT | Baked into image (not editable) |
| Visual quality | Good with illustrations | Excellent — cohesive design |
| Chinese text | Perfect (font rendering) | Usually good (AI may occasionally misrender) |
| Speed | Faster | Slower (image per slide) |
If the user doesn't specify, default to Path A (Editable HTML).
Turn raw material into a slide-by-slide outline.
Per slide, define:
Assertion-Evidence rule:
| Bad title | Good title |
|---|---|
| Q3 Sales | Q3 Sales Grew 23% — New Users Are the Main Driver |
| Methodology | We Validated This Conclusion via Double-Blind Testing |
Language rule: Slide content in the user's primary language. Only keep necessary English terms (names, brand names, technical proper nouns). Section labels (INSIGHT, TAKEAWAY) may use English as a design element.
Present the outline as a table. Ask the user:
Present 3 design system options for the user to choose from. Each is a complete visual language — not just a colour palette.
CRITICAL: A design system is NOT just colours. It defines visual philosophy, typography ratios, composition rules, and emotional intent.
If the user references a specific design movement (Bauhaus, Swiss Style, etc.), consult references/design-movements.md to translate their aesthetic language into actionable presets.
⚠️ Key insight: Illustration/comic styles generate far better AI results than "professional minimalist" styles. Comic styles have clear visual language (lines, characters, colour blocks); minimalist styles (dark bg + glowing text + whitespace) produce flat, empty results.
Topic Recommendation Table:
| Topic Type | 1st Choice | 2nd Choice | 3rd Choice |
|---|---|---|---|
| Brand / product intro | Warm Comic Strip | Neo-Pop Magazine | Eastern-style (Dunhuang) |
| Education / training | Neo-Brutalism | Manga Educational | Warm Comic Strip |
| Tech sharing | Whiteboard Sketch | Neo-Brutalism | Ligne Claire |
| Data reports | Pentagram Editorial | Fathom Data | Ligne Claire |
| Young audience | Neo-Pop | Pixel Art | Risograph |
| Creative / artistic | Dada Collage | Risograph | The Oatmeal |
| Eastern / traditional | Dunhuang | Ukiyo-e | Takram Speculative |
| Formal business | Pentagram Editorial | Müller-Brockmann Grid | Build Luxury Minimal |
| Product launch | Soviet Constructivism | Neo-Pop | Pentagram Editorial |
| Internal sharing | Neo-Brutalism | The Oatmeal | Whiteboard Sketch |
| Industry analysis | Fathom Data | Pentagram Editorial | Müller-Brockmann Grid |
| Training materials | Takram Speculative | Warm Narrative | Manga Educational |
| Investor pitch | Build Luxury Minimal | Pentagram Editorial | Soviet Constructivism |
Full 18-style reference: references/proven-styles-gallery.md Style sample images: assets/style-samples/ directory
Tier 1 (Highly recommended — excellent results):
1. Warm Comic Strip — Snoopy/Peanuts style
2. Manga Educational — Learning manga style
3. Ligne Claire Comics — Clean-line comic style
4. Neo-Pop Magazine — New pop art magazine style
Tier 2 (Recommended for specific scenarios):
5. Whiteboard Sketch — xkcd whiteboard style
6. Soviet Constructivism — Constructivist propaganda poster style
7. Warm Narrative — Warm storytelling style
More styles (Tier 2 & 3) — see references/proven-styles-gallery.md: The Oatmeal, Dunhuang, Ukiyo-e, Risograph, Isometric, Bauhaus, Blueprint, Vintage Ad, Dada Collage, Pixel Art
Tier 4: Professional / Editorial Design Systems (Path A only)
⚠️ The following styles strongly recommend Path A (HTML→PPTX). They depend on precise typography, data visualisation, and grid systems — AI image generation cannot achieve the required precision.
8. Pentagram Editorial — Editorial magazine style
9. Fathom Data Narrative — Data storytelling style
10. Müller-Brockmann Grid — Swiss Grid style
11. Build Luxury Minimal — Luxury minimalist style
12. Takram Speculative — Japanese speculative design style
Ask the user to pick one of the 3 proposed design systems.
Generate AI illustrations for key slides, then create HTML slide files.
Which slides need illustrations? Prioritise:
Illustration Generation:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[description]" \
--filename "[timestamp]-slide-[N]-[name].png" \
--resolution 2KBase Style Prompt — define ONE style suffix, append to every illustration:
[Base Style]: flat vector illustration, [palette background color] background,
[accent color] highlight elements, clean minimalist aesthetic,
professional presentation style, no text in imagePer-slide prompt = [specific content] + [Base Style]
Key rules:
Embedding in HTML slides:
<!-- Side illustration (recommended) -->
<div class="left"><!-- text content --></div>
<div class="right"><img src="illustration.png" style="width: 280pt; height: 280pt;"></div>✅ Checkpoint 3-A — Show generated illustrations. Ask: Approve / regenerate / style consistent?
Generate EVERY slide as a complete AI image — layout, text, visuals, all in one.
⚠️ THE #1 MISTAKE: Over-constraining the prompt with layout details. More constraints = LESS creativity. Give mood + reference + content, NOT specific positions, colour ratios, or character restrictions.
#### The Golden Rule of AI Image Prompts
SHORT prompts > LONG prompts. A 3-sentence prompt describing mood and content beats a 30-line spec.
| DON'T (kills diversity) | DO (enables creativity) |
|---|---|
| Specify colour ratios (60%/25%/15%) | Describe the mood ("warm like a Sunday comic page") |
| Dictate layout positions | Reference a specific aesthetic ("Peanuts comic strip") |
| Restrict characters | Let AI interpret the style naturally |
| List every visual element | Describe what the viewer should FEEL |
#### Base Style Prompt — Keep it SHORT
Define once, append to every slide. Under 5 lines.
[Base Style]:
VISUAL REFERENCE: [Specific art/design aesthetic in one sentence]
CANVAS: 16:9 aspect ratio, 2048x1152 pixels, high quality rendering.
COLOR SYSTEM: [Describe the mood/feel of colours, not exact ratios]#### Per-Slide Prompt Structure
Create a [style] slide about [topic].
[Base Style]
DESIGN INTENT: [1 sentence — what the viewer should FEEL]
TEXT TO RENDER:
- Title: "[exact text]"
- Body: "[exact text]"
[Optional: 1–2 sentences describing mood or scene. Let AI decide composition.]Prompt Quality Checklist (verify before every generation):
Technical Rules:
2048x1152 (2K, 16:9)Generation command:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[full slide prompt]" \
--filename "slide-[NN]-[name].png" \
--resolution 2K✅ Checkpoint 3-B — Show ALL generated slide images. Ask: Text accurate? Style consistent? Any slides to regenerate?
const pptxgen = require('pptxgenjs');
const html2pptx = require(process.env.HOME + '/.agents/skills/pptx/scripts/html2pptx.js');
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9';
await html2pptx('slide1.html', pptx);
await html2pptx('slide2.html', pptx);
await pptx.writeFile({ fileName: 'output.pptx' });HTML rules:
width: 720pt; height: 405pt (16:9)<p>, <h1>–<h6>, <ul>, <ol> tags<div> elementsKnown issue: Non-ASCII characters in file paths can break image loading. Use symlinks to ASCII paths if needed.
uv run ~/.claude/skills/image-to-slides/scripts/create_slides.py \
slide-01-cover.png slide-02-intro.png ... \
--layout fullscreen \
--bg-color 000000 \
-o output.pptx| Layout | Use case |
|---|---|
fullscreen | AI-generated full-page slides (Path B default) |
title_above | Image + editable title (hybrid approach) |
title_left | Split: text + visual |
center | Centred image with padding |
grid | Multiple images per slide |
Path A: Screenshot key HTML slides with Playwright:
npx playwright screenshot "file:///path/to/slide.html" preview.png \
--viewport-size=960,540 --wait-for-timeout=1000Path B: Show the generated slide images directly using the Read tool.
Show preview to the user. Ask:
5/5/5 rule: ≤5 words/line, ≤5 bullets/slide, ≤5 text-heavy slides in a row
Cognitive load: One idea per slide. ~1 min per slide. Slides complement speech, never duplicate it.
Visual hierarchy: F/Z-pattern reading flow. Title:body size ≈ 3:1. Every slide should have a visual element.
Detailed references:
references/proven-styles-gallery.md — 18 tested visual styles with tiered recommendationsreferences/proven-styles-snoopy.md — Snoopy/Peanuts style detailed per-slide templatesreferences/prompt-templates.md — Content generation and image promptsreferences/design-principles.md — Full design framework, colour palettes, typographyreferences/design-movements.md — Design movement and style reference library| Skill | Role |
|---|---|
pptx | Advanced PPTX creation/editing (html2pptx, templates) |
nano-banana-pro | AI illustration generation |
design-philosophy | 20 design philosophies — detailed style DNA, scene templates, review criteria |
.pptx files compatible with PowerPoint, Keynote, Google SlidesBy Huashu | AI Native Coder · Independent Developer WeChat Official Account "Huashu" | 300k+ followers | AI Tools & Productivity Flagship products: Kitty Catchlight (AppStore Paid Rankings Top 1) · Play DeepSeek with One Book
.Trim() if ($cell -match '^:?-+:? | Full Auto | Minimal interaction. Confirm topic only, deliver final PPTX. | 1 checkpoint | | Guided (recommended) | Confirm outline, pick design, preview before assembly. | 3 checkpoints | | Collaborative | Review every slide, approve every illustration, full control. | Per-slide |
If the user doesn't specify, default to Guided mode.
| Method | How it works | Best for |
|---|---|---|
| Editable HTML (Path A) | HTML slides + selective AI illustrations → html2pptx → editable PPTX | Need to edit text later, precise layout, corporate decks |
| Full AI Visual (Path B) | Every slide as a complete AI-generated image → image PPTX | Maximum visual impact, artistic presentations |
Trade-offs:
| Path A: Editable HTML | Path B: Full AI Visual | |
|---|---|---|
| Text | Editable in PPT | Baked into image (not editable) |
| Visual quality | Good with illustrations | Excellent — cohesive design |
| Chinese text | Perfect (font rendering) | Usually good (AI may occasionally misrender) |
| Speed | Faster | Slower (image per slide) |
If the user doesn't specify, default to Path A (Editable HTML).
Turn raw material into a slide-by-slide outline.
Per slide, define:
Assertion-Evidence rule:
| Bad title | Good title |
|---|---|
| Q3 Sales | Q3 Sales Grew 23% — New Users Are the Main Driver |
| Methodology | We Validated This Conclusion via Double-Blind Testing |
Language rule: Slide content in the user's primary language. Only keep necessary English terms (names, brand names, technical proper nouns). Section labels (INSIGHT, TAKEAWAY) may use English as a design element.
Present the outline as a table. Ask the user:
Present 3 design system options for the user to choose from. Each is a complete visual language — not just a colour palette.
CRITICAL: A design system is NOT just colours. It defines visual philosophy, typography ratios, composition rules, and emotional intent.
If the user references a specific design movement (Bauhaus, Swiss Style, etc.), consult references/design-movements.md to translate their aesthetic language into actionable presets.
⚠️ Key insight: Illustration/comic styles generate far better AI results than "professional minimalist" styles. Comic styles have clear visual language (lines, characters, colour blocks); minimalist styles (dark bg + glowing text + whitespace) produce flat, empty results.
Topic Recommendation Table:
| Topic Type | 1st Choice | 2nd Choice | 3rd Choice |
|---|---|---|---|
| Brand / product intro | Warm Comic Strip | Neo-Pop Magazine | Eastern-style (Dunhuang) |
| Education / training | Neo-Brutalism | Manga Educational | Warm Comic Strip |
| Tech sharing | Whiteboard Sketch | Neo-Brutalism | Ligne Claire |
| Data reports | Pentagram Editorial | Fathom Data | Ligne Claire |
| Young audience | Neo-Pop | Pixel Art | Risograph |
| Creative / artistic | Dada Collage | Risograph | The Oatmeal |
| Eastern / traditional | Dunhuang | Ukiyo-e | Takram Speculative |
| Formal business | Pentagram Editorial | Müller-Brockmann Grid | Build Luxury Minimal |
| Product launch | Soviet Constructivism | Neo-Pop | Pentagram Editorial |
| Internal sharing | Neo-Brutalism | The Oatmeal | Whiteboard Sketch |
| Industry analysis | Fathom Data | Pentagram Editorial | Müller-Brockmann Grid |
| Training materials | Takram Speculative | Warm Narrative | Manga Educational |
| Investor pitch | Build Luxury Minimal | Pentagram Editorial | Soviet Constructivism |
Full 18-style reference: references/proven-styles-gallery.md Style sample images: assets/style-samples/ directory
Tier 1 (Highly recommended — excellent results):
1. Warm Comic Strip — Snoopy/Peanuts style
2. Manga Educational — Learning manga style
3. Ligne Claire Comics — Clean-line comic style
4. Neo-Pop Magazine — New pop art magazine style
Tier 2 (Recommended for specific scenarios):
5. Whiteboard Sketch — xkcd whiteboard style
6. Soviet Constructivism — Constructivist propaganda poster style
7. Warm Narrative — Warm storytelling style
More styles (Tier 2 & 3) — see references/proven-styles-gallery.md: The Oatmeal, Dunhuang, Ukiyo-e, Risograph, Isometric, Bauhaus, Blueprint, Vintage Ad, Dada Collage, Pixel Art
Tier 4: Professional / Editorial Design Systems (Path A only)
⚠️ The following styles strongly recommend Path A (HTML→PPTX). They depend on precise typography, data visualisation, and grid systems — AI image generation cannot achieve the required precision.
8. Pentagram Editorial — Editorial magazine style
9. Fathom Data Narrative — Data storytelling style
10. Müller-Brockmann Grid — Swiss Grid style
11. Build Luxury Minimal — Luxury minimalist style
12. Takram Speculative — Japanese speculative design style
Ask the user to pick one of the 3 proposed design systems.
Generate AI illustrations for key slides, then create HTML slide files.
Which slides need illustrations? Prioritise:
Illustration Generation:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[description]" \
--filename "[timestamp]-slide-[N]-[name].png" \
--resolution 2KBase Style Prompt — define ONE style suffix, append to every illustration:
[Base Style]: flat vector illustration, [palette background color] background,
[accent color] highlight elements, clean minimalist aesthetic,
professional presentation style, no text in imagePer-slide prompt = [specific content] + [Base Style]
Key rules:
Embedding in HTML slides:
<!-- Side illustration (recommended) -->
<div class="left"><!-- text content --></div>
<div class="right"><img src="illustration.png" style="width: 280pt; height: 280pt;"></div>✅ Checkpoint 3-A — Show generated illustrations. Ask: Approve / regenerate / style consistent?
Generate EVERY slide as a complete AI image — layout, text, visuals, all in one.
⚠️ THE #1 MISTAKE: Over-constraining the prompt with layout details. More constraints = LESS creativity. Give mood + reference + content, NOT specific positions, colour ratios, or character restrictions.
#### The Golden Rule of AI Image Prompts
SHORT prompts > LONG prompts. A 3-sentence prompt describing mood and content beats a 30-line spec.
| DON'T (kills diversity) | DO (enables creativity) |
|---|---|
| Specify colour ratios (60%/25%/15%) | Describe the mood ("warm like a Sunday comic page") |
| Dictate layout positions | Reference a specific aesthetic ("Peanuts comic strip") |
| Restrict characters | Let AI interpret the style naturally |
| List every visual element | Describe what the viewer should FEEL |
#### Base Style Prompt — Keep it SHORT
Define once, append to every slide. Under 5 lines.
[Base Style]:
VISUAL REFERENCE: [Specific art/design aesthetic in one sentence]
CANVAS: 16:9 aspect ratio, 2048x1152 pixels, high quality rendering.
COLOR SYSTEM: [Describe the mood/feel of colours, not exact ratios]#### Per-Slide Prompt Structure
Create a [style] slide about [topic].
[Base Style]
DESIGN INTENT: [1 sentence — what the viewer should FEEL]
TEXT TO RENDER:
- Title: "[exact text]"
- Body: "[exact text]"
[Optional: 1–2 sentences describing mood or scene. Let AI decide composition.]Prompt Quality Checklist (verify before every generation):
Technical Rules:
2048x1152 (2K, 16:9)Generation command:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[full slide prompt]" \
--filename "slide-[NN]-[name].png" \
--resolution 2K✅ Checkpoint 3-B — Show ALL generated slide images. Ask: Text accurate? Style consistent? Any slides to regenerate?
const pptxgen = require('pptxgenjs');
const html2pptx = require(process.env.HOME + '/.agents/skills/pptx/scripts/html2pptx.js');
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9';
await html2pptx('slide1.html', pptx);
await html2pptx('slide2.html', pptx);
await pptx.writeFile({ fileName: 'output.pptx' });HTML rules:
width: 720pt; height: 405pt (16:9)<p>, <h1>–<h6>, <ul>, <ol> tags<div> elementsKnown issue: Non-ASCII characters in file paths can break image loading. Use symlinks to ASCII paths if needed.
uv run ~/.claude/skills/image-to-slides/scripts/create_slides.py \
slide-01-cover.png slide-02-intro.png ... \
--layout fullscreen \
--bg-color 000000 \
-o output.pptx| Layout | Use case |
|---|---|
fullscreen | AI-generated full-page slides (Path B default) |
title_above | Image + editable title (hybrid approach) |
title_left | Split: text + visual |
center | Centred image with padding |
grid | Multiple images per slide |
Path A: Screenshot key HTML slides with Playwright:
npx playwright screenshot "file:///path/to/slide.html" preview.png \
--viewport-size=960,540 --wait-for-timeout=1000Path B: Show the generated slide images directly using the Read tool.
Show preview to the user. Ask:
5/5/5 rule: ≤5 words/line, ≤5 bullets/slide, ≤5 text-heavy slides in a row
Cognitive load: One idea per slide. ~1 min per slide. Slides complement speech, never duplicate it.
Visual hierarchy: F/Z-pattern reading flow. Title:body size ≈ 3:1. Every slide should have a visual element.
Detailed references:
references/proven-styles-gallery.md — 18 tested visual styles with tiered recommendationsreferences/proven-styles-snoopy.md — Snoopy/Peanuts style detailed per-slide templatesreferences/prompt-templates.md — Content generation and image promptsreferences/design-principles.md — Full design framework, colour palettes, typographyreferences/design-movements.md — Design movement and style reference library| Skill | Role |
|---|---|
pptx | Advanced PPTX creation/editing (html2pptx, templates) |
nano-banana-pro | AI illustration generation |
design-philosophy | 20 design philosophies — detailed style DNA, scene templates, review criteria |
.pptx files compatible with PowerPoint, Keynote, Google SlidesBy Huashu | AI Native Coder · Independent Developer WeChat Official Account "Huashu" | 300k+ followers | AI Tools & Productivity Flagship products: Kitty Catchlight (AppStore Paid Rankings Top 1) · Play DeepSeek with One Book
) { " $cell " } else { " $cell " } } '|' + ($fixedCells -join '|') + '|'
| Full Auto | Minimal interaction. Confirm topic only, deliver final PPTX. | 1 checkpoint | | Guided (recommended) | Confirm outline, pick design, preview before assembly. | 3 checkpoints | | Collaborative | Review every slide, approve every illustration, full control. | Per-slide |
If the user doesn't specify, default to Guided mode.
| Method | How it works | Best for |
param($m) $inner = $m.Groups[1].Value
$cells = $inner -split '\|' $fixedCells = $cells | ForEach-Object { $cell = --- name: huashu-slides description: End-to-end presentation creation from content to finished PPTX, with AI illustration generation and 18 design styles. Use when the user mentions "make a PPT", "create slides", "presentation", "Keynote", or "slides".
Create professional presentations: Content → Design → Build → Assembly → Polish.
At the start of every presentation task, ask the user TWO choices:
| Mode | Description | Checkpoints |
|---|---|---|
| Full Auto | Minimal interaction. Confirm topic only, deliver final PPTX. | 1 checkpoint |
| Guided (recommended) | Confirm outline, pick design, preview before assembly. | 3 checkpoints |
| Collaborative | Review every slide, approve every illustration, full control. | Per-slide |
If the user doesn't specify, default to Guided mode.
| Method | How it works | Best for |
|---|---|---|
| Editable HTML (Path A) | HTML slides + selective AI illustrations → html2pptx → editable PPTX | Need to edit text later, precise layout, corporate decks |
| Full AI Visual (Path B) | Every slide as a complete AI-generated image → image PPTX | Maximum visual impact, artistic presentations |
Trade-offs:
| Path A: Editable HTML | Path B: Full AI Visual | |
|---|---|---|
| Text | Editable in PPT | Baked into image (not editable) |
| Visual quality | Good with illustrations | Excellent — cohesive design |
| Chinese text | Perfect (font rendering) | Usually good (AI may occasionally misrender) |
| Speed | Faster | Slower (image per slide) |
If the user doesn't specify, default to Path A (Editable HTML).
Turn raw material into a slide-by-slide outline.
Per slide, define:
Assertion-Evidence rule:
| Bad title | Good title |
|---|---|
| Q3 Sales | Q3 Sales Grew 23% — New Users Are the Main Driver |
| Methodology | We Validated This Conclusion via Double-Blind Testing |
Language rule: Slide content in the user's primary language. Only keep necessary English terms (names, brand names, technical proper nouns). Section labels (INSIGHT, TAKEAWAY) may use English as a design element.
Present the outline as a table. Ask the user:
Present 3 design system options for the user to choose from. Each is a complete visual language — not just a colour palette.
CRITICAL: A design system is NOT just colours. It defines visual philosophy, typography ratios, composition rules, and emotional intent.
If the user references a specific design movement (Bauhaus, Swiss Style, etc.), consult references/design-movements.md to translate their aesthetic language into actionable presets.
⚠️ Key insight: Illustration/comic styles generate far better AI results than "professional minimalist" styles. Comic styles have clear visual language (lines, characters, colour blocks); minimalist styles (dark bg + glowing text + whitespace) produce flat, empty results.
Topic Recommendation Table:
| Topic Type | 1st Choice | 2nd Choice | 3rd Choice |
|---|---|---|---|
| Brand / product intro | Warm Comic Strip | Neo-Pop Magazine | Eastern-style (Dunhuang) |
| Education / training | Neo-Brutalism | Manga Educational | Warm Comic Strip |
| Tech sharing | Whiteboard Sketch | Neo-Brutalism | Ligne Claire |
| Data reports | Pentagram Editorial | Fathom Data | Ligne Claire |
| Young audience | Neo-Pop | Pixel Art | Risograph |
| Creative / artistic | Dada Collage | Risograph | The Oatmeal |
| Eastern / traditional | Dunhuang | Ukiyo-e | Takram Speculative |
| Formal business | Pentagram Editorial | Müller-Brockmann Grid | Build Luxury Minimal |
| Product launch | Soviet Constructivism | Neo-Pop | Pentagram Editorial |
| Internal sharing | Neo-Brutalism | The Oatmeal | Whiteboard Sketch |
| Industry analysis | Fathom Data | Pentagram Editorial | Müller-Brockmann Grid |
| Training materials | Takram Speculative | Warm Narrative | Manga Educational |
| Investor pitch | Build Luxury Minimal | Pentagram Editorial | Soviet Constructivism |
Full 18-style reference: references/proven-styles-gallery.md Style sample images: assets/style-samples/ directory
Tier 1 (Highly recommended — excellent results):
1. Warm Comic Strip — Snoopy/Peanuts style
2. Manga Educational — Learning manga style
3. Ligne Claire Comics — Clean-line comic style
4. Neo-Pop Magazine — New pop art magazine style
Tier 2 (Recommended for specific scenarios):
5. Whiteboard Sketch — xkcd whiteboard style
6. Soviet Constructivism — Constructivist propaganda poster style
7. Warm Narrative — Warm storytelling style
More styles (Tier 2 & 3) — see references/proven-styles-gallery.md: The Oatmeal, Dunhuang, Ukiyo-e, Risograph, Isometric, Bauhaus, Blueprint, Vintage Ad, Dada Collage, Pixel Art
Tier 4: Professional / Editorial Design Systems (Path A only)
⚠️ The following styles strongly recommend Path A (HTML→PPTX). They depend on precise typography, data visualisation, and grid systems — AI image generation cannot achieve the required precision.
8. Pentagram Editorial — Editorial magazine style
9. Fathom Data Narrative — Data storytelling style
10. Müller-Brockmann Grid — Swiss Grid style
11. Build Luxury Minimal — Luxury minimalist style
12. Takram Speculative — Japanese speculative design style
Ask the user to pick one of the 3 proposed design systems.
Generate AI illustrations for key slides, then create HTML slide files.
Which slides need illustrations? Prioritise:
Illustration Generation:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[description]" \
--filename "[timestamp]-slide-[N]-[name].png" \
--resolution 2KBase Style Prompt — define ONE style suffix, append to every illustration:
[Base Style]: flat vector illustration, [palette background color] background,
[accent color] highlight elements, clean minimalist aesthetic,
professional presentation style, no text in imagePer-slide prompt = [specific content] + [Base Style]
Key rules:
Embedding in HTML slides:
<!-- Side illustration (recommended) -->
<div class="left"><!-- text content --></div>
<div class="right"><img src="illustration.png" style="width: 280pt; height: 280pt;"></div>✅ Checkpoint 3-A — Show generated illustrations. Ask: Approve / regenerate / style consistent?
Generate EVERY slide as a complete AI image — layout, text, visuals, all in one.
⚠️ THE #1 MISTAKE: Over-constraining the prompt with layout details. More constraints = LESS creativity. Give mood + reference + content, NOT specific positions, colour ratios, or character restrictions.
#### The Golden Rule of AI Image Prompts
SHORT prompts > LONG prompts. A 3-sentence prompt describing mood and content beats a 30-line spec.
| DON'T (kills diversity) | DO (enables creativity) |
|---|---|
| Specify colour ratios (60%/25%/15%) | Describe the mood ("warm like a Sunday comic page") |
| Dictate layout positions | Reference a specific aesthetic ("Peanuts comic strip") |
| Restrict characters | Let AI interpret the style naturally |
| List every visual element | Describe what the viewer should FEEL |
#### Base Style Prompt — Keep it SHORT
Define once, append to every slide. Under 5 lines.
[Base Style]:
VISUAL REFERENCE: [Specific art/design aesthetic in one sentence]
CANVAS: 16:9 aspect ratio, 2048x1152 pixels, high quality rendering.
COLOR SYSTEM: [Describe the mood/feel of colours, not exact ratios]#### Per-Slide Prompt Structure
Create a [style] slide about [topic].
[Base Style]
DESIGN INTENT: [1 sentence — what the viewer should FEEL]
TEXT TO RENDER:
- Title: "[exact text]"
- Body: "[exact text]"
[Optional: 1–2 sentences describing mood or scene. Let AI decide composition.]Prompt Quality Checklist (verify before every generation):
Technical Rules:
2048x1152 (2K, 16:9)Generation command:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[full slide prompt]" \
--filename "slide-[NN]-[name].png" \
--resolution 2K✅ Checkpoint 3-B — Show ALL generated slide images. Ask: Text accurate? Style consistent? Any slides to regenerate?
const pptxgen = require('pptxgenjs');
const html2pptx = require(process.env.HOME + '/.agents/skills/pptx/scripts/html2pptx.js');
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9';
await html2pptx('slide1.html', pptx);
await html2pptx('slide2.html', pptx);
await pptx.writeFile({ fileName: 'output.pptx' });HTML rules:
width: 720pt; height: 405pt (16:9)<p>, <h1>–<h6>, <ul>, <ol> tags<div> elementsKnown issue: Non-ASCII characters in file paths can break image loading. Use symlinks to ASCII paths if needed.
uv run ~/.claude/skills/image-to-slides/scripts/create_slides.py \
slide-01-cover.png slide-02-intro.png ... \
--layout fullscreen \
--bg-color 000000 \
-o output.pptx| Layout | Use case |
|---|---|
fullscreen | AI-generated full-page slides (Path B default) |
title_above | Image + editable title (hybrid approach) |
title_left | Split: text + visual |
center | Centred image with padding |
grid | Multiple images per slide |
Path A: Screenshot key HTML slides with Playwright:
npx playwright screenshot "file:///path/to/slide.html" preview.png \
--viewport-size=960,540 --wait-for-timeout=1000Path B: Show the generated slide images directly using the Read tool.
Show preview to the user. Ask:
5/5/5 rule: ≤5 words/line, ≤5 bullets/slide, ≤5 text-heavy slides in a row
Cognitive load: One idea per slide. ~1 min per slide. Slides complement speech, never duplicate it.
Visual hierarchy: F/Z-pattern reading flow. Title:body size ≈ 3:1. Every slide should have a visual element.
Detailed references:
references/proven-styles-gallery.md — 18 tested visual styles with tiered recommendationsreferences/proven-styles-snoopy.md — Snoopy/Peanuts style detailed per-slide templatesreferences/prompt-templates.md — Content generation and image promptsreferences/design-principles.md — Full design framework, colour palettes, typographyreferences/design-movements.md — Design movement and style reference library| Skill | Role |
|---|---|
pptx | Advanced PPTX creation/editing (html2pptx, templates) |
nano-banana-pro | AI illustration generation |
design-philosophy | 20 design philosophies — detailed style DNA, scene templates, review criteria |
.pptx files compatible with PowerPoint, Keynote, Google SlidesBy Huashu | AI Native Coder · Independent Developer WeChat Official Account "Huashu" | 300k+ followers | AI Tools & Productivity Flagship products: Kitty Catchlight (AppStore Paid Rankings Top 1) · Play DeepSeek with One Book
.Trim() if ($cell -match '^:?-+:? | Editable HTML (Path A) | HTML slides + selective AI illustrations → html2pptx → editable PPTX | Need to edit text later, precise layout, corporate decks | | Full AI Visual (Path B) | Every slide as a complete AI-generated image → image PPTX | Maximum visual impact, artistic presentations |
Trade-offs:
| Path A: Editable HTML | Path B: Full AI Visual | |
|---|---|---|
| Text | Editable in PPT | Baked into image (not editable) |
| Visual quality | Good with illustrations | Excellent — cohesive design |
| Chinese text | Perfect (font rendering) | Usually good (AI may occasionally misrender) |
| Speed | Faster | Slower (image per slide) |
If the user doesn't specify, default to Path A (Editable HTML).
Turn raw material into a slide-by-slide outline.
Per slide, define:
Assertion-Evidence rule:
| Bad title | Good title |
|---|---|
| Q3 Sales | Q3 Sales Grew 23% — New Users Are the Main Driver |
| Methodology | We Validated This Conclusion via Double-Blind Testing |
Language rule: Slide content in the user's primary language. Only keep necessary English terms (names, brand names, technical proper nouns). Section labels (INSIGHT, TAKEAWAY) may use English as a design element.
Present the outline as a table. Ask the user:
Present 3 design system options for the user to choose from. Each is a complete visual language — not just a colour palette.
CRITICAL: A design system is NOT just colours. It defines visual philosophy, typography ratios, composition rules, and emotional intent.
If the user references a specific design movement (Bauhaus, Swiss Style, etc.), consult references/design-movements.md to translate their aesthetic language into actionable presets.
⚠️ Key insight: Illustration/comic styles generate far better AI results than "professional minimalist" styles. Comic styles have clear visual language (lines, characters, colour blocks); minimalist styles (dark bg + glowing text + whitespace) produce flat, empty results.
Topic Recommendation Table:
| Topic Type | 1st Choice | 2nd Choice | 3rd Choice |
|---|---|---|---|
| Brand / product intro | Warm Comic Strip | Neo-Pop Magazine | Eastern-style (Dunhuang) |
| Education / training | Neo-Brutalism | Manga Educational | Warm Comic Strip |
| Tech sharing | Whiteboard Sketch | Neo-Brutalism | Ligne Claire |
| Data reports | Pentagram Editorial | Fathom Data | Ligne Claire |
| Young audience | Neo-Pop | Pixel Art | Risograph |
| Creative / artistic | Dada Collage | Risograph | The Oatmeal |
| Eastern / traditional | Dunhuang | Ukiyo-e | Takram Speculative |
| Formal business | Pentagram Editorial | Müller-Brockmann Grid | Build Luxury Minimal |
| Product launch | Soviet Constructivism | Neo-Pop | Pentagram Editorial |
| Internal sharing | Neo-Brutalism | The Oatmeal | Whiteboard Sketch |
| Industry analysis | Fathom Data | Pentagram Editorial | Müller-Brockmann Grid |
| Training materials | Takram Speculative | Warm Narrative | Manga Educational |
| Investor pitch | Build Luxury Minimal | Pentagram Editorial | Soviet Constructivism |
Full 18-style reference: references/proven-styles-gallery.md Style sample images: assets/style-samples/ directory
Tier 1 (Highly recommended — excellent results):
1. Warm Comic Strip — Snoopy/Peanuts style
2. Manga Educational — Learning manga style
3. Ligne Claire Comics — Clean-line comic style
4. Neo-Pop Magazine — New pop art magazine style
Tier 2 (Recommended for specific scenarios):
5. Whiteboard Sketch — xkcd whiteboard style
6. Soviet Constructivism — Constructivist propaganda poster style
7. Warm Narrative — Warm storytelling style
More styles (Tier 2 & 3) — see references/proven-styles-gallery.md: The Oatmeal, Dunhuang, Ukiyo-e, Risograph, Isometric, Bauhaus, Blueprint, Vintage Ad, Dada Collage, Pixel Art
Tier 4: Professional / Editorial Design Systems (Path A only)
⚠️ The following styles strongly recommend Path A (HTML→PPTX). They depend on precise typography, data visualisation, and grid systems — AI image generation cannot achieve the required precision.
8. Pentagram Editorial — Editorial magazine style
9. Fathom Data Narrative — Data storytelling style
10. Müller-Brockmann Grid — Swiss Grid style
11. Build Luxury Minimal — Luxury minimalist style
12. Takram Speculative — Japanese speculative design style
Ask the user to pick one of the 3 proposed design systems.
Generate AI illustrations for key slides, then create HTML slide files.
Which slides need illustrations? Prioritise:
Illustration Generation:
export $(grep GEMINI_API_KEY ~/.claude/.env) && \
uv run ~/.claude/skills/nano-banana-pro/scripts/generate_image.py \
--prompt "[description]" \
--filename "[timestamp]-slide-[N]-[name].png" \
--resolution 2KBase Style Prompt — define ONE style suffix, append to every illustration:
[Base Style]: flat vector illustration, [palette background color] background,
[accent color] highlight elements, clean minimalist aesthetic,
professional presentation style, no text in imagePer-slide prompt = [specific content] + [Base Style]
Key rules:
Embedding in HTML slides:
<!-- Side illustration (recommended) -->
<div class="left"><!-- text content --></div>
<div class="right"><img~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.