Community编程与开发github.com

paulmil11/decks

运行反馈轮次并在Decks中构建幻灯片。HTML幻灯片在浏览器中预览,地址为 http://localhost:8790(或配置的端口)。

decks 是什么?

该技能使AI代理能够管理Decks幻灯片构建工作流程并进行迭代反馈,Decks是一个基于HTML的幻灯片编辑器,在本地服务器上以浏览器形式运行。它支持完整的“处理变更”操作流程:读取审阅者评论、在幻灯片文件中进行编辑、使用CLI命令(`sb comments`、`sb working`、`sb reply`)回复审阅者,以及导出PDF版本。代理可维护一个包含评论和回复结构化记录的`review.json`文件,并执行多项检查——包括五秒测试(第一印象)、十秒测试(可读性)、水平流程(仅标题叙事)和垂直流程(标题先行)——同时运用StrategyU方法论。关键要求包括:使用行为标题(完整句子而非短语)、每张幻灯片仅传达一个想法、图表需证明标题、以及确保叙事在去除视觉修饰后依然连贯。该技能原生集成于Decks仓库文件中,可在Claude Code、Cursor和Codex等AI代理开发环境中运行。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/paulmil11/decks/tree/HEAD/.claude/skills/decks

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

decks 是做什么的?

用户在浏览器中审阅幻灯片。他们在某张幻灯片下方输入评论(或直接编辑幻灯片上的文本),然后说“处理变更”或点击幻灯片中的 Ask Claude,此时会复制一个提示,其中包含幻灯片文件名和下面的 sb 步骤;请将该提示视为针对该幻灯片的“处理变更”。你需要对每条评论进行操作,在幻灯片上直接回复,检查你的工作,然后导出。请保持聊天摘要简短:详细信息由幻灯片上的回复承载。

文件位置

  • 应用文件夹是Decks仓库:即本技能所在文件夹(其内部的 .claude/skills/decks/),或者,如果本技能被复制到 ~/.claude/skills/,则是用户克隆它的位置。Ask Claude提示会指明该文件夹。它包含 server.py、sb 命令行、static/ 目录下的浏览器外壳、templates/ 目录下的模板,以及 tools/ 目录下的无头工具。请在其中运行 sb:./sb ...。
  • 服务器:python3 server.py,地址为 http://localhost:8790/,除非 config.json 或 SB_PORT 另有指定。如果 sb 提示服务器无法访问,请启动它(在后台)并重试。sb 通过 SB_URL 或在已配置的端口上找到它。
  • 幻灯片存放在幻灯片文件夹中(默认为 ~/slide-decks),每个幻灯片一个文件夹,并通过其中的 decks.json 列出。./sb decks 命令可列出它们及其地址。
  • 通过 http://localhost:<port>/d/<slug>/<entry> 打开某一幻灯片。#s=<slide-id> 可直接跳转到某张幻灯片,#v=<version>&s=<id> 则选择特定版本。
  • 保存的状态位于每个幻灯片文件夹旁的 .slidebuilder/ 目录中:
    • state.json:审阅者的编辑、评论和幻灯片顺序,从页面镜像而来。切勿手动写入。
    • review.json:你的回复、轮次和已变更标记。通过 sb 写入。
  • 每个幻灯片文件夹都是一个 Git 仓库。PDF、ZIP 和 PPTX 文件被忽略。

页面

  • 四种视图:焦点视图 (F)、滚动视图 (S)、排序视图 (G) 和检查视图 (C)。左侧的胶片条可通过拖拽重新排序。
    • 在焦点视图和滚动视图中,评论框位于每张幻灯片下方,你的回复显示在评论框下方。右侧面板包含幻灯片的备注和变更内容。
    • 检查视图包含五个检查项,按键 1 至 5:5 秒测试(第一印象)、10 秒测试(可读性;如果未通过,会在幻灯片上留下一条评论供下一轮处理)、水平流程(仅标题,可原地编辑)、垂直流程(先显示标题,再显示详情直至揭示),以及指南。
    • 评论可能来自检查项:定时测试未通过后的“五秒测试:…”和“十秒测试:…”,以及通过 Ask Claude 要求修复检查 > 指南中指出的问题时的“指南:…”,其中会说明幻灯片违反了哪些规则。如同处理任何评论一样,修复幻灯片使其通过测试。
    • H 键隐藏除标题外的所有内容。? 键列出所有快捷键。
  • 添加幻灯片(N、"+ 幻灯片",或幻灯片之间的 +)会建议布局,并可添加幻灯片中已有的内容。其“复制”提示会提供幻灯片文件、位置以及幻灯片应包含的内容。当提示说“我刚添加了一张 … 幻灯片 (LIBRARY['id'])”,则填充该幻灯片;当提示说“添加一张新幻灯片 …”,则在幻灯片文件的指定位置构建它。
  • 当审阅者在检查视图中编辑标题时,此为内联编辑:像处理其他编辑一样将其固化。
  • 隐藏客户工作(仪表盘中的开关,位于幻灯片文件夹中的 settings.json)用于录制或屏幕共享。开启该功能后,服务器将隐藏标记为 client 的幻灯片以及 clientVersions 中列出的版本。开启此功能时,切勿在屏幕上显示客户名称。

一个轮次(“处理变更”)

  1. 切换到应用文件夹。
  2. ./sb comments <deck> 列出需要处理的评论,编号与幻灯片一致。草稿被跳过。./sb edits <deck> 显示审阅者的内联文本编辑和幻灯片移动。两者均从磁盘读取,因此你不需要他们的浏览器标签页。
  3. ./sb status <deck> "正在阅读您的9条评论" --done 0 --total 9。审阅者会在顶部栏中实时看到此状态。请随着工作进行更新。
  4. 对于每条评论:
    • ./sb working <deck> <slide>。
    • 在幻灯片文件中进行更改。
    • ./sb reply <deck> <slide> done "一句简单的话说明更改了什么"。
    • 如果你需要审阅者决策,则使用 question 代替 done。对于你故意未作更改的内容,使用 skipped 并说明原因。
    • 对于不完整的评论,回复 question,不要猜测。
  5. 将审阅者的内联编辑固化到幻灯片文件中(以他们的编辑为准)。Git 中保留旧版本。
  6. 检查你处理过的每张幻灯片:
    • ./sb shot <deck> <ids…>,然后查看每张图片。
    • ./sb audit <deck> 查找溢出、重叠的标签以及指南标记的任何问题。
    • ./sb comments <deck> 应显示没有新的未处理评论。
  7. 完成:
    • ./sb export <deck> 从幻灯片文件写入下一个编号的 PDF,并将旧文件移至 _archive/。如果浏览器中仍存有未固化的编辑,程序会提示:请先固化它们。使用 --with-edits 则完全按浏览器显示的内容导出。
    • ./sb round <deck> --summary "…" --changed id="变更内容" … --export vN。
    • ./sb commit <deck> "第N轮:…"。
    • ./sb idle <deck>。
    • 告知用户 PDF 的位置。
  8. 审阅者停止输入后,页面会自动重新加载。不要重新加载或清除他们的标签页。在聊天中:简短说明,加上任何需要他们决策的内容。

新评论可能在你工作期间到达。完成前请再次运行 ./sb comments。

审阅者通过说“看起来不错”来清除已处理的评论。不要将它们添加到 DONE_FB;该列表仅适用于在 Decks 外部打开的副本,如发送给他人的文件。

幻灯片文件

  • 每个幻灯片一个独立的 HTML 文件,包含你需要编辑的三个部分:
    • content:LIBRARY 条目('id': { cat, layout, title, …, notes }),通过 cat 分组为各部分(各部分名为 CATS,在 CAT_LABELS 中命名)
    • figures:FIGS 函数,返回内联 SVG
    • versions:PITCHES(每个包含一个名称和一个幻灯片 ID 列表)
  • 默认版本是每个部分内 LIBRARY 的顺序。要重新排序,请移动 LIBRARY 条目。与旧默认顺序相同的已保存顺序会跟随文件。
  • 使用 alt:true 将幻灯片标记为淘汰(它会移至排序视图的“架子”),并将其替换版本放在它之前。不要删除用户的幻灯片。幻灯片的替代版本使用 prop:true, replaces:'…'(标记为“建议”)。
  • 来源行通过 src:'来源: …' 放入页脚,而不是作为副标题。
  • 颜色、标题字体和徽标:位于幻灯片文件中的 <style id="deck-theme"> 块,以及用于幻灯片徽标的 img/ 目录中的 LOGO。通过编辑该块来重新设置样式,而不是单独修改每张幻灯片。如果没有 LOGO,幻灯片将不显示徽标。
  • 大的视觉变更(新布局、重新设计):首先向用户展示一个或两个选项的模型,然后再构建。
  • 当用户想要发送给他人的文件时,请使用 ⋯ 菜单中的 客户副本:仅包含屏幕上显示的幻灯片(无备注、评论、引导幻灯片、其他版本或编辑功能),图片内嵌,并带有“演示”按钮。可编辑副本 是包含备注和评论的完整幻灯片:切勿将此类副本发送给客户。
  • 使用 ./sb hide <deck> 将幻灯片从仪表盘中隐藏(使用 ./sb show 恢复)。./sb delete <deck> --yes 将本应用创建的幻灯片移至废纸篓,并仅从用户自己的文件夹中取消注册某个幻灯片。仅在用户要求时删除。
  • 下载图片或徽标需要每次都获得用户的同意。告知他们文件名、来源、大小和许可信息,并在页脚中注明出处。

方法论

Decks 基于 Paul Millerd 在 StrategyU 教授的方法论。将其应用于你编写或修复的每张幻灯片。如果已安装 strategy-slides 技能,则其中包含完整版本:请将其用于故事线、标题和反馈。

答案先行。 先给出建议,然后是背景,最后是证据。只有在面对持怀疑态度的受众时,才逐步展开建议(先讲现状和难点,再讲关键观点)。

先构建草稿版本。 在构建任何幻灯片主体之前,按顺序编写所有行为标题,并将它们作为一个段落朗读。如果这个段落无法构成令人信服的论证,则立即修正标题或顺序;这是修正故事成本最低的阶段。同时标注每个主体必须展示什么来证明其标题。

垂直流程:标题是核心观点,主体证明它。

  • 每个标题都是行为标题:一个表达观点的完整句子。例如:“第三季度收入增长22%,由企业扩张推动”,而不是“第三季度收入”。
  • 避免模糊标题。“公司正在改善”是第一步;“盈利能力在五年内首次提升,归因于供应链投资”才是最终目标。
  • 不要使用“关键要点”框或底部摘要条。核心洞见应在页面顶部。
  • 使用带有自然宾语的实义动词。不要将数据拟人化或强行使用比喻描述数字。不要使用逗号连接的不完整片段(例如“一种思维模式,当工作需要两种时”)。标题最多两行。大声朗读:它听起来应该像一个人对同事说的话。
  • 仅含计数的标题是无效的。“三个风险及其应对方式”应改为具体发现:“真正的风险在于西海岸服务,而非仓库容量。”
  • 封面、章节分隔页和附录分隔页不受此规则限制。但结尾页不是:“在3月14日前批准,我们即可在续租前退出两份租约”,而不是“下一步””。

水平流程:仅标题就能讲述故事。 依次阅读它们(通过“检查”>“水平流程”)。如果脱离幻灯片主体后标题无法自明,则修正标题或顺序。

每张幻灯片一个想法。 如果一张幻灯片需要用到“此外”,那么它需要被拆分成两张幻灯片。

五秒和十秒测试关乎可读性。 一张用于演示的幻灯片应在五秒内传达其要点。一张供人阅读的幻灯片应在十秒内被理解:一个主要观点、可读的层次结构、一个无需仔细研究就能读懂形状的图表。文本墙、密集表格中深藏的关键数字、以及一张幻灯片上的多个不相关想法均无法通过测试。

“那又怎样?”是一个独立的测试。 三个整齐的方框分别写着“创新”、“卓越”、“增长”可以通过十秒测试,但会失败于“那又怎样?”测试(漂亮的幻灯片综合症)。每张幻灯片都应告诉受众该思考什么。在给出反馈时,请将这两个发现分开陈述。

图表证明标题。 在绘制图表前先撰写信息。条形图、柱状图和折线图几乎涵盖所有情况;切勿使用饼图。重要的数字应是图表中最突出的标记,标题中提到的任何内容(例如经济衰退、转折点)都应在图表上进行标注,而所有不支持标题的内容都应删除。不确定的数据应添加“示意”标签并说明假设前提。

执行摘要是最重要的幻灯片: 标题应为建议,并包含三项观点,每项附带一行证据。仅在长幻灯片(20张以上)且具有明确独立章节时才使用章节分隔页。

演示型或阅读型。 演示型:正文少于20个词、一个想法、大量可视化元素。阅读型:允许更多文本,但要使用加粗引导词,且每张幻灯片应自成一体(因为它可能被转发)。

对幻灯片给出反馈。 先通读整个幻灯片。然后按顺序给出:故事(标题序列、它们的含义、缺少或顺序错误的内容);有问题的幻灯片及其修复方案(如果标题是问题所在,请写出新的标题);以及最重要的三项变更,附上论证及其优先级,之后再谈字体和颜色。如果论证本身不成立,请先说明这一点。引用前请核实每个幻灯片编号。

写作风格。 使用主动动词、缩略词和数字而非形容词。禁止使用的词:深入研究、图景、利用、使用、关键、关键性的、稳健的、无缝的、变革性的、强调、此外、而且、再者。每张幻灯片至多一个破折号。

幻灯片样式规则

在方法论基础上,还需遵守:

  • 卡片或框底部不得出现小号、灰色或斜体文字。将任何重要内容归入其所属的项目中。
  • 避免使用相同卡片的网格。应绘制关联性:流程、光谱、阶梯、图表或地图。
  • 说明应为一句简单的话。反思性问题应使用平实的语言,并围绕受众自身的工作展开。
  • 议程时间以5分钟为单位设置。
  • 优先使用用户自己的材料、图表和措辞,而非自己创造框架。需要删减时,先删除自己创造的幻灯片,并保留构建/铺垫-收尾的完整配对。
  • 在备注中标记你起草的文本,以便用户替换。
  • 引文和数字仅来自你在会话中打开过的来源,需准确引用并注明原作者。
  • 所有内容必须通过“检查”>“指南”:保护边框、两行标题、无小于12px的字号、每张幻灯片不超过四种文本大小。这些是指导原则而非硬性规则;修复 sb audit 列出的问题,或者说明某张幻灯片为何是例外。

开始一个新幻灯片

用户通过仪表盘的 新建幻灯片 表单启动幻灯片,分两步进行。步骤1:名称、构建类型(演示文稿、培训、演讲、提案或空白幻灯片),以及需要同时构建的其他部分。步骤2:目标受众、他们的已知信息和关注点、核心观点、以及可选的长度、受众类型、结构、密度、颜色、标题字体、徽标和备注。创建幻灯片会创建文件夹、分配其独有的存储前缀、将其添加到 decks.json、初始化 Git 历史、将简要说明写入 BRIEF.md、将提示复制到剪贴板,然后打开幻灯片。当他们粘贴该提示时:

  1. 在幻灯片文件夹中阅读 BRIEF.md,并在编写幻灯片之前根据其内容调整模板。模板是起点,而非固定形式:

    • 使用方式。 演示型:每张幻灯片一个想法、大字号、少量文本;必须通过5秒测试。供阅读型:每张幻灯片自成一体,正文更充实;必须通过10秒测试。先演示后发送型:可演示的幻灯片,详细信息放入备注或附录。
    • 受众及其知识水平。 根据受众调整词汇、示例和解释程度;对于高管,请先将答案前置。
    • 结构。 答案先行:先给建议,再讲理由。现状、难点、解决方案:按此顺序。分几个部分讲述故事:带分隔页的章节。教学、练习、反思:带练习和反思性问题的模块。
    • 密度。 稀疏、均衡或详细,按文字说明执行。
    • 任何留空的选项都应由你自行决定。
  2. 在 BRIEF.md 中,每个条目包含一个简短的简要说明。将其用作想法生成器:填充它或用你的建议替换它,但不要在用户设定了方向后完全偏离。

  3. 选择布局:{推荐、选项、流程、议程、引文、数字、人员、并列、概览、愿景、反应、分隔页}。当没有明确的最佳选择时,使用“推荐”布局。避免使用“概览”布局,除非内容确实适合这种相对分散的形式。

  4. 构建草稿版本(所有标题的骨架),然后通过“检查”>“水平流程”检查它们是否正确。

  5. 逐张幻灯片构建主体,同时使用 sb shot 检查渲染效果。

  6. 导出并运行 sb round。

附录:命令参考

命令描述
sb decks列出所有幻灯片及其地址
sb comments <deck>列出幻灯片上未处理的评论
sb edits <deck>显示内联文本编辑和幻灯片移动
sb status <deck> <message>更新顶部栏中的状态消息
sb working <deck> <slide>标记正在处理的幻灯片
sb reply <deck> <slide> <type> <message>回复评论(类型:done, question, skipped)
sb shot <deck> <ids...>捕获已处理幻灯片的截图
sb audit <deck>检查排版、重叠和指南标记的问题
sb export <deck>导出为 PDF(使用 --with-edits 导出浏览器中的内容)
sb round <deck> --summary...使用更改摘要和导出版本标记轮次完成
sb commit <deck> <message>在 Git 中提交更改
sb idle <deck>将标记重置为空闲状态
sb hide <deck>从仪表盘中隐藏幻灯片
sb show <deck>将幻灯片重新显示在仪表盘中
sb delete <deck> --yes删除幻灯片

相关技能