funding-digest

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
AI DISCLAIMER (MANDATORY): You MUST include the following disclaimer text in the powerpoint footer. This is not optional — the report is incomplete without it:
"Analysis is AI-generated — please confirm all outputs"
Footer — At the bottom of the generated slide, as a prominent yellow banner: "Analysis is AI-generated — please confirm all outputs"

AI免责声明(必填): 你必须在PowerPoint页脚中包含以下免责声明文本。这是必填项——缺少该声明的报告视为不完整:
"分析内容由AI生成——请确认所有输出信息"
页脚——在生成的幻灯片底部,以醒目的黄色横幅显示:"分析内容由AI生成——请确认所有输出信息"

Weekly Deal Flow Digest

每周交易流摘要

Generate an analyst-quality single-slide PowerPoint that summarizes key takeaways from recent funding rounds across watched sectors or companies, using S&P Global Capital IQ data. Each deal links back to its Capital IQ profile for quick drill-down.
利用标普全球Capital IQ数据,生成分析师水准的单页PowerPoint,总结关注行业或公司近期融资轮次的核心要点。每笔交易均链接至其Capital IQ档案,方便快速深入查看。

When to Use

使用场景

Trigger on any of these patterns:
  • "Give me a deal flow digest for this week"
  • "Weekly funding recap for [sector]"
  • "What deals closed in [sector/companies] recently?"
  • "Transaction roundup" or "deal roundup"
  • "Capital markets update for my coverage universe"
  • "Summarize recent funding activity"
  • Any periodic briefing request about deals, raises, or rounds
当出现以下任意请求模式时触发:
  • "给我本周的交易流摘要"
  • "[行业]每周融资回顾"
  • "[行业/公司]近期完成了哪些交易?"
  • "交易汇总"或"交易盘点"
  • "我的覆盖领域资本市场更新"
  • "总结近期融资活动"
  • 任何关于交易、融资或轮次的定期简报请求

Nested Skills

嵌套技能

This skill produces a one-slide PPTX briefing:
  • Read
    /mnt/skills/public/pptx/SKILL.md
    before generating the PowerPoint (and its sub-reference
    pptxgenjs.md
    for creating from scratch)
本技能生成单页PPTX简报:
  • 在生成PowerPoint前,请阅读
    /mnt/skills/public/pptx/SKILL.md
    (及其子参考文档
    pptxgenjs.md
    ,用于从零开始创建幻灯片)

Entity Resolution & Tool Robustness

实体解析与工具鲁棒性

S&P Global's identifier system resolves company names to legal entities. This works well for most companies but has known failure modes that cause empty results. Apply these rules throughout the workflow to avoid silent data loss.
标普全球的标识符系统可将公司名称解析为法律实体。该系统对大多数公司有效,但存在已知的失败模式,会导致结果为空。在整个工作流程中应用以下规则,避免无声的数据丢失。

Rule 0: Pre-validate ALL identifiers before querying funding

规则0:查询融资前预验证所有标识符

Before calling any funding tools, run every identifier through
get_info_from_identifiers
. This is the cheapest and most reliable way to catch problems early. Check two things in the response:
  1. Did it resolve at all? If the identifier returns empty/error, the name doesn't exist in S&P Global. Try the alias from
    references/sector-seeds.md
    , the legal entity name, or the
    company_id
    directly.
  2. What is the
    status
    field?
    • "Operating"
      → Safe to query for funding rounds.
    • "Operating Subsidiary"
      → The company exists but is owned by a parent. It will return zero funding rounds. Note this in the digest as context (e.g., "acquired by [Parent]") but do not query for funding.
    • Any other status (e.g., closed, inactive) → The company is no longer operating. Historical data may exist but no new activity.
This single pre-validation step prevents the majority of empty-result issues. Batch all candidates into a single
get_info_from_identifiers
call (it handles large batches well) and triage before proceeding.
调用任何融资工具之前,将所有标识符传入
get_info_from_identifiers
进行验证。这是提前发现问题的最经济、最可靠的方式。检查响应中的两项内容:
  1. 是否解析成功? 如果标识符返回空/错误,说明该名称未在标普全球系统中收录。尝试使用
    references/sector-seeds.md
    中的别名、法律实体名称或直接使用
    company_id
  2. status
    字段值是什么?
    • "Operating"
      → 可安全查询融资轮次。
    • "Operating Subsidiary"
      → 公司存在但为母公司所有,将返回零条融资轮次记录。在摘要中注明此背景信息(例如:“被[母公司]收购”),但不要查询其融资数据。
    • 其他任何状态(如已关闭、非活跃)→ 公司已停止运营,可能存在历史数据但无新活动。
这一步预验证可避免绝大多数空结果问题。 将所有候选公司批量传入一次
get_info_from_identifiers
调用(该工具可高效处理大批量请求),然后再进行分类处理。

Rule 1: Never trust empty results without a fallback

规则1:不要轻信空结果,必须设置回退方案

If
get_rounds_of_funding_from_identifiers
returns empty for a company you expect to have data:
  1. Try the legal entity name or company_id. Brand names usually work, but some don't. See the alias table in
    references/sector-seeds.md
    for known mismatches. Common pattern: "[Brand] AI" → "[Legal Name], Inc." (e.g., Together AI → "Together Computer, Inc.", Character.ai → "Character Technologies, Inc.", Runway ML → "Runway AI, Inc.").
  2. Verify the company exists in S&P. If you skipped Rule 0, call
    get_info_from_identifiers(identifiers=["Company"])
    now — if this also returns empty, the company may be too early-stage or not yet indexed.
如果
get_rounds_of_funding_from_identifiers
对某家你认为应有数据的公司返回空结果:
  1. 尝试使用法律实体名称或company_id。品牌名称通常有效,但部分情况例外。查看
    references/sector-seeds.md
    中的别名表,了解已知的不匹配情况。常见模式:“[品牌] AI” → “[法律名称], Inc.”(例如:Together AI → "Together Computer, Inc.", Character.ai → "Character Technologies, Inc.", Runway ML → "Runway AI, Inc.")。
  2. 验证公司是否在标普系统中存在。如果跳过了规则0,现在调用
    get_info_from_identifiers(identifiers=["Company"])
    ——如果仍返回空结果,该公司可能处于早期阶段或尚未被收录。

Rule 2: Subsidiaries have no funding rounds

规则2:子公司无独立融资轮次记录

Companies that are divisions or wholly-owned subsidiaries of larger companies (e.g., DeepMind under Alphabet, GitHub under Microsoft, BeReal under Voodoo) will return zero funding rounds. Their capital events are tracked at the parent level.
How to detect: The
status
field from
get_info_from_identifiers
will show
"Operating Subsidiary"
. The
references/sector-seeds.md
file also flags known subsidiaries with ⚠️ warnings. Skip these for funding queries.
作为大公司部门或全资子公司的企业(例如:Alphabet旗下的DeepMind、Microsoft旗下的GitHub、Voodoo旗下的BeReal)将返回零条融资轮次记录,其资本活动在母公司层面追踪。
检测方式:
get_info_from_identifiers
返回的
status
字段显示为
"Operating Subsidiary"
references/sector-seeds.md
文件也会用⚠️标记已知的子公司。此类公司需跳过融资查询。

Rule 3: Use
get_rounds_of_funding_from_identifiers
as the primary tool, not
get_funding_summary_from_identifiers

规则3:优先使用
get_rounds_of_funding_from_identifiers
,而非
get_funding_summary_from_identifiers

The summary tool is faster but less reliable — it can return errors or incomplete data even when detailed rounds exist. Always use the detailed rounds tool as the primary data source. The summary tool is acceptable only for quick aggregate checks (total raised, round count) and should be verified against the rounds tool if results seem low.
摘要工具速度更快但可靠性更低——即使存在详细轮次数据,它仍可能返回错误或不完整信息。始终使用详细轮次工具作为主要数据源。摘要工具仅适用于快速聚合检查(总融资金额、轮次数量),若结果看似异常,需用轮次工具进行验证。

Rule 4: Batch carefully and validate

规则4:合理分批并验证

When processing large company universes (50+ companies), batch in groups of 15–20. After each batch, check for companies that returned empty results and run them through the fallback steps in Rule 1 before moving on.
处理大型公司集合(50家以上)时,按15–20家为一组分批处理。每批处理后,检查返回空结果的公司,并按照规则1的回退步骤处理后再继续。

Rule 5: The
role
parameter is critical

规则5:
role
参数至关重要

  • company_raising_funds
    → "What rounds did X raise?" (company perspective)
  • company_investing_in_round_of_funding
    → "What did investor Y invest in?" (investor perspective)
Using the wrong role returns empty results silently. For deal flow digests, you almost always want
company_raising_funds
. Only use the investor role when specifically analyzing an investor's portfolio activity.
  • company_raising_funds
    → “X公司进行了哪些轮次的融资?”(公司视角)
  • company_investing_in_round_of_funding
    → “投资者Y投资了哪些项目?”(投资者视角)
使用错误的role会无声返回空结果。对于交易流摘要,几乎总是需要使用
company_raising_funds
。仅在专门分析投资者投资组合活动时,才使用投资者视角的role。

Rule 6: Identifier resolution is case-insensitive but spelling-sensitive

规则6:标识符解析不区分大小写,但对拼写敏感

S&P Global handles case variations ("openai" = "OpenAI") but is strict on spelling and punctuation. "Character AI" may fail where "Character.ai" succeeds. When in doubt, use the
company_id
(e.g.,
C_1829047235
) which is guaranteed to resolve.
标普全球系统支持大小写变体(“openai” = "OpenAI"),但对拼写和标点符号要求严格。“Character AI”可能解析失败,而“Character.ai”可能成功。如有疑问,直接使用
company_id
(例如:
C_1829047235
),其解析成功率为100%。

Workflow

工作流程

Step 1: Establish Coverage & Period

步骤1:确定覆盖范围与时间周期

Determine what the digest should cover. There are two setups:
Returning user (has a watchlist): If the user has previously defined sectors or companies to track, use that list. Check conversation history for prior watchlists.
New user: Ask for:
ParameterDefaultNotes
Sectors(at least one)e.g., "AI, Fintech, Biotech"
Specific companiesOptionalSupplement sector-level coverage
Time periodLast 7 days"This week", "last 2 weeks", "this month"
Calculate the exact
start_date
and
end_date
from the time period.
明确摘要的覆盖范围,分为两种情况:
回头客(已有关注列表): 如果用户之前已定义过要追踪的行业或公司,使用该列表。查看对话历史中的过往关注列表。
新用户: 询问以下信息:
参数默认值说明
行业(至少一个)例如:“AI、金融科技、生物技术”
特定公司可选补充行业层面的覆盖范围
时间周期过去7天“本周”、“过去2周”、“本月”
根据时间周期计算精确的
start_date
end_date

Step 2: Build the Company Universe

步骤2:构建公司集合

For each sector specified, build a company universe using a validated bootstrapping approach:
  1. Seed companies from domain knowledge (see
    references/sector-seeds.md
    )
    • Pay attention to the ⚠️ warnings and alias notes in the seeds file — some well-known companies are subsidiaries, have been acquired, or require a specific legal name to resolve.
    • The seeds file includes
      company_id
      values for known alias mismatches. Use these directly if the brand name fails.
  2. Pre-validate all seeds immediately (Rule 0):
    get_info_from_identifiers(identifiers=[all_seeds_for_this_sector])
    Triage the results into two buckets:
    • Resolved & Operating (
      status
      = "Operating") → proceed to competitor expansion
    • Unresolved or Subsidiary → retry with alias/legal name from seeds file; subsidiaries are noted for context but excluded from funding queries
  3. Expand via competitors (using only the ✅ resolved seeds):
    get_competitors_from_identifiers(identifiers=[resolved_seeds], competitor_source="all")
  4. Validate expanded universe:
    get_info_from_identifiers(identifiers=[new_competitors])
    Apply the same triage. Filter by
    simple_industry
    matching the target sector. Drop any unresolved names or subsidiaries.
If the user provides specific companies, add those directly but still run them through the pre-validation triage. Never skip validation — even well-known brand names can fail silently.
Keep the universe manageable — aim for 15–40 resolved, operating companies per sector. For a multi-sector digest, this might total 50–100+ companies.
针对每个指定行业,通过经过验证的引导式方法构建公司集合:
  1. 从领域知识中选取种子公司(参见
    references/sector-seeds.md
    • 注意种子文件中的⚠️警告和别名说明——部分知名公司是子公司、已被收购或需要使用特定法律名称才能解析。
    • 种子文件包含已知别名不匹配情况的
      company_id
      值。如果品牌名称解析失败,直接使用这些ID。
  2. 立即预验证所有种子公司(规则0):
    get_info_from_identifiers(identifiers=[all_seeds_for_this_sector])
    将结果分为两类:
    • 已解析且运营中
      status
      = "Operating")→ 继续进行竞品拓展
    • 未解析或为子公司 → 尝试使用种子文件中的别名/法律名称重试;子公司需在摘要中注明背景,但排除在融资查询之外
  3. 通过竞品拓展公司集合(仅使用✅已解析的种子公司):
    get_competitors_from_identifiers(identifiers=[resolved_seeds], competitor_source="all")
  4. 验证拓展后的公司集合:
    get_info_from_identifiers(identifiers=[new_competitors])
    应用相同的分类规则。按
    simple_industry
    匹配目标行业进行筛选,剔除未解析名称或子公司。
如果用户提供了特定公司,直接添加这些公司,但仍需进行预验证分类。绝不能跳过验证——即使是知名品牌名称也可能无声解析失败。
保持公司集合规模可控——每个行业目标为15–40家已解析且运营中的公司。对于多行业摘要,总数可能为50–100+家公司。

Step 3: Pull Funding Rounds

步骤3:获取融资轮次数据

For all companies in the universe:
get_rounds_of_funding_from_identifiers(
    identifiers=[batch],
    role="company_raising_funds",
    start_date="YYYY-MM-DD",
    end_date="YYYY-MM-DD"
)
Process in batches of 15–20 if the universe is large.
After each batch, identify companies with empty results. For any company expected to have activity:
  1. Retry with the legal entity name or alternate identifier (see Entity Resolution rules above).
  2. Log the company as "no data" only after exhausting fallbacks.
Collect all
transaction_id
values from successful results, then enrich with detailed round info:
get_rounds_of_funding_info_from_transaction_ids(
    transaction_ids=[all_funding_ids]
)
Pass ALL transaction IDs in a single call (or small number of calls) rather than one per transaction — the tool handles batches efficiently.
Extract the following from each round (critical for the slide):
  • transaction_id
    — needed for the Capital IQ deal link
  • Announcement date — when the round was publicly announced
  • Close date — when the round officially closed
  • Amount raised
  • Pre-money valuation (if disclosed)
  • Post-money valuation (if disclosed)
  • Lead investors
  • Round type (Series A, B, C, etc.)
  • Security terms
  • Advisors
  • Pricing trend (up-round / down-round / flat)
Dates are required. The announcement and close dates must always appear in the final slide's deal table. If only one date is available, show it and mark the other as "—".
针对公司集合中的所有公司:
get_rounds_of_funding_from_identifiers(
    identifiers=[batch],
    role="company_raising_funds",
    start_date="YYYY-MM-DD",
    end_date="YYYY-MM-DD"
)
如果公司集合规模较大,按15–20家为一批处理。
每批处理后,识别返回空结果的公司。对于任何你认为应有活动记录的公司:
  1. 使用法律实体名称或备用标识符重试(参见上述实体解析规则)。
  2. 仅在穷尽所有回退方案后,才将该公司标记为“无数据”。
收集所有成功返回结果中的
transaction_id
值,然后获取详细轮次信息:
get_rounds_of_funding_info_from_transaction_ids(
    transaction_ids=[all_funding_ids]
)
将所有交易ID批量传入一次调用(或少量几次调用),而非逐个交易调用——该工具可高效处理批量请求。
从每轮融资中提取以下关键信息(用于幻灯片):
  • transaction_id
    —— 生成Capital IQ交易链接所需
  • 公告日期 —— 轮次公开发布的时间
  • 完成日期 —— 轮次正式完成的时间
  • 融资金额
  • 投前估值(若披露)
  • 投后估值(若披露)
  • 领投方
  • 轮次类型(A轮、B轮、C轮等)
  • 证券条款
  • 顾问
  • 定价趋势(估值上升/下降/持平)
日期为必填项。最终幻灯片的交易表中必须显示公告日期和完成日期。如果仅能获取其中一个日期,显示该日期并将另一个标记为“—”。

Step 4: Pull Company Context for Notable Deals

步骤4:获取重大交易的公司背景信息

For any company involved in a significant deal (large round, notable valuation shift), get a brief description:
get_company_summary_from_identifiers(identifiers=[notable_companies])
This adds context to the narrative (e.g., "The company, an AI infrastructure startup founded in 2021, is expanding into...").
对于参与重大交易的公司(大额轮次、估值显著变化),获取简要描述:
get_company_summary_from_identifiers(identifiers=[notable_companies])
这可为摘要叙事增添背景信息(例如:“该公司是2021年成立的AI基础设施初创企业,正拓展至...”)。

Step 5: Identify Highlights & Trends

步骤5:识别亮点与趋势

Before designing the slide, analyze the data to surface the story:
Flag as "Notable":
  • Rounds ≥ $100M
  • Down rounds (pricing trend = down)
  • New unicorns (post-money valuation crossing $1B)
  • Significant valuation jumps (post-money ≥ 2x the last known valuation)
  • Repeat raisers (same company raising again within 6 months)
  • Unusually large investor syndicates
Identify Trends:
  • Total capital deployed this period vs. typical (if historical data available)
  • Which sub-sectors are hottest (most rounds, most capital)
  • Round stage distribution (is early-stage or late-stage dominating?)
  • Most active investors across the digest
  • Geographic concentration
  • Valuation trends (are pre-money valuations compressing or expanding?)
Select Key Takeaways (3–5): Distill the most important signals into 3–5 concise bullet-style takeaways. These are the centerpiece of the slide. Each takeaway should be one sentence, punchy, and data-backed.
Examples:
  • "AI sector raised $2.4B across 8 rounds — 3x the prior week, led by a $800M mega-round from [Company] at a $12B post-money valuation."
  • "[Company] closed a $200M Series D at $3.5B pre-money, up from $1.8B in its Series C — signaling strong demand for AI developer tools."
  • "Down-round activity ticked up: 2 of 6 late-stage rounds priced below prior valuations."
在设计幻灯片前,分析数据以提炼核心信息:
标记为“重大交易”的情况:
  • 融资金额≥1亿美元
  • 估值下降轮次(定价趋势=down)
  • 新晋独角兽(投后估值突破10亿美元)
  • 估值显著跃升(投后估值≥上一轮已知估值的2倍)
  • 重复融资(同一公司在6个月内再次融资)
  • 异常庞大的投资者联盟
识别趋势:
  • 本期投入的总资本与常规水平对比(若有历史数据)
  • 哪些细分领域最热门(轮次数量最多、融资金额最高)
  • 轮次阶段分布(早期阶段还是后期阶段占主导?)
  • 摘要中最活跃的投资者
  • 地域集中度
  • 估值趋势(投前估值是在压缩还是扩张?)
选择核心要点(3–5条): 将最重要的信号提炼为3–5条简洁的要点,以项目符号形式呈现。这些是幻灯片的核心内容。每条要点应为一句话,简洁有力且有数据支撑。
示例:
  • “AI行业通过8轮融资筹集24亿美元——是上周的3倍,其中[公司]的8亿美元超大轮次领投,投后估值达120亿美元。”
  • “[公司]完成2亿美元D轮融资,投前估值35亿美元,较C轮的18亿美元有所提升——表明AI开发者工具需求强劲。”
  • “估值下降轮次活动增加:6轮后期轮次中有2轮定价低于上一轮估值。”

Step 6: Generate Company Logos

步骤6:生成公司Logo

For each company featured in the key takeaways or notable deals, generate a logo using a two-tier local pipeline. Do not use Clearbit (
logo.clearbit.com
) — it is deprecated and consistently fails. External logo CDNs (Brandfetch, logo.dev, Google Favicons) require API keys or are blocked by network restrictions. Instead, use the following approach:
对于核心要点或重大交易中涉及的每家公司,使用两级本地流程生成Logo。请勿使用Clearbit
logo.clearbit.com
)——该服务已弃用且经常失败。外部Logo CDN(Brandfetch、logo.dev、Google Favicons)需要API密钥或受网络限制。请改用以下方法:

Tier 1:
simple-icons
npm Package (3,300+ Brand SVGs, No Network Required)

第一层:
simple-icons
npm包(3300+品牌SVG图标,无需网络)

The
simple-icons
package bundles high-quality SVG icons for thousands of well-known brands. It works entirely offline — no API keys, no network calls. Install it alongside
sharp
for SVG → PNG conversion:
bash
npm install simple-icons sharp
Lookup strategy:
javascript
const si = require('simple-icons');
const sharp = require('sharp');

// Find an icon by exact title match (case-insensitive)
function findSimpleIcon(companyName) {
    // Try exact match first
    for (const [key, val] of Object.entries(si)) {
        if (!key.startsWith('si') || !val || !val.title) continue;
        if (val.title.toLowerCase() === companyName.toLowerCase()) return val;
    }
    // Try without common suffixes (AI, Inc., Corp.)
    const stripped = companyName.replace(/\s*(AI|Inc\.?|Corp\.?|Ltd\.?)$/i, '').trim();
    if (stripped !== companyName) {
        for (const [key, val] of Object.entries(si)) {
            if (!key.startsWith('si') || !val || !val.title) continue;
            if (val.title.toLowerCase() === stripped.toLowerCase()) return val;
        }
    }
    return null;
}

// Convert SVG to PNG with the brand's official color
async function simpleIconToPng(icon, outputPath) {
    const coloredSvg = icon.svg.replace('<svg', `<svg fill="#${icon.hex}"`);
    await sharp(Buffer.from(coloredSvg))
        .resize(128, 128, { fit: 'contain', background: { r: 255, g: 255, b: 255, alpha: 0 } })
        .png()
        .toFile(outputPath);
}
Coverage: ~43% of typical deal flow companies (strong for major tech brands like Stripe, Anthropic, Databricks, Snowflake, Discord, Shopify, SpaceX, Mistral AI, Hugging Face; weaker for niche fintech, biotech, or early-stage companies).
simple-icons
包捆绑了数千个知名品牌的高质量SVG图标,完全离线工作——无需API密钥,无需网络调用。安装该包时同时安装
sharp
,用于SVG转PNG格式:
bash
npm install simple-icons sharp
查找策略:
javascript
const si = require('simple-icons');
const sharp = require('sharp');

// 通过精确标题匹配查找图标(不区分大小写)
function findSimpleIcon(companyName) {
    // 先尝试精确匹配
    for (const [key, val] of Object.entries(si)) {
        if (!key.startsWith('si') || !val || !val.title) continue;
        if (val.title.toLowerCase() === companyName.toLowerCase()) return val;
    }
    // 尝试去除常见后缀(AI、Inc.、Corp.)
    const stripped = companyName.replace(/\s*(AI|Inc\.?|Corp\.?|Ltd\.?)$/i, '').trim();
    if (stripped !== companyName) {
        for (const [key, val] of Object.entries(si)) {
            if (!key.startsWith('si') || !val || !val.title) continue;
            if (val.title.toLowerCase() === stripped.toLowerCase()) return val;
        }
    }
    return null;
}

// 将SVG转换为带有品牌官方颜色的PNG
async function simpleIconToPng(icon, outputPath) {
    const coloredSvg = icon.svg.replace('<svg', `<svg fill="#${icon.hex}"`);
    await sharp(Buffer.from(coloredSvg))
        .resize(128, 128, { fit: 'contain', background: { r: 255, g: 255, b: 255, alpha: 0 } })
        .png()
        .toFile(outputPath);
}
**覆盖范围:**约43%的典型交易流公司(对Stripe、Anthropic、Databricks、Snowflake、Discord、Shopify、SpaceX、Mistral AI、Hugging Face等主流科技品牌支持良好;对小众金融科技、生物技术或早期公司支持较弱)。

Tier 2: Initial-Based Fallback via
sharp
(100% Coverage)

第二层:通过
sharp
生成基于首字母的回退Logo(100%覆盖)

For companies not found in
simple-icons
, generate a clean initial-based logo as a PNG:
javascript
async function generateInitialLogo(companyName, outputPath) {
    const initial = companyName.charAt(0).toUpperCase();
    const svg = `
    <svg width="128" height="128" xmlns="http://www.w3.org/2000/svg">
        <circle cx="64" cy="64" r="64" fill="#BDBDBD"/>
        <text x="64" y="64" font-family="Arial, Helvetica, sans-serif"
              font-size="56" font-weight="bold" fill="#FFFFFF"
              text-anchor="middle" dominant-baseline="central">${initial}</text>
    </svg>`;
    await sharp(Buffer.from(svg)).png().toFile(outputPath);
}
对于
simple-icons
中未收录的公司,生成简洁的基于首字母的Logo作为PNG:
javascript
async function generateInitialLogo(companyName, outputPath) {
    const initial = companyName.charAt(0).toUpperCase();
    const svg = `
    <svg width="128" height="128" xmlns="http://www.w3.org/2000/svg">
        <circle cx="64" cy="64" r="64" fill="#BDBDBD"/>
        <text x="64" y="64" font-family="Arial, Helvetica, sans-serif"
              font-size="56" font-weight="bold" fill="#FFFFFF"
              text-anchor="middle" dominant-baseline="central">${initial}</text>
    </svg>`;
    await sharp(Buffer.from(svg)).png().toFile(outputPath);
}

Complete Pipeline

完整流程

javascript
async function fetchLogo(companyName, outputDir) {
    const fileName = companyName.toLowerCase().replace(/[\s.]+/g, '-') + '.png';
    const outPath = path.join(outputDir, fileName);

    // Tier 1: Try simple-icons
    const icon = findSimpleIcon(companyName);
    if (icon) {
        await simpleIconToPng(icon, outPath);
        return { path: outPath, source: 'simple-icons' };
    }

    // Tier 2: Generate initial-based fallback
    await generateInitialLogo(companyName, outPath);
    return { path: outPath, source: 'initial-fallback' };
}
Logo guidelines:
  • Save all logos to
    /home/claude/logos/[company-name].png
  • All logos are 128×128 PNG with transparent backgrounds
  • On the slide, display logos at 0.35"–0.5" tall — they're accents, not focal points
  • Initial-fallback circles use gray (
    BDBDBD
    ) fill with white text — consistent with the monochrome palette
  • Never mix logo styles randomly — if most companies resolve to brand icons, the few fallbacks should blend in naturally
javascript
async function fetchLogo(companyName, outputDir) {
    const fileName = companyName.toLowerCase().replace(/[\s.]+/g, '-') + '.png';
    const outPath = path.join(outputDir, fileName);

    // 第一层:尝试simple-icons
    const icon = findSimpleIcon(companyName);
    if (icon) {
        await simpleIconToPng(icon, outPath);
        return { path: outPath, source: 'simple-icons' };
    }

    // 第二层:生成基于首字母的回退Logo
    await generateInitialLogo(companyName, outPath);
    return { path: outPath, source: 'initial-fallback' };
}
Logo规范:
  • 将所有Logo保存至
    /home/claude/logos/[company-name].png
  • 所有Logo为128×128像素的PNG格式,背景透明
  • 在幻灯片上,Logo显示高度为0.35–0.5英寸——作为装饰元素,而非焦点
  • 回退的首字母Logo使用灰色(
    BDBDBD
    )填充和白色文字——与单色调色板保持一致
  • 切勿随机混合Logo样式——如果大多数公司能匹配到品牌图标,少数回退Logo应自然融入整体风格

Step 7: Generate the One-Page PPTX

步骤7:生成单页PPTX

Read
/mnt/skills/public/pptx/SKILL.md
and
/mnt/skills/public/pptx/pptxgenjs.md
before creating the slide.
Create a single-slide PowerPoint using
pptxgenjs
. The slide should be information-dense but visually clean — think "executive dashboard" not "wall of text."
在创建幻灯片前,请阅读
/mnt/skills/public/pptx/SKILL.md
/mnt/skills/public/pptx/pptxgenjs.md
使用
pptxgenjs
创建单页PowerPoint。幻灯片应信息密集但视觉简洁——类似“高管仪表盘”而非“文字墙”。

Slide Layout

幻灯片布局

┌─────────────────────────────────────────────────────────────┐
│  DEAL FLOW DIGEST                                           │
│  [Period] · [Sectors]                           [Date]      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐       │
│  │  $X.XB  │  │  N      │  │  $X.XB  │  │  $X.XB  │       │
│  │ Raised  │  │ Rounds  │  │ Avg Pre │  │ Largest │       │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘       │
│                                                             │
│  KEY TAKEAWAYS                                              │
│  ─────────────────────────────────────────────────          │
│  [Logo] Takeaway 1 text goes here...                        │
│  [Logo] Takeaway 2 text goes here...                        │
│  [Logo] Takeaway 3 text goes here...                        │
│  [Logo] Takeaway 4 text goes here...                        │
│                                                             │
│  TOP DEALS                                                  │
│  ┌──────────────────────────────────────────────────────────┐│
│  │Company│Type │Announced│Closed│Amount│Pre-$│Post-$│Lead│🔗││
│  │───────│─────│─────────│──────│──────│─────│──────│────│──││
│  │ ...   │ ... │  ...    │ ...  │ ...  │ ... │ ...  │... │🔗││
│  └──────────────────────────────────────────────────────────┘│
│                                                             │
│  [Footer: Deal Flow Digest · Sources: S&P Global Capital IQ]│
│  [Footer: AI Disclaimer]                                    │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│  交易流摘要                                                 │
│  [周期] · [行业]                           [日期]          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐       │
│  │  X.X十亿美元  │  │  N      │  │  X.X十亿美元  │  │  X.X十亿美元  │       │
│  │  融资总额  │  │  轮次数量  │  │  平均投前估值  │  │  最大单笔融资  │       │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘       │
│                                                             │
│  核心要点                                                  │
│  ─────────────────────────────────────────────────          │
│  [Logo] 要点1文本...                                       │
│  [Logo] 要点2文本...                                       │
│  [Logo] 要点3文本...                                       │
│  [Logo] 要点4文本...                                       │
│                                                             │
│  重大交易                                                  │
│  ┌──────────────────────────────────────────────────────────┐│
│  │公司│轮次类型│公告日期│完成日期│融资金额│投前估值│投后估值│领投方│🔗││
│  │───────│─────│─────────│──────│──────│─────│──────│────│──││
│  │ ...   │ ... │  ...    │ ...  │ ...  │ ... │ ...  │... │🔗││
│  └──────────────────────────────────────────────────────────┘│
│                                                             │
│  [页脚:交易流摘要 · 数据源:标普全球Capital IQ]              │
│  [页脚:AI免责声明]                                        │
└─────────────────────────────────────────────────────────────┘

Design Specifications

设计规范

Color philosophy: Minimal, monochrome-first. The slide should feel like a high-end financial brief — black, white, and gray dominate. Color is used only where it carries meaning (e.g., a red indicator for a down round, a green indicator for a standout metric) or where the reader would naturally expect it (company logos). Never use color for purely decorative purposes like background fills, accent bars, or gradient effects.
Color palette — Monochrome Executive:
  • Primary background:
    FFFFFF
    (white) — clean, open slide background
  • Header bar:
    1A1A1A
    (near-black) — strong contrast for the title region
  • Primary text:
    1A1A1A
    (near-black) — all body text, stat numbers, takeaways
  • Secondary text:
    6B6B6B
    (medium gray) — labels, captions, footer, date stamps
  • Borders & dividers:
    D0D0D0
    (light gray) — subtle structural lines, card outlines, table borders
  • Card backgrounds:
    F5F5F5
    (off-white / very light gray) — stat card fills, alternating table rows
  • Link text:
    2B5797
    (muted blue) — Capital IQ deal links in the table (the only blue on the slide)
  • Semantic color (sparingly):
    • Down rounds or negative signals:
      C0392B
      (muted red) — use only as a small dot, tag, or single-word highlight, never as a fill or background
    • Standout positive metrics (new unicorn, outsized round):
      2E7D32
      (muted green) — same minimal usage: a dot, a small tag, or a single highlighted number
    • If no data points warrant a color indicator, use no color at all. A fully monochrome slide is perfectly correct.
Typography:
  • Title: 28–32pt, bold, white on near-black header bar
  • Stat numbers: 36–44pt, bold, near-black
  • Stat labels: 10–12pt, medium gray (
    6B6B6B
    )
  • Takeaway text: 12–14pt, near-black, left-aligned
  • Table text: 9–11pt, near-black with gray (
    6B6B6B
    ) for secondary columns
  • Link text: 9–10pt, muted blue (
    2B5797
    )
  • Footer: 8pt, medium gray
Stat Cards (top row):
  • 4 key metrics as large-number callouts: Total Raised, # Rounds, Avg Pre-Money Valuation, Largest Round
  • Each in a card with
    F5F5F5
    fill and a thin
    D0D0D0
    border — no shadow, no color fills
  • If a stat is surprising or extreme (e.g., 3x normal volume, a record deal), a small colored dot or underline may be placed next to that single number — otherwise keep fully monochrome
  • If pre-money valuations are mostly undisclosed, substitute with a different metric (e.g., Median Round Size, # New Unicorns)
Key Takeaways (middle section):
  • 3–5 one-line takeaways, each prefixed with the relevant company logo (small, ~0.35" tall)
  • If no logo available, use a gray circle with the company initial in white — not a colored circle
  • Left-aligned, with enough spacing to breathe
  • Down-round or negative takeaways may use a small red dot prefix; otherwise no color
  • Include valuation context where available (e.g., "at a $5B post-money valuation")
Top Deals Table (bottom section):
  • Compact table showing the 4–6 most notable deals
  • Columns: Company, Type (Series X), Announced (date), Closed (date), Amount ($M), Pre-Money ($M), Post-Money ($M), Lead Investor, Deal Link
  • Announced and Closed columns show dates in
    MMM DD
    format (e.g., "Jan 15"). These columns are required and must always be present. If a date is not available, show "—".
  • The Deal Link column contains a clickable "View →" text linking to Capital IQ:
    https://www.capitaliq.spglobal.com/web/client?#offering/capitalOfferingProfile?id=<transaction_id>
    where
    <transaction_id>
    is the
    transaction_id
    from
    get_rounds_of_funding_from_identifiers
    .
  • If pre-money or post-money valuation is not disclosed, show "—" in that cell
  • Header row with near-black (
    1A1A1A
    ) fill and white text; alternating rows in
    F5F5F5
    and
    FFFFFF
  • Center the table horizontally on the slide. Calculate the table's total width, then set
    x
    so it is centered within the slide width:
    x = (slideWidth - tableWidth) / 2
    . For a 16:9 layout (13.33" wide), if the table is 12" wide, use
    x = 0.67
    . Never left-align the table to the slide edge.
  • Keep it tight — this is a reference, not the focal point
  • No colored fills in table cells. If a deal is a down round, a small red text tag "(↓ down)" may appear next to the amount — that is the only permitted color in the table.
Deal Link Implementation (pptxgenjs): In pptxgenjs, hyperlinks are added to table cells using the
options.hyperlink
property on the cell object:
javascript
// Table cell with Capital IQ deal link
{
  text: "View →",
  options: {
    hyperlink: {
      url: `https://www.capitaliq.spglobal.com/web/client?#offering/capitalOfferingProfile?id=${transactionId}`
    },
    color: "2B5797",
    fontSize: 9,
    fontFace: "Arial"
  }
}
Table Centering (pptxgenjs): Always center the deal table on the slide. Calculate the x position dynamically:
javascript
const SLIDE_W = 13.33; // 16:9 slide width
const TABLE_W = 12.5;  // total table width (sum of all column widths)
const TABLE_X = (SLIDE_W - TABLE_W) / 2; // ≈ 0.42"

slide.addTable(tableRows, {
  x: TABLE_X,
  y: tableY,
  w: TABLE_W,
  colW: [1.8, 0.9, 0.9, 0.9, 1.0, 1.1, 1.2, 1.6, 0.7], // Company, Type, Announced, Closed, Amount, Pre-$, Post-$, Lead, Link
  // ... other options
});
Adjust
colW
values as needed, but always recompute
TABLE_X
from
(SLIDE_W - sum(colW)) / 2
to keep the table centered.
Footer:
  • Small text in medium gray: "Deal Flow Digest · [Period] · Sources: S&P Global Capital IQ · Generated [Date]"
General color rules (enforce strictly):
  • Company logos are the only "full color" elements on the slide — they appear as-is from the source.
  • Deal links use muted blue (
    2B5797
    ) — this is the only non-monochrome text color besides semantic red/green.
  • Outside of logos and links, the slide should look correct printed on a black-and-white printer.
  • Never apply color to backgrounds, accent bars, decorative shapes, or section dividers.
  • When in doubt, leave it gray.
色彩理念:极简、优先单色。幻灯片应呈现高端金融简报的风格——以黑、白、灰为主。仅在色彩具有实际意义时使用(例如:红色标记估值下降轮次,绿色标记突出指标),或在读者自然预期的场景中使用(公司Logo)。切勿将色彩用于纯装饰目的,如背景填充、装饰条或渐变效果。
色彩调色板——单色高管风格:
  • 主背景:
    FFFFFF
    (白色)——简洁开阔的幻灯片背景
  • 标题栏:
    1A1A1A
    (近黑色)——标题区域的强对比色
  • 主文本:
    1A1A1A
    (近黑色)——所有正文、统计数字、核心要点
  • 次要文本:
    6B6B6B
    (中灰色)——标签、说明文字、页脚、日期戳
  • 边框与分隔线:
    D0D0D0
    (浅灰色)——细微的结构线条、卡片边框、表格边框
  • 卡片背景:
    F5F5F5
    (米白/极浅灰)——统计卡片填充色、表格交替行底色
  • 链接文本:
    2B5797
    (柔和蓝色)——表格中的Capital IQ交易链接(幻灯片上唯一的蓝色元素)
  • 语义色彩(谨慎使用):
    • 估值下降轮次或负面信号:
      C0392B
      (柔和红色)——仅用作小点点、标签或单个单词高亮,切勿用作填充色或背景
    • 突出的正面指标(新晋独角兽、超大轮次):
      2E7D32
      (柔和绿色)——同样仅少量使用:小点点、小标签或单个高亮数字
    • 如果没有数据点需要色彩标记,完全不使用色彩。纯单色幻灯片完全符合要求。
排版:
  • 标题:28–32号字,加粗,标题栏内白色文字配近黑色背景
  • 统计数字:36–44号字,加粗,近黑色
  • 统计标签:10–12号字,中灰色(
    6B6B6B
  • 核心要点文本:12–14号字,近黑色,左对齐
  • 表格文本:9–11号字,近黑色,次要列使用灰色(
    6B6B6B
  • 链接文本:9–10号字,柔和蓝色(
    2B5797
  • 页脚:8号字,中灰色
统计卡片(顶部行):
  • 4个关键指标以大数字展示:融资总额、轮次数量、平均投前估值、最大单笔融资
  • 每个指标放在带有
    F5F5F5
    填充色和细
    D0D0D0
    边框的卡片中——无阴影、无彩色填充
  • 如果某一统计数字异常(例如:是常规交易量的3倍、创纪录的交易),可在该数字旁添加一个小彩色点或下划线——否则保持全单色
  • 如果多数投前估值未披露,替换为其他指标(例如:平均轮次规模、新晋独角兽数量)
核心要点(中间部分):
  • 3–5条单行要点,每条前缀为相关公司的Logo(小尺寸,约0.35英寸高)
  • 如果没有可用Logo,使用灰色圆圈内配白色公司首字母——而非彩色圆圈
  • 左对齐,留有足够间距
  • 估值下降或负面要点可使用小红点前缀;否则不使用色彩
  • 尽可能包含估值背景信息(例如:“投后估值达50亿美元”)
重大交易表格(底部部分):
  • 紧凑表格,显示4–6笔最重大的交易
  • 列:公司、轮次类型(A轮等)、公告日期、完成日期、融资金额(百万美元)、投前估值(百万美元)、投后估值(百万美元)、领投方、交易链接
  • 公告日期完成日期列使用
    MMM DD
    格式显示(例如:“Jan 15”)。这两列为必填项,必须始终显示。如果日期不可用,显示“—”。
  • 交易链接列包含可点击的“查看→”文本,链接至Capital IQ:
    https://www.capitaliq.spglobal.com/web/client?#offering/capitalOfferingProfile?id=<transaction_id>
    其中
    <transaction_id>
    get_rounds_of_funding_from_identifiers
    返回的
    transaction_id
  • 如果投前或投后估值未披露,在对应单元格显示“—”
  • 表头行使用近黑色(
    1A1A1A
    )填充和白色文字;表格行使用
    F5F5F5
    FFFFFF
    交替底色
  • 表格水平居中在幻灯片上。计算表格总宽度,然后设置
    x
    值使表格居中:
    x = (幻灯片宽度 - 表格宽度) / 2
    。对于16:9布局(13.33英寸宽),如果表格宽12英寸,使用
    x = 0.67
    。切勿将表格左对齐至幻灯片边缘。
  • 保持表格紧凑——作为参考内容,而非焦点
  • 表格单元格切勿使用彩色填充。如果某笔交易是估值下降轮次,可在金额旁添加小红色文本标签“(↓ 估值下降)”——这是表格中唯一允许使用的色彩
交易链接实现(pptxgenjs): 在pptxgenjs中,使用单元格对象的
options.hyperlink
属性为表格单元格添加超链接:
javascript
// 带有Capital IQ交易链接的表格单元格
{
  text: "查看→",
  options: {
    hyperlink: {
      url: `https://www.capitaliq.spglobal.com/web/client?#offering/capitalOfferingProfile?id=${transactionId}`
    },
    color: "2B5797",
    fontSize: 9,
    fontFace: "Arial"
  }
}
表格居中(pptxgenjs): 始终保持交易表格在幻灯片上水平居中。动态计算x位置:
javascript
const SLIDE_W = 13.33; // 16:9幻灯片宽度(英寸)
const TABLE_W = 12.5;  // 表格总宽度(所有列宽之和)
const TABLE_X = (SLIDE_W - TABLE_W) / 2; // ≈ 0.42英寸

slide.addTable(tableRows, {
  x: TABLE_X,
  y: tableY,
  w: TABLE_W,
  colW: [1.8, 0.9, 0.9, 0.9, 1.0, 1.1, 1.2, 1.6, 0.7], // 公司、轮次类型、公告日期、完成日期、融资金额、投前估值、投后估值、领投方、链接
  // ... 其他选项
});
根据需要调整
colW
值,但始终通过
(SLIDE_W - sum(colW)) / 2
重新计算
TABLE_X
,以保持表格居中。
页脚:
  • 小号中灰色文字:“交易流摘要 · [周期] · 数据源:标普全球Capital IQ · 生成日期[日期]”
通用色彩规则(严格执行):
  • 公司Logo是幻灯片上唯一的“全彩”元素——保持源文件原样显示。
  • 交易链接使用柔和蓝色(
    2B5797
    )——这是除语义红/绿外,唯一的非单色文本颜色。
  • 除Logo和链接外,幻灯片在黑白打印机上打印应显示正常。
  • 切勿为背景、装饰条、装饰形状或区域分隔线添加色彩。
  • 如有疑问,使用灰色。

Code Structure

代码结构

javascript
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Deal Flow Digest";

const slide = pres.addSlide();
const SLIDE_W = 13.33; // 16:9 slide width in inches

// 1. Dark header bar with title and period
// 2. Stat cards row (4 cards: Total Raised, # Rounds, Avg Pre-Money, Largest Round)
// 3. Key takeaways section with logos (include valuation context)
// 4. Top deals table with Announced, Closed, Pre-Money, Post-Money columns and Capital IQ deal links
//    - Center the table: x = (SLIDE_W - tableWidth) / 2
// 5. Footer

pres.writeFile({ fileName: "/home/claude/deal-flow-digest.pptx" });
Use factory functions (not shared objects) for shadows and repeated styles per the pptxgenjs pitfalls guidance.
javascript
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "交易流摘要";

const slide = pres.addSlide();
const SLIDE_W = 13.33; // 16:9幻灯片宽度(英寸)

// 1. 深色标题栏,包含标题和周期
// 2. 统计卡片行(4张卡片:融资总额、轮次数量、平均投前估值、最大单笔融资)
// 3. 带Logo的核心要点部分(包含估值背景信息)
// 4. 重大交易表格,包含公告日期、完成日期、投前估值、投后估值列及Capital IQ交易链接
//    - 表格居中:x = (SLIDE_W - 表格宽度) / 2
// 5. 页脚

pres.writeFile({ fileName: "/home/claude/deal-flow-digest.pptx" });
根据pptxgenjs的注意事项,使用工厂函数(而非共享对象)处理阴影和重复样式。

Step 8: QA the Slide

步骤8:幻灯片质量检查

Follow the QA process from the PPTX skill:
  1. Content QA:
    python -m markitdown deal-flow-digest.pptx
    — verify all text, numbers, company names, valuation figures, and deal links are correct
  2. Visual QA: Convert to image and inspect:
    bash
    python /mnt/skills/public/pptx/scripts/office/soffice.py --headless --convert-to pdf deal-flow-digest.pptx
    pdftoppm -jpeg -r 200 deal-flow-digest.pdf slide
    Check for overlapping elements, text overflow, alignment issues, low-contrast text, logo sizing problems, and that deal link text is visible.
  3. Link QA: Verify that the Capital IQ URLs in the table are correctly formatted with the right transaction IDs.
  4. Fix and re-verify — at least one fix-and-verify cycle before declaring done.
遵循PPTX技能中的QA流程:
  1. 内容QA:
    python -m markitdown deal-flow-digest.pptx
    ——验证所有文本、数字、公司名称、估值数据和交易链接是否正确
  2. **视觉QA:**转换为图片并检查:
    bash
    python /mnt/skills/public/pptx/scripts/office/soffice.py --headless --convert-to pdf deal-flow-digest.pptx
    pdftoppm -jpeg -r 200 deal-flow-digest.pdf slide
    检查是否有元素重叠、文本溢出、对齐问题、低对比度文本、Logo尺寸问题,以及交易链接文本是否可见。
  3. **链接QA:**验证表格中的Capital IQ URL是否格式正确,包含正确的交易ID。
  4. 修复并重新验证——至少完成一次修复-验证循环后再确认完成。

Step 9: Present Results

步骤9:呈现结果

  1. Copy the final
    .pptx
    to
    /mnt/user-data/outputs/
  2. Use
    present_files
    to share the slide
  3. Provide a 2–3 sentence verbal summary:
    • "Your digest covers X rounds totaling $Y raised across [sectors]."
    • Call out the single most notable deal and its valuation
    • Flag any concerning trends (down rounds, valuation compression, etc.)
  1. 将最终的
    .pptx
    文件复制到
    /mnt/user-data/outputs/
  2. 使用
    present_files
    分享幻灯片
  3. 提供2–3句话的口头总结:
    • “你的摘要涵盖[行业]的X轮融资,总金额达Y美元。”
    • 重点提及最重大的单笔交易及其估值
    • 标记任何值得关注的趋势(估值下降轮次、估值压缩等)

Error Handling

错误处理

Entity Resolution Failures

实体解析失败

  • Empty results for a known company: First check
    get_info_from_identifiers
    — if that fails, try the alias from
    references/sector-seeds.md
    or the
    company_id
    directly. Common brand→legal mismatches: Together AI → "Together Computer, Inc.", Character.ai → "Character Technologies, Inc.", Runway ML → "Runway AI, Inc.".
  • Subsidiary companies: DeepMind, GitHub, Instagram, WhatsApp, YouTube, BeReal, etc. are subsidiaries — they have zero independent funding rounds. Note these as "acquired/subsidiary" in context but do not report them as "no activity."
  • Defunct companies: Companies like Convoy (shut down Oct 2023) still resolve in S&P Global but will never have new activity. The
    references/sector-seeds.md
    file flags these — check it before including a company.
  • get_funding_summary_from_identifiers
    errors or returns zeros:
    Fall back to
    get_rounds_of_funding_from_identifiers
    — the summary tool is less reliable. Never rely on the summary tool as the sole data source.
  • Wrong
    role
    parameter:
    If investor-perspective queries return empty, verify you're using
    company_investing_in_round_of_funding
    , not
    company_raising_funds
    (and vice versa).
  • **已知公司返回空结果:**首先检查
    get_info_from_identifiers
    ——如果失败,尝试
    references/sector-seeds.md
    中的别名或直接使用
    company_id
    。常见品牌→法律名称不匹配:Together AI → "Together Computer, Inc.", Character.ai → "Character Technologies, Inc.", Runway ML → "Runway AI, Inc."。
  • **子公司:**DeepMind、GitHub、Instagram、WhatsApp、YouTube、BeReal等均为子公司——无独立融资轮次记录。在摘要中注明“已被收购/子公司”背景,但不要标记为“无活动”。
  • **已停业公司:**像Convoy(2023年10月停业)这样的公司仍可在标普系统中解析,但不会有新活动。
    references/sector-seeds.md
    文件会标记这些公司——在纳入前请检查。
  • **
    get_funding_summary_from_identifiers
    返回错误或零结果:**回退使用
    get_rounds_of_funding_from_identifiers
    ——摘要工具可靠性较低。切勿仅依赖摘要工具作为数据源。
  • **
    role
    参数错误:**如果投资者视角查询返回空结果,确认是否使用了
    company_investing_in_round_of_funding
    而非
    company_raising_funds
    (反之亦然)。

Data Quality Issues

数据质量问题

  • No activity in period: If a sector had zero funding rounds, note this explicitly on the slide ("No transactions recorded in [Sector] during the period") — absence of activity is itself informative.
  • Sparse valuation data: If pre-money and post-money valuations are undisclosed for most transactions, note the data limitation in a footer annotation and use "—" in the table. Adjust the stat card to show a different metric (e.g., Median Round Size) instead of Avg Pre-Money.
  • Logo retrieval failures: The
    simple-icons
    npm package provides ~43% coverage for typical deal flow companies. For the remainder, use the
    sharp
    -generated initial-based fallback. Keep a consistent icon style — don't mix random approaches. If
    simple-icons
    or
    sharp
    fail to install, fall back to pptxgenjs shape-based initials (gray ellipse + white text overlay) which require no external dependencies.
  • Too many deals for one slide: If there are more than 6 notable deals, show the top 6 in the table and add a footnote: "+N additional deals not shown." Prioritize by deal size.
  • Large universes: For multi-sector digests with 100+ companies, batch all API calls in groups of 15–20. Prioritize depth on notable deals over completeness on minor ones.
  • Stale seeds: If competitor expansion returns very few results for a sector, the seed companies may be too niche. Broaden by adding 2–3 more well-known names and re-expanding.
  • Invalid transaction IDs for links: If a
    transaction_id
    from the funding tool doesn't produce a valid Capital IQ URL, omit the link cell for that row rather than including a broken link.
  • **周期内无活动:**如果某行业零融资轮次,在幻灯片上明确注明(“[行业]在该周期内无交易记录”)——无活动本身也是有价值的信息。
  • **估值数据稀疏:**如果大多数交易未披露投前和投后估值,在页脚注释中注明数据限制,并在表格中显示“—”。调整统计卡片,使用其他指标(例如:平均轮次规模)替代平均投前估值。
  • Logo获取失败:
    simple-icons
    npm包对典型交易流公司的覆盖率约为43%。对于其余公司,使用
    sharp
    生成的首字母回退Logo。保持图标风格一致——切勿混合随机方法。如果
    simple-icons
    sharp
    安装失败,回退使用pptxgenjs基于形状的首字母Logo(灰色椭圆+白色文字叠加),无需外部依赖。
  • **交易过多无法在单页幻灯片显示:**如果重大交易超过6笔,在表格中显示前6笔,并添加脚注:“另有N笔交易未显示”。按交易金额优先排序。
  • **大型公司集合:**对于涵盖100+家公司的多行业摘要,将所有API调用按15–20家为一批处理。优先深入处理重大交易,而非追求小交易的完整性。
  • **种子公司过时:**如果竞品拓展为某行业返回的结果极少,可能种子公司过于小众。添加2–3家更知名的公司,重新进行拓展。
  • **交易链接的无效transaction_id:**如果融资工具返回的
    transaction_id
    无法生成有效Capital IQ URL,该行省略链接单元格,而非包含无效链接。

Example Prompts

示例提示词

  • "Give me a weekly deal flow digest for AI and fintech"
  • "Summarize this week's funding in biotech"
  • "Deal roundup for my coverage — cybersecurity, cloud infrastructure, and dev tools — last 2 weeks"
  • "What happened in venture this week across all sectors I follow?"
  • "Quick deal flow slide for climate tech this month"
  • “给我AI和金融科技领域的每周交易流摘要”
  • “总结本周生物技术领域的融资情况”
  • “我的覆盖领域——网络安全、云基础设施、开发工具——过去2周的交易汇总”
  • “我关注的所有行业本周风险投资动态如何?”
  • “本月气候科技领域的快速交易流幻灯片”