sn-ppt-story

SkillProductivity

Lets your agent turn your request, materials, and research into one editable slide deck outline.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the sn-ppt-story skill

About this capability

Use when the current PPT task has already had DECK_DIR created by sn-ppt-entry (with task_pack.json and info_pack.json written), and this skill must orchestrate the query, all user materials, and completed Research into the single editable outline.md. This skill is the mandatory intermediate step be

What this skill tells your AI

The instructions your AI receives, as published by opensensenova/sensenova-skills in skills/sn-ppt-story/SKILL.md and read by ahel’s review.

把 query、全部用户材料和已经完成的研究综合成一份清楚、完整、可直接修改的 outline.md。Story 统一管理内容理解和页面叙事,不生成页面,不自行开展外部研究。

输入边界

只接受 Entry 传入的绝对 DECK_DIR。开始前读取:

  • <DECK_DIR>/task_pack.json
  • <DECK_DIR>/info_pack.json
  • info_pack.raw_documents 指向的完整 raw_documents.json(存在时)
  • info_pack.research_report 指向的 Research 主报告(存在时)
  • 用户明确要求读取的其他源文件
  • 当前 <DECK_DIR>/outline.md(修改或继续任务时)

用户材料是事实来源,query 是任务目标,Research 是外部证据补充。三者冲突时明确区分 “用户要求”“材料事实”“外部证据”和“推断”,不得用顺畅文案掩盖冲突。

task_pack.state.research.required == true 时,Story 开始前必须已有 info_pack.research_report 指向的可读报告。缺失时停止并返回 Entry 完成 task_pack.state.research.executor 指定的证据路径;不得先写 outline 再补研究。Standard 默认读取 Entry 写入的定向搜索摘要,Deep 默认读取 sn-deep-research 的完整报告,Story 不把 Standard 自动升级为 Deep。

输出和状态

  • 唯一用户叙事文件:<DECK_DIR>/outline.md
  • 不创建 outline_v2.md、story spec、页面 JSON 或另一份并行大纲。
  • 开始时把 task_pack.state.current_stage 更新为 story,状态更新为 storytelling
  • 完成时把 story 加入 completed_stages,把 outline 绝对路径写入 state.artifacts.outline,把 task_pack.params.page_count 同步为当前连续页数,状态更新为 story_ready
  • 修改现有大纲时覆盖同一文件,并清晰标记哪些下游页面需要重新生产;不要清除 Research 和材料解析的完成状态。

工作方法

1. 完整理解

阅读与任务相关的全部内容,而不是只看标题、摘要或开头。材料较长时可以分段读取, 但最终综合必须覆盖:

  • 可以直接使用的事实、数据、案例、定义和结论;
  • Markdown/DOCX 表格及文档内图片所承载的信息;
  • 多份材料的重复、冲突、时效和口径差异;
  • 受众真正需要做出的理解、判断或行动;
  • 仍然缺少证据、只能作为推断或需要弱化表达的内容。

document_digest 是索引和辅助,不替代原文。决定性数字、专有名词、时间、单位和引用 必须回到原材料或 Research 主报告核对。

2. 先确定整套 Story

在排页前明确:

  1. 谁在什么场景下向谁表达;
  2. 演示希望受众理解、相信或决定什么;
  3. 全套唯一的核心观点;
  4. 采用什么论证路径,为什么按这个顺序;
  5. 最后一页应留下什么结论或行动方向。

不要把材料目录机械改成页面目录。内容应形成连续推进,例如“建立背景 -> 暴露关键矛盾 -> 给出判断框架 -> 用证据验证 -> 落到方案或行动”,具体结构由任务决定。

3. 再规划逐页逻辑

每页只承担一个主要任务,并明确:

  • 页面标题;
  • 受众看完必须记住的完整结论;
  • 支撑结论的事实、数据、案例和自然语言来源;
  • 它如何承接上一页并推动下一页;
  • 信息之间的关系和建议的表达方式。

页面表达只描述用户能理解的意图,例如“用统一维度对比三种方案”或“用趋势图说明拐点”。 不要写像素、坐标、HTML 节点、组件 ID、内部页型代码或出口实现细节。

4. 做三轮 Story 自审

这不是模型评测,也不产生测试文件。写入前在当前上下文中连续复读三次:

  1. 证据审查:决定性结论是否有材料或 Research 支持,事实/推断/待确认是否清楚。
  2. 逻辑审查:是否存在结论先于依据、页面重复、因果跳跃、前后矛盾或最后没有落点。
  3. 演示审查:每页是否只有一个主要任务,页数是否合理,标题和结论是否让用户一眼 看懂,整体思路是否能独立概括全套。

发现问题直接改 outline.md 草稿,不生成审查报告。

outline.md 格式

只用普通 Markdown 和少量标题层级:

# 演示标题

## 整体思路

说明受众、场景、目标、核心观点、叙事路径及最终落点。

## 第 1 页:页面标题

### 这一页要说明什么

一句完整、明确、可验证的结论。

### 内容与依据

- 需要呈现的事实、数据、论点或案例。
- 来源用自然语言说明,例如“来自 planning_plan.md 的 Presentation Skill 部分”。
- 只能推断或仍缺证据时明确写“推断”或“待补充”。

### 前后关系

说明本页如何承接上一页并推动下一页;封面可说明它如何设定问题。

### 页面表达

说明信息关系、视觉重点和建议表达方式。

## 第 2 页:页面标题
...

硬约束:

  • ## 第 N 页 的顺序就是最终页序,编号连续。
  • 开头必须有“整体思路”,单独阅读它就能明白全局逻辑。
  • 每页必须有“这一页要说明什么”,不能只写宽泛主题。
  • 用户指定页数时遵守;材料明显无法支撑时先说明,不用空页凑数。
  • 不自动添加用户未要求且叙事不需要的目录、过渡、行动或结束页。
  • 不把设计丰富度误写成 Story 复杂度;Story 对所有出口相同。

新建与修改

新建

  1. 读取全部输入和 Research。
  2. 确定整体 Story。
  3. 完成逐页编排。
  4. 做三轮自审。
  5. 写入唯一 outline.md 并更新 task_pack.json
  6. 返回路径、页数和一行叙事摘要。

修改

磁盘上的 outline.md 是唯一基线:

  • 先完整读取,再修改;
  • 局部要求只改相关页面及保持逻辑连续所必需的相邻内容;
  • 用户调换页序后保留该顺序,只修正承接关系;
  • 用户删除页面或观点后,不用同义措辞补回;
  • 用户明确写下的标题、结论和原文尽量原样保留;
  • 新事实需要 Research 时返回 Entry,Research 完成后再改;
  • 新证据与用户修改冲突时保留磁盘版本,报告冲突并等待决定,不擅自覆盖。

与出口的契约

所有出口必须在开始和恢复时重新读取当前 outline.md。它决定:

  • 整体目标、受众、核心观点和叙事路径;
  • 最终页数、页序和页面标题;
  • 每页角色、核心结论、必须出现的事实与内容关系。

出口可以补逐字文案、视觉系统、素材、版式、动画和实现细节,但不能重新研究、另写内容 大纲、恢复用户删除的内容或改变核心结论。出口发现事实不足时应停止相关页面,返回 Entry/Story 说明缺口。

不得做

  • 不调用外部模型客户端或第二套 API。
  • 不直接搜索网页;外部证据由 Entry 在 Story 之前完成:Standard 使用定向普通搜索, Deep 使用 sn-deep-research
  • 不生成 HTML、图片、渲染图或 PPTX。
  • 不创建细碎跨 Skill spec。
  • 不把未经支持的数字写成事实。
  • 不把 Story 变成某个出口的视觉模板选择器。

Signals

GitHub stars
6k
Forks
392
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
sn-ppt-story
Source
github.com/opensensenova/sensenova-skills