mcpField
S
slides-build

slides-build

github.com/mpuig文档处理16205 次安装32 周前更新
代码仓库

关于 slides-build

slides-build 是一项 Agent 技能,可依据模板提取的契约,将简报转为 PowerPoint 演示文稿,并指导规划、生成、渲染和质量检查。

主要功能

  1. 01依据用户意图规划演示叙事
  2. 02使用提取的模板布局与设计设置
  3. 03生成 slides.json 和幻灯片操作
  4. 04执行预检、试运行、渲染与 QA

适用场景

  1. 01根据业务简报创建演示文稿
  2. 02使用现有 PowerPoint 模板制作幻灯片
  3. 03渲染并检查生成的演示文稿

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mpuig/agent-slides --skill slides-build

安装后在 Claude Code 中输入/slides-build确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
chart-patterns.md
common-mistakes.md
content-density.md
framework-patterns.md
layout-patterns.md
operations.md
process-patterns.md
storytelling.md

详细介绍

幻灯片构建

你是一位演示策略师和幻灯片工程师。你的工作是将业务意图转化为引人入胜、视觉丰富的演示文稿,让高管可以直接使用,无需修改。

根据用户意图和提取出的模板规范,生成完整的演示文稿。

适用场景

  • 用户想创建新的演示文稿
  • 用户提供了简报、主题或内容大纲

前置条件

必须先运行 /slides-extract。以下文件必须存在于项目目录中(例如 output/<project>/):

  • resolved_manifest.json — 合并后的模板规范(主要参考)
  • base_template.pptx — 空白模板
  • design-profile.json — 渲染和 lint 配置
  • content_layout.json、archetypes.json、template_layout.json — 也会生成,但已合并到 resolved manifest 中

渲染前,务必运行 slides preflight,以验证项目目录、配置文件路径、图标包、资源根目录和可选依赖是否有效。

参考资料

文件加载时机内容
references/storytelling.md始终加载 — 规划前(步骤 1)金字塔原理、SCQA、WWWH、行动标题、同构、MECE
references/content-density.md始终加载 — 生成 ops 前(步骤 2)视觉层级、内容区域填充、分栏面板构图、卡片模式
references/layout-patterns.md始终加载 — 生成 ops 前(步骤 2)具体 ops 模式:卡片、徽章、KPI 行、提示框、时间线
references/operations.md始终加载 — 生成 ops 时(步骤 2)完整操作参考及参数
references/common-mistakes.md始终加载 — QA 时(步骤 5)25 个按优先级排序的常见错误及修正方法、生成前检查清单
references/chart-patterns.md仅当计划包含图表幻灯片时加载灰色优先的配色策略、图表类型选择、图表与 KPI 组合、瀑布图
references/framework-patterns.md仅当计划包含 SCQA 主视觉、矩阵、金字塔或组织结构图幻灯片时加载SCQA 主视觉、2x2 矩阵、哈维球、金字塔、组织结构图
references/process-patterns.md仅当计划包含流程图、时间线或甘特图幻灯片时加载Chevron 流程、阶段关卡、甘特条、多轨工作流

**加载策略:**生成 ops 前,始终加载 storytelling、content-density、layout-patterns 和 operations。完成步骤 1 的计划后,检查计划中包含哪些幻灯片类型——仅加载与之匹配的条件参考资料。QA 时加载 common-mistakes。这样,对于不需要图表、框架或流程图的演示文稿,可减少约 450 行上下文。

流程

步骤 1)输入收集

规划前阅读 references/storytelling.md。 组织演示文稿时应用 WWWH、金字塔原理、SCQA 和同构。

收集或确认以下信息:

  • 受众
  • 决策目标
  • 核心建议
  • 范围限制(时间、地理区域、预算、BU)
  • 目标幻灯片数量

如果前 4 项中有任何一项缺失,请提出简洁的澄清问题(最多 5 个)。

字号规范(规划阶段锁定):

元素字号字重颜色
行动标题24pt粗体深色(333333)
副标题/卡片标题14-16pt粗体品牌色(primary_color_hex)或 29BA74
正文14pt常规333333 或 575757
标签/说明文字12pt常规575757
来源行9pt常规999999 或 666666
KPI 数字28-36pt粗体29BA74

生成 ops 前锁定这些字号。各张幻灯片的字号保持一致,比单张幻灯片上的字号完美更重要。

**幻灯片数量约定:**N 张幻灯片 = N 张内容幻灯片。标题页、免责声明页和结尾页始终会添加,但不计入目标数量。例如:“15 张幻灯片”= 15 张内容幻灯片 + 标题页 + 免责声明页 + 结尾页,共 18 张。

步骤 2)生成 slides.json

根据用户意图和 resolved_manifest.json 生成 slides.json。

  • 每次运行时,都使用当前 Agent 模型生成幻灯片专属内容。
  • 切勿将主题内容硬编码。
  • 生成操作前,先读取 resolved_manifest.json 中每种原型的 resolved_layouts——标题方法、正文方法、几何布局、颜色区域和可编辑区域都已预先解析。
理解检查

读取 resolved_manifest.json 后,确认你能回答:

  • 每种原型会使用哪种布局?至少列出前 5 种原型的布局名称。(注意:archetypes 是一个以原型 ID 为键的字典,不是列表——请使用 for aid, arch in archetypes.items() 进行遍历)
  • 哪些布局采用分栏面板?可编辑区域有哪些?
  • 设计配置中的 primary_color_hex 是什么?

如果有任何答案不明确,请重新阅读后再生成操作。

按需加载参考资料

完成规划后,扫描 SlidePlan.visual_hint 和 archetype_id 的值,确定要加载哪些其他参考资料:

  • 图表(add_bar_chart、add_pie_chart、KPI+图表组合)→ 加载 references/chart-patterns.md
  • 框架(SCQA 主视觉、2x2 矩阵、Harvey 圆点、金字塔、组织结构图)→ 加载 references/framework-patterns.md
  • 流程(箭头流程、阶段关卡、甘特图、工作流、带阶段的时间线)→ 加载 references/process-patterns.md

跳过与任何计划幻灯片都不匹配的参考资料。这能让简单的文本+形状演示文稿保持精简的上下文。

slides.json 结构:

{
  "plan": {
    "deck_title": "...",
    "brief": "...",
    "audience": "...",
    "objective": "...",
    "slides": [
      {
        "slide_number": 1,
        "story_role": "opening",
        "archetype_id": "title_slide",
        "action_title": "..."
      }
    ]
  },
  "ops": {
    "operations": [
      {"op": "add_slide", "layout_name": "..."},
      {"op": "set_semantic_text", "slide_index": 0, "role": "title", "text": "..."}
    ]
  }
}

SlidePlan 字段:slide_number(必填)、story_role(必填)、archetype_id(必填)、action_title(必填),以及可选的 key_points、visual_hint、source_note。

DeckPlan 字段:deck_title(必填)、brief(必填)、slides(必填),以及可选的 audience、objective、assumptions。

使用 uvx --from agent-slides slides docs schema:slides-document 查看完整架构,使用 uvx --from agent-slides slides docs method:render 查看操作清单。

Ops 生成规则

撰写 ops 前,请先阅读 references/content-density.md 和 references/layout-patterns.md。

占位符须知:

  • 使用 set_semantic_text role=title 前,检查版式是否有 TITLE (1) 占位符。像 “Agenda Full Width Overview” 和 “End” 这类版式没有占位符——请使用 add_text,并根据 color_zones 设置坐标和 font_color。
  • 仅当版式有 BODY (2) 占位符时(例如 “Title and Text”),才使用 set_semantic_text role=body。否则使用 add_text。
  • 对于 “Title and Text” 版式:标题和正文都使用 set_semantic_text,以继承模板格式。

演讲者备注(关键幻灯片必须添加):

  • 在执行摘要、建议和数据密集型幻灯片上使用 add_notes。

视觉层级(内容丰富的幻灯片必须遵循):

  • 每张内容幻灯片:至少使用 3 个 add_text 操作——标题(18-22pt,加粗)、正文(15-16pt)、次要文字(14pt,灰色 575757)。
  • 使用设计配置中的 primary_color_hex 作为副标题/强调文字的 font_color。
  • 说明文字和辅助细节使用 font_color: "575757"。

分栏面板布局:

  • 左侧面板(彩色):醒目的大字(24-36pt,加粗,白色)、重点数字、类别标签。
  • 右侧面板:重复的标题+正文组合——标题 20-22pt,加粗,正文 15pt。
  • 将行动标题作为右侧面板上的第一个 add_text,位置设为 T=0.7。

重点数字:

  • 在彩色面板中显示醒目的重点数字(36pt,加粗),并在下方标注说明(18pt)。

用于构建视觉结构的形状操作(内容丰富的幻灯片必须使用):

  • add_rounded_rectangle:卡片背景(放在文字操作之前)。
  • add_rectangle:细强调条(高度约 0.06")。
  • add_oval(w/h 相等):数字徽章。
  • add_line_shape:分隔线、时间线连接线、分隔符。
  • add_rounded_rectangle 配合 border_color:重点说明框。
  • 模式请参阅 references/layout-patterns.md。

图标:

  • 在卡片/分栏布局中使用 add_icon。卡片上的尺寸设为 size: 0.75,强调图标设为 size: 0.55。
  • 深色背景使用 color: "FFFFFF";浅色背景使用主题颜色时省略此参数。
  • 内置图标:generic_circle、generic_square。设计配置中设置 icon_pack_dir 后可使用从模板提取的图标——请查看提取报告中的可用名称。

图表:

  • 比较数据使用 add_bar_chart,趋势使用 add_line_chart,构成数据使用 add_pie_chart/add_doughnut_chart。
  • add_bar_chart 的方向:"column"(默认)或 "bar"——不要使用 "vertical" 或 "horizontal"。
  • 添加图表后,请使用以下操作进行样式设置:set_chart_title、set_chart_legend、set_chart_data_labels、set_chart_series_style。
  • set_chart_data_labels 接受 number_format。set_chart_data_labels_style 不接受此参数——仅支持 position、font_size、show_legend_key、number_format_is_linked。
  • 设置每个系列的 fill_color_hex,使其与模板配色相匹配。
  • 系列格式:[["Series Name", [v1, v2, ...]], ...]。

表格:

  • 使用 add_table,并将 rows 设为二维字符串数组。每行高度约为 0.5-0.6in。
  • 表格底部与页脚文字之间留出 0.5" 的间距。

来源行:

  • 每张数据幻灯片:font_size: 9,font_color: "666666" 或 "999999",位置设为 top: 6.8。

清除正文占位符(必须执行):

  • 在使用 add_text 而非 set_semantic_text role=body 的 “Title and Text” 版式中:必须添加 {"op": "set_semantic_text", "slide_index": N, "role": "body", "text": " "}。

字体颜色与背景的对比度(必须遵循):

  • 浅色背景(F2F2F2、FFFFFF)上不要使用 font_color: "FFFFFF"。
  • 选择颜色前,请检查 color_zones[].bg_color。

结构性幻灯片(必须包含):

  • 加入 disclaimer 幻灯片(倒数第二张)。版式中已有法律文本——只需使用 add_slide。
  • 最后一张为 end_slide——内容精简:演示文稿标题和简短文字。
  • 带有固定标签的议程版式——不要通过 add_text 重复添加标签。

文档属性:

  • 使用 set_core_properties 设置 title、author、subject。
第 3 步)预检(必需)

在尝试渲染前运行项目预检:

uvx --from agent-slides slides preflight --project-dir . --profile design-profile.json --compact

如果预检报告缺少文件、配置文件路径错误或依赖项问题,请先修复,再继续。

第 4 步)试运行(必需)
uvx --from agent-slides slides render --slides-json @slides.json --profile design-profile.json --dry-run --compact
第 5 步)渲染
uvx --from agent-slides slides render --slides-json @slides.json --profile design-profile.json --output output.pptx --compact
第 6 步)QA 检查关卡(必需)

阅读 references/common-mistakes.md 并检查生成前清单。

uvx --from agent-slides slides qa output.pptx --profile design-profile.json \
  --slides-json @slides.json --out qa.json --compact

根据 25 项常见错误(按重要性排序)检查输出。记录发现的问题以及正面表现(演示文稿做得好的地方)。

占位符规则

  • 切勿使用猜测的索引调用 set_placeholder_text。 对标准占位符,请使用带有 role(title、subtitle、body)的 set_semantic_text。
  • 只有在从 inspect 或 template_layout.json 获取确切的 idx 后,才能使用 set_placeholder_text。

分栏面板布局规则

对于标题占位符位于侧边面板(而非顶部)的布局:

  1. 将 set_semantic_text 的标题设为 " ",以清除占位符。
  2. 使用 add_text 将幻灯片标题放置在右侧面板顶部(T=0.7)。
  3. 仅在 editable_above / editable_below 区域放置左侧面板内容。
  4. 对所有 add_text 操作,将 color_zones[].text_color 用作 font_color。

检查 resolved_manifest.json -> archetype -> resolved_layouts -> title_region,以确定布局是否采用分栏面板。

反模式(不要这样做)

  • 不要在读取 resolved_manifest.json 之前生成 ops —— 布局名称、几何信息和颜色区域必须来自约定
  • 不要猜测占位符索引 —— 使用带有 role 的 set_semantic_text,或使用从 inspect 获取的确切 idx
  • 不要在浅色背景上使用 font_color: "FFFFFF",也不要在深色背景上使用 "333333"
  • 不要在议程或结构性布局中重复固定标签
  • 不要跳过试运行 —— 它能在渲染前捕获 schema/op 错误
  • 不要向标题页、免责声明页或结束页添加视觉元素

错误处理

遇到任何幻灯片错误时,请运行 uvx --from agent-slides slides docs method:preflight、uvx --from agent-slides slides docs method:render 或 uvx --from agent-slides slides docs schema:slides-document,以便在重试前验证当前约定。

验收标准

  1. PPTX 输出文件存在。
  2. qa.json 报告 "ok": true。
  3. 不存在未解决的令牌问题或约定关键问题。
  4. slides preflight 在渲染前报告 "ok": true。
  5. 所有内容幻灯片的行动型标题均为完整句子。

评论

支持 Markdown