{/* 此页面由 website/scripts/generate-skill-docs.py 从技能的 SKILL.md 自动生成。请编辑源文件 SKILL.md,而非此页面。 */}

PPtx 创作

使用 python-pptx 无头构建 PowerPoint 演示文稿。与 excel-author 配合使用,可创建每个数字都追踪到工作簿单元格的模型驱动演示文稿。适用于招股书、投委会备忘录、财报笔记。

技能元数据

来源可选 —— 使用 hermes skills install official/finance/pptx-author 安装
路径optional-skills/finance/pptx-author
版本1.0.0
作者Anthropic(由 Nous Research 改编)
许可证Apache-2.0
平台linux, macos, windows
标签powerpoint, pptx, python-pptx, presentation, finance
相关技能excel-author, powerpoint

参考:完整 SKILL.md

:::info 以下是 Hermes 在触发此技能时加载的完整技能定义。这是技能激活时代理所看到的指令。 :::

pptx-author

使用 python-pptx 在磁盘上生成 .pptx 文件。当需要以文件工件形式交付演示文稿,而非驱动实时 PowerPoint 会话时使用。

改编自 Anthropic 的 pptx-authorpitch-deck 技能,来自 anthropics/financial-services。原版的 MCP / Office-JS 分支已被移除 —— 假定为无头 Python。

对于更全面的已有 PowerPoint 创作技能(幻灯片、演讲者备注、嵌入、媒体),请参见内置的 powerpoint 技能。此技能是更轻量级的模式,专为模型驱动的演示文稿(招股书、投委会备忘录、财报笔记)调整,其中每个数字必须追溯到源工作簿。

输出约定

  • 写入 ./out/<名称>.pptx。如 ./out/ 不存在则创建。
  • 在最终消息中返回相对路径。

设置

pip install "python-pptx>=0.6"

核心规范

每页一个观点

标题陈述要点;正文支持它。标题为”Q3 营收”是弱的;“Q3 营收增长加速至同比 14%“是强的。

每个数字追溯到模型

如果幻灯片上的数据来自 ./out/model.xlsx,则用脚注注明工作表和单元格。

营收:$1,250M  (来源:model.xlsx, Inputs!C3)

切勿凭记忆或从摘要中转录数字 —— 打开工作簿,读取命名区域,并尽可能以编程方式将演示文稿值绑定到工作簿。

存在企业模板时使用

如果 ./templates/firm-template.pptx 存在,加载它以继承品牌颜色、字体和母版布局。

from pptx import Presentation
from pathlib import Path
 
template = Path("./templates/firm-template.pptx")
prs = Presentation(str(template)) if template.exists() else Presentation()

图表:模型导出的 PNG 优于原生 pptx 图表

当保真度重要(模型的图表样式必须与演示文稿完全匹配)时,从源工作簿将图表渲染为 PNG 并嵌入图片。原生 pptx.chart 图表脆弱且通常不匹配企业规范。

from pptx.util import Inches
slide.shapes.add_picture("./out/charts/football_field.png",
                         Inches(1), Inches(2),
                         width=Inches(8))

不进行外部发送

此技能写入文件。它从不发送邮件、上传或发布。分发由编排层处理。

模板

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pathlib import Path
 
template = Path("./templates/firm-template.pptx")
prs = Presentation(str(template)) if template.exists() else Presentation()
 
# 标题幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Project Aurora —— 战略方案选择"
slide.placeholders[1].text = "初步讨论材料"
 
# 估值摘要幻灯片(仅标题布局)
slide = prs.slides.add_slide(prs.slide_layouts[5])
slide.shapes.title.text = "估值显示各方法隐含价格 $38–$52/股"
 
# 添加绑定到模型输出的表格
rows, cols = 5, 4
tbl_shape = slide.shapes.add_table(rows, cols,
                                   Inches(0.5), Inches(1.5),
                                   Inches(9), Inches(3))
tbl = tbl_shape.table
headers = ["方法", "低 ($)", "中 ($)", "高 ($)"]
for c, h in enumerate(headers):
    tbl.cell(0, c).text = h
 
# 在真实演示文稿中,使用 openpyxl 从模型工作簿读取
data = [
    ("交易可比",     "35", "41", "48"),
    ("先例交易",     "39", "45", "52"),
    ("DCF(基准)",  "36", "43", "51"),
    ("LBO(10% IRR)", "33", "38", "44"),
]
for r, row in enumerate(data, start=1):
    for c, val in enumerate(row):
        tbl.cell(r, c).text = val
 
# 嵌入从模型渲染的图表
slide = prs.slides.add_slide(prs.slide_layouts[5])
slide.shapes.title.text = "足球场图 —— 当前价格 $42"
slide.shapes.add_picture("./out/charts/football_field.png",
                         Inches(1), Inches(1.8), width=Inches(8))
 
Path("./out").mkdir(exist_ok=True)
prs.save("./out/pitch-aurora.pptx")

将演示文稿数字绑定到源工作簿

从 Excel 模型中读取命名区域或特定单元格,使演示文稿数字永不漂移。

from openpyxl import load_workbook
 
wb = load_workbook("./out/model.xlsx", data_only=True)
def nr(name):
    """将命名区域解析为其当前计算值。"""
    rng = wb.defined_names[name]
    sheet, coord = next(rng.destinations)
    return wb[sheet][coord].value
 
revenue_fy24 = nr("RevenueFY24")
implied_mid  = nr("ImpliedSharePriceBase")

然后使用这些值构建演示文稿内容:

slide.shapes.title.text = f"隐含股价 ${implied_mid:.2f}(基准情况)"

在读取前记得重新计算工作簿 —— openpyxl 只有在某些东西已经计算了工作表后才看到计算值。首先运行 excel-author 技能中的 recalc 辅助函数,或通过真实的 Excel 会话打开/保存。

招股书的幻灯片类型检查清单

典型的投行招股书遵循以下结构。非规定性,但作为起始模板有用:

  1. 封面 / 标题
  2. 免责声明
  3. 目录
  4. 情况概述
  5. 公司快照(目标公司)
  6. 市场 / 行业背景
  7. 估值摘要(足球场图)—— 关键幻灯片
  8. 交易可比详情
  9. 先例交易详情
  10. DCF 摘要
  11. 示意性 LBO / 赞助方案
  12. 流程考量
  13. 附录

何时不使用此技能

  • 用户在实时 PowerPoint 会话中且有 Office MCP 可用 —— 直接操作其实时文档。
  • 非金融类幻灯片(季度全员会、营销演示)—— 使用更全面的 powerpoint 技能。
  • 带有大量动画、过渡或演讲者备注的演示文稿 —— 使用更全面的 powerpoint 技能。

署名

规范改编自 Anthropic 的 Claude for Financial Services 插件套件,Apache-2.0 许可。原文:https://github.com/anthropics/financial-services/tree/main/plugins/agent-plugins/pitch-agent/skills/pptx-author