Slideshow 是一个图像叙事呈现技能,其定位是把生成的图像组织成线性视觉故事。它强调“相机是镐头,幻灯片是博物馆”“每张图像都在讲故事,幻灯片讲述的是那个故事”。Visualizer 负责创作图像,Slideshow 负责呈现图像,并对提示词中的元数据与侧车文件进行合成,形成可滚动的故事。
用途与理念
图像散落在目录中,目录会累积混乱。SLIDESHOW.md 把这种混乱转变为叙事:按时间排序的条目构成旅程,元数据合成提取含义,可无限下拉(death-scrollable)的布局在任何地方都能工作,封装让相关文件保持在一起。它可以被理解为视觉挖掘工作的博物馆。
立体幻灯片:YML + MD
立体幻灯片维护两个互补文件:SLIDESHOW.yml 作为“左眼”,是机器可读的事实来源;SLIDESHOW.md 作为“右眼”,是面向 GitHub 的人类可读叙事。YML 存放结构化数据(照片元数据、位置、房间引用),不含散文,仅语义事实,结构稳定以利于工具处理;MD 提供富 Markdown 展示(内联图像、说明文字、故事),可无限下拉呈现,并由 YML 生成。SYNC 协议规定:编辑 YML 后由 SYNC 生成 MD,YML 是唯一事实来源。
SLIDESHOW.yml 格式
示例字段包括:id(如 slideshow/pub/photos)、name、type(slideshow)、location(链接到编译后的房间,如 room/pub)、tagline,以及 contents 列表。contents 中每项可含 dir、subject、mood、role(如 ESTABLISHING、DETAIL)、image 等字段。另有可选的 narrative 段提供 MD 生成的叙事提示,如 opening_quote、style_notes,以及 compiled 段(room_ref、photo_count)供编译器将幻灯片链接到房间。
照片目录结构(立体)
每个照片目录同样可以是立体的:PHOTO.yml(左眼:元数据与生成设置)、PHOTO.md(右眼:叙事描述)、main-image.png(实际图像)、MINING-*.yml(挖掘层文件)。PHOTO.yml 可包含 subject.primary、subject.secondary、mood、camera(type、settings 如 aperture、iso)、generation(provider、prompt)等。PHOTO.md 则提供散文式描述。
命令与方法
SYNC SLIDESHOW [directory]:从 SLIDESHOW.yml 重新生成 SLIDESHOW.md。CREATE STEREO SLIDESHOW FOR [directory]:通过扫描目录创建 YML,再由 YML 生成 MD。UPDATE SLIDESHOW YML [directory]:扫描新照片并更新 YML 事实来源。
CREATE 方法:为图像目录生成 SLIDESHOW.md,过程包括发现目录中的图像(.png、.jpg、.webp)、查找每张图像的侧车文件(.yml 提示词、-mined.yml 资源)、按文件名时间戳或文件创建时间排序、从元数据合成叙事描述、写出带画廊结构的 SLIDESHOW.md。
LANDING 方法:为 GitHub 展示创建 README.md 落地页。原因是 GitHub 浏览目录时会自动渲染 README.md,但不会渲染 SLIDESHOW.md。落地页是前门,用来吸引访客阅读故事。README.md 通常包含标题与标语、画廊信息(幻灯片数、日期、风格、位置)、Featuring(人物及其目录链接)、Locations(房间及其目录链接)、故事摘要(新合成的、回答“点击进去我会体验什么”)、可选预览图像网格、技术信息(挖掘层、生成器)。典型工作流:CREATE SLIDESHOW → ORGANIZE INTO dirname → LANDING。
ORGANIZE 方法:将 SLIDESHOW.md 及其图像封装进一个命名子目录,例如 ORGANIZE pub/SLIDESHOW.md INTO dons-pub-photos-2026-01-19。封装前父目录混杂 ROOM.yml、SLIDESHOW.md、guestbook.yml 及大量图像与元数据文件;封装后相关文件归入具名子目录。命名约定为小写加连字符、具描述性、如有时间性则加日期后缀。封装的好处是:属于一起的文件留在一起、目录名具描述性、易于移动分享归档、不污染父目录、SLIDESHOW.md 成为索引。
SLIDESHOW.md 格式
每个 SLIDESHOW.md 应声明继承,例如 front matter 中 inherits: slideshow,以及 title、created、images、style 等。结构上包含带 emoji 的标题、开篇引语、简述、按 Shot 编号的段落(每个 Shot 含地点与时间、说明引语、内联图像、Location、Who's Here 人物列表、Files 链接到提示词与资源文件)、Stats 表格(时间、地点、亮点)、Style Notes 风格说明与结语引语。
元数据合成
SUMMARIZE 方法把原始侧车数据转换为叙事。从 prompt.yml 中提取:场景描述 → 地点、在场角色 → Who's Here、一天中的时间 → 拍摄时序、艺术风格 → 风格说明。从 prompt-mined.yml 中提取:主色调 → 视觉调色板、情绪/氛围 → 情感基调、隐含的声音/气味 → 感官细节、象征意义 → 更深层含义。输出为讲述故事的人类可读叙事。
与 Visualizer 的集成
视觉流水线为:Context YAML(房间、角色)→ Visualizer(生成)→ 图像与侧车文件(.png、.yml);图像与侧车文件 → Image Miner(提取)→ 资源(-mined.yml);全部文件 → Slideshow(呈现)→ SLIDESHOW.md(叙事)。Visualizer 通过 CARD.yml 中的 advertisements 段向 Slideshow 广告自身,包含 delegates_to、score、condition 等字段,条件为“生成图像后创建/更新画廊”。
画廊发现
幻灯片可被发现与链接,例如通过 find examples/adventure-4 -name "SLIDESHOW.md" 查找。跨幻灯片导航可通过“Related Galleries”链接到其他 SLIDESHOW.md。
无限下拉设计与叙事连接
SLIDESHOW.md 面向 GitHub 渲染,采用移动优先、图像缩放、文本换行、无限下拉、内联图像无需外链、可折叠区块、emoji 标题、表格等设计。好的幻灯片通过连接讲述故事:Shot 1 引入场景,Shot 3 展示该场景中的角色,Shot 5 捕捉高潮,Shot 8 是余波并回到原点。元数据使这种合成成为可能——提示词描述意图,挖掘揭示浮现的内容。
命令参考
CREATE:为目录生成 SLIDESHOW.md;UPDATE:向现有画廊添加新图像;SUMMARIZE:将元数据合成为叙事;ORGANIZE:封装进子目录;COMPARE:跨图像比较章节。
UPGRADE(旧版幻灯片迁移)
UPGRADE 标注为未来功能,尚未实现。设计上非常灵活,可从任意输入开始:含提示词列表的单个文件(YML 或 MD)、装满零散图像的目录(通过挖掘反向工程出提示词)、仅有提示词(之后再生成图像)、混合混乱内容,甚至仅有想法的空目录。输入选项 A 为单个提示词列表文件(my-ideas.yml 或 my-ideas.md),会被拆分为单个提示词、删除原文件、创建完整结构。输入选项 B 为图像目录(如含 2026-01-19-dusk-scene-v3.png、morning-light-final.png、random-sketch.jpg),会以挖掘提示词模式从图像挖掘提示词并结构化全部内容。输入选项 C 为混合混乱(图像 + 提示词 + 其他),UPGRADE 会判断每个文件类型:.png/.jpg → 图像 → 挖掘提示词;含散文的 .txt/.md → 提示词 → 之后生成图像;含列表的 .yml → 提示词列表 → 拆分;未知 → 作为次要文件带过来。随后进行结构化:按名称相似度聚类相关文件、创建 001-descriptive-name/ 目录、图像命名为 image.png(主图,无时间戳无索引)、保留原始文件名作为次要文件、挖掘图像提示词或使用已有提示词、生成 PHOTO.yml 与 PHOTO.md 骨架、移除已消费的提示词列表文件、生成 README.md、SLIDESHOW.yml、SLIDESHOW.md。调用方式:UPGRADE path/to/anything(实现后)。
与其他技能协作
与 Visualizer(创作图像)、Image Mining(提取资源)、Storytelling Tools(叙事结构)、YAML Jazz(元数据作为燃料)、Room(空间上下文)、Character(出场角色)等配合。完整规范见 CARD.yml。