关于 meeting-prep
meeting-prep 是用于会前准备的研究技能,可生成参会者和公司简报。它结合 Nimble 网络研究、已保存的资料和按会议类型定制的定位内容。
主要功能
- 01研究参会者及其公司
- 02复用已保存的人物和公司资料
- 03发现 Web Search Agents
- 04按会议类型定制简报
- 05将研究保存到本地记忆
适用场景
- 01准备销售探索会议
- 02会前了解参会者背景
- 03用近期新闻更新公司情况
MCP 相关
该技能可在会话开始时选择通过 CLI 或 MCP 使用 Nimble。还可使用可用的日历 MCP 工具查找会议。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nimbleway/ agent-skills --skill meeting-prep安装后在 Claude Code 中输入/meeting-prep确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/attendee-agent-prompt.mdmemory-and-distribution.mdnimble-playbook.mdprofile-and-onboarding.md详细介绍
会议准备
通过研究和参会者情报及公司背景,做好会议准备。
用户请求:$ARGUMENTS
运行任何命令之前,请阅读 references/nimble-playbook.md,了解 Claude Code 的限制(无 shell 状态、不可使用 &/wait、子 Agent 权限、沟通风格)。
说明
步骤 0:预检
遵循 references/nimble-playbook.md 中的传输方式选择和标准预检流程——在会话开始时选择 CLI 或 MCP,然后并行运行标准预检调用(日期计算、今天、个人资料、记忆索引)。
根据结果:
- 缺少 CLI 或未设置 API 密钥 → 阅读
references/profile-and-onboarding.md,然后停止 - 为所有
nimbleCLI 调用添加标记:nimble --client-source nimble-agent-skills <subcommand>。MCP 请求在传输层进行归因——参见references/nimble-playbook.md。 - 如果存在个人资料 → 阅读
~/.nimble/memory/people/index.md,识别已有的人员资料。在会前加载参会者相关的~/.nimble/memory/people/文件——跳过重复搜索,并展示先前的会议记录。遵循人员文件中的[[path/entity]]交叉引用:如果某位参会者的文件链接到[[competitors/widgetco]],则加载该竞争对手文件,以获取更丰富的背景信息(例如,竞争对手情报运行中最近获得的情报)。同时检查~/.nimble/memory/companies/,查看缓存的公司研究资料。 不要检查当天是否已有报告——会议准备针对每场会议,而非每天。用户可能在一天内为多场会议做准备。改为检查实体资料的新鲜度:如果人员/公司资料在过去 24 小时内更新过,请提供复用选项:「我今天早些时候已为**[姓名]**创建了近期资料。要使用该资料,还是重新整理?」 - 如果没有个人资料 → 没关系。会议准备不需要完成引导设置。继续步骤 1。
步骤 1:收集会议背景
从 $ARGUMENTS 中解析会议详情,或询问用户。
日历快捷方式: 如果用户未指定与会者,且日历连接器可用——日历 MCP 工具(在工具列表中查找 list_events)或 gws CLI(gws calendar +agenda --today)——则主动提出调取今天的会议,让用户选择。如果两者都不可用,则静默跳过。
如果信息明确(例如:“帮我准备明天与 WidgetCo 的 Alex Kim 的会议”):
- 提取:与会者姓名、公司、会议日期/时间(如有)
- 简短确认:“正在为您准备与 WidgetCo 的 Alex Kim 的会议简报……”
如果信息不完整(例如:“帮我准备明天的会议”):
- 用纯文本提问一个澄清问题:
“您要和谁开会?(如有,请提供姓名、职位和公司)”
如果只提供了一个人名(例如:“调查 John Smith”):
- 直接以此人为对象继续。尝试从搜索结果中推断其公司。
提取以下字段:
| 字段 | 必填 | 来源 |
|---|---|---|
| 与会者姓名 | 是 | 用户输入或日历事件 |
| 公司 | 最好提供 | 用户输入或从搜索中推断 |
| 与会者职位 | 可选 | 用户输入或在步骤 2 中发现 |
| 会议类型 | 必填 | 用户输入、推断或询问(探索、演示、跟进、面试、合作、内部会议) |
| 会议日期/时间 | 可选 | 用户输入 |
| 其他背景信息 | 可选 | 用户备注(“他们正在评估我们的产品”“董事会成员引荐”) |
会议类型判定——如果用户未指定,请根据上下文线索推断:
| 线索 | 推断的类型 |
|---|---|
| “潜在客户”“演示”“销售电话” | 销售 / 探索 |
| “面试”“候选人” | 面试 |
| “董事会”“投资者” | 董事会 / 投资者 |
| “合作伙伴”“集成” | 合作 |
| 与同事进行“跟进”“同步”“1:1” | 内部会议 |
| 没有线索 | 询问(见下文) |
如果没有线索——不要猜测为“常规外部会议”。会议类型决定是否生成价值定位部分,因此值得问一个问题。使用 AskUserQuestion:
这次会议的目标是什么?
- 销售 / 探索 — 推介、演示、探索合作契合度
- 合作 — 集成、联合销售、合资
- 董事会 / 投资者 — 董事会会议、投资者更新、融资
- 面试 — 评估候选人
- 常规 / 其他 — 拓展人脉、叙旧,或不确定
根据回答映射会议类型。如果用户选择“常规 / 其他”,则按常规外部会议处理(不生成价值定位部分)。
会议类型会影响简报重点——具体而言,它决定是否生成价值定位部分(步骤 4.5 + 步骤 6)。以下类型会启用价值定位:销售/探索、合作、董事会/投资者。以下类型会跳过价值定位:面试、内部会议、常规外部会议。
步骤 2:WSA 探索
针对每位与会者所在公司的域名,发现可用的 WSA:
nimble extract:templates list --limit 100 # then filter items for "{company-domain}"
对每家不同的公司同时执行一次搜索。筛选 SERP/PDP WSA,优先选择 managed_by: "nimble",并使用 nimble extract:templates get --extract-template-name {name} 进行验证。
缓存发现的名称和参数。将其传递给步骤 3 中的与会者 Agent,以获取更丰富的数据。如果未找到 WSA,则仅使用 nimble search 继续。
第 3 步:逐位与会者研究(子 Agent)
阅读 references/attendee-agent-prompt.md,了解完整的 Agent 提示词模板。
遵循 references/nimble-playbook.md 中的子 Agent 启动规则
(bypassPermissions、每批最多 4 个、明确的 Bash 指令、失败时回退)。
先检查记忆。 对每位与会者,检查 ~/.nimble/memory/people/[name-slug].md。
如果存在个人资料且更新时间距今不到 30 天,将其作为已知背景加载并传给
Agent,让它专注于新信息。如果超过 30 天,则进行全面更新。
启动 nimble-researcher Agent(agents/nimble-researcher.md),并设置
mode: "bypassPermissions"。每位与会者对应一个 Agent。将第 2 步中发现的
WSA 名称传给每个 Agent,以便补充信息。
重要: Nimble API 的每个 API 密钥每秒最多可调用 10 次。每个 Agent 会进行 4–5 次搜索,因此每批并发 Agent 限制为 2 个。与会者达到 3 人或以上时,每批安排 2 人。
调用量估算与规模化执行: 启动 Agent 前,估算 API 调用总量:每位与会者约 5 次搜索 + 约 4 次公司搜索 + 3–5 次提取 = 约 (5 × N) + 9 次调用。与会者达到 3 人或以上(15 次以上调用)时,告知 Agent 使用 extract-batch 批量提取页面,而非逐次调用。有关层级选择,请参阅 references/nimble-playbook.md 中的规模化执行模式。
第 1 批(同时运行 2 个 Agent):
- 研究与会者 1
- 研究与会者 2
第 2 批(如有需要):
- 研究与会者 3
- 研究与会者 4
单人优化: 如果只有一位与会者,直接在主上下文中运行搜索,而不是启动 Agent,以减少开销。
回退: 如果任何 Agent 失败或返回空结果,直接在主上下文中运行相应搜索。不要让简报留下信息空缺。
第 3.5 步:检查信息缺口
继续之前,确认每位与会者至少有已确认的职位和公司。
对于结果少于 3 条有意义信息或“职位未知”的任何与会者:
- 直接运行
--focus social回退搜索(此搜索会检索社交平台上的人物索引,是查找某人的最可靠方式):nimble search --query "[Name] [Company]" --focus social --max-results 5 --search-depth lite - 如果无法使用
--focus social,则改用:nimble search --query "[Name]" --include-domain '["linkedin.com"]' --max-results 5 --search-depth lite - 尝试不同的姓名组合:“[名] [姓]”、“[全名] [公司] [已知职位]”
不要在简报中将职位标为“未知”——先穷尽社交平台搜索。如果尝试回退方法后仍一无所获,请如实说明:“公开资料有限——无法确认职位。可以考虑询问对方的 LinkedIn 个人资料 URL。”
如果尚未找到,也请在此步骤中收集每位与会者的 LinkedIn 个人资料 URL。这些信息对于最终简报和 Notion 分发很有价值。
第 4 步:公司调研
调研与会者所在公司,了解与会议相关的背景信息。这是公司深度调研的精简版 ——重点关注对谈话有用的信息,而非全方位调查。
引用公司名称: 如果公司名称包含容易产生大量无关结果的常见词(例如,“Acme Supply”“Nova Dynamics”“Global Industries”),请用转义引号括起来:"\"Acme Supply\" news"。也可以使用 --include-domain '["[domain]"]' 作为替代锚点。
同时执行以下 Bash 调用:
nimble search --query "\"[Company]\" news" --focus news --start-date "[14-days-ago]" --max-results 8 --search-depth litenimble search --query "\"[Company]\" product launch OR announcement" --focus news --start-date "[14-days-ago]" --max-results 5 --search-depth litenimble search --query "about" --include-domain '["[domain]"]' --max-results 3 --search-depth litenimble search --query "\"[Company]\" funding OR raised OR investors" --max-results 5 --search-depth lite
如果存在用户所在公司的资料,也请执行:
nimble search --query "[Company] [UserCompany] OR [user-domain]" --max-results 5 --search-depth lite
这能发现两家公司之间已有的关联,例如过往合作、相关提及、共同投资者或竞争重叠。
如果新闻搜索结果少于 3 条,请在不使用 --start-date 的情况下重试。
日期验证: 在简报中提及公司新闻时,请确认事件日期(实际发生的时间)是近期的,而不只是文章发布日期。详情请参阅 references/nimble-playbook.md → “Signal Date Validation”。如果摘要使用“去年”或“在第 3 季度”之类的过去时表述,应将其视为背景信息,而非近期新闻。
如果已经调研过该公司(资料位于 ~/.nimble/memory/companies/),请加载现有资料,并仅搜索最新新闻。
步骤 4.5:价值定位研究
如果会议类型是面试、内部会议或一般外部会议,请跳过此步骤。
此步骤会将你在步骤 4 中了解到的参会者公司信息与用户自身的业务资料交叉对照,以找到具体的定位角度。如果存在 business-profile.json,且至少包含 company.name 和 company.domain,此步骤的效果最佳。
如果不存在资料,请跳过引用用户公司或竞争对手的搜索(搜索 2、4、5),并依靠通用研究(搜索 1、3)获取定位见解。 使用步骤 2 中发现的任何 WSA,以获取更丰富的参会者公司信息。 价值定位部分会比较精简,但仍然有用——即使没有资料,也可以进行痛点到解决方案的映射并发现技术栈。
从 ~/.nimble/business-profile.json 加载用户的销售背景信息:
sales_context.key_differentiators— 用户产品的独特之处sales_context.integration_partners— 用户产品可连接的工具sales_context.case_studies— 类似客户及其取得的成果sales_context.common_objections— 预先准备的异议回应competitors— 已跟踪的竞争对手(检查参会者的公司是否在使用其中任何一家)
如果资料中不存在 sales_context,此技能仍然可用——价值定位部分将仅依靠网络研究,而不使用资料补充的信息。
请在末尾提及:“提示:下次可在资料中添加销售背景信息,以获得更丰富的定位内容。”
同时执行以下 Bash 调用(根据可用数据进行 3–5 次搜索):
-
nimble search --query "\"[AttendeeCompany]\" tech stack OR tools OR platform OR uses" --max-results 5 --search-depth lite→ 查找他们使用的工具/平台——与integration_partners对照 -
nimble search --query "\"[AttendeeCompany]\" [UserCompany] OR [user-domain]" --max-results 5 --search-depth lite→ 查找现有关系、提及或竞争重叠情况(如果已在步骤 3 中运行过,则跳过) -
nimble search --query "\"[AttendeeCompany]\" challenges OR pain points OR struggling OR migrating" --max-results 5 --search-depth lite→ 查找痛点信号,以便与用户的价值主张进行映射
4.(如果存在 competitors 列表)nimble search --query "\"[AttendeeCompany]\" [CompetitorName1] OR [CompetitorName2]" --max-results 5 --search-depth lite
→ 检查他们是否在使用竞争对手的产品——这对替代定位至关重要
5.(如果 case_studies 中存在行业匹配的案例)nimble search --query "[UserCompany] [attendee-industry] case study OR customer story" --max-results 5 --search-depth lite
→ 查找参会者所在行业已发布的案例研究,以供引用
从结果中提取:
- 他们使用的工具/平台(用于建立集成切入点)
- 痛点信号或挑战(用于价值映射)
- 竞争对手的使用情况(用于替代定位)
- 行业与现有案例研究的匹配情况(用于提供社会认同)
这些数据将直接用于步骤 5 的价值定位部分。
步骤 5:深度提取
从步骤 3–4.5 的所有结果中,找出信息量最大的 3–5 个 URL。 优先选择:
- 参会者本人发布的 LinkedIn 帖子、文章或演讲
- 与会议直接相关的近期公司公告
- 关于参会者的访谈或人物简介
- 公司关于/团队页面(如果未找到参会者的职务)
- (如果启用了价值定位)揭示其技术栈或工具使用情况的页面
- (如果启用了价值定位)介绍其挑战或迁移计划的文章
针对每个 URL 各执行一次 Bash 调用,并同时运行:
nimble extract --url "https://..." --format markdown
如果提取失败,请按照 references/nimble-playbook.md 中的备用方案处理。
**单个参会者 + 已知公司:**跳过公司内容提取,重点关注个人 URL。 **多位参会者:**优先选择个人相关的 URL,而非公司层面的 URL。
步骤 6:撰写简报
将输出整理为会议准备简报。根据会议类型调整重点。
# Meeting Prep: [Company Name]
*[Meeting date/time if known] | Prepared [today's date]*
## Quick Take
[2-3 sentences: who you're meeting, why it matters, and the one thing to know
going in. This is the "read nothing else" paragraph.]
## Attendees
### [Name] — [Title]
**Background:** [Current role, time in position, career trajectory highlights]
**Recent Activity:** [What they've been posting, speaking about, or working on.
Direct quotes from posts/talks when available.]
**Conversation hooks:** [2-3 specific things to reference — shared connections,
their recent project, a post they wrote, a talk they gave]
**Notes from prior meetings:** [If exists in memory — what was discussed, their
preferences, open items. "No prior meetings on file" if none.]
[Repeat for each attendee]
## Relationship Map
[Cross-attendee connections — shared employers, mutual connections, overlapping
interests, organizational dynamics between attendees. Skip if single attendee.]
## Company Context
- **What they do:** [One line]
- **Size / Stage:** [Employees, funding stage, HQ]
- **Recent news:** [Top 2-3 items, dated with source]
- **Relevant to your meeting:** [How their company context connects to your
discussion — e.g., recent product launch you might discuss, funding that
signals growth, leadership change affecting priorities]
## Value Positioning
*[Only for sales/discovery, partnership, and board/investor meetings. Omit entirely
for interview, internal, and general external meetings.]*
### Value Mapping
[Match their specific needs/pain points to your capabilities. Every mapping must
be grounded in research from Step 4.5, not generic claims.
Format: "They [specific finding with source] → Your product [specific capability]"]
### Integration Hooks
[Tools/platforms they use that your product integrates with. Only include
integrations confirmed from research (their tech stack) AND your profile
(integration_partners). If no overlap found, say so honestly.]
### Recommended Positioning
[2-3 sentences on how to frame your pitch for THIS specific company and person.
Consider: their company stage, recent news, the attendee's role and priorities,
and any competitive displacement opportunity. This is the "elevator pitch
calibrated to this meeting" paragraph.]
### Reference Customers
[Similar companies from your case_studies that match their industry, size, or
use case. Include the outcome/metric if available. If no matching case studies,
omit this subsection rather than forcing a weak match.]
## Talking Points
[3-5 specific, actionable conversation starters grounded in the research.
Not generic "ask about their priorities" — specific: "Ask about their
migration from [old tool] to [new tool] that they announced last month."
When value positioning is active, weave 1-2 positioning angles into the
talking points naturally — don't make every talking point a sales pitch.]
## Watch Out For
[1-3 things to be aware of — sensitive topics (recent layoffs, bad press),
potential awkward overlaps, information gaps you couldn't fill.]
## Sources
[Numbered list of key URLs cited in the briefing]
按会议类型调整:
| 类型 | 侧重点 | 在简报中添加 | 价值定位 |
|---|---|---|---|
| 销售 / 需求探索 | 买方决策权、痛点信号、竞品技术栈 | “资格信号”部分 | 是 — 完整部分 |
| 合作伙伴关系 | 互惠信号、集成机会 | “合作契合机会”部分 | 是 — 聚焦集成切入点 |
| 董事会 / 投资者 | 财务背景、市场地位、投资组合重叠 | “可引用的关键指标”部分 | 是 — 聚焦建议的定位方式 |
| 面试 | 候选人的工作经历深度、文化信号 | “评估角度”部分 | 否 |
| 内部会议 | 跳过公司调研,聚焦此人的近期工作 | 精简格式,不含公司部分 | 否 |
| 一般外部会议 | 均衡覆盖所有维度 | 上述标准格式 | 否 |
核心规则:
- 关于外部公司或个人的每项事实陈述都必须附带来源 URL。 来自用户自身业务档案的数据(差异化优势、集成、案例研究)应注明来源为该档案,无需外部来源。
- 将快速概览放在最前面——大多数读者只会看到这里。
- 谈话要点必须针对本次会议,并以调研结果为依据。 切勿生成泛泛的对话开场白。
- 如果没有关于某人的公开信息,应写明“未找到公开信息”,不要臆测其 职位或背景。
- 如果记忆中有此前的会议记录,应醒目呈现待处理事项和延续性要点——这是最有价值的内容。
- 价值定位必须以步骤 4.5 的调研结果为依据。切勿生成“突出产品优势”之类泛泛的定位建议。 每项价值映射都必须关联一项关于参会者所在公司的具体发现,以及用户档案或调研中的一项具体能力。
- 如果档案中缺少
sales_context,请在“价值定位”部分末尾注明一次:“提示:编辑~/.nimble/business-profile.json中的档案,添加销售背景信息(差异化优势、 集成、案例研究),以便下次提供更有针对性的定位建议。”
步骤 7:保存到记忆
同时执行所有 Write 调用:
- 报告 →
~/.nimble/memory/reports/meeting-prep-[company-slug]-[date].md - 每位参会者 →
~/.nimble/memory/people/[name-slug].md(使用references/memory-and-distribution.md中的格式)。添加指向参会者雇主的[[path/entity]]交叉引用(例如[[competitors/widgetco]]或[[companies/widgetco]]),以及发现的其他关联。 - 公司档案 → 如果发现了新的公司数据,则更新
~/.nimble/memory/companies/[company-slug].md。 添加指向已调研人员的反向交叉引用(例如[[people/alex-kim]])。 - 档案 → 更新
~/.nimble/business-profile.json中的last_runs.meeting-prep(仅当档案存在时) - 按照
references/memory-and-distribution.md中的 Wiki 更新模式操作:更新index.md中所有受影响实体文件对应的行,并在log.md中追加一条本次运行的记录。
people/ 中的个人档案应包含结构化的关键信息(职位、背景、兴趣、沟通风格),
以便未来的会议准备运行加载。
步骤 8:分享与分发
始终提供分发选项——不要跳过此步骤。 按照
references/memory-and-distribution.md 检测连接器、执行分享流程并确保来源链接完整。
步骤 9:后续事项
- 深入了解某位参会者 → 更有针对性地研究此人
- 添加参会者 → 研究其他将参加会议的人
- “那 [主题] 呢?” → 针对特定维度进行搜索
- “看起来不错” → 完成
- 相关技能:
company-deep-dive用于全面了解公司,competitor-intel用于跟踪竞争对手,competitor-positioning用于在销售会议前比较宣传信息
Agent 团队模式(双模式)
启动时检查:echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
团队模式(已设置标记):生成队友而不是子 Agent。每位队友 负责研究一位参会者,并可在发现交叉关联时联系其他队友。
| 队友 | 重点 | 交叉核对对象 |
|---|---|---|
| 参会者 1 研究员 | 全面研究参会者 1 及其公司 | 所有其他队友(共同雇主、关系等) |
| 参会者 2 研究员 | 全面研究参会者 2 及其公司 | 所有其他队友 |
| [每位额外参会者对应一位] | ... | ... |
跨参会者信息的发现方式:
- 每位队友独立研究分配给自己的参会者
- 当队友发现与另一位参会者重叠的工作单位、学校或关系时,会向那位队友发送消息:“我的参会者 [Name] 在 [Company] 工作过,时间是 2019-2022 年——你的参会者有重叠吗?”
- 收到消息的队友进行核实并回复
- 负责人(你)收集所有交叉引用,并编写“关系图谱”部分
与单人模式相比,这种方式能生成质量更高的关系图谱,因为队友会主动寻找关联,而不只是事后比较结果。
单人模式(未设置标记):采用步骤 3 中的标准子 Agent 流程。
此技能不适用于
- 不是竞争对手监控——跟踪竞争对手请使用
competitor-intel - 不是公司深度分析——无需参会者信息的研究请使用
company-deep-dive - 不是 CRM——收集网络情报,不管理联系人或销售管道
- 不是日历应用——读取日程以获取上下文,但不管理日程
错误处理
标准错误表请参阅 references/nimble-playbook.md。此技能特有的错误:
- 找不到此人: 尝试不同的姓名写法(全名、名+姓、加上公司名)。如果仍然 找不到:“找不到 [Name] 的公开信息。你能提供他们的职位或 LinkedIn 资料吗?”
- 姓名有歧义: 列出最匹配的候选人及其公司或职位信息,并询问用户。
- 公司搜索结果为空: 说明这一点,并重点介绍参会者层面的发现。