198 lines
9.3 KiB
Markdown
198 lines
9.3 KiB
Markdown
# Task: Build `html-ppt` AgentSkill
|
|
|
|
You are a world-class PPT/presentation designer. Build an AgentSkill named **`html-ppt`** (a.k.a. "HTML PPT Studio") that lets an agent produce professional HTML presentations in many styles, layouts, and animations — all driven by templates.
|
|
|
|
## Deliverables
|
|
|
|
A single skill directory at the current repo root (`~/clawspace/html-ppt-skill`), structured per the AgentSkills spec (consult the `skill-creator` skill at `~/Library/pnpm/global/5/.pnpm/openclaw@2026.4.1_@napi-rs+canvas@0.1.97/node_modules/openclaw/skills/skill-creator/SKILL.md` FIRST and follow it).
|
|
|
|
Must produce:
|
|
|
|
```
|
|
html-ppt/
|
|
SKILL.md # concise dispatcher + usage rules
|
|
references/
|
|
themes.md # every theme catalog + when to use
|
|
layouts.md # every page-layout catalog
|
|
animations.md # every animation catalog with names
|
|
authoring-guide.md # how the agent authors a new deck
|
|
assets/
|
|
themes/ # one CSS file per theme (see list below)
|
|
layouts/ # one HTML partial per layout type
|
|
animations/ # CSS/JS snippets per animation
|
|
fonts.css # shared webfont imports
|
|
base.css # reset + shared tokens
|
|
runtime.js # keyboard nav, presenter mode, theme switcher
|
|
templates/
|
|
deck.html # main multi-slide deck template (reveal-like, keyboard nav)
|
|
theme-showcase.html # single deck that demos EVERY theme (slide per theme)
|
|
animation-showcase.html # single deck that demos EVERY animation (named)
|
|
layout-showcase.html # single deck that demos EVERY layout type
|
|
single-page/ # one-slide templates per layout, with demo data
|
|
cover.html
|
|
toc.html
|
|
section-divider.html
|
|
bullets.html
|
|
two-column.html
|
|
three-column.html
|
|
big-quote.html
|
|
stat-highlight.html
|
|
kpi-grid.html
|
|
table.html
|
|
code.html
|
|
diff.html
|
|
terminal.html
|
|
flow-diagram.html
|
|
timeline.html
|
|
roadmap.html
|
|
mindmap.html
|
|
comparison.html
|
|
pros-cons.html
|
|
todo-checklist.html
|
|
gantt.html
|
|
image-hero.html
|
|
image-grid.html
|
|
chart-bar.html
|
|
chart-line.html
|
|
chart-pie.html
|
|
chart-radar.html
|
|
arch-diagram.html
|
|
process-steps.html
|
|
cta.html
|
|
thanks.html
|
|
scripts/
|
|
render.sh # headless chrome render a template to PNGs (uses /Applications/Google Chrome.app)
|
|
new-deck.sh # scaffold new deck from templates/deck.html
|
|
examples/
|
|
demo-deck/ # a complete working deck using several layouts + a chosen theme
|
|
README.md # repo-level overview (separate from SKILL.md)
|
|
LICENSE # MIT, author: lewis <sudolewis@gmail.com>
|
|
```
|
|
|
|
## Requirement detail
|
|
|
|
### 1. Themes (give each a clear name + description)
|
|
|
|
Cover AT LEAST these, each a separate CSS file in `assets/themes/`:
|
|
|
|
- `minimal-white` — 极简白,克制高级
|
|
- `editorial-serif` — 杂志风衬线,高级
|
|
- `soft-pastel` — 柔和马卡龙
|
|
- `sharp-mono` — 锐利黑白高对比
|
|
- `arctic-cool` — 冷色调(蓝/青/石板灰)
|
|
- `sunset-warm` — 暖色调(橘/珊瑚/琥珀)
|
|
- `catppuccin-latte` — catppuccin 浅
|
|
- `catppuccin-mocha` — catppuccin 深
|
|
- `dracula` — dracula 深色
|
|
- `tokyo-night`
|
|
- `nord`
|
|
- `solarized-light`
|
|
- `gruvbox-dark`
|
|
- `rose-pine`
|
|
- `neo-brutalism` — 厚描边、硬阴影、明黄
|
|
- `glassmorphism` — 毛玻璃
|
|
- `bauhaus` — 几何+原色
|
|
- `swiss-grid` — 瑞士网格、Helvetica 感
|
|
- `terminal-green` — 绿屏终端
|
|
- `xiaohongshu-white` — 小红书白底高级感
|
|
- `rainbow-gradient` — 彩虹渐变点缀(白底)
|
|
- `aurora` — 极光渐变
|
|
- `blueprint` — 蓝图工程
|
|
- `memphis-pop` — 孟菲斯波普
|
|
|
|
Each theme defines CSS custom properties (color tokens, fonts, radii, shadows, accent gradients) consumed by `base.css` and every layout. Switching themes = swap one `<link>` or one `data-theme` attribute.
|
|
|
|
### 2. Layouts / page types
|
|
|
|
Must cover: cover, table of contents, section divider, bullets, two-column, three-column, big quote, stat highlight, KPI grid, table (data), code block (syntax-highlighted, use highlight.js via CDN), diff view, terminal/console, flowchart, timeline, roadmap, mindmap, comparison, pros/cons, TODO checklist, gantt, image hero, image grid, chart (bar/line/pie/radar — use chart.js via CDN), architecture diagram, process steps, CTA, thanks. One file per layout in `templates/single-page/` with realistic demo data so it's usable standalone.
|
|
|
|
Extract typography/spacing/alignment patterns from the existing decks at `/Volumes/luluDrive/作品素材/视频/**/*.html` (especially `20260409-升级版知识库/presentation.html`, `20260413-graphify/ppt/graphify.html`, `20260414-hermes-agent/ppt/*.html`, and the 小红书图文 folders). Do NOT copy content; extract typographic rhythm, spacing, gradient treatments, card patterns, footer patterns.
|
|
|
|
### 3. Animations (each named, listed in `references/animations.md`)
|
|
|
|
Provide CSS + (where needed) minimal JS (no heavy deps). Each animation should be applied by adding a class like `data-anim="rise-in"` or `class="anim-rise-in"`. At least:
|
|
|
|
- `fade-up`, `fade-down`, `fade-left`, `fade-right`
|
|
- `rise-in`, `drop-in`, `zoom-pop`, `blur-in`, `glitch-in`
|
|
- `typewriter`
|
|
- `neon-glow`, `shimmer-sweep`, `gradient-flow`
|
|
- `stagger-list` (children appear one by one)
|
|
- `counter-up` (numbers tick up)
|
|
- `path-draw` (SVG line draw)
|
|
- `parallax-tilt` (3D on hover/enter)
|
|
- `card-flip-3d`
|
|
- `cube-rotate-3d`
|
|
- `page-turn-3d`
|
|
- `perspective-zoom`
|
|
- `marquee-scroll`
|
|
- `kenburns`
|
|
- `confetti-burst` (on slide enter)
|
|
- `spotlight` (radial reveal)
|
|
- `morph-shape` (SVG morph)
|
|
- `ripple-reveal`
|
|
|
|
Give each a one-line description + recommended use case.
|
|
|
|
### 4. Runtime
|
|
|
|
`assets/runtime.js` must support:
|
|
|
|
- ← → / space / PgUp PgDn / Home End navigation
|
|
- `F` fullscreen, `S` speaker notes overlay, `O` slide overview grid
|
|
- `T` cycle themes (reads all theme CSS file names from a data attr)
|
|
- `A` cycle a demo animation on current slide
|
|
- URL hash `#/3` deep-link to slide 3
|
|
- Progress bar
|
|
- Works with zero build — pure static HTML/CSS/JS, CDN deps OK
|
|
|
|
### 5. Showcase decks
|
|
|
|
- `templates/theme-showcase.html` — one deck, one slide per theme, switchable via `T`. Each slide shows the theme name + a sample layout using that theme so user can eyeball it.
|
|
- `templates/animation-showcase.html` — one slide per animation, each auto-plays on enter, with the animation name and description visible.
|
|
- `templates/layout-showcase.html` — one slide per layout type with filled demo data.
|
|
|
|
### 6. Demo data
|
|
|
|
Everything should render with built-in demo data (fake KPIs, sample code, sample chart data, sample flow) so the user can open any template and immediately see it working.
|
|
|
|
### 7. SKILL.md rules
|
|
|
|
- Frontmatter: `name: html-ppt`, strong `description` with trigger keywords (presentation, PPT, slides, keynote, deck, 演讲稿, 幻灯片, reveal, html presentation, 小红书图文).
|
|
- Short body: when to use, how to start (`scripts/new-deck.sh <name>`), how to pick a theme, how to pick layouts, how to add animations, how to render to PNG (`scripts/render.sh <file>`).
|
|
- Link into `references/*.md` for detail; keep SKILL.md under ~200 lines.
|
|
|
|
### 8. render.sh
|
|
|
|
Use headless Chrome:
|
|
```
|
|
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --disable-gpu --hide-scrollbars --window-size=1920,1080 --screenshot=out.png "file://$PWD/$1"
|
|
```
|
|
Support multi-slide capture by navigating `#/N` or by extracting each `.slide` region.
|
|
|
|
### 9. Author & License
|
|
|
|
`LICENSE` = MIT, Copyright (c) 2026 lewis <sudolewis@gmail.com>. `README.md` header shows author lewis <sudolewis@gmail.com>.
|
|
|
|
## Process
|
|
|
|
1. FIRST read `~/Library/pnpm/global/5/.pnpm/openclaw@2026.4.1_@napi-rs+canvas@0.1.97/node_modules/openclaw/skills/skill-creator/SKILL.md` and follow its conventions.
|
|
2. Survey the source decks under `/Volumes/luluDrive/作品素材/视频/` (read-only, just for inspiration). Take notes on typography, spacing, card styles.
|
|
3. Build the skill directory described above. Prefer small, composable CSS token files. Keep each theme CSS short (< 200 lines) — just token overrides.
|
|
4. Make sure every template renders correctly in Chrome (you can test with `scripts/render.sh` on a few samples).
|
|
5. Write a concise SKILL.md + rich references/*.md.
|
|
6. Init git (already initialized in this dir), commit everything as author `lewis <sudolewis@gmail.com>`, with a good message.
|
|
7. DO NOT push or create the GitHub repo — the user's orchestrator will handle that.
|
|
|
|
## Constraints
|
|
|
|
- Pure static HTML/CSS/JS. CDN deps allowed: highlight.js, chart.js, a webfont loader. No build step.
|
|
- Target browser: Chrome / Chromium 120+.
|
|
- Chinese + English content both supported (import Noto Sans SC).
|
|
- Keep each file focused; avoid giant monoliths.
|
|
- Be opinionated and tasteful. You're a senior designer.
|
|
|
|
When COMPLETELY finished, run:
|
|
```
|
|
openclaw system event --text "Done: html-ppt skill built — $(ls templates/single-page | wc -l | tr -d ' ') layouts, $(ls assets/themes | wc -l | tr -d ' ') themes" --mode now
|
|
```
|