slidekit-create
npx skills add https://github.com/nogataka/slidekit --skill slidekit-create
Agent 安装分布
Skill 文档
SlideKit Create
All communication with the user MUST be in Japanese. Questions, confirmations, progress updates, and any other messages â always use Japanese.
Generate HTML files forming a complete presentation deck. Each file is a self-contained HTML document rendered at 1280 x 720 px. All content is pure HTML + CSS. Chart.js is used automatically when data visualizations require it (line charts, radar charts, etc.) â no other JavaScript is permitted.
For DOM snippets and component patterns, see references/patterns.md. For user-provided custom templates, see references/templates/.
Workflow Overview
| Phase | Name | Description |
|---|---|---|
| 0 | ãã³ãã¬ã¼ãæ¤åºã»èªã¿è¾¼ã¿ | templates/ ã確èªãããã³ãã¬ã¼ãã¢ã¼ã or é常ã¢ã¼ããæ±ºå® |
| 1 | ãã¢ãªã³ã° | ã¢ã¼ãã«å¿ãã質åã§ã¹ã©ã¤ãã®è¦ä»¶ãç¢ºèª |
| 2 | ãã¶ã¤ã³æ±ºå® | ã«ã©ã¼ãã¬ããã»ãã©ã³ãã»ã¢ã¤ã³ã³ãç¢ºå® |
| 3 | ã¹ã©ã¤ãæ§æã®è¨è¨ | åã¹ã©ã¤ãã®å½¹å²ã»ã¬ã¤ã¢ã¦ããã¿ã¼ã³ãè¨ç» |
| 4 | HTMLçæ | å ¨ã¹ã©ã¤ãã 001.html ã NNN.html ã¨ãã¦åºå |
| 5 | print.html çæ | å ¨ã¹ã©ã¤ãä¸è¦§è¡¨ç¤ºç¨ãã¼ã¸ãåºå |
| 6 | ãã§ãã¯ãªã¹ãç¢ºèª | å¶ç´ã»åè³ªåºæºã¸ã®é©åãæ¤è¨¼ |
| 7 | PPTX夿ï¼ä»»æï¼ | /pptx ã¹ãã«ã§ PowerPoint ã«å¤æ |
Phase 0: ãã³ãã¬ã¼ãæ¤åºã»èªã¿è¾¼ã¿
Before starting the hearing, check references/templates/ for user-provided HTML template files.
0-1. ãã³ãã¬ã¼ãã®æ¤åº
Scan references/templates/ for both subdirectories and loose .html files.
- Subdirectories â each subdirectory is treated as a separate template set (e.g.,
templates/navy-gold/,templates/modern-tech/) - Loose HTML files â
.htmlfiles directly underreferences/templates/are treated as a single template set named “default”
If nothing is found (no subdirectories and no HTML files) â proceed to Phase 1 in é常ã¢ã¼ã.
0-2. ãã³ãã¬ã¼ã鏿
If templates are found, present them to the user and ask which to use.
When multiple template sets (subdirectories) exist:
ã以ä¸ã®ã«ã¹ã¿ã ãã³ãã¬ã¼ããè¦ã¤ããã¾ãããã©ã®ãã³ãã¬ã¼ãã使ç¨ãã¾ããï¼çªå·ã§é¸æãã¦ãã ãããã
- {directory-name-1}/ï¼{N}ãã¡ã¤ã«ï¼
- {directory-name-2}/ï¼{N}ãã¡ã¤ã«ï¼
- 使ç¨ããªãï¼é常ã¢ã¼ãã§ä½æï¼
- 1 or 2 (directory number) â that directory’s HTML files become the template set. Proceed to 0-3
- 3 (使ç¨ããªã) â proceed to Phase 1 in é常ã¢ã¼ã
When a single template set exists (one subdirectory, or loose HTML files only):
ã以ä¸ã®ã«ã¹ã¿ã ãã³ãã¬ã¼ããè¦ã¤ããã¾ããã使ç¨ãã¾ããï¼çªå·ã§é¸æãã¦ãã ãããã
{file1.html}, {file2.html}, …
- ã¯ã â ãã®ãã³ãã¬ã¼ãã使ç¨ãã
- ããã â 使ç¨ããªãï¼é常ã¢ã¼ãã§ä½æï¼
- 1 â proceed to 0-3
- 2 â proceed to Phase 1 in é常ã¢ã¼ã
0-3. ãã³ãã¬ã¼ãèªã¿è¾¼ã¿
Read the selected template files and extract:
- Color palette (CSS custom properties / Tailwind classes)
- Font pair (primary JP + accent Latin)
- Header/footer structure and style
- Decorative elements and visual motifs
- Layout patterns used
Proceed to Phase 1 in ãã³ãã¬ã¼ãã¢ã¼ã.
Cautions
- Mandatory Constraints still apply. Even if a custom template uses
<table>or non-CDN assets, the generated output must follow all rules in the Mandatory Constraints section below. Extract only the visual design (colors, fonts, spacing, decorative style) â not non-compliant implementation details. - Slide size must remain 1280x720px. Ignore any different dimensions in custom templates.
- Do not copy text content. Custom templates are style references only. All text content comes from Phase 1 hearing.
- Maximum 5 template files per set. If a template set contains more than 5 HTML files, read only the first 5 (sorted alphabetically) to limit context usage. Warn the user that remaining files were skipped.
- Supported format: HTML only. Ignore non-HTML files (images, PDFs, etc.) in the templates directory.
Phase 1: ãã¢ãªã³ã°
Before generating any files, ask the user questions to capture intent. All questions must be asked in Japanese.
Important rules:
- 1ã¿ã¼ã³1質å: Ask only one question per message. Wait for the user’s answer before asking the next question.
- çªå·é¸æ: All questions with predefined options must be presented as numbered lists. The user answers by entering the number only. Questions requiring free text input (directory path, title, company name, etc.) are the exception.
The hearing questions differ depending on the mode determined in Phase 0.
ãã³ãã¬ã¼ãã¢ã¼ãï¼ãã³ãã¬ã¼ãããï¼
When custom templates were loaded in Phase 0, skip all design-related questions and ask only the following:
- åºåãã£ã¬ã¯ã㪠â same as 1-1 below
- ã¹ã©ã¤ãå 容ã®ã½ã¼ã¹ â same as 1-4 below
- ãã¬ã¼ã³ã¿ã¤ãã« â same as 1-5 below
- ã¹ã©ã¤ãææ° â same as 1-6 below
- ä¼ç¤¾åã»ãã©ã³ãå â same as 1-7 below
- ãã³ãã¬ã¼ããã¶ã¤ã³ã®ç¢ºèª â present the extracted design (colors, fonts, decorative style) to the user and ask:
ããã³ãã¬ã¼ããã以ä¸ã®ãã¶ã¤ã³ãæ¤åºãã¾ãããã
- ã«ã©ã¼: {extracted colors}
- ãã©ã³ã: {extracted fonts}
- ãããã¼/ããã¿ã¼: {extracted structure}
ããã®ãã¶ã¤ã³ãã©ããã¾ããï¼çªå·ã§é¸æãã¦ãã ãããã
- ãã®ã¾ã¾ä½¿ç¨ãã
- ä¸é¨å¤æ´ããã
- 1 â Phase 2 ã§ãã³ãã¬ã¼ãã®ãã¶ã¤ã³ããã®ã¾ã¾ç¢ºå®
- 2 â 夿´ãããé ç®ï¼ã«ã©ã¼ããã©ã³ãçï¼ãèãããã³ãã¬ã¼ãã®ãã¶ã¤ã³ãé¨åçã«ä¸æ¸ã
é常ã¢ã¼ãï¼ãã³ãã¬ã¼ããªãï¼
Ask all of the following questions (1-1 through 1-9).
1-1. åºåãã£ã¬ã¯ããª
ãåºåå ãã£ã¬ã¯ããªã鏿ãã¦ãã ãããçªå·ã§åçãããããã¹ãç´æ¥å ¥åãã¦ãã ãããã
- ããã©ã«ãï¼
output/slide-page{NN}/ï¼- ãã¹ãæå®ãã
- 1 â use
output/slide-page{NN}/(NN = next sequential number based on existing directories) - 2 â follow up by asking for the path (text input)
- Direct path input â if the user directly types a path instead of a number, use that path
1-2. ã¹ã¿ã¤ã«é¸æ
ãã¹ã¿ã¤ã«ã鏿ãã¦ãã ãããçªå·ã§åçãã¦ãã ãããã
- Creative â 大èãªé è²ãè£ é£¾è¦ç´ ãã°ã©ãã¼ã·ã§ã³ãéã³å¿ã®ããã¬ã¤ã¢ã¦ã
- Elegant â è½ã¡çãããã¬ããï¼ã´ã¼ã«ãç³»ï¼ãã»ãªãå¯ãã®ã¿ã¤ãã°ã©ãã£ãåºãã®ä½ç½
- Modern â ãã©ãããã¶ã¤ã³ãé®®ãããªã¢ã¯ã»ã³ãã«ã©ã¼ãã·ã£ã¼ããªã¨ãã¸ãããã¯å¿å
- Professional â ãã¤ãã¼/ã°ã¬ã¼ç³»ãæ§é çãªã¬ã¤ã¢ã¦ããæ å ±å¯åº¦é«ã
- Minimalist â å°ãªãè²æ°ã極端ãªä½ç½ãã¿ã¤ãã°ã©ãã£ä¸»å°ãæå°éã®è£ 飾
1-3. ãã¼ã鏿
ããã¼ãã鏿ãã¦ãã ãããçªå·ã§åçãã¦ãã ãããã
- Marketing â 製åçºè¡¨ããã£ã³ãã¼ã³ææ¡ãå¸å ´åæ
- Portfolio â ã±ã¼ã¹ã¹ã¿ãã£ãå®ç¸¾ç´¹ä»ãä½åé
- Business â äºæ¥è¨ç»ãçµå¶ã¬ãã¼ããæ¦ç¥ææ¡ãæè³å®¶ããã
- Technology â SaaSç´¹ä»ãæè¡ææ¡ãDXæ¨é²ãAI/ãã¼ã¿åæ
- Education â ç ä¿®è³æãã»ããã¼ãã¯ã¼ã¯ã·ã§ããã社å åå¼·ä¼
1-4. ã¹ã©ã¤ãå 容ã®ã½ã¼ã¹
Ask the user how they want to provide the content for the slides. This determines what text, data, and structure will appear in the deck.
ãã¹ã©ã¤ãã®å 容ãã©ã®ããã«æä¾ãã¾ããï¼çªå·ã§åçãã¦ãã ãããã
- åèãã¡ã¤ã« â ãã¡ã¤ã«ï¼Markdownãããã¹ããWordãªã©ï¼ãæå®ãã
- ç´æ¥å ¥å â ãã£ããã«ããã¹ããå ¥åãã
- ãããã¯ã®ã¿ â ãã¼ãã ãæå®ãã¦Claude ã«å 容ãçæããã
When a reference file is provided:
- Read the entire file
- Extract the logical structure (headings, sections, bullet points, data)
- Map the structure to the slide sequence â each major section becomes a section divider + content slides
- Preserve key text, numbers, and data points faithfully
- Adapt the content to fit the slide format (concise bullet points, not full paragraphs)
When direct text is provided:
- Organize the text into a logical presentation flow
- Ask clarifying questions if the structure is ambiguous
When only a topic is given:
- Ask about the target audience (executives, engineers, clients, etc.)
- Ask about key messages or points the user wants to convey
- Generate content based on the answers
1-5. ãã¬ã¼ã³ã¿ã¤ãã«
Ask for the presentation title. Skip if already clear from the content source in 1-4.
1-6. ã¹ã©ã¤ãææ°
ãã¹ã©ã¤ãææ°ã鏿ãã¦ãã ãããçªå·ã§åçãã¦ãã ãããã
- 10æ
- 15æ
- 20æï¼æ¨å¥¨ï¼
- 25æ
- èªåï¼å 容ã«å¿ãã¦æé©ãªææ°ã決å®ï¼
- 5ï¼èªåï¼ ã鏿ããå ´åã®å¤æåºæº:
- Reference file: count the major sections/headings â each section â 1 divider + 2-3 content slides, plus cover/agenda/summary/closing
- Direct text: estimate from the volume and structure of the provided text
- Topic only: default to 15-20 based on topic complexity
- When 5 is selected, inform the user of the determined count before proceeding (e.g., “å 容ãã夿ãã¦18æã§ä½æãã¾ããããããã§ããï¼”)
1-7. ä¼ç¤¾åã»ãã©ã³ãå
Ask for the company or brand name to display in the header/footer.
1-8. ã«ã©ã¼ã®å¸æ
ãã«ã©ã¼ã«å¸æã¯ããã¾ããï¼çªå·ã§åçãã¦ãã ãããã
- ãã¾ããï¼ã¹ã¿ã¤ã« à ãã¼ãã«åºã¥ãã¦èªåææ¡ï¼
- æå®ãããï¼æ¬¡ã®è³ªåã§ã«ã©ã¼ã³ã¼ããè²åãå ¥åï¼
- 1 â auto-suggest based on the selected style à theme combination
- 2 â follow up by asking for specific color codes or color names (text input)
1-9. èæ¯ç»åã®ä½¿ç¨
ãèæ¯ç»åã使ç¨ãã¾ããï¼çªå·ã§åçãã¦ãã ãããã
- 使ç¨ããªãï¼CSSã°ã©ãã¼ã·ã§ã³ã®ã¿ï¼
- 使ç¨ããï¼æ¬¡ã®è³ªåã§ç»åãæå®ï¼
- 1 â no background images (CSS gradients only)
- 2 â follow up by asking the user to provide or approve specific images
Phase 2: ãã¶ã¤ã³æ±ºå®
Determine the following before generating any HTML:
ãã³ãã¬ã¼ãã¢ã¼ã
If custom templates were loaded in Phase 0:
- Color palette â use the palette extracted from the template (or with user-requested modifications from Phase 1)
- Font pair â use the fonts extracted from the template (or with user-requested modifications from Phase 1)
- Brand icon (1 Font Awesome icon)
If the user confirmed the template design as-is in Phase 1, present a brief summary and proceed. If the user requested partial changes, apply those changes and present the updated design for confirmation.
é常ã¢ã¼ã
Based on Phase 1 hearing results, determine:
- Color palette (3-4 custom colors)
- Font pair (1 Japanese + 1 Latin)
- Brand icon (1 Font Awesome icon)
Present the design decisions to the user for confirmation before proceeding.
Proven Palette Examples
| Template | Style | Primary Dark | Accent | Secondary | Fonts |
|---|---|---|---|---|---|
| 01 Navy & Gold | Elegant | #0F2027 |
#C5A065 |
#2C5364 |
Noto Sans JP + Lato |
| 02 Casual Biz | Professional | #1f2937 |
Indigo | #F97316 |
Noto Sans JP |
| 03 Blue & Orange | Professional | #333333 |
#007BFF |
#F59E0B |
BIZ UDGothic |
| 04 Green Forest | Modern | #1B4332 |
#40916C |
#52B788 |
Noto Sans JP + Inter |
| 05 Dark Tech | Creative | #0F172A |
#F97316 |
#3B82F6 |
Noto Sans JP + Inter |
Phase 3: ã¹ã©ã¤ãæ§æã®è¨è¨
Plan the full deck structure before writing any HTML. This phase produces a slide map.
3-1. Required Slides (All Decks)
| Position | Type | Pattern | Category |
|---|---|---|---|
| First | Cover | Center | cover |
| Second | Agenda | HBF | agenda |
| Second to last | Summary | HBF | conclusion |
| Last | Closing | Full-bleed / Center | conclusion |
3-2. Section Dividers by Slide Count
| Slides | Section Dividers | Content Slides |
|---|---|---|
| 10 | 2 | 4 |
| 15 | 3 | 8 |
| 20 | 4 | 12 |
| 25 | 5 | 16 |
3-3. Build the Slide Map
For each slide, determine:
- File number (
001.html,002.html, …) - Type (Cover / Agenda / Section Divider / Content / Summary / Closing)
- Layout pattern (from the 20 patterns â see Phase 4 reference)
- Content summary (what text/data goes on this slide)
Rules:
- Never use the same layout pattern for 3 or more consecutive slides
- Match content from Phase 1-3 (reference file / text / topic) to appropriate slide types
- Use good variety across the 20 layout patterns
- Chart.js auto-detection: For slides with data visualizations, decide whether to use Chart.js or CSS-only based on the “When to Use Chart.js vs CSS-Only” table in references/patterns.md. Mark Chart.js slides in the slide map. CSS-only and Chart.js charts can coexist in the same deck
3-4. Standard Composition for 20 Slides (Reference)
| File | Type | Pattern | Purpose |
|---|---|---|---|
001.html |
Cover | Center | Title, subtitle, presenter, date |
002.html |
Agenda | HBF | Numbered section list |
003.html |
Section Divider 1 | Left-Right Split | Section 1 introduction |
004.html |
Content | HBF + Top-Bottom Split | Challenges vs. solutions + KPI |
005.html |
Content | HBF + 2-Column | Comparison / contrast |
006.html |
Section Divider 2 | Left-Right Split | Section 2 introduction |
007.html |
Content | HBF + 3-Column | 3-item cards |
008.html |
Content | HBF + Grid Table | Competitive comparison table |
009.html |
Content | HBF + 2×2 Grid | Risk analysis / SWOT |
010.html |
Section Divider 3 | Left-Right Split | Section 3 introduction |
011.html |
Content | HBF + N-Column | Process flow |
012.html |
Content | HBF + Timeline/Roadmap | Quarterly roadmap |
013.html |
Content | HBF + KPI Dashboard | KPI cards + CSS bar chart |
014.html |
Section Divider 4 | Left-Right Split | Section 4 introduction |
015.html |
Content | HBF + Funnel | Conversion funnel |
016.html |
Content | HBF + Vertical Stack | Architecture / org chart |
017.html |
Content | HBF + 3-Column | Strategy / policy (3 pillars) |
018.html |
Content | HBF + 2-Column | Detailed analysis / data |
019.html |
Summary | HBF | Key takeaways + next actions |
020.html |
Closing | Full-bleed / Center | Thank-you slide + contact info |
Phase 4: HTMLçæ
Generate all slide HTML files based on the slide map from Phase 3.
4-1. For Each Slide
- Use the HTML Boilerplate (below)
- Apply the design decisions from Phase 2 (colors, fonts, icon)
- Use the layout pattern assigned in Phase 3
- Fill in the content from Phase 1-3 (reference file / text / generated)
- If the slide is marked “Chart.js” in the slide map: use Chart.js
<canvas>patterns from references/patterns.md (Chart.js Patterns section). Include the Chart.js CDN<script>in<head>and initialization<script>before</body> - Save as
{output_dir}/{NNN}.html(zero-padded: 001.html, 002.html, …)
HTML Boilerplate
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<title>{Slide Title}</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/css/all.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css2?family={PrimaryFont}:wght@300;400;500;700;900&family={AccentFont}:wght@400;600;700&display=swap" rel="stylesheet" />
<!-- Chart.js (only on slides marked "Chart.js" in Phase 3) -->
<!-- <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> -->
<style>
body { margin: 0; padding: 0; font-family: '{PrimaryFont}', sans-serif; overflow: hidden; }
.font-accent { font-family: '{AccentFont}', sans-serif; }
.slide { width: 1280px; height: 720px; position: relative; overflow: hidden; background: #FFFFFF; }
/* Custom color classes: .bg-brand-dark, .bg-brand-accent, .bg-brand-warm, etc. */
</style>
</head>
<body>
<div class="slide {layout-classes}">
<!-- Content -->
</div>
<!-- Chart.js initialization (only on slides that contain charts) -->
<!-- <script> new Chart(...) </script> -->
</body>
</html>
Chart.js CDN inclusion rules:
- Only uncomment the
<script src="...chart.js...">line on slides marked “Chart.js” in the Phase 3 slide map - Only add the Chart.js CDN to slides that actually contain a
<canvas>chart â do not include it on every slide - The
<script>for Chart initialization must be placed just before</body>, after the slide<div> - Each chart
<canvas>must have a uniqueidattribute
20 Layout Patterns
Use one pattern per slide. For full DOM trees and component snippets, see references/patterns.md.
| # | Pattern | Root classes | When to use |
|---|---|---|---|
| 1 | Center | flex flex-col items-center justify-center |
Cover, thank-you slides |
| 2 | Left-Right Split | flex with w-1/3 + w-2/3 |
Chapter dividers, concept + detail |
| 3 | Header-Body-Footer | flex flex-col with header + flex-1 + footer |
Most content slides (default) |
| 4 | HBF + 2-Column | Pattern 3 body with two w-1/2 |
Comparison, data + explanation |
| 5 | HBF + 3-Column | Pattern 3 body with grid grid-cols-3 |
Card listings, 3-way comparison |
| 6 | HBF + N-Column | Pattern 3 body with grid grid-cols-{N} |
Process flows (max 5 cols) |
| 7 | Full-bleed | relative with absolute inset-0 layers |
Impact covers (CSS gradient default) |
| 8 | HBF + Top-Bottom Split | Pattern 3 body with flex flex-col two sections |
Content top + KPI/summary bar bottom |
| 9 | HBF + Timeline/Roadmap | Pattern 3 body with timeline bar + grid grid-cols-4 |
Quarterly roadmaps, phased plans |
| 10 | HBF + KPI Dashboard | Pattern 3 body with KPI grid + flex-1 chart area |
KPI cards + chart/progress visualization |
| 11 | HBF + Grid Table | Pattern 3 body with flex-based rows (w-1/N) |
Feature comparison, competitive analysis |
| 12 | HBF + Funnel | Pattern 3 body with decreasing-width centered bars | Conversion funnel, sales pipeline |
| 13 | HBF + Vertical Stack | Pattern 3 body with stacked full-width cards + separators | Architecture diagrams, layered systems |
| 14 | HBF + 2×2 Grid | Pattern 3 body with grid grid-cols-2 (2 rows) |
Risk analysis, SWOT, feature overview |
| 15 | HBF + Stacked Cards | Pattern 3 body with vertically stacked full-width cards + numbered badges | FAQ, Q&A, numbered key points, interview summary |
| 16 | HBF + TAM/SAM/SOM | Pattern 3 body with description list + nested circles or horizontal bars | Market size visualization (2 variants) |
| 17 | Chapter Divider | flex with w-1/4 dark + w-3/4 light (no HBF) |
Chapter/section dividers with large number |
| 18 | HBF + Contact | Pattern 3 body with w-1/2 message + w-1/2 contact card |
Contact info, CTA slides |
| 19 | HBF + 5-Column Process | Pattern 3 body with grid grid-cols-5 + optional RACI box |
5-step process flows, methodology |
| 20 | HBF + VS Comparison | Pattern 3 body with two cards + central VS badge | Head-to-head competitor comparison |
Heading Convention
Bilingual: small English label above, larger Japanese title below.
<p class="text-xs uppercase tracking-widest text-gray-400 mb-1 font-accent">Market Analysis</p>
<h1 class="text-3xl font-bold text-brand-dark">å¸å ´åæ</h1>
Number Emphasis Convention
Large digits + small unit span:
<p class="text-4xl font-black font-accent">415<span class="text-sm font-normal ml-1">M</span></p>
Phase 5: print.html çæ
After all slide HTML files are generated, create {output_dir}/print.html for viewing and printing all slides:
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>View for Print</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #FFFFFF; }
.slide-frame {
width: 1280px; height: 720px;
margin: 20px auto;
box-shadow: 0 2px 10px rgba(0,0,0,0.15);
border: 1px solid #e2e8f0;
overflow: hidden;
}
.slide-frame iframe { width: 1280px; height: 720px; border: none; }
@media print {
body { background: #FFFFFF; }
.slide-frame {
page-break-after: always; box-shadow: none; border: none;
margin: 0 auto;
transform: scale(0.85); transform-origin: top center;
}
}
</style>
</head>
<body>
<!-- One iframe per slide -->
<div class="slide-frame"><iframe src="001.html"></iframe></div>
<!-- ... repeat for all slides ... -->
</body>
</html>
Add one <div class="slide-frame"><iframe src="{NNN}.html"></iframe></div> per slide.
Phase 6: ãã§ãã¯ãªã¹ã確èª
After Phase 4 and Phase 5 are complete, verify the following. Fix any issues before delivering to the user.
- All files use identical CDN links
- Custom colors defined identically in every
<style> - Root is single
<div>under<body>withoverflow: hidden(only sibling allowed: Chart.js<script>on chart slides) - Slide size exactly 1280 x 720
- No external images (unless user approved)
- No JavaScript except Chart.js on chart slides (no other
<script>tags allowed) - All files for the chosen slide count are present
- Font sizes follow hierarchy
- Consistent header/footer on content slides
- Page numbers increment correctly
-
Confidentialin footer - Decorative elements use low z-index and low opacity
- File naming: zero-padded 3 digits (
001.html,002.html, …) - Text uses
<p>/<h*>(not<div>) - No visible text in
::before/::after - No one-off colors outside palette
- Content density guidelines followed
-
print.htmlgenerated with iframes for all slides
Phase 7: PPTX夿ï¼ä»»æï¼
After all checks pass, ask the user in Japanese:
ãHTMLã¹ã©ã¤ãã®çæãå®äºãã¾ãããPowerPointï¼PPTXï¼ã«å¤æãã¾ããï¼ã
If the user declines, the workflow ends here.
Prerequisite Check
Before invoking the pptx skill, verify it is available by checking the list of available skills in the current session. The pptx skill will appear in the system’s skill list if installed.
If the pptx skill is NOT available, inform the user and provide installation instructions:
/pptxã¹ãã«ãå¿ è¦ã§ãããç¾å¨ã¤ã³ã¹ãã¼ã«ããã¦ãã¾ããã以ä¸ã®ã³ãã³ãã§ã¤ã³ã¹ãã¼ã«ã§ãã¾ã:
claude install-skill https://github.com/anthropics/claude-code-agent-skills/tree/main/skills/pptxã¤ã³ã¹ãã¼ã«å¾ãæ°ããã»ãã·ã§ã³ã§
/pptxãå®è¡ããåºåãã£ã¬ã¯ããª{output_dir}ãæå®ãã¦ãã ããã
Then end the workflow. Do not attempt conversion without the pptx skill.
Chart.js Slides and PPTX Conversion
When the deck contains Chart.js <canvas> charts (determined in Phase 3):
- Chart slides require screenshot-based conversion. The pptx converter cannot parse
<canvas>elements rendered by JavaScript. Chart.js charts will be captured as raster images (PNG) and embedded in the PPTX slide - Non-chart elements remain editable. Text, icons, and CSS-only elements on the same slide are still extracted as native PPTX objects
- Inform the pptx skill which slides contain Chart.js so it can apply the screenshot fallback selectively
Invocation (pptx skill available)
If the pptx skill is available, invoke /pptx using the Skill tool. Pass the following context:
- Source directory â the output path containing all
NNN.htmlfiles - Slide count â total number of HTML files
- Presentation title â from Phase 1 hearing
- Color palette â the 3-4 brand colors chosen in Phase 2
- Font pair â primary (JP) and accent (Latin) fonts
Example invocation prompt for the Skill tool:
Convert the HTML slide deck in {output_dir} to a single PPTX file.
- {N} slides (001.html through {NNN}.html)
- Title: {title}
- Colors: {primary_dark}, {accent}, {secondary}
- Fonts: {primary_font} + {accent_font}
- Chart.js slides: {list of slide numbers, e.g., "004, 013" or "none"}
- Output: {output_dir}/presentation.pptx
Important: Do not attempt HTML-to-PPTX conversion yourself. Always delegate to the /pptx skill, which has its own specialized workflow, QA process, and conversion tools.
Reference: Mandatory Constraints
| Rule | Value |
|---|---|
| Slide size | width: 1280px; height: 720px |
| CSS framework | Tailwind CSS 2.2.19 via CDN |
| Icons | Font Awesome 6.4.0 via CDN |
| Fonts | Google Fonts (1 JP primary + 1 Latin accent) |
| Language | lang="ja" |
| Root DOM | <body> -> single wrapper <div> (only sibling allowed: Chart.js <script> on chart slides) |
| Overflow | overflow: hidden on root wrapper |
| External images | None by default. Explicit user approval required |
| JavaScript | Forbidden by default. Exception: Chart.js is used automatically when data visualizations require it (see Phase 3 auto-detection). No other JS libraries permitted |
| Custom CSS | Inline <style> in <head> only; no external CSS files |
PPTX Conversion Rules (Critical)
These directly affect PPTX conversion accuracy. Always follow.
- Prefer
<p>over<div>for text (tree-walkers may miss<div>text) - Never put visible text in
::before/::after - Separate decorative elements with
-z-10/z-0 - Max DOM nesting: 5-6 levels
- Font Awesome icons in
<i>tags (converter detectsfa-on<i>) - Use flex-based tables over
<table> linear-gradient(...)supported; complex multi-stop may fall back to screenshotbox-shadow,border-radius,opacityall extractable- Chart.js
<canvas>elements are not parseable by DOM tree-walkers â require screenshot fallback for PPTX. Prefer CSS-only charts when PPTX editability is a priority
Anti-Patterns (Avoid)
- Purposeless wrapper
<div>s (increases nesting) - One-off colors outside the palette
<table>for layout- Inline styles that Tailwind can replace
- Text in
::before/::after <div>for text (use<p>,<h1>–<h6>)
Reference: Design Guidelines
Color Palette
Define 3-4 custom colors as Tailwind-style utility classes in <style>:
| Role | Class Example | Purpose |
|---|---|---|
| Primary Dark | .bg-brand-dark |
Dark backgrounds, titles |
| Primary Accent | .bg-brand-accent |
Borders, highlights, icons |
| Warm/Secondary | .bg-brand-warm |
CTAs, emphasis, badges |
| Body text | Tailwind grays | Body, captions |
Keep palette consistent across all slides. No one-off colors.
Font Pair
| Role | Examples | Usage |
|---|---|---|
| Primary (JP) | Noto Sans JP, BIZ UDGothic | Body, headings |
| Accent (Latin) | Lato, Inter, Roboto | Numbers, English labels, page numbers |
Set primary on body; define .font-accent for the accent font.
Font Size Hierarchy
| Purpose | Tailwind class |
|---|---|
| Main title | text-3xl – text-6xl + font-bold/font-black |
| Section heading | text-xl – text-2xl + font-bold |
| Card heading | text-lg + font-bold |
| Body text | text-sm – text-base |
| Caption/label | text-xs |
Content Density Guidelines
| Element | Recommended Max |
|---|---|
| Bullet points | 5-6 |
| Cards per row | 3-4 |
| Body text lines | 6-8 |
| KPI boxes | 4-6 |
| Process steps | 4-5 |