
Sn Ppt Dazzle
需要把演示 / 幻灯片 / PPT / slides 做成单文件 HTML 动态 deck(动效、跨页过渡、键盘翻页、1280×720)时使用。本 skill...
Install
npx skills add OpenSenseNova/SenseNova-Skills --skill sn-ppt-dazzle -g -a claude-code -y- Repository
- OpenSenseNova/SenseNova-Skills6k
- Category
- Documents
- Updated
- 6d ago
- License
- MIT
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- Yes, review before use
What it does
需要把演示 / 幻灯片 / PPT / slides 做成单文件 HTML 动态 deck(动效、跨页过渡、键盘翻页、1280×720)时使用。本 skill 非入口:使用前必须先确认 sn-ppt-entry 与 sn-ppt-story 两个前置 skill 可用,依次执行 entry(建 DECK_DIR / task_pack.json)→ story(生成 outline.md)完成后才可开始;前置缺失或未完成时停止并回报,严禁绕过(如改用生图+手写 HTML 等方式)。
sn-ppt-dazzle:单 HTML 炫彩演示 deck
你要交付的不是一份"幻灯片",而是一场在浏览器里上演的动态视觉演出:持续运行的动态背景、每页的入场编排、页间的过渡特效、键盘可交互, , 同时排版严谨、内容真实、零控制台报错。
0. Entry / Story 输入契约(最高优先级)
本 Skill 不是用户请求入口,不直接接收裸 query 或附件创建新任务。只接受
sn-ppt-entry 传入的绝对 DECK_DIR,并且必须已经存在:
<DECK_DIR>/task_pack.json;<DECK_DIR>/info_pack.json;<DECK_DIR>/outline.md;task_pack.choices.output == "dynamic_html",或旧任务的ppt_mode == "dazzle"。
任一条件不满足时停止并返回 sn-ppt-entry 补齐,不自行新建 deck 目录、不从 query 绕过 sn-ppt-story。
开始和恢复时都 重新读取read_file磁盘上的当前 outline.md,不得使用sn-ppt-story 的 write_file 返回内容或对话上下文中的 outline;outline.md是 Dazzle 的唯一内容输入并固定:
- 最终页数、页序和标题;
- 每页核心结论、内容依据、上屏内容边界和前后关系;
- 用户明确保留、删除或修改的内容。
Dazzle 仍按本文后续六阶段决定风格 family、动态背景、版式、素材、动画和实现细节,但不得 合并、拆分、增删或重排 outline 页面,不得改变标题和核心结论的含义,不得恢复用户删除的 内容,也不得自行 Research 或补造事实。事实不足时停止相关页面并返回 Entry / Story。
DECK_DIR 只能取 task_pack.deck_dir 的绝对路径,所有任务产物都写入该目录。当前 Skill
目录只读并记为 SKILL_ROOT;references 和渲染脚本只从 SKILL_ROOT 读取。
1. 产物与边界
- 最终产物:
<DECK_DIR>/deck.html(如用了生成图则外加<DECK_DIR>/assets/,图片在 HTML 中仍用相对路径assets/img_NN.png引用;没有生成图时deck.html就是唯一演示交付物)。 - 画布 1280×720(16:9),固定设计画布 + JS 等比缩放适配屏幕(见 §4 契约)。
- CSS / JS 全部内联在
<style>/<script>。允许 CDN:Three.js r128、GSAP、ECharts、D3、Google Fonts。禁止外链图片 URL(图片只能来自 assets/ 下的本地文件)。 DECK_DIR内文件:plan.md(你的规划)、deck.html、assets/(可选)、shots/(渲染截图输出)。
只在现有阶段边界同步 task_pack.json,不改变后续阶段的执行内容:
- 进入阶段 1:
current_stage="output.dynamic_html.plan"、status="generating";plan.md完成后把绝对路径写入state.artifacts.plan。 - 进入阶段 3:
current_stage="output.dynamic_html.build";阶段 4 每完成并看图确认一页,把 页号追加到state.artifacts.dynamic_pages_completed。 - 阶段 6 完成:把
deck.html、shots/、shots/render.json和可用的shots/contact_sheet.png的绝对路径分别写入state.artifacts.deck_html、shots、render_manifest、contact_sheet;把dynamic_html加入completed_stages。全部页面通过时 写current_stage="complete"、status="completed";仍有已如实报告的缺陷时写status="partial"和last_error,保留全部可用产物。


