htmlewislulu-html-ppt-skill/BRIEF.md

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
```