kingdee-ppt
将内容转化为金蝶官方风格的完整幻灯片文件(.pptx 或 .html)。当用户说「做PPT」「做个PPT」「做汇报材料」「做演示文稿」「生成deck」「生成幻灯片」「整理成幻灯片」「按金蝶模板整理」「make a presentation」「create a slide deck」「output slides」「HTML幻灯片」「交互式演示」「网页版PPT」「web slides」,或上传 .pptx/.docx 要求转化/重排为金蝶风格时,必须使用此Skill。只要涉及PPT、幻灯片、汇报材料、演讲稿输出(PPTX或HTML格式),就应触发。
Works with
Agent Skills format with YAML frontmatter. Claude Code reads it as-is.
---
name: "kingdee-ppt"
description: "将内容转化为金蝶官方风格的完整幻灯片文件(.pptx 或 .html)。当用户说「做PPT」「做个PPT」「做汇报材料」「做演示文稿」「生成deck」「生成幻灯片」「整理成幻灯片」「按金蝶模板整理」「make a presentation」「create a slide deck」「output slides」「HTML幻灯片」「交互式演示」「网页版PPT」「web slides」,或上传 .pptx/.docx 要求转化/重排为金蝶风格时,必须使用此Skill。只要涉及PPT、幻灯片、汇报材料、演讲稿输出(PPTX或HTML格式),就应触发。"
license: "MIT"
---
## Preamble (run first)
```bash
_KD_CHECK="kingdee-ppt-update-check"
if ! command -v kingdee-ppt-update-check &>/dev/null; then
_KD_CHECK="$(npm root -g)/kingdee-ppt/bin/kingdee-ppt-update-check"
fi
_UPD=$("$_KD_CHECK" 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
```
If output shows `UPGRADE_AVAILABLE <old> <new>`: inform user "kingdee-ppt **v{new}** is available (you're on v{old}). Run `kingdee-ppt-upgrade` to update." Do NOT auto-upgrade unless user explicitly confirms. Continue with current workflow.
# 金蝶 PPT/HTML 幻灯片生成 Skill v7.2
基于官方金蝶集团 2026 版 PPT 模板,支持 **HTML 交互式演示** 与 **PPTX 可编辑文件** 两种输出。默认先构建 HTML deck,再根据用户选择的输出格式交付或导出。官方背景图和 Logo 内嵌,零配置可用。
> v7.2:新增 HTML 编辑模式 — 右上角开关 + 点击任意文字直接修改 + 一键保存 HTML/PPTX 导出
> 所有组件(stat-card/callout/pillar-card/step-card)自动支持 contenteditable
> v7.1:新增 Bento Motion 风格变体 — Tailwind v4 + GSAP ScrollTrigger,纯白底 + Apple 滚动动效,可选风格切换
> 风格对比:Classic(传统PPT)vs Bento Motion(科技发布)
> v7.0:HTML-first 架构 — 融合 huashu-design 最佳实践,HTML 是第一公民,PPTX 是可选导出
> 新增:html2pptx.js + export_deck_pptx.mjs → 真文本框可编辑 PPTX 导出
> 新增:设计方向顾问(模糊需求时推荐 3 个风格选项)
> 新增:Anti AI-slop 规则(禁紫渐变/emoji图标/Inter字体)
> v6.0:HTML 原子组件系统 — 借鉴 open-design,放弃固定版式编号,采用组件+网格自由组合模式
> v5.0:HTML 输出模式 → 交互式网页幻灯片,键盘导航、触摸滑动、动画效果
---
## HTML 风格选择(v7.1 新增)
**双风格体系**:Classic(默认)与 Bento Motion(可选)
| 维度 | Classic(默认)| Bento Motion(科技感)|
|------|---------------|---------------------|
| **背景** | 冰蓝底/渐变封面 | 纯白 `#FFFFFF` |
| **网格** | 12 份比例系统 | Bento Grid span(1/2/4 列)|
| **字号对比** | 标题 18-28pt / 正文 16pt | Hero 数字 80-160pt / 正文 14pt |
| **动效** | Intersection Observer fade | GSAP ScrollTrigger(Apple 式)|
| **中英文** | 中文为主 | 中文大字粗体 + 英文小字点缀 |
| **图形** | 复杂 SVG/图表 | 勾线简洁图形 |
| **CDN** | 无外部依赖 | Tailwind v4 + GSAP + Font Awesome |
| **PPTX 导出** | **支持**(html2pptx.js)| **不支持**(走 PDF)|
| **适用场景** | 正式汇报、领导层、政府客户 | 产品发布、科技受众、创新展示 |
**触发词**:
- 用户说「Bento风格」「Apple动效」「科技感」「现代感」→ **Bento Motion**
- 内容是科技产品/AI/SaaS/开发者工具 → **推荐 Bento Motion**
- 默认 → **Classic**
---
## 文件读取顺序(v5.1 新增)
```
Phase 0 开始前必须按顺序读取以下文件:
1. design-tokens.md → 设计变量常量(COLORS/COLOR_SEQ/RADIUS/SHADOWS/SPACING/FONT)
2. layout-schema.md → 版式参数命名规范(bgColor/textColor 统一命名)
3. rhythm-templates.md → 节奏模板(页面组合预设 + 场景匹配)
4. style-guide.md → 视觉规范(品牌色/字体/间距)
5. layout-base.md → 通用辅助函数(loadAsset/addLogo/addFooter/addContentTitle/bentoCard)
6. layout-fixed.md → 固定版式(封面/目录/章节/结尾:版式01-03,10)
7. layout-content.md → 内容版式(要点/数据/对比/流程/图文/时间轴:版式04-09)
8. layout-advanced.md → 高级版式(数据看板/Bento/架构/特性/矩阵/金句/沉浸/焦点:版式11-18)
9. layout-models.md → 思维模型版式(金字塔/PDCA/SWOT/黄金圈/5W1H/SCQA/IPD:版式19-25)
10. layout-special.md → 特殊版式(图标行/半出血/悬浮统计/对比栏:版式26-29 + 速查表)
11. pptx-builder.md → 构建流程规范(资源加载/QA清单)
⚠️ design-tokens.md 和 layout-schema.md 是新增文件,必须最先读取。
⚠️ COLOR_SEQ/阴影工厂定义已迁移至 design-tokens.md,禁止在其他文件重复定义。
⚠️ layout-presets.md 已拆分为 6 个子文件(layout-base/fixed/content/advanced/models/special),按需读取。
```
---
## HTML-first 工作流(v7.0)
> **核心理念**:HTML 是第一公民,PPTX 是可选导出。先做能浏览器演讲的 HTML deck,再根据需要导出可编辑 PPTX。
```
──────────────────────────────────────────────────
统一流程(Phase F → 0 → 1 → 2 → H → X)
──────────────────────────────────────────────────
Phase F:输出格式选择(⚠️ 用户未明确指定格式时触发)
F.1 → 使用 AskUserQuestion 询问输出格式:
· HTML 交互式演示 — 浏览器演讲、支持动画、可部署 Vercel、可导出 PDF
· PPTX 可编辑文件 — 传统 PowerPoint、可二次编辑、离线演示
F.2 → 若选 HTML → 记住 OUTPUT_FORMAT=html,进入 Phase 0
F.3 → 若选 PPTX → 记住 OUTPUT_FORMAT=pptx,进入 Phase 0
后续 Phase H 须严格遵守 html2pptx.js 4 条硬约束,完成后自动进入 Phase X
F.4 → 用户已明确说「HTML」「网页版」「PPTX」「可编辑PPT」「PowerPoint」→ 跳过此阶段,直接赋值 OUTPUT_FORMAT
Phase 0:内容结构分析(核心引擎)
0.1 → 读取用户内容(文字/大纲/文档)
0.2 → 逐页分析内容特征(要点数量、层级关系、对比关系、数据图表)
0.3 → 匹配思维模型信号(PDCA/SWOT/黄金圈等高置信信号)
0.4 → 推荐最适合版式(每页单独分析,不套场景模板)
0.5 → AI品牌Logo识别(如有AI品牌关键词)
Phase 0.5:设计方向顾问(⚠️ 仅当需求模糊时触发)
0.5.1 → 若用户需求模糊(如"做个PPT介绍我们的产品"),触发顾问模式
0.5.2 → 从 3 种金蝶风格方向推荐选项:
· 风格 A:沉稳专业(深藏青 + 数据卡片 + 金字塔)
· 风格 B:活力创新(品青渐变 + Bento Grid + 时间轴)
· 风格 C:简洁克制(白底 + 要点列表 + 对比栏)
0.5.3 → 用户选择后,进入 Phase 1
Phase 1:大纲+版式推荐
1.1 → 输出大纲,每页标注推荐版式+推荐理由
1.2 → 用户确认/调整版式 → 如需调整,标注新版式
Phase 2:内容脚本
2.1 → 输出内容脚本(含排版指令)
2.2 → 用户确认 → 进入 HTML 生成
Phase H:HTML 生成(v7.0 核心输出)
┌─ H.0 风格选择(新增 v7.1)
│ ├─ 用户说「Bento风格」「Apple动效」「科技感」「现代感」→ 跳转 Phase H.Bento
│ ├─ 内容是科技产品/AI/SaaS/开发者工具 → 推荐 Bento Motion,问用户确认
│ └─ 默认 → Classic 风格(现有流程)
│
┌─ Phase H.Classic(默认流程)
│ H.0 → Read `html-kingdee-preflight.md` → 预检清单
│ H.1 → Read `html-kingdee-template.md` → HTML 结构 + JS 功能
│ H.2 → Read `html-kingdee-style.md` → CSS 品牌色 + 响应式
│ H.3 → Read `html-kingdee-components.md` → 原子组件
│ H.4 → Read `html-kingdee-grids.md` → 网格比例系统
│ H.5 → Read `html-kingdee-typography.md` → 字体配对
│ H.6 → Read `html-kingdee-presets.md` → CSS 版式预设(按需)
│ H.7 → 生成多文件 HTML deck(index.html + slides/*.html)
│ ⚠️ OUTPUT_FORMAT=pptx 时,必须严格遵守 html2pptx.js 4 条硬约束
│ ⚠️ OUTPUT_FORMAT=html 时,可正常使用动画、渐变、背景图
│ H.8 → 浏览器预览 → 用户确认
│ H.9 → 若 OUTPUT_FORMAT=html → 交付 HTML
│ 若 OUTPUT_FORMAT=pptx → 进入 Phase X
│
└─ Phase H.Bento(Bento Motion 风格,v7.1 新增)
H.B0 → Read `html-bento-template.md` → Tailwind v4 + GSAP CDN 骨架
H.B1 → Read `html-bento-components.md` → Bento Grid 卡片 + 勾线图形
H.B2 → Read `html-bento-presets.md` → 10 种 Bento 版式预设
H.B3 → Read `html-bento-motion.md` → GSAP ScrollTrigger 动效库
H.B4 → 生成单文件 HTML deck(全页滚动 + scroll-triggered 动效)
⚠️ Bento Motion 不支持 PPTX 导出(使用 CDN + Tailwind)
⚠️ 若 OUTPUT_FORMAT=pptx → 拒绝并建议改用 Classic 风格
H.B5 → 浏览器预览 → 用户确认 → 交付 HTML
Phase X:PPTX 导出(⚠️ 仅当 OUTPUT_FORMAT=pptx 时执行)
X.1 → 检查 HTML 是否已按 html2pptx.js 4 条硬约束生成
X.2 → 若合规 → 执行 export_deck_pptx.mjs
X.3 → 若未合规 → 列出具体错误项,建议修改 HTML 或改用 PDF
X.4 → 输出 .pptx 文件 → 交付
──────────────────────────────────────────────────
html2pptx.js 4 条硬约束(PPTX 导出必需)
──────────────────────────────────────────────────
1. body 固定 960pt × 540pt(匹配 LAYOUT_WIDE 13.333" × 7.5")
2. 所有文字包在 <p>/<h1>-<h6>/<ul>/<ol> 里(禁止裸文本 div)
3. <p>/<h*> 标签自身不能有 background/border/shadow(放外层 div)
4. 不用 CSS gradient、不用 background-image(用 <img> 标签)
⚠️ 不遵守以上约束的 HTML 无法导出 PPTX,只能交付 HTML 或 PDF。
```
---
## Phase 0:内容结构分析引擎(版式匹配核心)
### 0.1 内容特征信号识别
**逐页/逐段分析以下信号,决定版式:**
| 内容特征 | 匹配版式 | 信号关键词/结构 |
|---------|---------|----------------|
| **单一核心结论 + 3个分论点** | 金字塔版式(19) | "结论先行"、"三大支柱"、1+N层级结构 |
| **4格循环结构** | PDCA版式(20) | 计划/执行/检查/改进、Plan/Do/Check/Act |
| **2×2矩阵对比** | SWOT版式(21) | 优势/劣势/机会/威胁、内外部维度对比 |
| **三层嵌套逻辑** | 黄金圈版式(22) | WHY/HOW/WHAT、核心使命→方法→产品 |
| **6要素均匀分布** | 5W1H版式(23) | Who/When/What/Where/Why/How ≥4项 |
| **4步因果链** | SCQA版式(24) | 场景→冲突→问题→解决 |
| **5列趋势分析** | IPD五看版式(25) | 看行业/看客户/看机会/看竞争/看自己 |
| **2-3个数据指标展示** | 数据卡片(05) | 百分比、增长率、数值对比 |
| **时间线/里程碑** | 时间轴(09) | Q1→Q2→Q3→Q4、里程碑、阶段推进 |
| **左右对比/方案对比** | 对比栏(29) | 方案A vs 方案B、优缺点对比 |
| **图标+要点列表** | 图标行(26) | 3-5个要点,每要点有图标对应 |
| **大数字+统计展示** | 悬浮统计(28) | 单个大数字强调、统计卡片组合 |
| **纯文字要点 ≤5条** | 要点列表(04) | 简洁要点列表,无特殊结构 |
| **架构图/层级关系** | 架构图(13) | 层级结构、模块关系、技术架构 |
| **单张大图+少量文字** | 半出血叠加(27) | 图片为主,文字叠加在图上 |
### 0.2 版式匹配优先级规则
```
优先级1:思维模型信号明确 → 直接使用模型版式(置信度高)
优先级2:数据/图表信号 → 数据卡片、统计版式
优先级3:对比/时间结构 → 对比栏、时间轴
优先级4:纯要点列表 → 要点列表版式(兜底)
```
**同一PPT版式多样性规则:**
- 相邻3页不得使用同一版式
- 纯文字要点页不得连续超过2页
- 每页至少包含一种视觉元素(图标、数字、色块、图片)
### 场景 → 默认结构偏好
| 场景 | 自动包含页面 | 首选版式组合 |
|------|------------|------------|
| 内部汇报 | 仅内容页 | 要点列表 + 数据卡片 + 时间轴 |
| 伙伴赋能 | 封面 + 内容 + 结尾 | 架构示意 + 流程图 + 对比页 |
| 客户大会 | 全结构(封面/目录/章节/内容/结尾) | 数据卡片 + 图文并排 + 章节页 + 思维模型 |
| 方案提案 | 封面 + 目录 + 内容 | 对比页 + 流程图 + 数据卡片 + PDCA/SWOT |
> ⚠️ 场景偏好作为**默认建议**,用户明确指定结构时按用户要求执行。
### 0.3 版式推荐输出格式
在大纲阶段输出每页推荐版式及理由:
```
第 05 页 推荐版式:[数据卡片05] 理由:包含3个百分比指标,适合卡片展示
第 07 页 推荐版式:[PDCA循环20] 理由:明确出现"计划→执行→检查→改进"四步结构
第 09 页 推荐版式:[对比栏29] 理由:方案A与方案B对比,左右对比布局最优
```
---
### 0.5 AI 品牌 Logo 识别(lobe-icons 自动嵌入)
> 在完成 Phase 0 内容结构分析后、进入 Phase 1 前,**扫描全文识别 AI 品牌/平台/模型关键词**,并在内容脚本阶段为对应页面标注 logo 嵌入指令。
>
> ⚠️ 映射表在 `references/ai-brand-logos.md`,仅当检测到 AI 品牌关键词时才读取该文件。
---
### 0.5.1 扫描触发条件
满足以下任意一条即触发扫描(并读取 `references/ai-brand-logos.md`):
- 内容中出现 **AI 品牌名称**(如 DeepSeek、通义千问、华为云等)
- 内容中出现 **大模型/AI 平台描述**(如"接入 GPT-4"、"调用文心一言"、"基于 Claude")
- 场景为「伙伴赋能」「客户大会」「方案提案」且内容涉及技术合作/生态展示
---
### 0.5.2 品牌识别映射表
> 📄 完整映射表见 `references/ai-brand-logos.md`,以下为常用示例:
| 常见品牌 | lobe-icons Slug | 彩色版 |
|---------|-----------------|--------|
| OpenAI / GPT | `openai` | 无 |
| Claude / Anthropic | `claude` | `claude-color` ✅ |
| DeepSeek | `deepseek` | `deepseek-color` ✅ |
| 华为云 / 盘古 | `huaweicloud` | `huaweicloud-color` ✅ |
| 阿里云 / 通义 | `alibabacloud` | `alibabacloud-color` ✅ |
| 文心一言 / 百度 | `wenxin` | `wenxin-color` ✅ |
| MCP 协议 | `mcp` | 无 |
> **CDN 地址**:npmmirror(首选)`https://registry.npmmirror.com/@lobehub/icons-static-svg/latest/files/icons/{slug}.svg`
---
### 0.5.3 识别结果输出(在大纲阶段标注)
在大纲每页末尾新增 `[logo: slug1, slug2]` 标注:
```
第 05 页 [内容-Bento卡片] AI生态合作伙伴 [logo: huawei, alibaba, bytedance]
第 07 页 [内容-要点列表] 多模型接入方案 [logo: openai, claude, deepseek]
第 09 页 [内容-对比页] 模型能力对比 [logo: qwen, wenxin]
```
---
### 0.5.4 Logo 排版规则
| 场景 | 排版方式 | 尺寸 |
|------|---------|------|
| Bento 卡片页(每张卡片对应一个品牌) | 卡片左上角 logo 图标 + 右侧文字 | 0.45" × 0.45" |
| 合作伙伴展示页(横排 logo 墙) | 底部横排均匀分布,灰色浅底衬托 | 0.5" × 0.5" |
| 要点列表页(行首品牌标识) | 行首 logo 替代项目符号 | 0.3" × 0.3" |
| 技术架构图(标注组件来源) | 色块旁边紧贴放置 | 0.35" × 0.35" |
| 封面/章节页 | ❌ 不放 lobe-icons(避免喧宾夺主) | — |
**颜色处理规则:**
- 深色(主蓝/品青)背景卡片 → 使用 `{slug}-color.png` 彩色版,或白色单色版
- 浅色/白色背景 → 使用 `{slug}.svg` 原色版
- PNG fallback 路径:`https://registry.npmmirror.com/@lobehub/icons-static-png/latest/files/icons/{slug}.png`
---
### 0.5.5 内容脚本中的 Logo 标注格式
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【第 X 页】版式:[内容-Bento卡片]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
标题:苍穹生态AI伙伴矩阵
卡片列表:
卡片1 [logo: huawei] 华为云
· 盘古大模型 + CodeArts IDE
· 联合开发者竞赛合作方
卡片2 [logo: alibaba] 阿里云
· 通义千问接入苍穹
· 云市场联合运营
卡片3 [logo: deepseek] DeepSeek
· 企业级私有化部署方案
· 财务场景专属模型微调
排版指令:3列等宽卡片,每卡左上角嵌入logo(0.45"),logo下方品牌名12pt灰色
图片:无(全部用lobe-icons)
```
---
### 0.5.6 执行限制与降级处理
| 情况 | 处理方式 |
|------|---------|
| Slug 在映射表中找不到 | 跳过 logo,使用 emoji 替代(如 🤖),不报错 |
| CDN 拉取失败(网络超时) | 自动切换备用 CDN;仍失败则跳过,大纲保留标注 |
| SVG 转 PNG 失败 | 直接用 PNG CDN 地址拉取 fallback |
| 单页 logo 数量 > 6 个 | 合并为「logo 墙」版式,底部横排,文字移至标题区 |
| 用户说「不要 logo」/「不要图标」 | 跳过整个 0.5 阶段,不执行任何 lobe-icons 拉取 |
---
## Phase 1:大纲+版式推荐
### 1.1 输出大纲(每页标注推荐版式+推荐理由)
输出完整大纲,**每页版式字段须标注推荐理由**:
```
──────────────────────────────────────────────────
金蝶PPT大纲 · [主题] · 共 X 页
版式分析:[PDCA × 1页 | 数据卡片 × 2页 | 要点列表 × N页]
──────────────────────────────────────────────────
第 01 页 [封面页] 主标题 / 副标题 / 日期
第 02 页 [目录页] 4个章节导览
第 03 页 [章节分隔 01] 章节名 / 副标题
第 04 页 [SWOT矩阵版式21] 页面标题 理由:明确出现优势/劣势/机会/威胁四要素
第 05 页 [数据卡片05] 页面标题 理由:包含3个百分比指标,适合卡片展示
第 06 页 [章节分隔 02] 章节名
第 07 页 [PDCA循环版式20] 页面标题 理由:计划→执行→检查→改进四步结构
第 08 页 [要点列表04] 页面标题 理由:5条简洁要点,无特殊结构
...
第 XX 页 [结尾页] 多语言致谢
──────────────────────────────────────────────────
```
### 1.2 用户确认/调整版式
使用 `ask_user_input` 提问:
```
问题 标题:"大纲确认" 类型:single_select
选项: 没问题,开始写内容 / 需要调整版式
```
- 选「没问题」→ 进入 Phase 2
- 选「调整版式」→ 用户指定页码和新版式,更新大纲
---
## Phase 2:内容脚本
### 2.1 输出内容脚本
思维模型页须额外注明模型结构,格式如下:
**思维模型页脚本格式:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【第 X 页】版式:[PDCA循环版式]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
标题:2025年度项目复盘
模型结构:
P(计划):年初制定的三大目标
D(执行):实际落地情况,完成率80%
C(检查):发现效率瓶颈在交付环节
A(改进):2026年引入自动化流程
排版指令:4格循环色块(顺时针),中央↻符号
图片:无
```
**IPD五看页脚本格式:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【第 X 页】版式:[IPD五看版式]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
标题:市场全景分析
模型结构:
看行业:企业数字化加速,AI原生应用渗透率 <10%
看客户:核心诉求从降本转向增效,愿为Agent买单
看机会:Skill生态市场规模预计 2026年达2亿
看竞争:友商缺乏元数据治理,在AI准确性上有短板
看自己:苍穹PaaS底座扎实,ISV生态已达2800+
排版指令:5列等宽卡片横排,奇偶列顶部交替主蓝/品青,内容区浅灰蓝底
图片:无
```
**标准内容页脚本格式:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【第 X 页】版式:[内容-要点列表]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
标题:xxxxxx
正文内容:
• 普通要点(≤30字,18pt普通)
• ★ 重点要点(≤30字,加粗+蓝色/金色强调)
• 普通要点
图片:无 / 图片N → 位置:左侧 / 右侧 / 全页
排版建议:[三列卡片 / 横向流程 / 左右对比 / 纯要点]
```
**层级标注规则:**
- `★` = 重点强调(20pt 加粗,蓝色 `2971EB` 或黄色 `FFB61A`)
- 无标记 = 普通内容(18pt 普通,1.3× 行距)
- `[底色块]` = 思维模型一级信息(品牌色背景 + 白字加粗)
- `[icon:📊]` = 指定图标(写在卡片/格子标注行,生成时调 `addIconBadge` 或直接 `addText`)
**图标使用规则(内容脚本阶段):**
1. **思维模型页** — 每格默认带图标(见 `style-guide.md § 10.4`),脚本中可用 `[icon:默认]` 表示采用推荐值,或 `[icon:🎯]` 覆盖
2. **Bento 卡片页** — 主卡(深色背景)配大图标(28–32pt),次卡(浅色)配中图标(24pt)
3. **要点列表页** — 行首图标尽量统一(同一页不超过 2 种图标),或全部不用图标
4. **图标密度上限** — 单页最多 6 个图标;同一页不得出现 3 种以上图标类别(避免视觉噪声)
5. **颜色规则** — 深色背景格(主蓝/品青)→ 图标 `color: FFFFFF`;浅色底 → 图标 `color: 2971EB`
**内容原则:**
- 每页 ≤5 个要点,单条 ≤30 字;超出则拆页
- 思维模型页每个格 ≤3 个要点,核心词 ≤6 字加粗置中
- 内容不超过版面 70%,留白 ≥ 30%(参见 `style-guide.md § 12`)
- 品牌色背景上的文字必须用白色
- 语调简洁有力,企业高管演讲调性
**布局多样性规则(必须执行):**
- 相邻 3 页不得使用同一版式——每页轮换:列数、卡片/统计/图片/文字型
- 纯文字要点页(版式04)不得连续出现超过 2 次——之后必须插入有视觉元素的版式
- 每页必须包含至少一种视觉元素(图标、数字统计、图片、色块、图表之一)
**对齐规则:**
- 段落文字、要点列表 → 左对齐
- 封面/金句页标题 → 居中;内容页标题 → 左对齐
- 禁止内容页标题下方添加强调线(章节分隔页品牌横线除外)
**间距规则(全张统一):**
- 页面左右最小边距:0.5"
- 内容块之间间距:选 0.3" 或 0.5" 并全张保持一致,不混用
### 2.2 用户确认
> 「以上是全部 X 页的内容脚本,其中包含 [N] 个思维模型版式页([模型名称列表])。如需修改,告诉我页码和修改内容,我统一调整后再生成文件。没有问题请回复「开始生成」。」
收到「开始生成」→ 进入 2.3 生成文件。
---
### 2.3 生成文件
**第一步:读取生成阶段必需文件**
```
Read `layout-presets.md` → 获取版式代码模板
Read `pptx-builder.md` → 获取构建流程规范
If AI品牌logo标注存在 → Read `references/ai-brand-logos.md`
```
**第二步:执行构建流程**
```
编写 /home/claude/build_pptx.js
↓
node build_pptx.js
↓
soffice PDF → pdftoppm 预览图
↓
视觉 QA(逐张检查,至少一次修复循环)
↓
cp output.pptx /mnt/user-data/outputs/
↓
present_files 交付
```
交付说明控制在 2 行以内:「共 X 页,包含[封面/章节/内容/结尾],其中 [N] 页采用思维模型版式([模型列表]),已通过视觉QA。」
---
## 6种思维模型版式规范
> ⚠️ **完整 PptxGenJS 代码见 `layout-presets.md § 版式 19-25`**,下方仅列排版原则和色块结构,供内容脚本阶段参照。
---
### 模型 A:金字塔 / MECE 版式(→ 版式 19)
**结构**:顶部结论 → 中层分论点 → 底层论据(三级分层)
```
┌────────────────────────────────┐ ← 主蓝 #2971EB,白字,结论一句话(全宽 1/4页高)
│ 核心结论 │
└────────────────────────────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐ ← 黄色 #FFB61A,白字,分论点(三列等宽)
│ 分论点1 │ │ 分论点2 │ │ 分论点3 │
└──────────┘ └──────────┘ └──────────┘
· 论据1 · 论据1 · 论据1 ← 浅灰蓝底 #E7F1FF,深色小字
```
**品牌色**:结论=主蓝`#2971EB` / 分论点=黄色`#FFB61A` / 论据=浅灰蓝`#E7F1FF`
---
### 模型 B:PDCA 循环版式(→ 版式 20)
**结构**:4格顺时针排布,中央循环符号
```
┌────────┐ ┌────────┐
│ P 计划 │ → │ D 执行 │
└────────┘ └────────┘
↑ ↻ ↓
┌────────┐ ┌────────┐
│ A 改进 │ ← │ C 检查 │
└────────┘ └────────┘
```
**品牌色**:P=主蓝`#2971EB` / D=品青`#22AAFE` / C=黄色`#FFB61A` / A=紫色`#966EFF`
---
### 模型 C:SWOT 矩阵版式(→ 版式 21)
**结构**:2×2 矩阵,横纵轴标注内外/优劣维度
```
内部因素 外部因素
优势/机会 ┌──────────────────┐ ┌──────────────────┐
│ S 优势 │ │ O 机会 │
└──────────────────┘ └──────────────────┘
劣势/威胁 ┌──────────────────┐ ┌──────────────────┐
│ W 劣势 │ │ T 威胁 │
└──────────────────┘ └──────────────────┘
```
**品牌色**:S=主蓝`#2971EB` / O=蓝绿`#05C8C8` / W=浅灰蓝`#E7F1FF`(深字) / T=紫色`#966EFF`
---
### 模型 D:黄金圈版式(→ 版式 22)
**结构**:三层嵌套椭圆(WHY→HOW→WHAT 由内到外)+ 右侧说明列
```
左侧(椭圆嵌套): 右侧(说明列):
┌─── WHAT 浅灰 ───────────┐ [WHY蓝] WHY — 为什么做:核心使命
│ ┌─── HOW 品青 ───┐ │ [HOW青] HOW — 怎么做:方法路径
│ │ ┌─ WHY 蓝 ─┐ │ │ [WHAT灰] WHAT — 做什么:产品服务
│ │ └──────────┘ │ │
│ └───────────────┘ │
└─────────────────────────┘
```
**品牌色**:WHY内核=主蓝`#2971EB` / HOW中层=品青`#22AAFE` / WHAT外层=浅灰蓝`#E7F1FF`
---
### 模型 E:5W1H 六格版式(→ 版式 23)
**结构**:2行×3列均等卡片,顶部蓝色标签 + 内容区
```
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ WHO 谁 │ │ WHAT 什么 │ │ WHEN 何时 │
├──────────────┤ ├──────────────┤ ├──────────────┤
│ · 内容要点 │ │ · 内容要点 │ │ · 内容要点 │
└──────────────┘ └──────────────┘ └──────────────┘
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ WHERE 何地 │ │ WHY 为何 │ │ HOW 如何 │
├──────────────┤ ├──────────────┤ ├──────────────┤
│ · 内容要点 │ │ · 内容要点 │ │ · 内容要点 │
└──────────────┘ └──────────────┘ └──────────────┘
```
**品牌色**:卡片顶部标签=主蓝`#2971EB`白字 / 内容区=浅灰蓝`#E7F1FF`深字
---
### 模型 F:SCQA 四步流程版式(→ 版式 24)
**结构**:四步横向箭头流 + 底部内容说明行
```
[S 场景] → [C 冲突] → [Q 问题] → [A 解决]
浅灰底 品金底 紫色底 主蓝底
↓ ↓ ↓ ↓
说明文字 说明文字 说明文字 说明文字
```
**品牌色**:S=浅灰蓝`#E7F1FF`(深字) / C=黄色`#FFB61A` / Q=紫色`#966EFF` / A=主蓝`#2971EB`
---
### 模型 G:IPD 五看版式(→ 版式 25)【新增】
**结构**:5列等宽卡片横排,顶部序号色块 + 内容区
```
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ 01 │ │ 02 │ │ 03 │ │ 04 │ │ 05 │
│看行业│ │看客户│ │看机会│ │看竞争│ │看自己│
├──────┤ ├──────┤ ├──────┤ ├──────┤ ├──────┤
│核心 │ │核心 │ │核心 │ │核心 │ │核心 │
│观点 │ │观点 │ │观点 │ │观点 │ │观点 │
│ │ │ │ │ │ │ │ │ │
│支撑 │ │支撑 │ │支撑 │ │支撑 │ │支撑 │
│数据 │ │数据 │ │数据 │ │数据 │ │数据 │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘
```
**品牌色**:奇数列顶块=主蓝`#2971EB` / 偶数列顶块=品青`#22AAFE` / 内容区=浅灰蓝`#E7F1FF`
**脚本格式:**
```
模型结构:
看行业:[核心观点] + [支撑数据/趋势]
看客户:[核心观点] + [典型诉求/洞察]
看机会:[核心观点] + [市场规模/增速]
看竞争:[核心观点] + [竞品/差异化]
看自己:[核心观点] + [优势/短板]
排版指令:5列等宽,顶部序号+标题色块(交替主蓝/品青),内容区浅灰蓝底
```
---
## 品牌色语义映射总表
> ⚠️ 严格约束:PPT 中**只允许使用以下颜色**,禁止使用任何不在此列表中的颜色(尤其禁止红色 `#E8210A`)。
### 主色系
| 品牌色 | 色值 | 思维模型中的语义角色 |
|--------|------|---------------------|
| 科技蓝(主蓝) | `#2971EB` | 核心结论 / 首要模块 / WHY / Plan / Strengths / Answer |
| 亮天蓝(品青) | `#22AAFE` | 执行流程 / 方法层 / HOW / Do / 次级信息 |
| 章节青 | `#00CCFE` | 章节页超大数字 + 装饰横线(专用,不用于内容页) |
| 深紫蓝(藏青) | `#28245F` | 强对比文字块 / 深色强调 / 图表深色底 |
| 白色 | `#FFFFFF` | 所有深色背景上的文字 |
### 辅助色系
| 品牌色 | 色值 | 思维模型中的语义角色 |
|--------|------|---------------------|
| 绿松石青 | `#05C8C8` | 增长正面 / 机会 / Opportunities |
| 薰衣草紫 | `#966EFF` | 挑战冲突 / 威胁风险 / Act改进 / Question / Threats / Complication |
| 橙黄 | `#FFB61A` | 强调要素 / 改进提示 / WHAT / Check / 警示信息 |
| 深灰 | `#373838` | 正文文字 / 浅色背景上的标注 |
| 浅灰 | `#BFBFBF` | 辅助说明文字 / 次级标注 / 分割线 / 边框 |
| 冰蓝 | `#E7F1FF` | 二级信息底色 / 论据区 / Weaknesses / Situation / 卡片背景 |
### 颜色禁止清单
| 禁止颜色 | 原因 |
|---------|------|
| ❌ 红色 `#E8210A` | 不在官方色盘中;章节页装饰横线必须用 `#00CCFE`,禁止用红色 |
| ❌ 旧主蓝 `#1770EA` | 已替换为官方科技蓝 `#2971EB` |
| ❌ 旧品金 `#FFC000` / `#FFB800` | 已统一为官方橙黄 `#FFB61A` |
| ❌ 任何不在上表中的颜色 | 破坏品牌一致性 |
---
## Anti AI-slop 规则(禁止事项)
> 防止生成内容落入AI模板通病,确保输出符合金蝶企业级标准。
| 问题 | ❌ 禁止 | ✅ 正确做法 |
|-----|------|---------|
| 过度渐变 | 全页渐变背景、彩虹配色 | 金蝶标准背景图或品牌色系 |
| 空洞图标 | generic 灯泡/齿轮/火箭图标 | 金蝶品牌图标或无图标纯文字 |
| 英文套话 | "Think Big" "Innovation" "Future" | 金蝶价值观:致良知、走正道、行王道 |
| 无意义装饰 | 抽象波浪、点阵、几何图形 | 只用官方气泡圆元素 |
| 章节编号滥用 | 01/02/03/04 但无章节内容 | 有实质章节才用章节分隔页 |
| 段落过长 | 单条要点超过50字 | ≤30字,每页≤5要点 |
| 数据空洞 | "显著提升""大幅增长"无数字 | 必须有具体数字或明确来源 |
| 堆砌热词 | AI Agent、大模型、数字化转型滥用 | 每页最多1个技术热词,配具体场景 |
| 假性对比 | 新旧对比但无差异描述 | 左右对比页必须列出≥3个差异点 |
| 时间轴空洞 | 只有年份无事件描述 | 每个时间点必须有事件+影响 |
---
## 金蝶品牌知识库
| 类别 | 内容 |
|------|------|
| 使命 | 予力企业成就不凡 |
| 愿景 | 做最值得托付的企业管理AI平台 |
| 价值观 | 致良知、走正道、行王道 |
| 金蝶哲学 | 以客户为中心,长期坚持专业主义;以奋斗者为本,长期坚持明心净心 |
| 四部曲 | 明心净心(起心动念/境界格局)→ 道 → 德(意识/语言/身行)→ 事(结果状况) |
| IPD五看 | 看行业 / 看客户 / 看机会 / 看竞争 / 看自己(每项:核心观点 + 支撑数据) |
| 项目层级 | 项目总监 → 项目经理 → 组长(含关键职责)→ 组员 |
| IT架构分层 | SaaS层 / PaaS层 / IaaS层 |
| 保密级别 | ④ 内部公开 请勿外传 |
---
## 常见情况处理
| 情况 | 处理方式 |
|------|---------|
| 用户未指定输出格式 | 触发 Phase F,询问 HTML vs PPTX,选择后再进入 Phase 0 |
| 用户直接提供完整内容 | 若格式已明确,直接进入 Phase 0 内容分析;否则先走 Phase F |
| 用户需求模糊(如"做个PPT介绍产品") | 先触发 Phase F 选格式,再触发 Phase 0.5 设计方向顾问 |
| 用户明确指定模型 | 跳过 Phase 0 扫描,直接采用指定模型版式 |
| 用户说「不要思维模型」 | Phase 0 结果全部忽略,按标准版式处理 |
| 用户说「直接生成」/「不用确认」 | 若格式未明确,先触发 Phase F;然后快速模式:Phase 0+1+2+H 合并输出,末尾一个确认问题 |
| 用户只要内容脚本不要文件 | 完成 Phase 2 后停止 |
| 用户说「不要封面/结尾」 | 记住偏好,大纲中删除对应页 |
| 章节超过4个 | 建议合并或设附录,目录页最多4章 |
| 单页内容过多 | 拆为2页,用承接标题「(一)」「(二)」 |
| 检测到4种以上模型 | 保留主要3种,其余降级为标准版式,大纲中注明 |
| 用户上传已有 .pptx | 提取内容后重排为金蝶风格 HTML deck |
| 用户提供数据要求图表 | 收集数据后在 HTML 中用 CSS/Canvas 绘制,PPTX 导出时转为图片 |
| 内容含 AI 品牌/大模型关键词 | 大纲标注 `[logo: slug]`,HTML 中用 lobe-icons SVG |
| 用户说「不要 logo」 | 跳过 logo 拂取,不调用 CDN |
| 用户中途要求切换输出格式 | 若未进入 Phase H,回退到 Phase F 重新选择;若已进入 Phase H,评估调整成本 |
| **OUTPUT_FORMAT=pptx 且用户要求导出 PPTX** | 进入 Phase X,执行 `scripts/export_deck_pptx.mjs` |
| **用户说「可编辑PPTX」/「要PPT文件」** | 设置 OUTPUT_FORMAT=pptx,Phase H 必须按 html2pptx 4 条硬约束执行 |
| **html2pptx 导出失败** | 提示 HTML 不合规,列出具体错误,建议修改 HTML 或输出 PDF |
| **OUTPUT_FORMAT=html 且用户只要 HTML** | 交付 HTML deck,可浏览器演讲或部署 Vercel,跳过 Phase X |
| **用户要 PDF** | 用 Playwright 截图合并导出 PDF(⚠️ 动画丢失),不依赖 OUTPUT_FORMAT |
| **用户说「编辑好了」/「保存修改」** | 提示用户在 HTML 页面点击「保存 HTML」按钮导出 |
| **用户编辑后要导出 PPTX** | 提示保存 HTML → 运行 CLI 命令 `node scripts/export_deck_pptx.mjs` |
| **用户说「不要编辑功能」** | HTML 中移除 EditController 和编辑工具栏 UI |
---
## HTML 输出详细规范(v7.0)
> HTML 是第一公民,PPTX 是可选导出。本节规范 HTML deck 的生成和导出。
### HTML 输出特点
| 特点 | 说明 |
|------|------|
| **单文件** | 全部 CSS/JS 内联,零依赖,可直接浏览器打开 |
| **交互式** | 键盘导航、触摸滑动、动画效果、进度条、导航点 |
| **响应式** | `clamp()` 字号自适应,移动端/投影仪完美适配 |
| **品牌一致** | 与 PPTX 共用相同的品牌色系、版式逻辑、内容密度规范 |
| **可分享** | 支持 Vercel 一键部署(在线 URL)、Playwright PDF 导出 |
---
### Phase H3:HTML 生成流程
**第一步:读取必需文件**
```
Read `html-kingdee-template.md` → HTML 结构 + SlidePresentation 类 + 动画触发
Read `html-kingdee-style.md` → CSS 自定义属性 + 视口锁定 + 响应式断点
Read `html-kingdee-presets.md` → 按需加载版式 CSS(只复制使用的版式)
If AI品牌logo标注存在 → 使用 lobe-icons CDN SVG
```
**第二步:生成 HTML 文件**
```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{演示标题} | 金蝶</title>
<style>
/* 1. CSS 自定义属性(品牌色系) */
/* 2. 视口锁定基础样式 */
/* 3. 响应式断点 */
/* 4. 动画与过渡 */
/* 5. 卡片通用样式 */
/* 6. 品牌色语义映射 */
/* 7. 版式 CSS 类(按需加载) */
</style>
</head>
<body>
<div class="progress-bar"></div>
<div class="nav-dots"></div>
<!-- 幻灯片内容 -->
<script>
/* SlidePresentation 类 */
/* Intersection Observer */
/* 键盘/触摸/滚轮导航 */
</script>
</body>
</html>
```
**第三步:浏览器预览**
```
写入 {主题}.html 文件
↓
本地 HTTP 服务预览(可选)
↓
用户确认 → 交付文件 / 部署 URL
```
---
### HTML 版式类名对照表
| PPTX 版式编号 | HTML CSS 类名 | 结构示例 |
|--------------|---------------|---------|
| 01 封面页 | `.slide-cover` | `<section class="slide slide-cover">` |
| 02 目录页 | `.slide-toc` | `<section class="slide slide-toc">` |
| 03 章节分隔 | `.slide-section` | `<section class="slide slide-section">` |
| 04 要点列表 | `.slide-bullets` | `<section class="slide slide-bullets">` |
| 05 数据卡片 | `.slide-data-cards` | `.data-card-grid` + `.data-card` |
| 11 数据看板 | `.slide-dashboard` | `.dashboard-grid` + `.dashboard-card` |
| 12 Bento Grid | `.slide-bento` | `.bento-grid` + `.bento-main` + `.bento-card` |
| 19 金字塔 | `.slide-pyramid` | `.pyramid-wrapper` + `.pyramid-top/.middle/.bottom` |
| 20 PDCA | `.slide-pdca` | `.pdca-grid` + `.pdca-cell` + `.color-plan/.do/.check/.act` |
| 21 SWOT | `.slide-swot` | `.swot-grid` + `.swot-cell` + `.color-strength/.weakness/.opportunity/.threat` |
| 22 黄金圈 | `.slide-golden` | `.golden-wrapper` + `.golden-circles` + `.golden-explain` |
| 25 IPD五看 | `.slide-ipd` | `.ipd-grid` + `.ipd-card` + `.color-view-1/2/3/4/5` |
| 16 金句 | `.slide-quote` | `<section class="slide slide-quote">` |
| 28 悬浮统计 | `.slide-floating-stats` | `.floating-grid` + `.floating-stat` |
---
### HTML 导航功能
| 操作 | 触发方式 |
|------|---------|
| 上一页 | `←` / `↑` / `PageUp` |
| 下一页 | `→` / `↓` / `PageDown` / `Space` |
| 首页 | `Home` |
| 结尾 | `End` |
| 左滑(移动端) | 下一页 |
| 右滑(移动端) | 上一页 |
| 鼠标滚轮 | 下一页/上一页(300ms 防抖) |
---
### HTML 内容密度规范(与 PPTX 一致)
| 幻灯片类型 | 最大内容 | 版面占比上限 |
|-----------|---------|------------|
| 标题页(封面) | 1 标题 + 1 副标题 + 元信息 | 50% |
| 内容页 | 1 标题 + 4–6 要点 | 70% |
| 特征网格 | 1 标题 + 最多 6 张卡片 | 80% |
| 数据看板 | 3 个数字卡片 | 75% |
```css
/* CSS 强制留白 */
.slide-content {
padding: clamp(0.3rem, 1vw, 0.5rem);
}
.text-block {
max-width: min(80vw, 800px);
}
```
---
### HTML 图标使用(Emoji)
与 PPTX 版一致,使用 Microsoft YaHei 字体渲染 emoji:
```html
<span class="icon">📊</span> <!-- 数据看板 -->
<span class="icon">⚡</span> <!-- 快速响应 -->
<span class="icon">🤖</span> <!-- AI/智能体 -->
<span class="icon">🚀</span> <!-- 起飞/增长 -->
```
---
### HTML 分享与导出(可选)
**本地预览**
```bash
python3 -m http.server 8080 --directory .
# 或
npx serve .
```
**Vercel 部署**
```bash
vercel --prod
# 输出在线 URL,可分享给他人
```
**PDF 导出(⚠️ 动画效果丢失)**
```bash
# 使用 Playwright 以 1920×1080 分辨率截图并合并
node scripts/export-pdf.js {主题}.html output.pdf
```
---
### 常见情况处理(HTML 模式)
| 情况 | 处理方式 |
|------|---------|
| 用户说「HTML幻灯片」/「网页版PPT」/「交互式演示」 | 自动选择 HTML 输出格式 |
| 用户说「传统PPT」/「PPTX文件」 | 选择 PPTX 输出格式 |
| 用户明确指定输出格式 | 按用户指定执行 |
| 用户说「不要动画」 | HTML 中移除 `.animate-*` 类,跳过动画触发 |
| 用户说「不要导航点」 | 移除 `.nav-dots` 容器 |
| 用户说「可编辑」/「内联编辑」 | 启用 `contenteditable`,⚠️ 导出前必须清除编辑状态 |
| 用户要求 PDF 导出 | 警告动画丢失,使用 Playwright 截图合并 |
| 用户要求在线分享 | 使用 Vercel CLI 部署,输出 URL |
| 移动端预览 | 响应式自动适配,触摸滑动导航生效 |
| 用户上传已有 .pptx 要求转 HTML | 先提取内容(Phase 4),再走 HTML 流程 |
---
## HTML 编辑模式(v7.2 新增)
> **HTML 输出自带编辑功能**:右上角开关 + 点击任意文字直接修改 + 一键保存导出。
### 编辑模式 UI
| 元素 | 功能 |
|------|------|
| 右上角 Toggle Switch | 开启/关闭编辑模式 |
| 「保存 HTML」按钮 | 清除编辑状态 + 导出干净 HTML 文件 |
| 「导出 PPTX」按钮 | 提示运行 CLI 命令导出 PPTX |
### 自动可编辑元素
以下元素开启编辑模式后自动支持 `contenteditable`:
| 元素类型 | CSS 选择器 | 说明 |
|---------|-----------|------|
| 标题 | `h1, h2, h3, h4, h5, h6` | 所有标题可编辑 |
| 正文 | `p, li` | 段落和列表项可编辑 |
| 卡片标题 | `.card-title, .pillar-title, .step-title` | 卡片标题可编辑 |
| 卡片描述 | `.pillar-desc, .step-desc` | 卡片描述可编辑 |
| 统计数字 | `.stat-nb, .stat-label, .stat-note` | 数据卡片内容可编辑 |
| 引用文字 | `.callout-text` | 金句内容可编辑 |
**不可编辑元素**:序号 `.pillar-ic, .step-nb`、logo、背景图、导航 UI
### 编辑模式操作流程
```
1. 打开 HTML 文件 → 右上角自动显示编辑工具栏
2. 点击 Toggle 开启编辑模式 → 所有文字元素出现蓝色虚线悬停框
3. 点击任意文字 → 进入编辑状态,出现蓝色实线边框
4. 修改内容 → 点击其他位置或 Tab 跳到下一元素
5. 点击「保存 HTML」→ 导出干净的 HTML 文件(无编辑 UI)
6. 如需 PPTX → 点击「导出 PPTX」查看 CLI 命令提示
```
### 导出时清除状态清单
| 状态 | 清除方式 |
|------|---------|
| `contenteditable` 属性 | `el.removeAttribute('contenteditable')` |
| `.editable-text` class | `el.classList.remove('editable-text')` |
| `.edit-active` class | `el.classList.remove('edit-active')` |
| `.edit-toolbar.hidden` | `toolbar.classList.add('hidden')` |
| `.nav-hint.show` | `navHint.classList.remove('show')` |
| `.nav-dot.active` | `dot.classList.remove('active')` |
⚠️ **CRITICAL**: 不清除这些状态会导致导出的 HTML/PPTX 包含编辑 UI 和临时样式。
### 用户编辑后的处理
| 用户操作 | 处理方式 |
|---------|---------|
| 用户说「编辑好了,保存」 | 执行保存 HTML 流程 |
| 用户说「导出 PPTX」 | 提示 CLI 命令,若已保存 HTML 则可直接运行 |
| 用户说「我改错了,恢复原内容」 | 无法恢复,建议重新生成原始 HTML |
| 用户编辑后要求调整版式 | 需重新走 Phase H 生成流程,编辑内容不保留 |More General & Other skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

