<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>生成式设计 on 我的博客</title><link>https://blog.5616760.com/tags/%E7%94%9F%E6%88%90%E5%BC%8F%E8%AE%BE%E8%AE%A1/</link><description>Recent content in 生成式设计 on 我的博客</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Fri, 09 Oct 2026 21:30:00 +0800</lastBuildDate><atom:link href="https://blog.5616760.com/tags/%E7%94%9F%E6%88%90%E5%BC%8F%E8%AE%BE%E8%AE%A1/index.xml" rel="self" type="application/rss+xml"/><item><title>Dashi PPT：9291 star 的开源 Skill，把「做 PPT」变成「拿到一份打开就能改的网页」</title><link>https://blog.5616760.com/0040.html</link><pubDate>Fri, 09 Oct 2026 21:30:00 +0800</pubDate><guid>https://blog.5616760.com/0040.html</guid><description>&lt;p&gt;让 AI 生成一份 PPT，这件事本身早就不难了。真正难的是——&lt;strong&gt;生成完之后，你想改一个字、换一张图、把三张卡片变成五张，而它改不动。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;Dashi PPT&lt;/code&gt; 的全部价值几乎都押在这个点上。README 里有一句话写得很直白：&lt;strong&gt;「生成之后如何编辑，比生成本身更重要。」&lt;/strong&gt; 于是它给出的产物不是一份导出的 &lt;code&gt;.pptx&lt;/code&gt; 死文件，而是&lt;strong&gt;一台跑在浏览器里的 PPT 编辑器&lt;/strong&gt;：翻页、点字改字、拖图换图、拖滑杆增减模块、换配色、换图表类型，改完再一键导出成真实的、逐节点可编辑的 PPTX。&lt;/p&gt;&#10;&lt;p&gt;它的体量也配得上这个野心：&lt;strong&gt;12 套视觉主题、1020 个版式页面、8576 个可调控件&lt;/strong&gt;。截至本次快照，仓库 &lt;strong&gt;9291 star、821 fork&lt;/strong&gt;，AGPL-3.0 许可，JavaScript 实现。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="图：Dashi PPT 内置的 12 套视觉主题总览" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.5616760.com/img/0040-001.jpg"&gt;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;数据说明&lt;/strong&gt;：本文信息来自项目 GitHub 仓库（&lt;code&gt;chuspeeism/dashi-ppt-skill&lt;/code&gt;，默认分支 &lt;code&gt;main&lt;/code&gt;）的 &lt;code&gt;README.md&lt;/code&gt;、&lt;code&gt;skills/dashi-ppt/SKILL.md&lt;/code&gt;（约 26 KB）、&lt;code&gt;skills/dashi-ppt/README.md&lt;/code&gt;、&lt;code&gt;references/options.md&lt;/code&gt;、&lt;code&gt;references/layout-roles.md&lt;/code&gt;、&lt;code&gt;skills/dashi-ppt/project/package.json&lt;/code&gt;、&lt;code&gt;project/packages/html-deck-to-pptx/README.md&lt;/code&gt;，以及 npm registry 上的包元数据。数据快照时间为 &lt;strong&gt;2026-10-09&lt;/strong&gt;（仓库状态：&lt;code&gt;main&lt;/code&gt; 分支，AGPL-3.0，9,291 star / 821 fork / 31 watch / &lt;strong&gt;16 个开放 issue&lt;/strong&gt;，仓库体积约 102 MB，最新提交为 2026-09-12 的 &lt;code&gt;Publish skill v0.4.14&lt;/code&gt;）。项目仍在迭代，具体行为请以你所用版本与仓库最新文档为准。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h2 id="目录"&gt;目录&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%b8%80%e5%ae%83%e6%98%af%e4%bb%80%e4%b9%88" &gt;它是什么&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%ba%8c%e7%9c%9f%e9%97%ae%e9%a2%98%e4%b8%8d%e5%9c%a8%e7%94%9f%e6%88%90%e5%9c%a8%e7%94%9f%e6%88%90%e4%b9%8b%e5%90%8e" &gt;真问题不在「生成」，在「生成之后」&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%b8%89%e6%9e%b6%e6%9e%84%e6%a0%b8%e5%bf%83%e5%86%85%e5%ae%b9%e4%b8%8e%e7%89%88%e5%bc%8f%e5%bd%bb%e5%ba%95%e8%a7%a3%e8%80%a6" &gt;架构核心：内容与版式彻底解耦&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%9b%9b31-%e5%8f%98%e4%bd%93%e4%b8%ba%e4%bb%80%e4%b9%88%e6%af%8f%e9%a1%b5%e7%bb%99%e4%bd%a0%e5%9b%9b%e4%b8%aa%e6%96%b9%e6%a1%88" &gt;3+1 变体：为什么每页给你四个方案&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%ba%941020-%e4%b8%aa%e7%89%88%e5%bc%8f%e6%98%af%e6%80%8e%e4%b9%88%e7%ae%97%e5%87%ba%e6%9d%a5%e7%9a%84" &gt;1020 个版式是怎么算出来的&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%85%ad%e4%ba%a7%e7%89%a9%e5%8d%b3%e7%bc%96%e8%be%91%e5%99%a8%e6%8e%a7%e5%88%b6%e5%8f%b0%e9%87%8c%e9%82%a3-8576-%e4%b8%aa%e6%8e%a7%e4%bb%b6" &gt;产物即编辑器：控制台里那 8576 个控件&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%b8%83pptx-%e5%af%bc%e5%87%ba%e7%9a%84%e7%a1%ac%e9%aa%a8%e5%a4%b4%e9%80%90%e8%8a%82%e7%82%b9%e4%bf%9d%e7%9c%9f%e5%9b%9e%e9%80%80%e9%93%be" &gt;PPTX 导出的硬骨头：逐节点保真回退链&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%85%ab%e8%ae%b8%e5%8f%af%e7%ad%96%e7%95%a5agpl-30-%e4%b8%8e%e5%ae%83%e7%9a%84%e4%b8%93%e6%9c%89%e5%af%bc%e5%87%ba%e5%bc%95%e6%93%8e" &gt;许可策略：AGPL-3.0 与它的专有导出引擎&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%b9%9d%e9%9a%90%e7%a7%81%e4%b8%8e%e6%88%90%e6%9c%ac%e5%86%85%e5%ae%b9%e9%9b%b6%e4%b8%8a%e4%bc%a010-%e9%a1%b5%e7%ba%a6-10-%e4%b8%87-token" &gt;隐私与成本：内容零上传，10 页约 10 万 token&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%8d%81%e5%b9%b3%e5%8f%b0%e6%94%af%e6%8c%81%e4%b8%8e%e5%ae%89%e8%a3%85" &gt;平台支持与安装&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%8d%81%e4%b8%80%e5%b7%a5%e7%a8%8b%e6%b0%94%e8%b4%a8%e4%b8%89%e5%b1%82%e6%a0%a1%e9%aa%8c%e4%bb%a5%e5%8f%8a%e9%98%bb%e5%a1%9e%e8%bf%99%e4%b8%aa%e8%af%8d" &gt;工程气质：三层校验，以及「阻塞」这个词&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%8d%81%e4%ba%8c%e6%88%90%e7%86%9f%e5%ba%a6%e8%af%84%e4%bc%b0" &gt;成熟度评估&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%8d%81%e4%b8%89%e7%bb%93%e8%af%ad" &gt;结语&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="一它是什么"&gt;一、它是什么&#10;&lt;/h2&gt;&lt;p&gt;一句话：&lt;strong&gt;一个把「汇报目标」翻译成「一份可离线打开、可编辑、可导出的 HTML 演示」的 AI Agent Skill。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;它的工作方式不在网页对话框里，而在你本机的 Agent 里。你把文档丢进去，说一句「用 dashi-ppt 做一份 PPT」，它会：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;提炼需求&lt;/strong&gt; —— 主题、受众、页数、要突出的结论、最终格式；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;让你选风格&lt;/strong&gt; —— 展示 12 套主题预览，你挑一套（不替你决定）；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;自动组稿&lt;/strong&gt; —— 把需求整理成逐页的结构化内容包，并据此设计页面方案；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;生成&lt;/strong&gt; —— 在本机渲染出 &lt;code&gt;index.html&lt;/code&gt; + &lt;code&gt;assets/&lt;/code&gt;，并起一个本地预览服务；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;随手改&lt;/strong&gt; —— 你在浏览器里改字、换图、调版式，改动自动保存；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;导出&lt;/strong&gt; —— HTML 离线包 / PDF / 可编辑 PPTX 三选一。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;它自己划的适用边界也很清楚：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;合适&lt;/strong&gt;：行业研究、融资复盘、竞品分析、趋势报告、项目汇报、方案展示、路演材料、内部培训——需要「快速形成结构完整、视觉统一、还能继续改」的场合；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;不合适&lt;/strong&gt;：需要逐像素手工定制视觉的场合。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这句话值得记住，因为它解释了后面所有的架构选择：&lt;strong&gt;它做的不是「精美海报」，是「能交出去、还能被改的工程文档」。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="二真问题不在生成在生成之后"&gt;二、真问题不在「生成」，在「生成之后」&#10;&lt;/h2&gt;&lt;p&gt;市面上的 AI 做 PPT 工具，绝大多数把力气花在「第一次生成得好不好看」。但真实工作流里，一份 PPT 的成败几乎从来不取决于初稿：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;领导说「第三页那个结论换一下」；&lt;/li&gt;&#10;&lt;li&gt;客户说「你们这套配色太跳，换成稳一点的」；&lt;/li&gt;&#10;&lt;li&gt;你自己发现「这页数据是去年的，得换成最新季度」。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;在传统「生成 → 导出 pptx」的流程里，每一次这类修改都意味着&lt;strong&gt;回到对话框重新生成一遍&lt;/strong&gt;，而重新生成的结果是不可控的——版式会变、配色会变、内容会漂移。你为「AI 帮我省了半小时」付出的代价，是「我再也拿不回那个版本」。&lt;/p&gt;&#10;&lt;p&gt;Dashi PPT 选择的路径是：&lt;strong&gt;把可控性直接交到产物里。&lt;/strong&gt; 它生成的 HTML deck 本身带一整套编辑控制台，你不需要回到 Agent，也不需要重生成——改的就是那一份文件。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="图：轻拟态风（theme01）的内页版式——一套主题里挑出的四个正文版式，均由该 Skill 真实渲染" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.5616760.com/img/0040-002.jpg"&gt;&lt;/p&gt;&#10;&lt;p&gt;这个决策直接决定了它的技术形态，也决定了下面所有的架构设计：&lt;strong&gt;既然产物要能编辑，那么内容就必须和版式分开存放。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="三架构核心内容与版式彻底解耦"&gt;三、架构核心：内容与版式彻底解耦&#10;&lt;/h2&gt;&lt;p&gt;这是整个项目里最值得学的一处工程设计。&lt;/p&gt;&#10;&lt;p&gt;如果按最直觉的写法，生成 PPT 就是「为每页挑一个 HTML 模板，然后把文字塞进去」。这么做在 12 套主题 × 上百个版面的规模下会立刻崩掉：内容是散的、结构是锁死的、改一处很容易牵动全身。&lt;/p&gt;&#10;&lt;p&gt;Dashi PPT 的做法是在 &lt;code&gt;SKILL.md&lt;/code&gt; 里定义了一套 &lt;strong&gt;schema v2&lt;/strong&gt; 的数据模型，核心就一句话：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;每个逻辑页只保存一份 &lt;code&gt;content&lt;/code&gt;（业务事实的唯一来源），渲染时再由模板按 &lt;code&gt;contentMap + projection.structure&lt;/code&gt; 即时生成 props。&lt;/strong&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;翻成普通话：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;content&lt;/code&gt; 是「这页要讲什么」&lt;/strong&gt; —— 标题、摘要、要点数组、图表数据、媒体路径。它只写一次，不重复；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;contentMap&lt;/code&gt; 是「这些内容分别填到版式的哪个槽位」&lt;/strong&gt; —— 一张 &lt;code&gt;{目标路径: 内容源路径}&lt;/code&gt; 的映射表；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;projection.structure&lt;/code&gt; 是「本例用这套版式的哪一部分结构」&lt;/strong&gt; —— 比如某个模板自带 6 个卡片槽，但本页只需要 3 个，就在结构投影里把其余显式关掉或置空。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;于是「同一份内容，套不同版式」变成了一件纯计算的事——&lt;strong&gt;换主题不是重新生成，而是换一套投影重新渲染。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD&#10; C["canonical content&lt;br/&gt;唯一业务事实源"] --&gt; M["contentMap&lt;br/&gt;目标路径 → 源路径"]&#10; C --&gt; P["projection.structure&lt;br/&gt;本例的结构投影"]&#10; M --&gt; R["渲染时即时生成 props"]&#10; P --&gt; R&#10; R --&gt; T["模板方案（前 3 个）"]&#10; C --&gt; B["bespoke composition&lt;br/&gt;12×8 网格元素"]&#10; B --&gt; V4["方案 4：Agent 定制"]&#10; style C fill:#6B5B95,stroke:#6B5B95,color:#fff&#10; style R fill:#0A7CFF,stroke:#0A7CFF,color:#fff&lt;/pre&gt;&lt;p&gt;这个模型还带来一个很实在的好处：&lt;strong&gt;修改 canonical content 之后，同一页的四个方案必须一起更新。&lt;/strong&gt; README 里明确写了这条约束——你改了一页的数据，四个方案不会各自漂移成一个不同的版本，因为它们本来就只是同一份内容的不同投影。&lt;/p&gt;&#10;&lt;p&gt;还有一条约束能看出作者的执念：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;前三个模板方案使用「&lt;strong&gt;锁模板填文案&lt;/strong&gt;」——保留所选页面组件的原始视觉、结构、数量、显隐、强调、配色、图表类型和图片槽位，&lt;strong&gt;只替换可见文字内容&lt;/strong&gt;。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;也就是说，AI 被明确禁止「自作主张改版式」。&lt;strong&gt;版式的美由模板保证，AI 只负责把话说对。&lt;/strong&gt; 这是对「AI 一改就崩」这个普遍痛点最工程化的一次回应。&lt;/p&gt;&#10;&lt;h2 id="四31-变体为什么每页给你四个方案"&gt;四、3+1 变体：为什么每页给你四个方案&#10;&lt;/h2&gt;&lt;p&gt;在 schema v2 里，&lt;strong&gt;每一个逻辑页都会被渲染成 4 个方案&lt;/strong&gt;：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;方案&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;类型&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;可调整性&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;v1 / v2 / v3&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;template&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;可调 props&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;从该主题的真实版式里挑 &lt;strong&gt;3 个结构指纹不同&lt;/strong&gt;的布局，锁模板只填文案&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;v4&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;bespoke&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;固定（不可调属性）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Agent 在&lt;strong&gt;当前主题视觉语言内&lt;/strong&gt;为本页内容单独定制，不继承任何模板&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;这里有几个细节挺有讲究：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;前三个必须是「结构不同」的布局&lt;/strong&gt; —— SKILL.md 里反复强调「不要只换页码或镜像同一结构」，同一个逻辑页的三个模板方案要用结构指纹去重；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;封面页有硬约束&lt;/strong&gt; —— 每套主题的前 5 页是封面候选，一个 deck 只能有一个逻辑封面页；如果这前 5 页凑不出 3 个结构不同的真实模板，就&lt;strong&gt;整页回退到第 6 页以后的正文布局&lt;/strong&gt;，而且「同一逻辑页禁止混用封面与正文布局」；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;v4 不是「模板的小改」&lt;/strong&gt; —— 它要求独立分析本页目标、受众、叙事作用、重点信息和主题特征，然后用受限的 &lt;code&gt;composition&lt;/code&gt; 元素（只用 &lt;code&gt;text&lt;/code&gt; / &lt;code&gt;metric&lt;/code&gt; / &lt;code&gt;list&lt;/code&gt; / &lt;code&gt;quote&lt;/code&gt; / &lt;code&gt;media&lt;/code&gt; / &lt;code&gt;shape&lt;/code&gt; / &lt;code&gt;chart&lt;/code&gt; 七种，铺在 &lt;strong&gt;12×8 网格&lt;/strong&gt;上）自己搭一版。&lt;strong&gt;不新增事实、不写自由 HTML/JSX&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR&#10; P["一个逻辑页&lt;br/&gt;content"] --&gt; A["v1 模板 A"]&#10; P --&gt; B["v2 模板 B"]&#10; P --&gt; C["v3 模板 C"]&#10; P --&gt; D["v4 bespoke&lt;br/&gt;Agent 定制"]&#10; A --&gt; O["comparison 模式&lt;br/&gt;展开 4N 页"]&#10; B --&gt; O&#10; C --&gt; O&#10; D --&gt; O&#10; O --&gt; S["选一个方案标记为最终版&lt;br/&gt;导出 N 页"]&#10; style D fill:#F59E0B,stroke:#F59E0B,color:#fff&#10; style O fill:#2EA44F,stroke:#2EA44F,color:#fff&lt;/pre&gt;&lt;p&gt;默认的 &lt;code&gt;variantOutputMode&lt;/code&gt; 是 &lt;code&gt;comparison&lt;/code&gt;：&lt;strong&gt;N 个逻辑页展开成 4N 个物理页&lt;/strong&gt;，你在右侧面板里逐组比较、跳转、标记最终方案；也可以切成 &lt;code&gt;selected-only&lt;/code&gt; 只输出 N 页。&lt;/p&gt;&#10;&lt;p&gt;这个设计本质上是在回答一个很现实的问题：&lt;strong&gt;AI 不知道你喜欢哪个版本，所以它把选择权连同选项一起交给你。&lt;/strong&gt; 你花的是「多看一眼」的成本，换的是「不用在对话框里反复描述想要什么」。&lt;/p&gt;&#10;&lt;h2 id="五1020-个版式是怎么算出来的"&gt;五、1020 个版式是怎么算出来的&#10;&lt;/h2&gt;&lt;p&gt;README 给的三个数字是：&lt;strong&gt;12 套主题、1020 个版式、8576 个可调控件&lt;/strong&gt;。这三个数不是营销修辞，是能对上的。&lt;/p&gt;&#10;&lt;p&gt;先说 1020——它来自 12 套主题各自的版式数量之和：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;主题&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;风格&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;版式数&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;主题&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;风格&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;版式数&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme01&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;轻拟态风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;84&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme07&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;冷白调研风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;71&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme02&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;炫光紫绿风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;74&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme08&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;黑金实验风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;84&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme03&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;深浅代码风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;77&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme09&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;深蓝杂志风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;111&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme04&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;玻璃糖果风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;74&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme10&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;金色指数风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;95&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme05&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;色谱图表风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;94&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme11&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;高能增长风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;87&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme06&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;深色图谱风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;83&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;theme12&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;声波霓虹风&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;86&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;把右列加起来：&lt;code&gt;84+74+77+74+94+83 = 486&lt;/code&gt;，&lt;code&gt;71+84+111+95+87+86 = 534&lt;/code&gt;，合计 &lt;strong&gt;1020&lt;/strong&gt;。对得上。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;每套主题都有自己独立的页面结构和视觉语言&lt;/strong&gt;，不是同一套模板换个配色——这是它和「一键换肤」型工具的根本区别。选主题，等于选了一整套版式体系。&lt;/p&gt;&#10;&lt;p&gt;再看「20 种页面角色」。&lt;code&gt;references/layout-roles.md&lt;/code&gt; 里列得清清楚楚：&lt;code&gt;cover&lt;/code&gt; 封面、&lt;code&gt;statement&lt;/code&gt; 论点金句、&lt;code&gt;breakdown&lt;/code&gt; 目录拆解、&lt;code&gt;transition&lt;/code&gt; 章节分隔、&lt;code&gt;context&lt;/code&gt; 背景定位、&lt;code&gt;metrics&lt;/code&gt; 核心数字、&lt;code&gt;trend&lt;/code&gt; 时间线与走势、&lt;code&gt;comparison&lt;/code&gt; 对比表格、&lt;code&gt;distribution&lt;/code&gt; 漏斗梯队、&lt;code&gt;relationship&lt;/code&gt; 网络层级、&lt;code&gt;case&lt;/code&gt; 典型案例、&lt;code&gt;image&lt;/code&gt; 图片主导、&lt;code&gt;process&lt;/code&gt; 产业链与路径、&lt;code&gt;risks&lt;/code&gt; 风险研判、&lt;code&gt;observation&lt;/code&gt; 洞察结论、&lt;code&gt;ambient&lt;/code&gt; 氛围页、&lt;code&gt;actions&lt;/code&gt; 落地路径、&lt;code&gt;result&lt;/code&gt; 数字海报、&lt;code&gt;team&lt;/code&gt; 团队、&lt;code&gt;closing&lt;/code&gt; 结尾。数下来正好 20 个。&lt;/p&gt;&#10;&lt;p&gt;这套角色表是&lt;strong&gt;给选页用的&lt;/strong&gt;——生成时先按页面的信息角色去检索候选版式，再从中挑结构不同的三个。它覆盖的图表与分析模型也明显是「咨询报告思路」：雷达图、瀑布图、矩形树图、漏斗、热力图、桑基图、甘特图，以及 SWOT、波特五力、PEST、商业模式画布、双钻模型。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="图：色谱图表风（theme05）——为数据报告与市场分析准备的图表型版式" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.5616760.com/img/0040-003.jpg"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="图：深色图谱风（theme06）——面向高密度数据展示与战略分析" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.5616760.com/img/0040-004.jpg"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="图：深蓝杂志风（theme09）——版式数量最多的一套（111 页），偏品牌故事与深度专题" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.5616760.com/img/0040-005.jpg"&gt;&lt;/p&gt;&#10;&lt;h2 id="六产物即编辑器控制台里那-8576-个控件"&gt;六、产物即编辑器：控制台里那 8576 个控件&#10;&lt;/h2&gt;&lt;p&gt;第三个数 8576，指的是&lt;strong&gt;所有版式里可操作的控件总数&lt;/strong&gt;——它是「页面可编辑性」的量化表达。&lt;/p&gt;&#10;&lt;p&gt;生成之后你能改的东西，README 里按层列了：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;设计调节&lt;/strong&gt;：每页附带一个控制台，20 多个维度的编辑空间——内容、布局、模块数量、页面重点、预设配色、翻页动画；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;文字编辑&lt;/strong&gt;：任意文本点击即可就地修改，&lt;strong&gt;装饰元素随字数自适应&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;媒体槽&lt;/strong&gt;：点击或拖拽即可替换图片/视频，上传自动压缩；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;数量控制&lt;/strong&gt;：拖滑杆直接改模块数量（目录项、表格行、图表序列、图片数）——「拖动控制台右侧的滑杆，就能自定义页面中模块的数量」；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;重点调换&lt;/strong&gt;：页面的逻辑重点也能用滑杆调换，「帮你把握演讲节奏」；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;图表切换&lt;/strong&gt;：一句话换图表类型；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;配色切换&lt;/strong&gt;：每套风格内支持局部配色调换；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;翻页动画&lt;/strong&gt;：9 种切换动画任选；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;页面管理&lt;/strong&gt;：左侧缩略图目录支持拖拽重排，页面可跳过 / 删除 / 复制；顶栏可一键进入放映模式、切换明暗主题、重置全部改动。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img alt="图：内置的分析模型与专业版式——SWOT、波特五力、PEST、商业模式画布等" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.5616760.com/img/0040-006.jpg"&gt;&lt;/p&gt;&#10;&lt;p&gt;这里有一个刻意的克制值得注意。FAQ 里有人问「可以自定义 xxx 吗」，回答是：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;当前自定义样式仅限于特定范围。&lt;strong&gt;这是有意为之：稳定的产出比自由的选色更重要。&lt;/strong&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;一个做「编辑能力」的产品，主动限制编辑范围，理由居然是「稳定比自由重要」——这背后是真实的取舍：&lt;strong&gt;开放的配色与尺寸一旦失控，产出就不再是可交付的工程文档，而是一堆需要返工的半成品。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="七pptx-导出的硬骨头逐节点保真回退链"&gt;七、PPTX 导出的硬骨头：逐节点保真回退链&#10;&lt;/h2&gt;&lt;p&gt;如果说页面生成是「怎么好看」，那么导出 PPTX 就是「怎么不崩」——而这是所有 HTML 转 PPT 工具真正的坟场。&lt;/p&gt;&#10;&lt;p&gt;道理很简单：HTML 的能力集远大于 PPTX。渐变、SVG、滤镜、复杂混合模式、CSS 变换……PPTX 里根本没有对应物。&lt;strong&gt;大多数工具在这类元素上要么拍平成一张位图&lt;/strong&gt;（好看但不能改字），&lt;strong&gt;要么直接转崩&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;Dashi PPT 的导出引擎（子包 &lt;code&gt;project/packages/html-deck-to-pptx&lt;/code&gt;）给了一个更聪明的方案，README 里叫「&lt;strong&gt;逐节点保真回退链&lt;/strong&gt;」：&lt;/p&gt;&#10;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD&#10; S["遍历 deck 的 DOM 节点"] --&gt; Q{"能映射到&lt;br/&gt;PPTX 原生对象？"}&#10; Q --&gt;|是| T["生成可编辑的文字 / 形状对象"]&#10; Q --&gt;|否| SS["该区域截图"]&#10; SS --&gt; EX["从实时 DOM 把文字重新抽回&lt;br/&gt;保持可编辑（无 OCR）"]&#10; T --&gt; O["pptx 节点树"]&#10; EX --&gt; O&#10; O --&gt; R["输出可编辑 .pptx"]&#10; style Q fill:#D24726,stroke:#D24726,color:#fff&#10; style EX fill:#F59E0B,stroke:#F59E0B,color:#fff&#10; style R fill:#2EA44F,stroke:#2EA44F,color:#fff&lt;/pre&gt;&lt;p&gt;关键就在那条「&lt;strong&gt;截图 + 从实时 DOM 抽回文字&lt;/strong&gt;」的组合拳：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;映射不了的漂亮背景 → &lt;strong&gt;截图&lt;/strong&gt;，视觉 100% 保真；&lt;/li&gt;&#10;&lt;li&gt;但覆盖在这块背景之上的文字 → &lt;strong&gt;不是从图片里 OCR 出来的，而是从还在浏览器里活着的 DOM 上直接读出文本&lt;/strong&gt;，重建成 PPTX 的文字对象。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;结果是：&lt;strong&gt;你导出的 PPT 里，那块炫光背景是图，但上面的每一个字仍然能双击编辑、换字体、改字号。&lt;/strong&gt; 这比「整页拍平」高了一个量级，也比「OCR 识别」可靠得多（OCR 会错字、会丢版式）。&lt;/p&gt;&#10;&lt;p&gt;工程细节里还有两处能看出分量：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;alpha-matte 透明背景捕获&lt;/strong&gt; —— 解决透明元素叠加时的边缘脏边问题；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;基线明写在文档里&lt;/strong&gt; —— &lt;code&gt;scripts/benchmark&lt;/code&gt; 记录的 &lt;code&gt;editableFidelity&lt;/code&gt; 基线是 &lt;strong&gt;0.851&lt;/strong&gt;，并且给了可复现的端到端验证数据（「经包入口端到端导出 2 页 → 41 个可编辑文本对象，&lt;code&gt;npm test&lt;/code&gt; 绿」）。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;有一条限制也写得很清楚：导出 PPTX / PDF &lt;strong&gt;需要本机装有 Chrome / Chromium / Edge&lt;/strong&gt;（可用 &lt;code&gt;CHROME_PATH&lt;/code&gt; 环境变量指定），走的是 Playwright 驱动真实浏览器渲染——因为要拿到那份「活着的 DOM」。&lt;/p&gt;&#10;&lt;p&gt;值得注意的是，这个导出引擎&lt;strong&gt;还没完全收尾&lt;/strong&gt;。README 自己列了待办：注解协议目前只参数化了 &lt;code&gt;activeSlideSelector&lt;/code&gt; 一项，「其余注解协议的完全参数化是发布前的收尾项」；「6140 行验证器迁入本包作自带 CI 门」也还在进行中。&lt;strong&gt;一个愿意把「还没做完的部分」直接写进 README 的项目，通常比一个宣称「全部完成」的项目更可靠。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="八许可策略agpl-30-与它的专有导出引擎"&gt;八、许可策略：AGPL-3.0 与它的专有导出引擎&#10;&lt;/h2&gt;&lt;p&gt;许可这块，Dashi PPT 走了一条在开源界越来越大、但争议也大的路：&lt;strong&gt;open-core（开放核心 + 专有增值）&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;主体采用 AGPL-3.0&lt;/strong&gt; —— OSI 认证协议里 copyleft 效力最强的一个。你可以自由使用、修改、分发（含商业用途）；但&lt;strong&gt;如果你分发修改版，或基于它通过网络对外提供服务（比如做成 SaaS），就必须以 AGPL-3.0 向用户公开完整对应源代码&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;例外&lt;/strong&gt;：子包 &lt;code&gt;project/packages/html-deck-to-pptx&lt;/code&gt;（也就是上面那套导出引擎）是&lt;strong&gt;专有组件&lt;/strong&gt;，只授权作为本 skill 的组成部分使用，&lt;strong&gt;不得单独提取、复制或再分发&lt;/strong&gt;。它的 v0.2.7 及之前的历史版本曾以 MIT 发布，但那授权只对历史版本有效。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这个分割线位置很讲究：&lt;strong&gt;页面生成开源，导出引擎专有。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;也就是说，你可以自由拿它去做 PPT 生成、随便改、甚至基于它搭服务（只要开源你自己的改动）；但如果你想单独拿那套「逐节点保真 + 抽回文字」的导出能力去卖，就不行。README 里也直说了：「商业层（托管 API / 高保真插件）不在本开源包内。」&lt;/p&gt;&#10;&lt;p&gt;对使用者的实际影响有三条：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;个人用、公司内部用&lt;/strong&gt; —— 基本无感，随便用；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;想基于它做对外 SaaS&lt;/strong&gt; —— 注意 AGPL 的传染性，你的整套服务代码大概率需要开源，或者去谈商业授权；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;想单拎导出引擎&lt;/strong&gt; —— 不行，去谈商业授权。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="九隐私与成本内容零上传10-页约-10-万-token"&gt;九、隐私与成本：内容零上传，10 页约 10 万 token&#10;&lt;/h2&gt;&lt;p&gt;FAQ 里两个问题回答得很实在，也值得单独拎出来看。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;内容安全。&lt;/strong&gt; 官方表述是「内容层面零上传」：你的文档和 PPT 内容不会发到任何服务器，生成、编辑、导出都在本机完成，成品离线可开。会联网的只有两件事——首次生成时 npm 自动安装依赖；任务完成后的静默版本检查（只拉版本号，不上传内容）。&lt;/p&gt;&#10;&lt;p&gt;但同一段里还有一句&lt;strong&gt;容易被忽略的诚实披露&lt;/strong&gt;：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;另外&lt;strong&gt;本地预览服务默认在同一局域网内可访问&lt;/strong&gt;，仅供浏览，&lt;strong&gt;导出接口只对本机开放&lt;/strong&gt;。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;翻译一下：预览页在同网段的其他设备上可能能打开（纯粹的便利性设计），但导出接口绑在本机。这是个正面的设计取舍，但在咖啡馆、共享办公这类环境下值得自己留意一下。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;成本。&lt;/strong&gt; 「生成一套 PPT 大概消耗多少 token？」回答是：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;一套 10 页的 PPT 实测&lt;strong&gt;约 10 万 token&lt;/strong&gt;（随文档长度和往返修改次数浮动）。按 Codex 5 小时额度窗口粗算，大约够生成 &lt;strong&gt;10 套&lt;/strong&gt;。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;10 页 10 万 token，这个量级值得记住——它意味着&lt;strong&gt;这不是一个可以无限试错的工具&lt;/strong&gt;。反过来也解释了为什么它要把「3+1 变体」和「产物即编辑器」做得这么重：&lt;strong&gt;因为重生成一次太贵，所以把修改尽量挪到生成之后、挪到浏览器里。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="十平台支持与安装"&gt;十、平台支持与安装&#10;&lt;/h2&gt;&lt;p&gt;安装是一条命令：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx dashi-ppt-skill@latest&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;国内网络用镜像：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx --registry&lt;span style="color:#f92672"&gt;=&lt;/span&gt;https://registry.npmmirror.com dashi-ppt-skill@latest&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;安装和更新是同一条命令&lt;/strong&gt;，重跑即原地更新（已装依赖自动保留）。环境要求：&lt;strong&gt;Node.js 20+ 和 npm&lt;/strong&gt;；导出 PPTX / PDF 另需本机有 Chrome / Chromium / Edge。&lt;/p&gt;&#10;&lt;p&gt;平台支持表只列「已实测」的，但不代表「仅限这些」：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;平台&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;状态&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Claude Code&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;支持&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Codex&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;支持&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;可调用生图能力补充配图&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;豆包&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;支持&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;需要启动「办公模式」&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Marvis / &lt;strong&gt;WorkBuddy&lt;/strong&gt; / Dumate / Qclaw&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;支持&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;skill 文件放任意位置、能读 &lt;code&gt;SKILL.md&lt;/code&gt; 即可&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cursor / 其他本地 Agent&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;可用&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;需能读写文件并执行 shell 命令&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;普通网页 Chatbot&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;不推荐&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;生成器需要本地 Node.js 环境&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;这里值得单独说一句：&lt;strong&gt;它对「Skill 形态」的理解是彻底去中心化的。&lt;/strong&gt; 因为生成器是本机 &lt;code&gt;project/&lt;/code&gt; 里的一段 Node 程序，Agent 只是一个「帮我写 goal.json 并调脚本」的调度者——所以它不需要绑定任何特定厂商的插件市场，&lt;strong&gt;任何能读写文件、能跑 shell 的 Agent 都能用&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;对 WorkBuddy 用户来说，这意味着它可以直接落地：把 &lt;code&gt;dashi-ppt&lt;/code&gt; 目录放进 Skill 目录，重开会话就能用。&lt;/p&gt;&#10;&lt;h2 id="十一工程气质三层校验以及阻塞这个词"&gt;十一、工程气质：三层校验，以及「阻塞」这个词&#10;&lt;/h2&gt;&lt;p&gt;看一个生成类项目成不成熟，最省事的办法是看它&lt;strong&gt;要求自己跑多少道校验&lt;/strong&gt;。Dashi PPT 的 &lt;code&gt;package.json&lt;/code&gt; 里挂着三道硬校验：&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;validate:goal-spec ← 渲染前必须过，校验 schema v2 结构（脚本约 82 KB）&#10;validate:swiss ← 输出后必须过&#10;validate:goal-copy ← 输出后必须过，专查文案是否残留模板默认值&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;其中最见功力的是 &lt;code&gt;validate:goal-copy&lt;/code&gt;。生成类 AI 工具最常见的翻车方式，不是排版错，而是&lt;strong&gt;交付了模板自带的演示文案&lt;/strong&gt;——「AI Capital」「SoundWave 声浪」「Key Metrics」「Roadmap」「End of Report」这类和你的主题毫无关系的词，就那么留在页面上。SKILL.md 里把这条写成了硬约束：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;如果输出正文里出现与用户主题无关的默认文案……&lt;strong&gt;必须重写 JSON 后重新渲染，不能交付&lt;/strong&gt;。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;比校验更少见的是&lt;strong&gt;它怎么定义「失败」&lt;/strong&gt;。SKILL.md 里给「成果验收」定了一个三态结论，只有 &lt;strong&gt;「通过」「待修正」「阻塞」&lt;/strong&gt;，并且规定：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;默认最多修正 2 轮。验收通过后才能交付；&lt;strong&gt;两轮后仍不通过则标记「阻塞」，说明未达标项和阻塞原因，不得将其表述为已完成成果。&lt;/strong&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;同时它还明确区分了「机器校验」和「成果达标」：机器校验通过只是技术基线，不等于成果达标；默认不做截图审美精修，除非用户明确要求「100% 检查」「帮我调到满意」。&lt;/p&gt;&#10;&lt;p&gt;这几条约束合起来，传达的是一个很成熟的态度：&lt;strong&gt;AI 可以做得不够好，但不允许把不够好的东西说成做好了。&lt;/strong&gt; 在一个人人都在讲「多智能体协作」「全自动」的领域里，愿意给自己划一条「我做不到，我告诉你是哪一项做不到」的红线，其实比多几个花哨功能更难得。&lt;/p&gt;&#10;&lt;h2 id="十二成熟度评估"&gt;十二、成熟度评估&#10;&lt;/h2&gt;&lt;p&gt;客观看一下这个项目：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;维度&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;现状&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;活跃度&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;9,291 star / 821 fork / 31 watch&lt;/strong&gt;；2026-06-10 创建，最新提交 &lt;strong&gt;2026-09-12&lt;/strong&gt;（&lt;code&gt;Publish skill v0.4.14&lt;/code&gt;），&lt;strong&gt;近一个月无新提交&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Issue 面&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;仅 &lt;strong&gt;16 个开放 issue&lt;/strong&gt; —— 对一个近万 star 的项目来说相当健康，说明维护者在持续收敛问题&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;仓库规模&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;约 102 MB（主要是内置字体 woff2 与主题素材），JavaScript，结构清晰：&lt;code&gt;skills/dashi-ppt/&lt;/code&gt;（&lt;code&gt;SKILL.md&lt;/code&gt; + &lt;code&gt;references/&lt;/code&gt; + &lt;code&gt;scripts/&lt;/code&gt; + &lt;code&gt;project/&lt;/code&gt;）、&lt;code&gt;npm-dist/&lt;/code&gt;（安装器）、&lt;code&gt;.claude-plugin/&lt;/code&gt;（插件市场清单）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;版本纪律&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;提交历史几乎全是 &lt;code&gt;Publish skill vX.Y.Z&lt;/code&gt;，节奏稳定（0.4.10 → 0.4.14）；SKILL.md 每次收尾都跑静默版本检查&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;测试与校验&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;三道必跑校验（&lt;code&gt;goal-spec&lt;/code&gt; / &lt;code&gt;swiss&lt;/code&gt; / &lt;code&gt;goal-copy&lt;/code&gt;），导出引擎自带 benchmark 与 &lt;code&gt;editableFidelity&lt;/code&gt; 基线&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;许可&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;主体 AGPL-3.0；导出引擎子包专有（open-core）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;文档质量&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;README 中英双语；SKILL.md 约 26 KB，把 schema、约束、验收标准、返工流程都写死了——&lt;strong&gt;罕见地详细&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;strong&gt;已经验证过的&lt;/strong&gt;：12 套主题、1020 个版式（数字可加总核对）、20 个页面角色、9 种翻页动画、四类导出（HTML / PDF / PPTX）都有真实产物支撑；导出保真度有 benchmark 基线（&lt;code&gt;editableFidelity&lt;/code&gt; 0.851）；端到端导出有可复现用例（2 页 → 41 个可编辑文本对象）。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;仍待完善 / 值得注意的边界&lt;/strong&gt;：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;导出引擎尚未收尾&lt;/strong&gt;：注解协议只参数化了 &lt;code&gt;activeSlideSelector&lt;/code&gt; 一项，README 自己写着「其余注解协议的完全参数化是发布前的收尾项」；6140 行验证器迁入该包作 CI 门也仍在进行中。&lt;strong&gt;这意味着项目还没到 1.0 的完成度&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;版本号有三条线，看数要认清&lt;/strong&gt;：仓库内 skill 本体是 &lt;code&gt;0.4.14&lt;/code&gt;；npm registry 上安装器包 &lt;code&gt;dashi-ppt-skill&lt;/code&gt; 的已发布版本号到 &lt;code&gt;0.4.11&lt;/code&gt;，而 &lt;code&gt;dist-tags.latest&lt;/code&gt; 停在 &lt;code&gt;0.4.5&lt;/code&gt;。三个数字并不一致——说明&lt;strong&gt;安装器与 skill 本体是两条独立的版本线&lt;/strong&gt;，&lt;code&gt;npx dashi-ppt-skill@latest&lt;/code&gt; 拉到的安装器版本不等于 skill 本体的版本，排查问题时要先确认自己手上是哪一条；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;近一个月无新提交&lt;/strong&gt;（最新 2026-09-12），需要观察后续维护节奏；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;强依赖本机环境&lt;/strong&gt;：Node 20+、npm，导出还要 Chrome/Chromium/Edge。&lt;strong&gt;纯网页 Chatbot 环境用不了&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;成本不可忽略&lt;/strong&gt;：10 页约 10 万 token，多轮重生成代价明显；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;自定义有天花板&lt;/strong&gt;：样式自定义被有意限制在特定范围，「稳定的产出比自由的选色更重要」——&lt;strong&gt;如果你的诉求是像素级定制，这套工具会挡着你&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;AGPL-3.0 的传染性&lt;/strong&gt;：要做对外 SaaS 需认真评估合规成本。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;适合谁用&lt;/strong&gt;：经常写行业研究、竞品分析、方案汇报、路演材料的职场人；已经在自己信任的本地 Agent（Claude Code / Codex / 豆包 / WorkBuddy 等）里干活、希望「一次生成、反复修改、最后导成能交出去的 PPTX」的人；以及想研究「AI 生成类产品怎么设计数据模型」的开发者——它的 schema v2 与 3+1 变体机制是很值得抄的架构。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;不太适合&lt;/strong&gt;：只需要一次成稿、不需要再改的极简需求（用它反而重）；需要逐像素定制视觉的品牌设计场景；受限于企业合规、不能用 AGPL 组件的商业团队。&lt;/p&gt;&#10;&lt;h2 id="十三结语"&gt;十三、结语&#10;&lt;/h2&gt;&lt;p&gt;把 Dashi PPT 拆开看完，我觉得它最值得记住的不是「12 套主题」或「1020 个版式」这些能上头条的数字，而是&lt;strong&gt;它对「AI 做 PPT 这件事的失败点」的判断有多准&lt;/strong&gt;：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;它知道 AI 改不动的地方在哪&lt;/strong&gt; —— 所以把产物做成编辑器，而不是一份死文件。&lt;strong&gt;「生成之后如何编辑，比生成本身更重要」&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;它知道 AI 会乱改的地方在哪&lt;/strong&gt; —— 所以给前三个方案上了「锁模板填文案」的枷锁，&lt;strong&gt;AI 只负责把话说对，不负责发挥审美&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;它知道 AI 会漂移的地方在哪&lt;/strong&gt; —— 所以规定「每个逻辑页只保存一份 canonical content」，四个方案都只是同一份内容的不同投影，&lt;strong&gt;改一处就一起更新&lt;/strong&gt;；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;它知道 AI 最丢脸的地方在哪&lt;/strong&gt; —— 所以专门写了一道 &lt;code&gt;validate:goal-copy&lt;/code&gt;，专治「交付了模板自带的演示文案」这种低级翻车；&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;它知道自己做不到的地方在哪&lt;/strong&gt; —— 所以把验收结论设计成「通过 / 待修正 / &lt;strong&gt;阻塞&lt;/strong&gt;」，两轮修不好就诚实标阻塞，&lt;strong&gt;不许把没做完说成做完了&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;还有一个我觉得很聪明的取向：&lt;strong&gt;它没有把「好看」当成护城河，而是把「能改」和「能导出成可编辑 PPTX」当成了护城河。&lt;/strong&gt; 好看是模板的事，模板可以复制；但「改字不改版式」的数据模型、以及「截图配图 + 从实时 DOM 抽回文字」的导出链路，是真正难复制的工程。&lt;/p&gt;&#10;&lt;p&gt;一个开源 Skill 能做到&lt;strong&gt;9291 star、821 fork、只有 16 个开放 issue&lt;/strong&gt;，同时把 schema、约束、验收标准和返工流程全部写死在 26 KB 的 &lt;code&gt;SKILL.md&lt;/code&gt; 里——&lt;strong&gt;它把「克制」当成了产品力&lt;/strong&gt;。在这个人人都在比谁生成的画面更炫的赛道上，它选择去解决那个更无聊、但更痛的问题：&lt;strong&gt;让你拿到手的东西，是能接着用的。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;strong&gt;免责声明&lt;/strong&gt;：本文为个人学习性质的项目文档解读，不构成对该软件的推荐、担保或安全评估。项目仍在快速迭代，文中数据为 &lt;strong&gt;2026-10-09&lt;/strong&gt; 快照，具体行为请以你所用版本与仓库最新文档为准。特别提示三点：① 主体许可为 &lt;strong&gt;AGPL-3.0&lt;/strong&gt;，导出引擎子包为&lt;strong&gt;专有组件&lt;/strong&gt;，商业使用与二次分发前请自行确认合规性；② 本地预览服务默认在&lt;strong&gt;同一局域网内可访问&lt;/strong&gt;（仅供浏览，导出接口仅限本机），在共享网络环境下请自行评估；③ 生成与导出会产生实际的 API token 消耗（10 页约 10 万 token）与本地资源占用，请自行评估成本。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;</description></item></channel></rss>