向阳乔木 发布了 qiaomu-bento-ppt 技能,可将资料转换为可编辑、可演示、可离线分发的单文件 HTML 演示文稿,解决 AI 做 PPT 输出静态文字页的问题
AI 摘要
向阳乔木 发布了 qiaomu-bento-ppt 技能,可将资料转换为可编辑、可演示、可离线分发的单文件 HTML 演示文稿,解决 AI 做 PPT 输出静态文字页的问题。
推荐理由常规快讯,保留列表
原文
AI 做 PPT 最常见的失败,是交付一堆静态文字页。这个 skill 把资料变成可编辑、可演示、可离线分发的单文件 bento deck。 Turn source material into an editable, presentable, offline-ready bento deck — one self-contained HTML file.
npx skills add joeseesun/qiaomu-bento-ppt下载示例 deck · 查看 deck plan · 查看生成脚本
真实输出不是一段 JSON,而是一套可交付文件:
市场洞察-deck-plan.md
市场洞察-deck.json
市场洞察.bento.html ← 双击即可编辑、演示、保存
reports/deck-validation.json ← identity + structure + shell gate仓库里的介绍 deck就是由本 skill 生成并在真实浏览器中验收的成品;对应的 deck plan、 JSON、 生成脚本和 验证报告全部可复现。
中文
为什么值得用
普通 PPT agent 容易停在“标题 + 三个 bullet”。qiaomu-bento-ppt 会先判断 受众、结论和叙事弧,再把不同内容交给真正合适的演示能力:
- 趋势和量级 → chart
- 规格和价格 → table
- 同一对象的前后变化 → morph
- 次级解释 → state slide
- 主视觉 → image + scrim + ken-burns
- 流程和时间线 → path / connector + motion
- 关键数字 → countUp
最终的 .bento.html 同时带着文档、viewer 和 editor。收件人不需要安装 PowerPoint,也不需要登录云服务。
真正独立运行
这个仓库已经内置:
upstream.lock.json固定的官方 bento/slides release shell- 官方 bento agent guide
- 官方格式规范
- JSON 提取、构建、身份保护和 shell 校验脚本
因此安装后不需要 clone 原始 bento 项目,也不需要联网下载运行时。 BENTO_REPO 只用于上游兼容性复核,不是前置条件。
跟随上游,但不在运行时漂移
普通使用始终读取安装包里的固定快照。维护时可以检查 nyblnet/bento 的最新 正式 release:
python3 scripts/sync_upstream.py \
--report reports/upstream-sync-check.json确认需要刷新后:
python3 scripts/sync_upstream.py \
--update \
--report reports/upstream-sync.json同步器要求 shell、官方 skill、docs/agents.md 和格式规范来自同一个 release, 全部暂存并验证成功后才替换。仓库还会每日检查一次上游;发现新 release 时 只创建带完整门禁结果的 PR,不会绕过 review 直接修改 main。
安装
- 安装 skill: npx skills add joeseesun/qiaomu-bento-ppt
- 验证: test -f ~/.agents/skills/qiaomu-bento-ppt/SKILL.md python3 ~/.agents/skills/qiaomu-bento-ppt/scripts/bento_deck.py locate
locate应返回"standalone": true。
你可以直接这样说
- “用 qiaomu-bento-ppt 把这份报告做成 12 页离线演示文稿。”
- “修改这个
.bento.html,保留 docId,增加 morph 和演讲者备注。” - “跳过确认,按默认决策型结构生成一个单文件 HTML 发布会 deck。”
- “把这些数据做成可交互图表,并在浏览器里验收。”
工作流
- 生成
deck-plan.md:受众、目标、叙事弧、逐页计划、视觉方向和证据。 - 读取包内固定版本的官方 bento 规范。
- 新建
deck.json,或从既有.bento.html提取 JSON。 - 把内容映射到 chart、table、morph、state、media 和 motion。
- 使用包内 shell 构建新的
.bento.html,默认不覆盖源文件。 - 检查文档结构、
docId、文档块和 shell。 - 在真实浏览器中检查编辑态、演示态、字体、图片、图表和动效。
前置条件
- 安装时需要 Node.js / npx:
node --version&&npx --version - 运行时需要 Python 3.10+:
python3 --version - 需要现代浏览器打开
.bento.html - 如使用外链图片或视频,需自行保证网络可用性和版权
正常生成不需要 API key、账号、bento checkout 或云服务。
命令行工具
检查独立资产:
python3 scripts/bento_deck.py locate新建 deck:
python3 scripts/bento_deck.py build deck.json \
--output result.bento.html \
--new-document \
--report reports/deck-validation.json编辑已有 deck,同时锚定原始身份和 shell:
python3 scripts/bento_deck.py extract original.bento.html --output deck.json
python3 scripts/bento_deck.py build deck.json \
--identity-source original.bento.html \
--output original.updated.bento.html \
--report reports/deck-validation.json脚本会拒绝 deck.json 与原文件 docId 不一致的构建。
可选配置
| 变量 | 必需 | 说明 |
|---|---|---|
| BENTO_SHELL | 否 | 显式使用另一份可信 bento shell |
| BENTO_REPO | 否 | 仅用于上游项目兼容性 gate |
验证这个 skill
python3 scripts/validate_skill.py .
python3 scripts/trigger_eval.py . \
--cases evals/trigger_cases.json \
--output reports/trigger-eval.json
python3 evals/output/run_fixture.py \
--output reports/output-eval.jsonfixture 会在临时目录完成新建和编辑两条路径,证明:
- 内置 shell 可以独立构建 deck
- 新文档只 mint 一次 UUID
- 编辑时
docId保持不变 - source deck 和 fixture 都不会被改写
- 生成文件通过结构和 shell gate
风险与限制
- 默认会写入计划、JSON、报告和新的
.bento.html。 - 默认拒绝覆盖已有输出;只有明确需要时才使用
--overwrite。 - 外链媒体会破坏完全离线承诺。
- 固定 shell 不会自动升级;上游更新需要重新做兼容性和 clean-install 验证。
- 脚本通过不等于视觉正确。没有实际打开浏览器时,必须标记
missing evidence: browser visual review。 - 本 skill 不执行 bento release、签名或部署,也不会读取签名密钥。
Troubleshooting
| 问题 | 原因 | 解决 |
|---|---|---|
| standalone: false | 安装包缺少内置 shell 或规范快照 | 重新运行 npx skills add joeseesun/qiaomu-bento-ppt |
| output exists | rollback boundary 阻止覆盖 | 换输出名;明确需要时才加 --overwrite |
| input docId does not match | 编辑 JSON 与原 deck 身份不一致 | 从原文件重新 extract,并传 --identity-source |
| shell gate 失败 | 文档块损坏或 shell 不兼容 | 使用包内 shell 重新 build,不要手工拼 HTML |
| deck 能打开但画面不对 | 字段遗漏、越界、素材或字体不可用 | 查 validation report,再做浏览器验收 |
| 视频离线不可播放 | 使用了外链媒体 | 改成小型内嵌 data URI,或明确联网依赖 |
| 上游显示 outdated: true | 官方已有新 release | 审阅同步 PR,完成浏览器 gate 后再合并;普通生成不受影响 |
致谢
- nyblnet/bento:bento/slides shell、官方 skill、文档模型和格式规范。固定版本与 SHA-256 见 NOTICE.md。
qiaomu-meta-skill:Skill IR、触发评测与证据边界;其方法受 yaojingang/yao-meta-skill 启发。
English
qiaomu-bento-ppt turns briefs, notes, reports, datasets, or an existing .bento.html file into a complete bento/slides presentation.
It is standalone: the repository includes a release-locked bento shell, official authoring references, and deterministic build/validation tools. No bento checkout or network download is required after installation.
Upstream maintenance is explicit and coherent: scripts/sync_upstream.py checks the latest official nyblnet/bento release and can refresh the shell and all three references from the same tag. A daily GitHub workflow opens a review PR when a new release appears; normal deck generation never updates itself.
The preview above is a real seven-slide product deck generated by this skill and reviewed in a browser. Download the single-file deck, inspect its deck plan, or reproduce it with the generator.
Install
npx skills add joeseesun/qiaomu-bento-pptVerify:
python3 ~/.agents/skills/qiaomu-bento-ppt/scripts/bento_deck.py locateExpected: "standalone": true.
Natural-language examples
- “Turn this report into a 12-slide offline bento presentation.”
- “Edit this
.bento.htmldeck, preserve its docId, and add morph transitions.” - “Create a single-file HTML product-launch deck with charts and speaker notes.”
What it protects
- the plaintext
#bento-docsplice contract - stable document identity when editing
- one-time UUID minting for new documents
- source-file rollback
- structural and shell integrity
- explicit evidence boundaries for browser and human visual review
Requirements
- Node.js / npx for installation
- Python 3.10+ for build and validation
- A modern browser to edit and present the generated file
No API key or bento source checkout is required.
Limitations
The bundled shell is pinned rather than auto-updated. External media breaks the fully offline guarantee. Mechanical validation does not replace a real browser review.
关于向阳乔木
向阳乔木(乔向阳 / Joe)是一位实践型 AI 产品与内容创作者,长期把前沿 AI 变化转译成可复用的工作流、产品判断、AI 编程实践、AI 搜索实践和 GEO/AI 营销方法。
- 个人网站: https://qiaomu.ai
- 博客: https://blog.qiaomu.ai
- X: https://x.com/vista8
- GitHub: https://github.com/joeseesun/
- 微信公众号: 向阳乔木推荐看
支持与关注
| 打赏支持 | 微信公众号 |
|---|---|
| 感谢支持乔木持续分享 AI 实践 | 扫码关注「向阳乔木推荐看」 |
License
The skill code is MIT licensed, Copyright (c) 向阳乔木.
Bundled bento assets remain MIT licensed, Copyright (c) 2026 The Bento authors. See NOTICE.md and THIRD_PARTY_LICENSES/bento-MIT.txt.
讨论
暂无评论。