全部技能 / 设计 / guizang-ppt
设计 · op7418/guizang-ppt-skill

guizang-ppt

生成横向翻页网页 PPT(单 HTML 文件),含 WebGL 背景、演讲者视图、观众屏同步、讲稿备注、章节幕封、数据大字报、图片网格等模板。提供两种风格:① "电子杂志 × 电子墨水"(衬线 + 流体背景 + 暖色) ② "瑞士国际主义"(无衬线 + 网格点阵 + IKB/柠檬黄/柠檬绿/安全橙高亮)。当用户需要制作分享 / 演讲 / 发布会风格的网页 PPT,或提到"杂志风 PPT"、"瑞士风 PPT"、"Swiss Style"、"horizontal swipe deck"时使用。

风险提醒:黄色 · 留意使用AI 侦查报告
作者 op7418GitHub op7418/guizang-ppt-skill ↗Stars 26343许可 AGPL-3.0(仓库根 LICENSE 首行为 'GNU AFFERO GENERAL PUBLIC LICENSE / Version 3, 19 November 2007';GitHub API spdx_id=AGPL-3.0。注意 AGPL 对衍生分发有传染性要求,生成物虽不属衍生作品,但二次分发本 skill 需遵守 AGPL)commit c91369c449
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

核心交付物是两份『种子模板』:assets/template.html(杂志风)与 assets/template-swiss.html(瑞士风)。CSS、WebGL shader、翻页 JS、演讲者模式、观众屏同步全部预置,agent 只需拷贝模板 + 填 `<!-- SLIDES_HERE -->` 与 SPEAKER_NOTES。

SKILL.md
两个 `template*.html` 都是**完整可运行**的文件——CSS、WebGL shader、翻页 JS、演讲者模式、观众屏同步、字体/图标 CDN 全已预设好,只有 `<!-- SLIDES_HERE -->` 占位符和 `SPEAKER_NOTES` 等待你填充。
注:拷贝命令直接写在 SKILL.md:`cp "<SKILL_ROOT>/assets/template.html" "项目/XXX/ppt/index.html"`。模板本体 104KB / 164KB,全内联,所以单文件 HTML 可直接双击打开演示。

实现原理本质是『把设计决策前置成规格文件』:5 套/4 套主题色、10 种/22 种版式、字体分工、字号字重阶梯都写死在 references 里,agent 只能选不能造。

SKILL.md
本 skill **只允许从 5 套精心调配的预设里选一套**,不接受用户自定义 hex 值——颜色搭配错了画面瞬间变丑,保护美学比给自由更重要。
注:瑞士风更严:正文页必须从原始 22 个版式 S01–S22 里选,每页写 `data-layout`,不允许临时发明 P23/P24。这是它区别于『随便让模型写 HTML』的关键约束。

把『类名必须在模板 <style> 里有定义』做成写码前的强制预检(Step 3.0),并指出这是所有生成问题的源头。

SKILL.md
**这是所有生成问题的源头**。layouts 骨架使用了很多类名,如果模板的 `<style>` 里没有对应定义,浏览器会 fallback 到默认样式——大标题字体错、卡片挤成一团、pipeline 糊成一行、图片堆到页面底部。
注:配套给出两套模板各自『常见容易遗漏的类』清单(风格 A 约 30 个、风格 B 分画布/排版/卡片/网格/时间线/图表/装饰/版式/图片九组)。

用 Node 脚本做确定性校验,替模型补上『看不见版式好坏』的短板:静态检查 + 可选 Playwright 真实渲染测量。

SKILL.md
校验器会先做静态结构检查;如果环境中能解析到 Playwright,还会做真实渲染后的可见边界、底部空白、nav 安全线和标题间距测量。
注:脚本内实现见 scripts/validate-swiss-deck.mjs:`playwright.chromium.launch({ args: ['--use-angle=swiftshader','--enable-unsafe-swiftshader'] })`,并用 M1(overflow / bottom whitespace / nav-safe)与 M2(title gap)出具量值与分级修正建议。

『先量后改』的修正阶梯把审美问题变成可执行阈值,避免模型凭感觉大删内容。

SKILL.md
`1-40px` over:只微调,上移内容组或收紧一个 gap/padding,不要删内容。
注:同一阶梯在脚本里以 overflowFix(px) 函数实现(≤40 / ≤90 / ≤160 / 更多),prompt 与代码口径一致。

启动前检查上游更新,且明确『不自动更新』——需要 git fetch 取差异、用户确认后才 pull。

SKILL.md
不要自动更新。用户拒绝时继续使用当前版本;如果网络不可用、没有 upstream 或不是 git 仓库,说明无法检查更新并继续流程。
注:这是本 skill 唯一的自更新路径,也是它的唯一硬性网络动作(另见 security.network_calls)。

演讲者模式不是装饰:脚本强制页面 ID 稳定、备注与页面按 ID 对齐(而非数组下标),并校验时长预算与运行时控件完备性。

SKILL.md
备注按页面 ID 存储,不要用数组下标或页码作为持久化键,否则页面重排后用户在演讲者视图里改过的备注会串页。
注:校验入口:`node <SKILL_ROOT>/scripts/validate-presenter-mode.mjs path/to/index.html`(可加 `--target-minutes 30`)。

资源加载双保险 + 降级:Motion 先试本地 assets/motion.min.js,失败再走 CDN,双双失败则把 `[data-anim]` 强制可见,保证内容可读;瑞士风另有 B 键低功耗模式停 RAF 与动效。

assets/template.html
console.warn('[motion] local + CDN both failed, disabling animations', e1, e2);
注:本地 motion.min.js 为 jsDelivr 打包产物(文件头自述 'Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0. Original file: /npm/[email protected]/...'),非混淆代码,可读可核。

2核心能力

01两套视觉体系的单文件 HTML PPT 生成(杂志风 / 瑞士国际主义),含横向翻页(键盘←→、滚轮、触屏、ESC 总览)
02受约束的主题色系统(A 5 套 / B 4 套),拒绝任意 hex,避免配色崩坏
03版式库:杂志风 10 种可粘贴骨架;瑞士风 22 个登记版式 S01–S22 + 封面/尾页 ASCII 变体 + S08 地图扩展
04演讲者模式:当前/下一页预览、内嵌宫格选页、提词卡备注、分组计时、排练记录、自动翻页、激光笔/圈选、观众屏黑白屏与冻结、断线恢复
05版式质量校验脚本:瑞士风登记版式/图片槽位/SVG 文字/标题对齐的静态检查 + 渲染后 M1/M2 量测
06演讲备注校验:页面 ID 缺失/重复、备注串页、字段类型、时长超 90% 预算、运行时控件缺失都会被拦
07截图美化流水线:内置 9 张主题背景 WebP(style-a 5 / style-b 4),按 CleanShot X 式做程序化背景画布适配
08配图生成编排(Codex 场景):按落位比例给 GPT-M 2.0 出短提示词,语言跟随 deck 语言,图内不得带页眉页脚/logo

3外部依赖

类型依赖
cligit(Step 0 检查上游更新;pull 需用户确认)
clinode(跑三个校验脚本;校验器可选解析 Playwright)
packagePlaywright(可选;能解析到时启动 chromium 做渲染测量)
networkGoogle Fonts(模板 <head> 预连接并加载 Playfair Display / Source Serif 4 / IBM Plex Mono / Noto Serif SC / Noto Sans SC)
networkLucide 图标(unpkg,注意是 @latest 浮动版本)
networkMotion One(jsDelivr ESM,仅在本地 assets/motion.min.js 加载失败时作为兜底)
networkMapLibre GL JS + OpenStreetMap 栅格瓦片(仅瑞士风 S08 地图组件页,用户需要地图时才引入)
apiGPT-M 2.0 配图生成(Codex 场景下由宿主 agent 调用,skill 只给提示词与比例规则,无端点硬编码)

4风险提醒 风险提醒:黄色 · 留意使用

风险提醒:黄色 · 留意使用
  • 运行期依赖公开 CDN,其中 Lucide 用 @latest 浮动版本 — unpkg.com/lucide@latest/dist/umd/lucide.min.js 未 pin 版本;字体走 fonts.googleapis.com。断网或 CDN 变更会让演示页外观退化(内容仍可读);若投毒则进入页面执行环境,skill 侧无 SRI/完整性校验。
  • Step 0 会拉取并改写 skill 自身 — git fetch +(用户确认后)git pull --ff-only。虽明示『不要自动更新』,但更新后的 SKILL.md/模板即为新代码,使用者实际是在信任上游最新提交。
  • 瑞士风的约束极强,超出 22 个登记版式的需求会被迫将就 — 默认正文页只能用 S01–S22,且校验脚本会把未登记 data-layout 当问题报出(除非加 --allow-experimental)。特殊叙事结构需要用户显式同意走实验版式。
  • 质量仍依赖人眼终检 — SKILL.md 自陈 '代码只能证明类名和结构存在,不能证明版式舒服',要求逐页打开对照,并提示截图前等 1-2 秒动效稳定;纯自动化跑完不保证观感。
  • 许可为 AGPL-3.0,且仓库含赞助/品牌内容 — AGPL-3.0 对二次分发/网络服务化有传染性要求;SKILL.md 顶部与 provenance 注释含赞助方信息,并要求不得写入生成产物——使用者需自行确认合规口径。
  • 校验脚本对环境的可选依赖会造成『静默降级』 — 解析不到 Playwright 时只推一条 warning('Rendered measurement skipped...')就继续,静态检查通过不等于版式没问题,容易被误读为已验收。
风险提醒:黄色,留意使用。判级依据:① 本体是 prompt 规格型 skill,无凭证读取(api_key/token/secret/.env 全仓零命中)、无自建网络端点、无数据回传;② 但存在两类真实网络行为——Step 0 对上游仓库做 git fetch,并在用户确认后 git pull --ff-only 改写 skill 自身(自我更新面);生成页运行期从 Google Fonts、unpkg(Lucide 为 @latest 浮动版)、jsDelivr 拉取脚本(供应链面),S08 地图页另拉 MapLibre 与 OSM 瓦片;③ 三个 Node 校验脚本只读目标文件,唯一重资源动作是在能解析到 Playwright 时启动本地 chromium(可跳过)。提醒点:离线/内网演示前预检字体与图标是否可达,或用本地副本;若在意 @latest 的浮动性,可在产物里 pin 版本或改本地文件;git pull 前先看差异(SKILL.md 本身要求询问用户)。若不计这两类网络面,本体行为接近蓝色档。

5第二遍独立确认

  • [ok] skill.path 定位(任务表标『待定位』) — 仓库根即有 SKILL.md(git ls-tree 根层含 SKILL.md),assets/references/scripts 均位于根下同级,故 path=".";全仓 SKILL.md 计数为 1,不存在第二份。
  • [ok] 三个校验脚本『只读』结论的反例搜索 — 全仓 grep 未发现 writeFileSync/createWriteStream/fs.write;validate-swiss-deck.mjs 顶部为 readFileSync + createRequire + pathToFileURL,Playwright 段为 launch/newContext/close;check-presenter-runtime-sync.mjs 为 readFileSync + 字符串比对。脚本输出走 console 与 process.exit(2)。
  • [ok] 『无凭证读取』是否漏网 — api_key/API_KEY/token/secret/.env/os.environ/process.env/keychain 全仓扫描零命中。配图走 GPT-M 2.0(宿主能力)、更新走 git(用户既有凭证),skill 文本未要求读取任何密钥;MapLibre OSM 瓦片为公开无 key 服务。
  • [ok] Step 0 自更新:是否会自动 pull — SKILL.md 原文 '有更新时先问用户是否要更新,用户确认后再执行更新' + '不要自动更新。用户拒绝时继续使用当前版本',且网络不可用/无 upstream/非 git 仓库时明确跳过继续流程。属用户确认型动作,非静默自更新。
  • [discrepancy] CDN 依赖是否被低估(@latest 浮动版本) — 第一遍只记『字体/图标 CDN』;第二遍逐个 grep 模板发现 Lucide 走的是 `unpkg.com/lucide@latest`(浮动主版本,未 pin),而 Motion 是 pin 到 11.11.17 且有本地副本。已在 external_deps 与 security.reason 中显式点名该浮动风险(供应链面),并保留其余 CDN 条目。
  • [ok] 『离线可用』宣称是否成立 — Motion 有本地 assets/motion.min.js 且失败时强制 reveal `[data-anim]`(template.html 内可见 console.warn 兜底分支);瑞士风有 body.low-power 静态模式(CSS 里 display:none 掉 canvas.bg/ascii-bg、animation/transition: none)。但字体与 Lucide 图标仍走外网——离线时字体退回系统栈/图标缺失,属『内容可读但外观退化』,SKILL.md 未把完全离线列为承诺,故不算夸大。
  • [ok] 『S01–S22 版式锁定』是否真有约束力 — SKILL.md 要求每个 <section> 写 data-layout="Sxx" 并明示无 data-layout 视为未登记版式;validate-swiss-deck.mjs 以 --allow-experimental 开关区分实验版式;22 个 S 编号在 SKILL.md 表格中完整列出(S01 Index Cover … S22 Image Hero),与 layouts-swiss.md 骨架对应。
  • [ok] license 档位核对 — 第一遍未写许可;第二遍读 LICENSE 首行确认为 GNU AGPL-3.0 文本,与 gh api 的 spdx_id=AGPL-3.0 一致,已在 meta.license 与 traits 中提示(对闭源二次分发有影响)。

6结论

  • 把设计判断固化成可执行规格(预设主题、登记版式、模板类名白名单),显著压低『模型自由发挥把版式写崩』的概率
  • 自带确定性校验:静态规则 + 可选真实渲染量测(M1 溢出/底部空白/nav 安全线、M2 标题间距),并给出分档修正建议(1-40/40-90/90-160/160+px)
  • 演讲场景完整度罕见:稳定 page ID 存备注、时长预算校验、观众屏同步与断线恢复、低功耗键
  • 交付形态轻:单文件 HTML,开箱即演示,无需服务器或翻页工具
  • 经验沉淀可复用:checklist.md 按 P0–P3 记录真实迭代踩坑(图片撑破、标题换行、字体分工、字号下限)
  • 适合:适合:需要做出『一眼像专业设计』的网页版演讲材料的人(行业分享、demo day、产品发布、年度总结);能接受 7 问澄清、愿意先定风格与主题色再动手的流程型用户;以及想学『如何把审美约束写成可校验规格』的 skill 作者。配套说明完整(README 中英双语、checklist 分级),上手成本主要在理解两套视觉体系而不是安装。
    不适合:不适合:① 需要多人协作编辑 PPT 的场景(产出是静态 HTML,SKILL.md 自己写明这一点);② 大段表格/密集图表叠加或培训课件(SKILL.md 的『不合适的场景』);③ 要求完全离线且外观保真——字体与图标仍走 CDN;④ 需要自定义品牌色/版式的团队——5+4 套主题与 22 个登记版式为硬约束;⑤ 对 AGPL 许可敏感的闭源商业再分发。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 guizang-ppt.tar.gz
    sha256: 81dbd0381b0986e8…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit c91369c449;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库op7418 / op7418/guizang-ppt-skill
    Stars26343
    最近推送2026-08-07
    本 skill commitc91369c449
    许可AGPL-3.0(仓库根 LICENSE 首行为 'GNU AFFERO GENERAL PUBLIC LICENSE / Version 3, 19 November 2007';GitHub API spdx_id=AGPL-3.0。注意 AGPL 对衍生分发有传染性要求,生成物虽不属衍生作品,但二次分发本 skill 需遵守 AGPL)
    本站信息
    收录日期2026-09-06
    分类设计
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近