LLMSkillHub
mirroredCopied from fufankeji/deepseek-harness-studio under MIT. fufankeji has not claimed this page, and is not affiliated with LLM SkillHub.

fufankeji / dsh-motion-deck

当用户提供一段演示文稿主题、内容大纲或会议材料,希望生成结构完整、视觉突出、每页有动画的 HTML 演示文稿时使用;从新内容生成 8 页单文件 HTML,不生成 pptx,也不改写已有案例。

0
SKILL.md
7.3 KB

从用户大纲生成 8 页 HTML 动效演示

用户提供的主题和大概内容是唯一事实来源。你的工作不是替用户重新选题,而是完成:保真整理 → 8 页叙事 → 视觉模板 → 逐页动效 → 单文件 HTML → 插件验收。

硬边界

  • 每次新任务只写入 generated/<project-slug>/;若目录已存在,使用语义化后缀,不覆盖。
  • 不读取、不复制、不修改案例根部的 input/outline.json、output/index.html 或旧 decision.json。
  • 可以复用本 Skill 内置的四套模板、8 种动画配方和渲染 Plugin;不能复用示例演示中的 DeepSeek Harness 内容。
  • 用户没有提供的数字、事实、案例和结论不得编造;材料不够支撑 8 页时,用章节页、结构图或总结页组织已有内容,不虚构新事实。
  • 最终只生成 HTML,不生成、承诺或描述 .pptx。
  • 不引入在线字体、外部脚本、批注、演讲者后台或复杂编辑器。

输入判断

以下输入足以直接开始,不再追问:

  • 明确的演示主题;
  • 3 个以上核心内容点,或一段能拆出 3 个以上要点的正文;
  • 可以判断的大致受众或使用场景。

只有缺少演示主题或完全没有可拆分内容时,才使用 ask_user_question 一次补齐。用户未指定页数时固定 8 页;未指定视觉模板时按本 Skill 规则推荐默认模板。

第 1 阶段:保存原始材料并拆成 8 页

1.1 创建新项目

创建:

generated/<project-slug>/
├── input/
│   ├── source.md
│   └── outline.json
└── output/

把用户输入原样保存到 input/source.md。这份文件是事实基线,后续每页内容都必须能在其中找到依据。

1.2 先写一句叙事主张

在 outline.json 中先确定:

  • deck.title:演示标题;
  • deck.brand:演示主体或组织名;
  • deck.eyebrow:不超过 28 个字符的英文或中文短标签;
  • deck.cta:最后一页行动主张;
  • deck.footer:页脚署名;
  • deck.thesis:观众看完后只需要记住的一句话。

如果一句话塞进两个以上主张,先收敛成一个主张,再用页面证明它。

1.3 使用 8 页叙事骨架

根据用户材料调整页面内容,但保持以下功能分工:

页码页面任务推荐内容形态
01建立主题与期待标题、主张、3 个关键词
02交代背景或前后反差Before/After、现状/目标
03给出核心结构三层模型、三项原则、三类对象
04解释方法或过程4~5 步流程、时间线、执行链
05展开关键机制关系图、能力网络、要素连接
06呈现选择或策略两种方案、三个决策、优先级
07汇总证据或成果3~5 个成果、案例、指标或结论
08收束唯一主张总结、行动建议、CTA

不要机械套标题;页面任务可以依据材料调换,但必须形成“开场 → 展开 → 证明 → 收束”的完整弧线。

1.4 每页内容约束

outline.slides 必须恰好 8 项,每项包含:

{
  "section": "01 · 背景",
  "title": "这一页只表达一个结论",
  "summary": "用一到两句话解释标题,不重复标题。",
  "points": ["要点一", "要点二", "要点三"]
}

规则:

  • 标题建议不超过 24 个汉字;
  • summary 不超过 80 个汉字;
  • points 为 3~5 项,每项不超过 30 个汉字;
  • 一页只服务一个结论;
  • 连续两页不能只是相同的卡片列表;
  • 事实、数字和专有名词必须忠于 source.md。

完整结构:

{
  "deck": {
    "title": "演示标题",
    "brand": "主体名称",
    "eyebrow": "TOPIC · YEAR",
    "cta": "最后的行动主张",
    "footer": "主体 · 演示名称",
    "thesis": "观众最终只记住的一句话"
  },
  "slides": []
}

阶段门禁: source.md 与 outline.json 已新建;outline 恰好 8 页;每页至少 3 个要点;没有出现用户未提供的事实。

第 2 阶段:选择视觉模板和叙事重点

四套模板都内置在最终 HTML 中,用户可以在页面中按数字键 1~4 一键切换。Plugin 参数决定首次打开时的默认模板:

id模板适用内容
ocean深海指挥舱科技发布、产品能力、系统架构;对比强、视觉冲击最大
airlab晴空研究所教学说明、创新项目、团队分享;清新、明亮、亲和
swiss瑞士编辑研究报告、方法论、专业知识;网格清晰、信息克制
gallery午夜美术馆品牌发布、管理层汇报、成果展示;高级、克制、舞台感

叙事重点使用兼容 id:

  • plugin:方法结构;
  • human:用户参与或决策;
  • result:成果证据。

用户已指定风格时服从用户;否则根据受众、场景和内容密度选择一个默认模板,不需要额外询问。选择理由写入 input/decision-note.md,不超过三句话。

第 3 阶段:调用 DSH Plugin 生成新 HTML

完成新大纲后必须调用:

render_motion_deck(
  project_dir: "generated/<project-slug>",
  theme: "ocean | airlab | swiss | gallery",
  focus: "plugin | human | result"
)

Plugin 会读取本次生成的 input/outline.json,把内容装入内置四模板和 8 个独立动画配方,生成:

generated/<project-slug>/input/decision.json
generated/<project-slug>/output/index.html

8 页动画语义固定,但内容来自新大纲:

  1. title-bridge:标题分层与核心连接;
  2. split-contract:左右对比;
  3. orbit-assembly:三层结构聚合;
  4. pipeline-run:流程轨迹依次运行;
  5. constellation-bind:关系线描绘与节点汇聚;
  6. decision-flip:决策分支与预览翻转;
  7. fan-results:成果卡片扇形展开;
  8. converge-mark:要点汇聚到最终主张。

不得用 Bash 或文件复制冒充 render_motion_deck 调用。

第 4 阶段:插件复验并交付

生成后必须调用:

inspect_motion_deck(project_dir: "generated/<project-slug>")

检查项包括:

  • 新大纲的 8 个标题全部进入 HTML;
  • 8 页结构完整;
  • 8 个动画配方互不重复;
  • 四套模板仍可切换;
  • 默认模板和叙事重点生效;
  • reduced-motion 下静态可读;
  • 无外部字体、脚本和样式;
  • 内联 JavaScript 语法通过。

最终报告:新项目目录、默认模板、叙事重点、8/8 动画、检查结果和 output/index.html 路径。不要把案例根部的 output/index.html 当成本次成果。

测试成功的工具轨迹

  1. skill 加载 dsh-motion-deck;
  2. DSH 文件工具写入新 source.md 和 outline.json;
  3. render_motion_deck 接收新项目目录并生成新 HTML;
  4. inspect_motion_deck 验收同一个新项目;
  5. 成果位于 generated/<project-slug>/output/index.html。

只切换案例根部旧 HTML 的主题不算通过。