[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94099":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},94099,"qiaomu-bento-ppt","joeseesun\u002Fqiaomu-bento-ppt","joeseesun","Use the standalone qiaomu-bento-ppt skill to create or edit qiaomu-style bento presentations as self-contained .bento.html files from briefs, notes, r",null,"HTML",107,8,1,0,3,9,50.66,"MIT License",false,"main",true,[],"2026-08-01 04:02:10","# qiaomu-bento-ppt\n\n> AI 做 PPT 最常见的失败，是交付一堆静态文字页。这个 skill 把资料变成可编辑、可演示、可离线分发的单文件 bento deck。\n>\n> Turn source material into an editable, presentable, offline-ready bento deck — one self-contained HTML file.\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoeseesun\u002Fqiaomu-bento-ppt\u002Fstargazers\">\u003Cimg alt=\"Stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fjoeseesun\u002Fqiaomu-bento-ppt?style=flat-square&logo=github\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoeseesun\u002Fqiaomu-bento-ppt\u002Fnetwork\u002Fmembers\">\u003Cimg alt=\"Forks\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fjoeseesun\u002Fqiaomu-bento-ppt?style=flat-square&logo=github\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoeseesun\u002Fqiaomu-bento-ppt\u002Fissues\">\u003Cimg alt=\"Issues\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fjoeseesun\u002Fqiaomu-bento-ppt?style=flat-square&logo=github\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoeseesun\u002Fqiaomu-bento-ppt\u002Fcommits\u002Fmain\">\u003Cimg alt=\"Last commit\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fjoeseesun\u002Fqiaomu-bento-ppt?style=flat-square&logo=git\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg alt=\"License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg?style=flat-square\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n```bash\nnpx skills add joeseesun\u002Fqiaomu-bento-ppt\n```\n\n[![qiaomu-bento-ppt 真实生成的 bento 演示文稿](docs\u002Fassets\u002Fqiaomu-bento-ppt-hero.png)](examples\u002Fqiaomu-bento-ppt-intro.bento.html)\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"examples\u002Fqiaomu-bento-ppt-intro.bento.html\">下载示例 deck\u003C\u002Fa>\n  ·\n  \u003Ca href=\"examples\u002Fqiaomu-bento-ppt-intro-deck-plan.md\">查看 deck plan\u003C\u002Fa>\n  ·\n  \u003Ca href=\"examples\u002Fbuild_intro_deck.py\">查看生成脚本\u003C\u002Fa>\n\u003C\u002Fp>\n\n真实输出不是一段 JSON，而是一套可交付文件：\n\n```text\n市场洞察-deck-plan.md\n市场洞察-deck.json\n市场洞察.bento.html          ← 双击即可编辑、演示、保存\nreports\u002Fdeck-validation.json ← identity + structure + shell gate\n```\n\n仓库里的[介绍 deck](examples\u002Fqiaomu-bento-ppt-intro.bento.html)就是由本 skill\n生成并在真实浏览器中验收的成品；对应的\n[deck plan](examples\u002Fqiaomu-bento-ppt-intro-deck-plan.md)、\n[JSON](examples\u002Fqiaomu-bento-ppt-intro.json)、\n[生成脚本](examples\u002Fbuild_intro_deck.py)和\n[验证报告](reports\u002Fintro-deck-validation.json)全部可复现。\n\n**[中文](#中文) | [English](#english)**\n\n---\n\n\u003Ca name=\"中文\">\u003C\u002Fa>\n## 中文\n\n### 为什么值得用\n\n普通 PPT agent 容易停在“标题 + 三个 bullet”。`qiaomu-bento-ppt` 会先判断\n受众、结论和叙事弧，再把不同内容交给真正合适的演示能力：\n\n- 趋势和量级 → chart\n- 规格和价格 → table\n- 同一对象的前后变化 → morph\n- 次级解释 → state slide\n- 主视觉 → image + scrim + ken-burns\n- 流程和时间线 → path \u002F connector + motion\n- 关键数字 → countUp\n\n最终的 `.bento.html` 同时带着文档、viewer 和 editor。收件人不需要安装\nPowerPoint，也不需要登录云服务。\n\n### 真正独立运行\n\n这个仓库已经内置：\n\n- `upstream.lock.json` 固定的官方 bento\u002Fslides release shell\n- 官方 bento agent guide\n- 官方格式规范\n- JSON 提取、构建、身份保护和 shell 校验脚本\n\n因此安装后不需要 clone 原始 bento 项目，也不需要联网下载运行时。\n`BENTO_REPO` 只用于上游兼容性复核，不是前置条件。\n\n### 跟随上游，但不在运行时漂移\n\n普通使用始终读取安装包里的固定快照。维护时可以检查 nyblnet\u002Fbento 的最新\n正式 release：\n\n```bash\npython3 scripts\u002Fsync_upstream.py \\\n  --report reports\u002Fupstream-sync-check.json\n```\n\n确认需要刷新后：\n\n```bash\npython3 scripts\u002Fsync_upstream.py \\\n  --update \\\n  --report reports\u002Fupstream-sync.json\n```\n\n同步器要求 shell、官方 skill、`docs\u002Fagents.md` 和格式规范来自同一个 release，\n全部暂存并验证成功后才替换。仓库还会每日检查一次上游；发现新 release 时\n只创建带完整门禁结果的 PR，不会绕过 review 直接修改 `main`。\n\n### 安装\n\n1. 安装 skill：\n\n   ```bash\n   npx skills add joeseesun\u002Fqiaomu-bento-ppt\n   ```\n\n2. 验证：\n\n   ```bash\n   test -f ~\u002F.agents\u002Fskills\u002Fqiaomu-bento-ppt\u002FSKILL.md\n   python3 ~\u002F.agents\u002Fskills\u002Fqiaomu-bento-ppt\u002Fscripts\u002Fbento_deck.py locate\n   ```\n\n   `locate` 应返回 `\"standalone\": true`。\n\n### 你可以直接这样说\n\n- “用 qiaomu-bento-ppt 把这份报告做成 12 页离线演示文稿。”\n- “修改这个 `.bento.html`，保留 docId，增加 morph 和演讲者备注。”\n- “跳过确认，按默认决策型结构生成一个单文件 HTML 发布会 deck。”\n- “把这些数据做成可交互图表，并在浏览器里验收。”\n\n### 工作流\n\n1. 生成 `deck-plan.md`：受众、目标、叙事弧、逐页计划、视觉方向和证据。\n2. 读取包内固定版本的官方 bento 规范。\n3. 新建 `deck.json`，或从既有 `.bento.html` 提取 JSON。\n4. 把内容映射到 chart、table、morph、state、media 和 motion。\n5. 使用包内 shell 构建新的 `.bento.html`，默认不覆盖源文件。\n6. 检查文档结构、`docId`、文档块和 shell。\n7. 在真实浏览器中检查编辑态、演示态、字体、图片、图表和动效。\n\n### 前置条件\n\n- [ ] 安装时需要 Node.js \u002F npx：`node --version && npx --version`\n- [ ] 运行时需要 Python 3.10+：`python3 --version`\n- [ ] 需要现代浏览器打开 `.bento.html`\n- [ ] 如使用外链图片或视频，需自行保证网络可用性和版权\n\n正常生成不需要 API key、账号、bento checkout 或云服务。\n\n### 命令行工具\n\n检查独立资产：\n\n```bash\npython3 scripts\u002Fbento_deck.py locate\n```\n\n新建 deck：\n\n```bash\npython3 scripts\u002Fbento_deck.py build deck.json \\\n  --output result.bento.html \\\n  --new-document \\\n  --report reports\u002Fdeck-validation.json\n```\n\n编辑已有 deck，同时锚定原始身份和 shell：\n\n```bash\npython3 scripts\u002Fbento_deck.py extract original.bento.html --output deck.json\n\npython3 scripts\u002Fbento_deck.py build deck.json \\\n  --identity-source original.bento.html \\\n  --output original.updated.bento.html \\\n  --report reports\u002Fdeck-validation.json\n```\n\n脚本会拒绝 `deck.json` 与原文件 `docId` 不一致的构建。\n\n### 可选配置\n\n| 变量 | 必需 | 说明 |\n|---|---:|---|\n| `BENTO_SHELL` | 否 | 显式使用另一份可信 bento shell |\n| `BENTO_REPO` | 否 | 仅用于上游项目兼容性 gate |\n\n### 验证这个 skill\n\n```bash\npython3 scripts\u002Fvalidate_skill.py .\npython3 scripts\u002Ftrigger_eval.py . \\\n  --cases evals\u002Ftrigger_cases.json \\\n  --output reports\u002Ftrigger-eval.json\npython3 evals\u002Foutput\u002Frun_fixture.py \\\n  --output reports\u002Foutput-eval.json\n```\n\nfixture 会在临时目录完成新建和编辑两条路径，证明：\n\n- 内置 shell 可以独立构建 deck\n- 新文档只 mint 一次 UUID\n- 编辑时 `docId` 保持不变\n- source deck 和 fixture 都不会被改写\n- 生成文件通过结构和 shell gate\n\n### 风险与限制\n\n- 默认会写入计划、JSON、报告和新的 `.bento.html`。\n- 默认拒绝覆盖已有输出；只有明确需要时才使用 `--overwrite`。\n- 外链媒体会破坏完全离线承诺。\n- 固定 shell 不会自动升级；上游更新需要重新做兼容性和 clean-install 验证。\n- 脚本通过不等于视觉正确。没有实际打开浏览器时，必须标记\n  `missing evidence: browser visual review`。\n- 本 skill 不执行 bento release、签名或部署，也不会读取签名密钥。\n\n### Troubleshooting\n\n| 问题 | 原因 | 解决 |\n|---|---|---|\n| `standalone: false` | 安装包缺少内置 shell 或规范快照 | 重新运行 `npx skills add joeseesun\u002Fqiaomu-bento-ppt` |\n| `output exists` | rollback boundary 阻止覆盖 | 换输出名；明确需要时才加 `--overwrite` |\n| `input docId does not match` | 编辑 JSON 与原 deck 身份不一致 | 从原文件重新 extract，并传 `--identity-source` |\n| shell gate 失败 | 文档块损坏或 shell 不兼容 | 使用包内 shell 重新 build，不要手工拼 HTML |\n| deck 能打开但画面不对 | 字段遗漏、越界、素材或字体不可用 | 查 validation report，再做浏览器验收 |\n| 视频离线不可播放 | 使用了外链媒体 | 改成小型内嵌 data URI，或明确联网依赖 |\n| 上游显示 `outdated: true` | 官方已有新 release | 审阅同步 PR，完成浏览器 gate 后再合并；普通生成不受影响 |\n\n### 致谢\n\n- [nyblnet\u002Fbento](https:\u002F\u002Fgithub.com\u002Fnyblnet\u002Fbento)：bento\u002Fslides shell、官方\n  skill、文档模型和格式规范。固定版本与 SHA-256 见\n  [NOTICE.md](NOTICE.md)。\n- `qiaomu-meta-skill`：Skill IR、触发评测与证据边界；其方法受\n  [yaojingang\u002Fyao-meta-skill](https:\u002F\u002Fgithub.com\u002Fyaojingang\u002Fyao-meta-skill)\n  启发。\n\n---\n\n\u003Ca name=\"english\">\u003C\u002Fa>\n## English\n\n`qiaomu-bento-ppt` turns briefs, notes, reports, datasets, or an existing\n`.bento.html` file into a complete bento\u002Fslides presentation.\n\nIt is standalone: the repository includes a release-locked bento shell,\nofficial authoring references, and deterministic build\u002Fvalidation tools.\nNo bento checkout or network download is required after installation.\n\nUpstream maintenance is explicit and coherent: `scripts\u002Fsync_upstream.py`\nchecks the latest official nyblnet\u002Fbento release and can refresh the shell and\nall three references from the same tag. A daily GitHub workflow opens a review\nPR when a new release appears; normal deck generation never updates itself.\n\nThe preview above is a real seven-slide product deck generated by this skill\nand reviewed in a browser. Download the\n[single-file deck](examples\u002Fqiaomu-bento-ppt-intro.bento.html), inspect its\n[deck plan](examples\u002Fqiaomu-bento-ppt-intro-deck-plan.md), or reproduce it with\nthe [generator](examples\u002Fbuild_intro_deck.py).\n\n### Install\n\n```bash\nnpx skills add joeseesun\u002Fqiaomu-bento-ppt\n```\n\nVerify:\n\n```bash\npython3 ~\u002F.agents\u002Fskills\u002Fqiaomu-bento-ppt\u002Fscripts\u002Fbento_deck.py locate\n```\n\nExpected: `\"standalone\": true`.\n\n### Natural-language examples\n\n- “Turn this report into a 12-slide offline bento presentation.”\n- “Edit this `.bento.html` deck, preserve its docId, and add morph transitions.”\n- “Create a single-file HTML product-launch deck with charts and speaker notes.”\n\n### What it protects\n\n- the plaintext `#bento-doc` splice contract\n- stable document identity when editing\n- one-time UUID minting for new documents\n- source-file rollback\n- structural and shell integrity\n- explicit evidence boundaries for browser and human visual review\n\n### Requirements\n\n- [ ] Node.js \u002F npx for installation\n- [ ] Python 3.10+ for build and validation\n- [ ] A modern browser to edit and present the generated file\n\nNo API key or bento source checkout is required.\n\n### Limitations\n\nThe bundled shell is pinned rather than auto-updated. External media breaks\nthe fully offline guarantee. Mechanical validation does not replace a real\nbrowser review.\n\n\u003C!-- qiaomu-profile:start -->\n## 关于向阳乔木\n\n向阳乔木（乔向阳 \u002F Joe）是一位实践型 AI 产品与内容创作者，长期把前沿 AI 变化转译成可复用的工作流、产品判断、AI 编程实践、AI 搜索实践和 GEO\u002FAI 营销方法。\n\n- 个人网站: https:\u002F\u002Fqiaomu.ai\n- 博客: https:\u002F\u002Fblog.qiaomu.ai\n- X: https:\u002F\u002Fx.com\u002Fvista8\n- GitHub: https:\u002F\u002Fgithub.com\u002Fjoeseesun\u002F\n- 微信公众号: 向阳乔木推荐看\n\n### 支持与关注\n\n| 打赏支持 | 微信公众号 |\n|---|---|\n| \u003Cimg src=\"assets\u002Fqiaomu-profile\u002Fqiaomu_reward_qr.png\" alt=\"向阳乔木打赏二维码\" width=\"180\" \u002F> | \u003Cimg src=\"assets\u002Fqiaomu-profile\u002Fqiaomu_wechat_public_account_qr.jpg\" alt=\"向阳乔木推荐看公众号二维码\" width=\"180\" \u002F> |\n| 感谢支持乔木持续分享 AI 实践 | 扫码关注「向阳乔木推荐看」 |\n\n\u003C!-- qiaomu-profile:end -->\n\n## License\n\nThe skill code is MIT licensed, Copyright (c) 向阳乔木.\n\nBundled bento assets remain MIT licensed, Copyright (c) 2026 The Bento\nauthors. See [NOTICE.md](NOTICE.md) and\n[THIRD_PARTY_LICENSES\u002Fbento-MIT.txt](THIRD_PARTY_LICENSES\u002Fbento-MIT.txt).\n",2,"2026-07-31 02:30:05","CREATED_QUERY"]