AI agent skill · by @yunshu0909
Scene Ppt
场景化讲解 PPT(图片版,一页一张 16:9 图)。读一篇文章或一个主题,把整套内容放进你的默认「世界」里讲(小课堂、后厨、RPG、像素小岛、复古广告…第一次看样张选),逐页设计场景、定好图上每个字,交给 Codex 内置 imagegen 原样出图。当用户说「做成 PPT」「出一套讲解幻灯片」「用 PPT 讲 XX」「把这篇文章做成 PPT」「换默认世界」时触发。
Archived 2026-10-23 · Source updated 2026-10-11 · License: MIT. Check the original repository for the latest version.
SKILL.md instructions
# 场景讲解 PPT(scene-ppt) **「做成 PPT」= 一页一张 16:9 图,不是 .pptx 文件。** 图上的字不能再编辑。 本 skill 自带出图脚本和用得到的风格卡,不需要另装别的 skill。下文 `S` 指本 skill 的脚本目录: ```bash S=<本 SKILL.md 所在目录>/scripts ``` ## 核心:换世界,不是换皮 整套 PPT 只用**一个世界**讲完:世界里的角色 = 要讲的对象,世界里的器物 = 概念。比如讲 Skill: | 世界 | AI 是谁 | Prompt 是什么 | Skill 是什么 | |---|---|---|---| | 后厨 | 新来的学徒 | 主厨一口气的口头交代 | 一本菜谱 + 分格备料架 | | 中药铺 | 新来的小伙计 | 把药材一股脑倒进一锅 | 一张方子 + 百子柜 | 世界定了,每页的场景从这个世界里自然长出来(前台、后厨、备料间、试菜…),页与页自然不同。实测证据见 `reference/lessons.md`。 ## 默认世界(每次开工先看) `python3 $S/settings.py get world`(打印出世界 ID = 有默认;**打印空行 = 还没设**)。 世界 ID:`classroom` 小课堂、`kitchen` 后厨、`rpg` RPG 技能书、`island` 像素小岛、`retro` 50 年代复古广告、`pharmacy` 中药铺、`captain` 机长检查单、`bricks` 积木说明书、`studio` 剧组片场、`library` 森林图书馆、`pitstop` 赛车维修站(详情见 `reference/worlds.md`)。用户直接点名某个世界就不用开选择页,直接 `set world`。 | 情况 | 怎么做 | |---|---| | 有默认 | 告诉用户「本次用默认世界:X,要换说一声」,直接往下做 | | 没有(第一次用) | 先 `python3 $S/doctor.py` 自检;再 `python3 $S/world_picker.py <任务目录>/世界选择.html` 打开世界选择页,用户看样张挑一个 → `python3 $S/settings.py set world <世界ID>` | | 「换默认世界」 | 重新打开选择页,选完 `set world` | | 「这次用 RPG」 | 只这一次,不改设置;在 `outline.md` 顶部写「本次世界:rpg」 | | 选的是小课堂(classroom) | 要用户的角色:`settings.py get-character`(第一次用会报「没有角色」,这是正常的)。没有就 `import-character ~/.comic-maker/characters/<ID>`(用过漫画小课堂的话),或用用户给的 IP 图 `add-character`(字段见下面「角色档字段」),没有 IP 就先用漫画小课堂生成一个 | 世界库在 `reference/worlds.md`(映射、场景、画风、载体、作者评价、样张)。数据存在 `~/.scene-ppt/`,升级 skill 不会覆盖;家目录写不进时(Codex 沙盒)自动存到当前项目的 `.scene-ppt/`,以后在这个项目里用会自动读到;也可以用环境变量 `SCENE_PPT_HOME` 指定。 **几种情况叠在一起时**:用户点名了世界 → 不开选择页;快速模式 → 跳过大纲拍板;用户只要几页 → 那几页就是全部,出完即交付;第一次用的试图确认只在确认模式下等用户。 ## 角色档字段(只有小课堂世界需要) | 字段 | 怎么写 | 用在哪 | 例子 | |---|---|---|---| | 角色ID | 英文小写 | 文件夹名 | `tuantuan` | | `--ref` | 角色图,png / jpg / webp 都行,最好单个角色、正面、背景干净、图里没字;会转成 `ref.png` | 出图时自动垫图 | `团团.png` | | `--name` | 中文名 | 画面描述、对话 | 团团 | | `--desc-cn` | 中文外貌短语,**不带名字**,能直接接名字 | 每页主角第一次出现写「<desc_cn><name>」 | 戴圆框眼镜、穿米色针织背心的小熊猫 | | `--name-en` / `--species-en` / `--desc-en` | 英文名、物种、英文外貌(和漫画小课堂通用,本 skill 不直接用,照图写上即可) | 漫画小课堂 | Tuantuan / Red Panda / red panda with cream face markings, round glasses… | | `--series` | 系列名 4–6 字 | 封面系列名木牌 | 团团小课堂 | **写完给用户看一遍**(名字、外貌、系列名),用户说对再 `add-character`。 ## 分工 - **当前助手(Claude 或 Codex)**:读物料、按默认世界写映射和大纲、设计每页场景、定图上每个字、逐页看图检查。 - **Codex 内置 imagegen**:只按提示词原样出图,不改写。 ## 流程 | 步 | 做什么 | 产物 | |---|---|---| | 1 读物料 | 提炼要讲的概念(通常 6–15 个;物料很短就按它自然有几个算,不硬拆),每个标类型:对比 / 流程 / 分层结构 / 误用反例 / 版本迭代 / 本质结论;数字和事实只用原文 | 概念清单 | | 2 映射 + 大纲(**用户拍板一次**) | 按默认世界写映射表(世界库的例子都是讲 AI 的,按这次物料重新想;比喻会歪曲原文概念就提出来);再按 `templates/outline.md` 写大纲:封面 → 目录(6 页以内可省)/ 章节 → 内容页 → 结尾,每页写页型、场景一句话、文字清单;**同一种场景结构不连续用两次**。两样一起给用户看 | `outline.md` | | 3 写每页 | 按 `templates/page-example.txt`(中药铺样例)和**当前世界的 `examples/<世界>/`**(有的话)写 `adapt/<图号>-<风格>.txt`(图号两位数 `01`、`02`…,风格是世界卡里的编号,如 `03-N50.txt`;文件必须有【画面与版式】和【必须逐字放入的文字(唯一真值)】两段,照样例):第一句画幅,标题载体,主场景(写主体占比),文字放在什么载体上,角色外貌;文字清单逐字 | `adapt/*.txt` | | 4 出图 | 下面的命令。**第一次用或刚换世界:先出封面 + 1 页内容给用户看,等用户说可以**再出整套 | `out/`、`发布/`、`review.html` | | 5 检查 | 逐页看图(见「交付前检查」),有问题只改一处重出 | `发布/01.png…` | 快速模式(用户说「直接做」「你定」):跳过第 2 步的拍板,直接出图。 ## 出图命令 ```bash python3 $S/check_prompts.py <任务目录> # 检查:「」只留给要画的字、写了主体占比 python3 $S/render_codex.py <任务目录> --only 01- # 第一次 / 换世界:先出封面(--only 按文件名开头匹配,可用逗号:--only 01-,03- 同时出封面和第 3 页) python3 $S/render_codex.py <任务目录> --batch 6 --parallel 4 # 出剩下的 + 核对 Codex 收到的提示词是否逐字 python3 $S/make_page.py <任务目录> --title "标题" # 对比页(出图后会自动生成;想改标题再跑这条) ``` - 风格块来自本 skill 的 `styles/`(世界卡里写了用哪张)。 - 小课堂世界(N49):没给 `--ref` 时自动用默认角色的参考图;没有角色会报错。 - 改了某页的 `adapt/`,直接重跑 `render_codex.py`:提示词变了的页,旧图自动移到 `_v1/` 再重出。 - 每次出完自动重建 `发布/`:按整套页序放所有已出好的页,文件名序号 = 第几页(第 3 页就是 `03.png`;还没出的页留空号)。 - 默认用你 Codex 自己配置的模型(`--model` / `--effort` 可指定)。 - **Codex 自己跑本 skill**:不调 `render_codex.py`(会再起一个 Codex)。跑 `check_prompts.py`、`build_prompts.py`,对 `prompts/` 每个文件调内置 imagegen(prompt = 全文原样;小课堂世界 `referenced_image_paths` = 角色 `ref.png` 绝对路径,不传 `num_last_images_to_include`),存为 `out/<同名>.png`,再跑 `verify_log.py` 和 `make_page.py`(`make_page.py` 会顺便整理 `发布/`)。调用 imagegen 后别把整个工具返回打印出来(里面是很长的图片数据),只取保存路径,复制到 `out/` 后再看图。 ## 每页怎么写(铁律) 1. 第一句:`16:9 横版,一页讲课演示文稿(封面 / 对比页 / 流程页…)。` 2. **标题载体全套统一**(都在左上木牌 / 都在顶部缎带 / 都在牌匾),翻页才像一套。 3. 每页 1 个标题 + 2–9 处短文字;标题 ≤ 20 字,每条 ≤ 22 字。 4. 文字放在世界原生的载体上(菜谱卡、宣纸签条、检查单夹板、浮标标签),不要飘在空中。 5. **角色名(文字清单「」前面的名字)用中性词**:左卡、中签、右签、上条;**别用序号词**(第一格、便签一、第一步、错一),画面描述里别写「写甲卡」,直接写「写『某某』那句话」或「写左卡」。编号、分层类词(第一关、上层)会被画上去。 6. 写主体占比(「下方约七成」「约占画面宽度六成」)。 7. **原文没有的效果、数字、结论一个字都不加**(原文没打分就写「—」)。 8. 角色外貌写细(「圆滚滚的主厨,白色高帽、红色领巾、八字胡」),跨页才一致。小课堂世界:主角第一次出现写「<中文外貌><名字>」(角色档的 `desc_cn` + `name`)。 ## 交付前检查(当前助手逐页看图,必须做) 脚本报的「提示词逐字」只说明 imagegen 收到的提示词没被改写,**不代表图上的字画对了**。 - 错字、漏字;角色名有没有被画上去(「甲卡」「第一关」)。 - 模型自己加的小字有没有说过头。 - 主体是否太空、文字是否被裁、有没有拼接竖缝。 - 汇报时分两项:提示词逐字 N/N;图上文字看过、问题逐条列出。 - 有问题:一次只改一处重出,新旧并排给用户。 ## 新增世界 见 `reference/worlds.md` 末尾:写在 `~/.scene-ppt/worlds/`,出 1–2 页试图,**用户说喜欢、有了样张才进选择页**。 ## 目录 - `reference/worlds.md`:世界库;`reference/world-samples/`:世界样张 - `reference/page-types.md`:页型 → 场景写法;`reference/lessons.md`:实测规则与证据 - `templates/outline.md` 大纲模板、`templates/page-example.txt` 单页写法、`templates/common.txt` 通用约束、`templates/codex-task.md` 给 Codex 的任务模板 - `styles/`:用得到的风格卡(N49 小课堂、N24 后厨、N50 RPG、N42 像素、N02 复古广告、N78 国风、N03 积木、N41 日式动画、N11 绘本) - `examples/`:整套提示词 + 缩略图(小课堂橘子、后厨、RPG、中药铺) - `scripts/`:`doctor.py` 自检、`settings.py` 默认世界和角色、`world_picker.py` 世界选择页、`render_codex.py` 出图、`check_prompts.py`、`build_prompts.py`、`verify_log.py`、`make_page.py` ## 任务目录 建在用户的项目或工作目录下(没有项目就在当前目录建 `ppt/`);世界选择页也生成在任务目录里。 ``` <项目>/ppt/<NN-简述>/ outline.md adapt/<图号>-<风格>.txt (可选)common.txt prompts/ out/ logs/ 脚本生成 review.html 发布/01.png… _v1/(旧图) ```