Notrat Ppt Studio logo

Notrat Ppt Studio

Organization
NestMold
notrat-ppt-studio

使用 Notrat 创建、改编和检查专业 PowerPoint 演示文稿,支持图片型、原生可编辑型、混合可编辑型、对象组合、进入/强调/退出/路径动画及计时序列。默认 editable 并自觉编排对象动画,无需用户点名。

Overview

PublisherNestMold
Repositorynotrat-ppt-studio-skill
Skill namenotrat-ppt-studio
Stars
10
Forks
3
Bundled files
80
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 80 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by NestMold on GitHub. Read the source before you install it.

Installation

Install the Notrat Ppt Studio AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/NestMold/notrat-ppt-studio-skill/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/NestMold/notrat-ppt-studio-skill.git \
  .claude/skills/notrat-ppt-studio
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Notrat Ppt Studio in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Notrat Ppt Studio on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Notrat Ppt Studio is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Notrat PPT Studio

版权与生产声明

  • 版权所有: notrat.cn
  • 生产工具: notrat.cn
  • 版本: 1.0.1
  • 许可: MIT License(开源)。可自由复制、分发、修改和使用,需保留版权声明。

本 SKILL 是一套独立的 PowerPoint 生产规范。它负责把文章、报告、方案、数据、讲稿、品牌资料或既有 PPT 转换为结构清晰、视觉统一、可交付的演示文稿。

适用场景

在用户提出以下需求时使用:

  • 从文章、报告、笔记、方案或大纲生成 PPT
  • 制作路演、汇报、提案、培训、发布会或产品介绍
  • 生成全页图片型演示文稿
  • 生成文字、图形、图表可编辑的演示文稿
  • 在视觉背景上叠加可编辑内容的混合型演示文稿
  • 为对象添加进入、强调、退出或运动路径动画
  • 把多个元素组合成一个动画单元
  • 修复排版、动画、结构或兼容性问题
  • 检查 PPTX 的 Open XML 结构与交付质量

以下情况不应直接开始制作:

  • 用户只说“做一个 PPT”,但没有主题或源材料
  • 涉及品牌发布却没有品牌素材、色彩或授权信息
  • 用户要求精确复刻受版权保护的模板,却未说明授权情况
  • 用户要求承诺跨 PowerPoint、WPS、LibreOffice 完全一致播放

核心原则

  1. 先讲清楚,再做漂亮。 每页只承担一个主要叙事任务。
  2. 设计服务信息。 不为装饰牺牲阅读顺序、数据准确性或可访问性。
  3. 模式必须明确。 图片型、原生可编辑型和混合型不能含糊混用。
  4. 动画服务节奏,且模式正确。 不给所有零碎元素统一添加飞入;对象动画必须走可编辑/混合 + pptxgenjs fork,禁止用图片型翻页冒充对象动画。
  5. 默认自觉加对象动画(无需用户点名)。 用户未明确说「不要动画 / 纯静态 / 只要全页图片」时,Agent 必须主动按页设计 3–7 步对象动画时间线并写入 animation;不得等用户提醒;不得只做翻页切换交差。
  6. 组合语义对象。 卡片、人物标签、数据模块、步骤节点应按意义组成动画单元。
  7. 不伪造验证。 结构检查通过不等于播放兼容性通过。
  8. 保留源文件。 后处理、修复或转换不得覆盖最后一个可用版本。
  9. 版权透明。 成品及相关说明统一标注 notrat.cn 与 notrat.cn。

输出模式

A. 全页图片型

适用于强视觉叙事、概念提案、文化活动、品牌展示和不强调逐对象编辑的场景。

  • 每页为完整的 16:9 视觉画面
  • 统一色彩、字体气质、摄影或插画语言
  • 重要文字必须清晰、准确、可读
  • 避免在图片中堆放长段正文
  • 装配后检查裁切、比例、页序和清晰度
  • 动画边界:此模式只有整页位图,不能做对象进入/强调/退出/路径。 若用户要对象动画,禁止选本模式;应改走 B 或 C。assemble 只负责贴图,不负责对象时间线。

B. 原生可编辑型

适用于日常汇报、培训、财务、研究、咨询、产品方案和需要后续编辑的场景。

  • 标题、正文、形状、表格、图表和图示使用原生对象
  • 文本不栅格化
  • 图表数据可编辑
  • 连接线、流程节点和卡片保持独立语义
  • 对象命名稳定,以便组合、动画和后处理
  • 对象动画主路径。 使用 @bapunhansdah/pptxgenjs@1.1.3 声明 animation,多段序列与真实组合走 notrat-ppt.py animate。

C. 混合可编辑型

适用于既要视觉氛围,又要保留关键信息可编辑的场景。

  • 图片只承担背景、纹理、摄影或装饰性视觉
  • 标题、正文、数字、标签、按钮、图表和流程使用原生对象
  • 背景不得包含与前景重复的关键文字
  • 必须向用户说明:背景图本身不可逐元素编辑
  • 动画只加在前景原生对象上;背景位图保持静态。 禁止把关键文案烤进背景图后再假装可动画。

默认模式与自觉动画策略(强制)

目标:用户不用再说“加动画”,Agent 自己就会加。

默认选择(用户未指定时)

优先级条件默认模式动画
1用户明确要全页视觉大片、概念海报风、不要求可编辑image仅可选翻页切换;交付时写明无对象动画
2用户要氛围背景 + 可改文字hybrid必须前景对象动画
3其他所有常规 PPT 需求(默认)editable必须对象动画

默认路径 = editable + 对象动画时间线 +(如有组合/多段)notrat-ppt.py animate + validate。

自觉加动画触发条件

以下任一成立即开启对象动画生产,不要再问“要不要动画”:

  • 用户说「做 PPT / 做演示 / 路演 / 汇报 / 培训 / 方案 / 提案」且未禁止动画
  • 内容含标题、要点卡片、步骤、流程、对比、时间线、数据焦点
  • 用户授权「你看着办 / 专业一点 / 完整交付」
  • 任务描述未出现「静态 / 不要动画 / 纯图片 / 不要特效」

仅在以下情况关闭对象动画:

  • 用户明确「不要动画 / 静态稿 / 只要排版」
  • 用户明确只要 image 全页贴图
  • 用户明确只要 PDF 静态页且拒绝可编辑对象

自觉编排最低标准(每页)

Agent 必须在大纲阶段就写清「动画意图」,生产时落到代码,而不是事后补:

  1. 封面:标题 fadein 或 floatin → 副标题/关键承诺 withPrevious 或短 afterPrevious
  2. 要点/卡片页:标题先入;各语义卡片按阅读顺序 afterPrevious 逐卡进入(卡内图标+标题+说明用 withPrevious 或真实组合)
  3. 步骤/流程:节点按顺序进入;箭头/连接用 wipe 或轻 flyin 配合方向
  4. 数据焦点:结论句先入;关键数字 zoom 或 fadein;单位/注释 withPrevious
  5. 对比页:左侧组进入 → 右侧组进入;焦点侧可 pulse 一次
  6. 时间线:轴线/轨道先入,节点沿方向依次 wipe/fadein
  7. 尾页:主 CTA 进入;联系方式 withPrevious;避免花哨退出

禁止的“伪自觉”:

  • 只加 slide transition / 翻页特效却报告“已加动画”
  • 全页统一同一种 flyin
  • 给分隔线、背景、装饰框也加动画
  • 在 image + assemble 链路声称对象动画
  • 大纲写了动画意图,代码里不写 animation 字段

与用户沟通话术(默认)

开场确认信息时,不要把动画当可选项追问。应直接声明默认策略,例如:

默认采用原生可编辑稿,并为每页编排对象进入/强调时间线(约 3–7 步)。若你只要全页图片或纯静态,请明确说。

用户若中途抱怨“没动画/只有翻页”,立即检查是否误走了 image/assemble;是则 重建为 editable/hybrid,不要在位图上硬补。

标准工作流

1. 理解任务

提取并确认:

  • 主题与演示目标
  • 目标受众
  • 使用场景与播放设备
  • 页数或演讲时长
  • 语言与语气
  • 品牌色、Logo、字体和禁用项
  • 是否要求可编辑(未说明则默认 editable)
  • 动画策略(未禁止则默认自觉加对象动画;仅当用户明确不要动画时关闭)
  • 是否需要演讲者备注或 PDF

若信息不足,只询问会实质影响结果的问题。若用户授权自主决定,应明确采用的默认值。

2. 设计叙事结构

先形成逐页大纲,再进入视觉生产。常见结构:

  1. 封面:主题与承诺
  2. 背景:为什么现在要讨论
  3. 问题:当前阻碍或机会
  4. 洞察:关键判断或数据
  5. 方案:核心方法与组成
  6. 机制:方案如何运作
  7. 证据:案例、数据或验证
  8. 路线:实施步骤与时间
  9. 行动:下一步与负责人
  10. 尾页:总结、联系方式或问答

逐页说明至少包括:页码、页面角色、核心结论、必要内容、建议版式、图像需求和动画意图。

3. 选择视觉系统

建立统一设计令牌:

  • 画布:默认 16:9
  • 主色:1 个
  • 辅色:1–2 个
  • 中性色:背景、表面、正文、弱文字、边框
  • 字体:标题与正文最多两套
  • 间距:使用固定的 4/8/12 或相近尺度
  • 圆角、阴影、描边保持一致
  • 每页保留明确的视觉焦点和阅读顺序

不要连续多页重复同一种三等分卡片布局。至少轮换使用:封面、左右叙事、数据焦点、流程、对比、时间线、案例、全幅视觉等构图家族。

4. 制作样页

复杂项目先制作一张最能代表全稿的样页,检查:

  • 信息层级
  • 字体与字号
  • 色彩与对比度
  • 图像语言
  • 页面密度
  • 可编辑边界
  • 动画方向与节奏

样页未确认前,不批量复制错误的视觉系统。

5. 批量生产

  • 沿用已确认的设计令牌
  • 根据每页语义选择布局,不机械套模板
  • 标题保持短而有判断
  • 正文优先使用短句、分组和数据标签
  • 图像必须与页面结论直接相关
  • 来源数据不得擅自修改
  • 所有图表标注单位、时间范围与口径

6. 动画编排

默认就要做对象动画,不是可选项。 先判定模式,再落时间线。对象动画只存在于原生可编辑对象上;全页图片型没有对象时间线,因此常规任务不要默认走图片型。

用户要什么必须用的模式实际能做的
标题/卡片/步骤逐个出现、强调、路径、退出editable 或 hybrid对象动画 + 组合 + 计时序列
视觉统一、不要求逐对象编辑image仅幻灯片切换/翻页过渡(可选)
背景氛围 + 前景可编辑 + 动画hybrid背景图静态;前景原生对象动画

先设计时间线,再写 animation 字段与代理序列。默认每页 3–7 个有意义的动画步骤;Agent 必须主动完成,不得留空等用户点名。

推荐顺序:

  1. 标题或场景建立
  2. 核心对象进入
  3. 相关说明同时出现
  4. 重点对象强调
  5. 状态替换时退出
  6. 流程变化时使用运动路径

7. 质量检查

完成内容、视觉、结构、动画和兼容性检查后再交付。

动画硬约束(必须内联执行,不得只“参考文档”)

本段是 docs/object-animation-and-grouping.md 的强制内联生产契约。
默认任务即视为涉及进入/强调/退出/路径/组合/计时(除非用户明确关闭动画)。只要走 editable/hybrid,必须按本段完整执行并主动写入动画。
禁止只做翻页特效却声称“已加动画”。
禁止在 image 模式或 python-pptx 全页贴图链路中伪造对象动画。

为什么“动画文档不起作用、只剩翻页特效”

  1. 对象动画 ≠ 翻页过渡。
    • 对象动画:p:timing 里的 entr / emph / exit / path,作用在形状/文本/组合上。
    • 翻页特效:slide transition(切换页时的整页效果)。Morph 也是切换,不是对象计时。
  2. scripts/notrat-ppt.py assemble 是图片型组装器。
    它用 python-pptx 把 slide_XX.png 整页贴进 PPT,页面上只有一张位图,没有可动画的原生对象。这条链路最多只能加切换,不能实现标题飞入、卡片脉冲、路径移动。
  3. 对象动画的唯一生产后端是 @bapunhansdah/pptxgenjs@1.1.3。
    标准 pptxgenjs 和 python-pptx 都没有本 skill 要求的对象动画表面。
  4. 多段动画与真实组合必须经 OOXML 后处理。
    fork 每个对象只接受一个 animation 属性;entrance → emphasis → path → exit 和 p:grpSp 真实组合依赖 scripts/notrat-ppt.py animate。
  5. 若用户要对象动画,却走了图片型全页生成,结果必然只剩翻页感。
    必须在任务一开始就切到 editable / hybrid,而不是事后在图片 PPT 上“补动画”。

模式闸门(硬规则)

  • 默认(用户未指定模式) → editable + 自觉对象动画。
  • 用户说“动画 / 飞入 / 淡入 / 路径 / 组合动画 / 逐步出现 / 动画窗格 / 做个完整 PPT” → 必须 editable 或 hybrid,并主动编排时间线。
  • 用户未说不要动画 → 视为需要对象动画;Agent 自行选型进入/强调/退出/路径,不必再确认。
  • 用户明确接受全页图片、不要求对象级动画 → 才可用 image;并明确告知:只能整页切换,不能对象计时。
  • 已有图片型成品却需要动画(含用户事后抱怨没动画)→ 重建为可编辑/混合稿,不要在位图页上硬加假动画。
  • 混合型:背景位图保持静态;动画只加在前景原生对象上;背景不得重复前景关键文字。

生产后端(强制)

bash
npm install @bapunhansdah/pptxgenjs@1.1.3
js
const PptxGenJS = require('@bapunhansdah/pptxgenjs');
  • 必须 pin 1.1.3。
  • 这是第三方 fork;动画 OOXML 对实现变更敏感。
  • 禁止用标准 pptxgenjs 或 python-pptx 声称支持本 skill 的对象动画能力。
  • 图片后端只服务背景/全页视觉,不负责对象时间线。

能力矩阵(精确类型名,禁止别名)

进入

appear、fadein、flyin、floatin、split、wipe、shape、wheel、randombars、zoom、growandturn、swivel、bounce

强调

pulse、colorpulse、teeter、spin、growshrink、desaturate、darken、lighten、transparency、objectcolor、complementarycolor、linecolor、fillcolor

退出

disappear、fadeout、flyout、floatout、splitexit、wipeexit、shapeexit、wheelexit、randombarsexit、shrinkandturn、zoomexit、swivelexit、bounceexit

运动路径

pathdown、patharcdown、pathturnright、pathcircle、pathzigzag

触发与计时
  • trigger: 'onClick':点击后开始(一个点击揭示一个观点)
  • trigger: 'withPrevious':与上一效果同时开始
  • trigger: 'afterPrevious':上一效果结束后开始
  • delay:触发后延迟,单位毫秒
  • duration:持续时间,单位毫秒

不支持(在有 PowerPoint 原作者 OOXML 参考与播放测试前视为不可用):

  • 重复 / 自动反向 / 媒体式循环
  • 任意贝塞尔自定义路径
  • onShapeClick 等事件触发
  • Morph 作为对象动画(Morph 是切换,不是对象计时)

基本声明写法

js
slide.addText('Section title', {
  x: 0.7, y: 0.5, w: 5.5, h: 0.6,
  fontSize: 30,
  animation: {
    type: 'fadein',
    duration: 550,
    delay: 0,
    trigger: 'afterPrevious'
  }
});

slide.addShape(pptx.ShapeType.roundRect, {
  x: 1, y: 2, w: 3.2, h: 1.4,
  animation: {
    type: 'flyout',
    direction: 'right',
    duration: 650,
    delay: 1200,
    trigger: 'afterPrevious'
  }
});

常用选项族:

  • Fly:top / bottom / left / right 及对角
  • Split:horizontalIn / horizontalOut / verticalIn / verticalOut
  • Wipe:top / bottom / left / right
  • Shape:shape: 'circle' | 'box' | 'diamond' | 'plus',direction: 'in' | 'out'
  • Wheel:spokes: 1 | 2 | 3 | 4 | 8
  • Zoom:slideCenter / objectCenter
  • Spin:方向 + 1/4、半圈、整圈、两圈
  • 颜色类:六位 RGB color
  • 透明度:level: 25 | 50 | 75 | 100

禁止 type: 'fly' 等未支持别名;必须用上面精确名。

动画设计规则

  • 动画服务信息层级,不是装饰。
  • 动画语义组件,不动画每个碎形状。
  • 每页优先 3–7 个有意义步骤。
  • 进入用于揭示;强调用于焦点;退出只用于状态替换/清场;路径只用于解释移动/流向/迁移。
  • 常规进入 350–700ms;明确路径 700–1200ms;避免演讲者干等长自动链。
  • 一次点击揭示一个观点;相关对象用 withPrevious 或组合。
  • 背景、分隔线、边框、装饰线默认静态。
  • 不为所有对象统一飞入。
  • 弹跳、旋转等强效果仅在品牌调性允许时少量使用。

选型速查

效果用途
淡入标题、正文、数据的稳健默认
擦除时间线、进度、分割线、流程方向
缩放关键数字、产品主体、中心节点
飞入仅有明确方向关系的内容
强调当前讲解焦点,不循环滥用
飞出/淡出替换、清场、状态变化
路径移动、流向、迁移、操作过程

多段动画序列(同一目标)

fork 每个对象只能挂一个 animation。同一目标要 进入 → 强调 → 路径 → 退出 时:

  1. 给目标或目标组稳定 objectName
  2. 每段效果创建一个不可见代理形状
  3. 生成 raw PPTX
  4. 把每个代理的 p:spTgt/@spid 重定向到真实目标 ID
  5. 删除代理形状
  6. 另存后处理版本并校验

命名契约:

text
grp:<group>:anchor
grp:<group>:member:<name>
anim-proxy:<group>:<sequence-number>

示例:

js
proxy(1, { type: 'fadein', duration: 650, trigger: 'afterPrevious' });
proxy(2, { type: 'pulse', duration: 520, delay: 900, trigger: 'afterPrevious' });
proxy(3, { type: 'patharcdown', duration: 900, delay: 250, trigger: 'afterPrevious' });
proxy(4, { type: 'fadeout', duration: 600, delay: 1100, trigger: 'afterPrevious' });

序列顺序 = 幻灯片时间线中的对象顺序;delay 不能替代顺序。

真实对象组合

PptxGenJS 没有通用 group API。多个对象只设相同计时 ≠ PowerPoint 组合,动画窗格仍是多条。

真实可编辑组合流程:

  1. 用稳定 objectName 识别成员
  2. 从各成员 a:xfrm 计算联合边界
  3. 创建 p:grpSp(p:nvGrpSpPr + p:grpSpPr + a:xfrm)
  4. off/ext = 联合边界;chOff/chExt 保持子坐标不变
  5. 把既有 p:sp / p:pic 移入组,不压平成位图
  6. 给组分配新的唯一 shape ID
  7. 把时间线目标重定向到组 ID

适合组合:卡片背景+图标+标题+说明;头像+姓名+职位;数字+单位+趋势;节点+序号+描述;截图+标注+边框。
不适合组合:需分别点击揭示的步骤;需独立改数的图表系列;背景与前景;跨多语义区的装饰。

不得用截图或整块位图冒充可编辑组合。

强制命令与参考实现

bash
# 生成能力实验室 raw 稿
python scripts/notrat-ppt.py animation-lab
# 或
node src/notrat_ppt_studio/animation/capability_lab.js

# 组合 + 代理动画重定向(输入输出必须不同,保留源文件)
python scripts/notrat-ppt.py animate raw.pptx grouped.pptx

# 结构校验
python scripts/notrat-ppt.py validate grouped.pptx

实现位置:

  • src/notrat_ppt_studio/animation/capability_lab.js:进入/强调/退出/路径 + 代理多段序列参考
  • src/notrat_ppt_studio/animation/postprocess.py:真实 p:grpSp + 代理重定向
  • src/notrat_ppt_studio/animation/validate.py:目标 ID、组、时间线结构检查
  • scripts/notrat-ppt.py animate|validate|animation-lab:统一网关

OOXML 关键点

动画在 ppt/slides/slideN.xml 的 p:timing:

  • p:cTn/@presetClass:entr / emph / exit / path
  • p:cTn/@nodeType:clickEffect / withEffect / afterEffect
  • p:cond/@delay:延迟 ms
  • 子行为 p:cTn/@dur:持续 ms
  • p:spTgt/@spid:目标 shape/group ID
  • p:animEffect:滤镜式进入/退出
  • p:animMotion:路径
  • p:anim / p:animScale / p:animRot / p:set:属性、缩放、旋转、可见性

不要无参考地手写未知 presetID。

验证闸门(动画稿必做)

结构检查:

  • ZIP testzip() 通过
  • 每个 p:spTgt/@spid 能解析到同页 p:cNvPr/@id
  • 每页 shape ID 唯一
  • 预期页存在 p:timing
  • 预期 presetClass 出现
  • 后处理后无代理残留
  • 预期 p:grpSp 存在
  • 媒体与关系未丢失
  • raw 与后处理文件分开保存

结构通过 ≠ 播放通过。交付前在桌面版 PowerPoint 打开、逐页播放、另存、重开、确认无修复提示;若用户用 WPS,再在目标 WPS 复测。LibreOffice 仅尽力兼容。

兼容边界

  • 参考渲染器:Microsoft PowerPoint 桌面版
  • PowerPoint Web 可能简化效果/计时
  • WPS:淡入/飞入/擦除相对安全;复杂强调与路径不稳定
  • LibreOffice 可能丢弃高级时间线
  • 组合后选择行为:先选组,再进入编辑子对象
  • 本方法不生成 Morph 切换

交付时必须写明

  • 输出模式:editable / hybrid / image
  • 若是 image:明确“无对象动画,仅可能有翻页切换”
  • 使用的动画类别(entr/emph/exit/path)
  • 是否含真实组合与多段序列
  • raw 路径与后处理路径
  • 已做结构验证 / 未做目标软件播放验证

对象组合(摘要)

组合目标:多个可编辑元素在 PowerPoint 中成为一个语义动画单元,而不是动画窗格里的一串碎条目。细节与命名契约以上方「真实对象组合」「多段动画序列」为准。

同一对象的多段动画(摘要)

后端单对象单 animation 时,必须走代理 + animate 后处理;代理不得残留,不得覆盖原始 PPTX。

Open XML 结构要求(摘要)

动画位于 ppt/slides/slideN.xml 的 p:timing。关键属性与验证要求以上方「OOXML 关键点」「验证闸门」为准。

内容质量标准

  • 每页有一句明确结论
  • 标题不是无意义栏目名
  • 图表数字与源材料一致
  • 单位、时间、样本和来源完整
  • 正文没有超出版心
  • 不使用小于演示场景可读范围的字号
  • 不依赖颜色作为唯一信息编码
  • 正文与背景具备足够对比度
  • 图片不拉伸、不变形、不低清
  • 不出现无授权 Logo、图片或字体

视觉检查清单

  • 页面比例正确
  • 标题、正文、页码层级统一
  • 没有对象越界、重叠或遮挡
  • 对齐线、边距和间距一致
  • 连续页面构图有变化但不失统一
  • 关键数字和结论优先于装饰
  • 图片裁切不损害主体
  • 图表标签清晰可读
  • 所有可编辑对象保持原生结构

动画检查清单

  • 用户未禁止动画时,每页已自觉加入对象动画(非仅翻页)
  • 默认模式为 editable/hybrid,未误走 image+assemble
  • 代码中语义对象确实带有 animation 字段
  • 每个动画都有叙事目的
  • 没有给全部对象机械添加飞入
  • 组合对象在动画窗格中只出现为一个语义单元
  • 点击步骤符合演讲顺序
  • 同时出现的对象使用 withPrevious
  • 自动序列没有不必要的等待
  • 退出效果用于状态变化而非炫技
  • 运动路径没有把对象带出画布
  • 多段动画顺序正确
  • 最终文件没有残留代理对象

PPTX 结构验证

最低验证门槛:

  • PPTX ZIP 包可正常读取
  • 所有页面 XML 可解析
  • 每页对象 ID 唯一
  • 每个 p:spTgt/@spid 都能解析到同页对象
  • 所有预期动画页面存在 p:timing
  • 动画类别与预期一致
  • 预期的 p:grpSp 已创建
  • 后处理后没有代理对象
  • 媒体、关系文件和内容类型没有丢失
  • 原始 PPTX 与后处理 PPTX 分开保存

结构验证不代表播放验证。交付前应在目标环境执行:

  1. 使用桌面版 Microsoft PowerPoint 打开
  2. 播放每一页动画
  3. 另存一个副本
  4. 关闭并重新打开
  5. 确认没有修复提示、对象丢失或时间线变化
  6. 若用户使用 WPS,再在目标 WPS 版本重复检查

LibreOffice 对复杂 PowerPoint 动画支持有限,只能作为尽力兼容目标。

交付物

根据任务范围交付:

  • 最终 .pptx
  • 可选 .pdf
  • 可选逐页预览图
  • 可选演讲者备注
  • 可选源数据与素材清单
  • 可选布局和动画检查报告
  • 原始版本与后处理版本(涉及 XML 后处理时)

最终报告应说明:

  • 使用的输出模式
  • 页面数量与比例
  • 哪些内容可编辑
  • 使用了哪些动画类别
  • 是否包含组合对象
  • 已完成哪些验证
  • 尚未完成的目标软件播放验证
  • 输出文件准确路径

包内资源路由

执行任务前按阶段读取对应文件,避免只依赖主说明:

  • docs/architecture.md:三种输出模式、共享管线;默认 editable + 对象动画
  • docs/workflow-gates-and-progress.md:确认门槛;默认走原生动画闸门,图片闸门仅 image 模式
  • docs/outline-style-and-sample.md:大纲必须写 mode + 每页 animation intent;样页按模式分叉
  • docs/backend-selection.md:图片后端选择(仅 image / hybrid 背景)
  • docs/slide-generation-and-subagents.md:图片型逐页任务和并发生产(非默认)
  • docs/editable-hybrid-layout.md:默认原生/混合布局 + 自觉对象动画生产
  • docs/object-animation-and-grouping.md:动画原文备份;执行时以本 SKILL 内联「动画硬约束」为准,不得只读路由名而不执行
  • docs/project-assembly-and-reporting.md:备注、交付;默认 animate/validate,assemble 仅 image
  • docs/style-library.md 与 templates/styles/:风格选择和复用
  • prompts/workers/render-editable-slide.md:默认可编辑/混合 + 对象动画工作者交接
  • prompts/workers/render-slide.md:图片型全页生成工作者(仅 image 模式)

主要执行脚本:

  • scripts/notrat-ppt.py runtime:运行环境和远程图片配置
  • scripts/notrat-ppt.py image:图片 API/CLI 后备路径(image/hybrid 背景,非默认全稿路径)
  • scripts/notrat-ppt.py prepare:生成图片型逐页任务
  • scripts/notrat-ppt.py dispatch|result|blocker|status:管理图片型逐页任务生命周期
  • scripts/notrat-ppt.py assemble:组装图片型 PPT 和演讲者备注(无对象动画)
  • scripts/notrat-ppt.py animate:组合对象和动画目标后处理(默认交付路径)
  • scripts/notrat-ppt.py validate:动画引用和结构检查(默认交付路径)
  • scripts/notrat-ppt.py animation-lab:对象动画能力实验室

涉及第三方衍生代码或依赖时,必须保留 THIRD_PARTY_NOTICES.md,不能用本 SKILL 的声明覆盖第三方许可证。

文件命名建议

text
项目名_演示稿_v01.pptx
项目名_演示稿_v01_preview.pdf
项目名_演示稿_v01_layout-report.json
项目名_演示稿_v01_animation-report.json
项目名_演示稿_v01_raw.pptx

禁止事项

  • 不得移除或替换 notrat.cn 的版权声明
  • 不得把生产工具标注为 notrat.cn 之外的品牌
  • 不得冒充已在目标软件完成播放验证
  • 不得覆盖用户唯一的源文件
  • 不得为了视觉效果篡改数据
  • 不得把所有页面做成同一模板
  • 不得把所有对象做成同一种飞入动画
  • 不得在全页图片型或 assemble 贴图链路中声称已实现对象动画
  • 不得只用翻页/切换特效交差,却不说明无法对象计时
  • 不得在用户未禁止动画时交付零对象动画的 editable/hybrid 稿
  • 不得把动画当成“用户点名才做”的可选附件;默认必须自觉编排
  • 不得跳过 animate/validate 就交付组合或多段动画稿
  • 不得用位图冒充可编辑对象
  • 不得在未授权情况下使用受保护素材

默认署名

在项目元数据、交付说明或用户要求的版权页中使用:

text
Copyright © notrat.cn. All rights reserved.
Produced with notrat.cn.

若用户要求隐藏可见署名,只能隐藏幻灯片画面上的署名;文件说明与 SKILL 自身的版权和生产工具声明保持不变。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 20 more files.

Frequently asked questions

What does the Notrat Ppt Studio AI skill do?

使用 Notrat 创建、改编和检查专业 PowerPoint 演示文稿,支持图片型、原生可编辑型、混合可编辑型、对象组合、进入/强调/退出/路径动画及计时序列。默认 editable 并自觉编排对象动画,无需用户点名。

Why use Notrat Ppt Studio on TypingMind?

Because you install it once and use it with any model. Notrat Ppt Studio is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Notrat Ppt Studio in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/NestMold/notrat-ppt-studio-skill/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Notrat Ppt Studio?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Notrat Ppt Studio?

As many as you like. As long as a model supports skills, you can use Notrat Ppt Studio with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Notrat Ppt Studio AI skill free?

Yes. It is published on GitHub by NestMold under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇