mcpField
F
fsi-strip-profile

fsi-strip-profile

github.com/w95文档处理28537 次安装35 周前更新
代码仓库

关于 fsi-strip-profile

fsi-strip-profile 是用于制作公司 PowerPoint 概览页的技能,面向准备投行风格演示文稿的分析师。它规范研究、密集版式设计,以及逐页创建和视觉检查流程。

主要功能

  1. 01先确认页数与重点再开展研究
  2. 02收集公司、财务、估值和持股数据
  3. 03规划象限式高密度 PowerPoint 版式
  4. 04逐页创建并检查幻灯片图像
  5. 05获得用户批准后再制作下一页

适用场景

  1. 01准备高管公司概览
  2. 02制作 3–4 页公司演示文稿
  3. 03检查幻灯片渲染中的布局问题

安装

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

$npx skills add https://github.com/w95/awesome-claude-corporate-skills --skill fsi-strip-profile

安装后在 Claude Code 中输入/fsi-strip-profile确认已加载。

详细介绍

工作流

1. 明确需求
  • 询问用户:单页幻灯片还是多页幻灯片(3-4 页)?
  • 询问用户:是否有需要特别强调的重点领域或主题?
  • 仅在用户确认后,再开始调研
2. 调研与规划

数据来源:

  • 主要来源:公司文件(BamSEC、SEC EDGAR - "Item 1. Business"、MD&A)、投资者演示材料、公司网站
  • 市场数据:Bloomberg、FactSet、CapIQ(股价、股本、市值、净债务、EV、股权结构)
  • 预测数据:FactSet/CapIQ 对未来十二个月(NTM)收入、EBITDA、EPS 的一致预期
  • 新闻:过去 90 天的新闻稿、并购活动、业绩指引变化

所需指标:

  • 财务数据:±3 年的收入、EBITDA、利润率(%)、EPS、FCF
  • 估值:市值、EV、EV/收入、EV/EBITDA、P/E 倍数
  • 增长:同比增长率(%)
  • 股权结构:前 5 大股东及其持股比例(%)
  • 业务分部:产品结构和/或地区结构(% 明细)

标准化:

  • 将所有金额换算为统一货币
  • 统一计量单位(全程使用 $mm 或 $bn,不要混用)

构建之前:

  • 在对话中打印大纲,每项包含 4-5 个要点(使用实际数字,不要占位符)
  • 打印风格选择:字体、颜色(十六进制代码)、每个数据集的图表类型
  • 与用户对齐:"这个大纲和视觉策略是否符合你的设想?"
3. 逐页创建幻灯片

关键:你必须一次只创建一页幻灯片,并在继续下一页之前获得用户批准。

对于每一页幻灯片:

  1. 使用 PptxGenJS 仅创建这一页幻灯片
  2. 强制要求:转换为图片以供审阅 - 你必须将幻灯片转换为图片,以便进行视觉验证:
    soffice --headless --convert-to pdf presentation.pptx
    pdftoppm -jpeg -r 150 -f 1 -l 1 presentation.pdf slide
    
  3. 强制视觉审阅:在继续之前,你必须仔细检查渲染后的幻灯片图片:
    • 文本重叠检查:扫描每个文本元素 - 是否有任何标签、要点或标题相互碰撞?
    • 文本截断检查:是否有任何文本在边界处被截断?所有文字是否完全可见?
    • 图表边界检查:图表是否保持在其容器内?所有坐标轴标签是否完全可见?
    • 象限完整性:一个象限中的内容是否会溢出到相邻象限?
  4. 如果检测到任何重叠或截断:立即按以下顺序使用这些策略修复:
    • 首先:减小字号(下调 1-2pt)
    • 其次:缩短文本(缩写、删除较不重要的信息)
    • 第三:调整元素位置或容器尺寸
    • 重新渲染并再次验证 - 在所有文本都干净适配之前,不要继续
  5. 向用户展示幻灯片图片及下载链接
  6. 停止并等待用户明确批准,然后再创建下一页幻灯片。在用户确认之前不要继续。

你必须在每一页上检查以下具体问题:

  • 表格行与下方文本碰撞
  • 图表 x 轴标签在底部被截断
  • 长要点换行后侵入相邻内容
  • 象限内容溢出到相邻象限
  • 标题文本与下方内容重叠
  • 图例文本与图表元素重叠
  • 页脚/来源文本与主要内容碰撞

幻灯片格式要求

信息密度至关重要

首要目标是信息密度最大化。 忙碌的高管应能在 30 秒内了解整个公司概况。把每个象限都填满。

每个象限的目标:

  • 公司概览:至少 6-8 条要点(总部、成立时间、员工数、CEO/CFO、市值、股票代码、行业、关键数据)
  • 业务与定位:6-8 条要点(收入驱动因素、产品、市场份额 %、竞争护城河、客户数量、地域构成)
  • 关键财务数据:8-10 行的表格或图表 + 4-5 项关键指标(收入、EBITDA、利润率、EPS、FCF、增长率、估值倍数)
  • 第四象限:5-7 条要点(持股比例 %、近期并购、进展、催化剂)

信息打包技巧:

  • 合并相关事实:"总部:德克萨斯州奥斯汀;成立:2003 年;14 万名员工"
  • 始终包含数字:"500 亿美元收入",而不是"收入很高"
  • 添加上下文:"EBITDA 利润率:25%(对比行业平均 18%)"
  • 包含同比变化:"收入:1.25 亿美元(同比 +28%)"
  • 使用百分比:"企业业务:占收入的 62%"

如果某个象限看起来内容稀疏,就补充更多:

  • 带 % 的业务分部拆分
  • 地域收入拆分
  • 客户集中度(前 10 大客户 = X%)
  • 近期合同中标及金额
  • 业绩指引 vs. 市场预期
  • 内部人持股 %

行间距 - 每个部分只用一个文本框:

def add_section(slide, x, y, w, header_text, bullets, header_size=10, bullet_size=8):
    """Header + bullets in single textbox with natural spacing"""
    tb = slide.shapes.add_textbox(x, y, w, Inches(len(bullets) * 0.18 + 0.3))
    tf = tb.text_frame
    tf.word_wrap = True

    # Header paragraph
    p = tf.paragraphs[0]
    p.text = header_text
    p.font.bold = True
    p.font.size = Pt(header_size)
    p.font.color.rgb = RGBColor(0, 51, 102)
    p.space_after = Pt(6)  # Small gap after header

    # Bullet paragraphs
    for bullet in bullets:
        p = tf.add_paragraph()
        p.text = bullet
        p.font.size = Pt(bullet_size)
        p.space_after = Pt(3)
    return tb

关键间距原则:

  • 将标题 + 要点放在同一个文本框中(不要单独的标题文本框)
  • 在标题后使用 space_after = Pt(6),要点之间使用 Pt(3)
  • 不要硬编码间距 - 让段落间距自然处理
  • 如果内容溢出,将字号减小 1pt,而不是删除内容

  • 3-4 张高密度幻灯片 - 使用象限、分栏、表格、图表

  • 所有正文都用要点 - 绝不用段落。每个部分只用一个文本框,包含所有要点 - 不要为每个要点单独创建文本框。使用 PptxGenJS 的要点格式:

    // CORRECT: Single textbox with bullet list - each array item becomes a bullet
    // Position in top-left quadrant (Company Overview) - after header with accent bar
    slide.addText(
      [
        { text: 'Headquarters: Austin, Texas; Founded 2003', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Employees: 140,000+ globally across 6 continents', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'CEO: Elon Musk; CFO: Vaibhav Taneja', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Market Cap: $850B (#6 globally by market cap)', options: { bullet: { indent: 10 }, breakLine: true } },
        { text: 'Segments: Automotive (85%), Energy (10%), Services (5%)', options: { bullet: { indent: 10 } } }
      ],
      { x: 0.45, y: 0.95, w: 4.5, h: 2.6, fontSize: 11, fontFace: 'Arial', valign: 'top', paraSpaceAfter: 6 }
    );
    
    // WRONG: Multiple separate textboxes for each bullet - causes alignment issues
    // slide.addText('Headquarters: Austin', { x: 0.5, y: 1.0, bullet: true });
    

    要点格式技巧:

    • bullet: { indent: 10 } - 控制要点缩进(越小越紧凑)
    • paraSpaceAfter: 6 - 每个段落后的间距,单位为点
    • 将多个相关事实打包进每条要点(例如:"总部:奥斯汀;成立:2003 年")
    • 包含具体数字和百分比以提升信息密度
  • 标题使用标题式大小写(不用全大写),左对齐

  • 包括表格在内,所有位置都使用一致的字体

  • 公司的品牌色 - 创建幻灯片前,你必须通过网页搜索调研实际的品牌色。不要猜测或假设颜色。

  • 如提供品牌规范,请遵循

视觉参考

参见 examples/Nike_Strip_Profile_Example.pptx 获取布局灵感。根据每家公司的品牌调整颜色。


首页布局

必须通过忙碌高管的"30 秒理解测试"。

幻灯片设置(关键)

使用 4:3 宽高比(标准投行 pitch book 格式):

const pptx = new pptxgen();
pptx.layout = 'LAYOUT_4x3';  // 10" wide × 7.5" tall - MUST USE THIS
幻灯片坐标系

PptxGenJS 使用英寸。4:3 幻灯片 = 10" 宽 × 7.5" 高。

  • x:距左边缘的水平位置(0 = 左,10 = 右)
  • y:距上边缘的垂直位置(0 = 上,7.5 = 下)
  • 内容必须保持在边界内 - 四边各留 0.3" 边距
首页定位(单位:英寸)
┌─────────────────────────────────────────────────────────────────┐
│ y=0.2  Title: Company Name (Ticker)                             │
├────────────────────────────┬────────────────────────────────────┤
│ y=0.6  Company Overview    │ y=0.6  Business & Positioning      │
│ x=0.3, w=4.7               │ x=5.0, w=4.7                       │
│ h=3.0                      │ h=3.0                              │
├────────────────────────────┼────────────────────────────────────┤
│ y=3.7  Key Financials      │ y=3.7  Stock/Recent Developments   │
│ x=0.3, w=4.7               │ x=5.0, w=4.7                       │
│ h=3.5                      │ h=3.5                              │
└────────────────────────────┴────────────────────────────────────┘
                                                            y=7.5
标题区域(y=0.2)

公司名称(股票代码) - 示例:Tesla, Inc. (TSLA)

slide.addText('Tesla, Inc. (TSLA)', { x: 0.3, y: 0.2, w: 9.4, h: 0.35, fontSize: 18, bold: true });
4 象限布局(y=0.6 到 y=7.2)
象限位置内容
1x=0.3, y=0.6, w=4.7, h=3.0公司概览:总部、成立时间、关键数据、业务摘要(4-5 条要点)
2x=5.0, y=0.6, w=4.7, h=3.0业务与定位:收入驱动因素、产品/服务、竞争地位、增长驱动因素(4-5 条要点)
3x=0.3, y=3.7, w=4.7, h=3.5关键财务数据:收入、EBITDA、利润率、EPS、FCF + 估值(市值、企业价值、倍数)— 表格或图表,二选一
4x=5.0, y=3.7, w=4.7, h=3.5上市公司:1 年股价图表 + 主要股东。非上市公司:近期进展或所有权/并购历史
字号 - 严格使用以下值
元素大小备注
幻灯片标题24pt粗体,公司品牌色
象限标题14pt粗体,带强调色条
正文/项目符号文本11pt常规字重
表格文本10pt密集表格使用 9pt
图表标签9pt保持标签简短
来源/页脚8pt幻灯片底部

关键:如果文本溢出,将字号减小 1pt 并重新渲染。

视觉强调(必需)

每个象限标题左侧必须有彩色强调色条:

// Add accent bar for quadrant header
slide.addShape(pptx.shapes.RECTANGLE, {
  x: 0.3, y: 0.6, w: 0.08, h: 0.25,
  fill: { color: 'E31937' }  // Use company brand color
});
slide.addText('Company Overview', {
  x: 0.45, y: 0.6, w: 4.5, h: 0.3, fontSize: 14, bold: true, fontFace: 'Arial'
});

需包含的视觉元素:

  • 所有章节标题旁加强调色条(品牌色)
  • 上、下象限之间加细水平分隔线
  • 如有公司 logo,放在右上角
  • 表格中加细微网格线(浅灰 #CCCCCC)
首页格式
  • 字体:Arial(或按用户/品牌指南指定)
  • 象限标题:Title Case(不是全大写),例如 "Company Overview" 而不是 "COMPANY OVERVIEW"
  • 项目符号:开头加粗关键术语,例如 "Market Position: Leading global manufacturer..."
  • 仅限白色背景 - 无方框、填充或阴影
  • 章节标题:粗体文本,样式遵循品牌指南
  • 所有象限大小相等且对齐

后续页面:自由式布局

  • 双栏(40/60 或 50/50)、全页图表或侧边栏布局
  • 每页详细展开首页内容
  • 保持字体和配色方案一致
  • 建议流程:产品/市场 → 财务分析 → 领导层

图表(多页档案)

多页档案:包含 2-3 个实际 PptxGenJS 图表。切勿使用占位 div 或静态图片。

单页档案:财务数据使用表格(更省空间)。仅当图表能替代表格时才添加图表,而非作为表格的附加。

数据类型图表类型
收入趋势折线图或柱状图(多年)
地理分布水平条形图
产品组合饼图(带百分比)
财务对比柱状图
股价(1 年每日)折线图
图表代码示例

水平条形图(适合 4:3 幻灯片右下象限):

slide.addChart(pptx.charts.BAR, [{
  name: 'FY2024 Revenue by Region',
  labels: ['North America', 'EMEA', 'China', 'APLA'],
  values: [21.4, 13.6, 7.6, 6.7]
}], {
  x: 5.0, y: 4.1, w: 4.5, h: 3.0,  // Fits in bottom-right quadrant (4:3)
  barDir: 'bar', chartColors: ['FF6B35'], showValue: true,
  dataLabelFontSize: 10, catAxisLabelFontSize: 10, valAxisLabelFontSize: 10,
  dataLabelFormatCode: '$#,##0.0B',
  title: 'Revenue by Geography', titleFontSize: 12, titleBold: true
});

饼图(适合 4:3 幻灯片右下象限):

slide.addChart(pptx.charts.PIE, [{
  name: 'Product Mix',
  labels: ['Footwear', 'Apparel', 'Equipment'],
  values: [68, 29, 3]
}], {
  x: 5.0, y: 4.1, w: 4.5, h: 3.0,  // Fits in bottom-right quadrant (4:3)
  showPercent: true, showLegend: true, legendPos: 'r',
  dataLabelFontSize: 10, legendFontSize: 10,
  chartColors: ['FF6B35', '2C2C2C', '4A4A4A'],
  title: 'Revenue Mix FY24', titleFontSize: 12, titleBold: true
});

折线图(后续幻灯片全宽):

slide.addChart(pptx.charts.LINE, [{
  name: 'Revenue ($B)',
  labels: ['FY21', 'FY22', 'FY23', 'FY24', 'FY25E'],
  values: [44.5, 46.7, 48.5, 51.4, 54.2]
}], {
  x: 0.3, y: 1.2, w: 9.4, h: 5.5,  // Full width for 4:3 slide
  chartColors: ['FF6B35'], showValue: true, lineSmooth: true,
  dataLabelFontSize: 11, catAxisLabelFontSize: 11, valAxisLabelFontSize: 11,
  title: 'Revenue Trend & Forecast', titleFontSize: 14, titleBold: true
});

财务数据格式

始终使用原生 PptxGenJS 表格或图表 - 切勿使用纯文本叙述或 HTML 表格。

财务数据使用 slide.addTable()(适合 4:3 幻灯片左下象限):

// Add header with accent bar first
slide.addShape(pptx.shapes.RECTANGLE, {
  x: 0.3, y: 3.7, w: 0.08, h: 0.25, fill: { color: 'E31937' }
});
slide.addText('Key Financials & Valuation', {
  x: 0.45, y: 3.7, w: 4.5, h: 0.3, fontSize: 14, bold: true, fontFace: 'Arial'
});

// Financial data table
slide.addTable([
  [{ text: 'Metric', options: { bold: true, fill: '003366', color: 'FFFFFF' } },
   { text: 'FY24', options: { bold: true, fill: '003366', color: 'FFFFFF' } },
   { text: 'FY25E', options: { bold: true, fill: '003366', color: 'FFFFFF' } }],
  ['Revenue', '$51.4B', '$54.2B'],
  ['YoY Growth', '+6.0%', '+5.5%'],
  ['EBITDA', '$8.9B', '$9.5B'],
  ['EBITDA Margin', '17.3%', '17.5%'],
  ['EPS', '$3.42', '$3.75'],
  ['Market Cap', '$185B', '—'],
  ['EV/EBITDA', '12.5x', '11.7x']
], {
  x: 0.45, y: 4.1, w: 4.3, h: 3.0,  // Below header in bottom-left quadrant
  fontFace: 'Arial', fontSize: 10,
  border: { pt: 0.5, color: 'CCCCCC' },
  valign: 'middle',
  colW: [1.8, 1.25, 1.25]  // Column widths
});

❌ 不正确: 纯文本,如 Note: FY2024 revenue growth +1.0%, Net Income $5.1B... ❌ 不正确: 无法正确转换为 PowerPoint 的 HTML 表格

预测时,使用结构化表格中的 Bear/Base/Bull 情景。


质量检查清单

首页
  • 标题区包含公司名称、股票代码、行业
  • 标题下方恰好 4 个相等象限
  • 全部为项目符号,无段落,每项最多 1 行
  • 财务数据放在表格或图表中(不是两者都有)
所有幻灯片
  • 无文本溢出或截断
  • 全文字体和颜色一致
  • 图表正确渲染
  • 无占位文本 - 全部为实际数据
  • 比例一致($mm 或 $bn,不混用)
  • 注明来源
  • 投资银行级质量(GS/MS/JPM 标准)

注意: PowerPoint 文件创建请参考 PPTX skill。

评论

支持 Markdown