档案
Dossier — 决策级实体研究
> 可移植性: 需要 WebSearch + WebFetch,安装了 docx 包的 Node.js,以及可选的 bash_tool + curl 以调用免费 API(SEC EDGAR, GitHub, ProPublica)。BYOK MCPs(LinkedIn, Crunchbase, Apollo, Pitchbook, SimilarWeb)为可选增强项。原生支持 Claude Code CLI。
非通用框架 —— 核心差异化
本技能提供的是带有假设验证的决策级实体研究。它拒绝执行类似“告诉我关于微软的信息”这种宽泛指令。每次调用都会强制用户预先披露其假设(Q4),以便档案能够*测试*该假设,而非仅仅确认它。
典型用例场景:
> “我周二要向微软提案。我的假设是他们正在将其 AI 支出整合到自己的 Foundry 平台中。请验证或证伪,并根据你的发现给我三个对话切入点。”
而非:
> “告诉我关于微软的信息。”
强制性的 Q4(假设问题)是非通用化的锚点。如果跳过此步骤,该技能将仅产生类似维基百科的摘要。
详见 references/hypothesis_testing_discipline.md 标准。
Agent 完整性规则(研究包约定)
根据 PR #657 审计原样锁定。
- 执行纪律。 顺序调用搜索。WebSearch + WebFetch 的速率限制比 Consensus 宽松,但仍需遵守每秒 1 次请求的礼仪。在下一次调用前确认已收到响应。
- 来源纪律。 仅引用本会话工具调用返回的来源。维基百科/训练知识需标记为
[背景信息 —— 引用前请验证],且不计入主要发现数量。
- 三项计数追踪。 发送的查询数 / 接收的来源数 / 引用的来源数。此外,包含 dossier 特有的分级细分(一级 / 二级 / 三级)来源数。这些将呈现在审计日志中。
- 重试策略。 失败 $\rightarrow$ 等待 3 秒 $\rightarrow$ 重试一次 $\rightarrow$ 记录日志。连续失败 3 次后:停止并提醒用户。
- 来源可靠性分级。 每条引用需标记为一级(官方、SEC、法院记录)/ 二级(主流新闻、行业媒体)/ 三级(博客、论坛)。DOCX 文档在每个标记处均显示分级。
第一阶段:深度引导采集(6 个强制问题,逐一提出)
Q1 (根问题) — 主体身份
> 研究主体是谁?请提供准确名称,如果是公司,请提供...
网站或 LinkedIn URL。如果是个人,请提供其 LinkedIn URL 或唯一标识符(公司所属 + 职位)。**
>
> *询问原因:* 消除歧义。世界上有 47 个叫 John Smith 的人,有三家公司叫 "Atlas"。我需要一个具体的实体来进行研究。
如果用户仅提供姓名,请要求提供第二个标识符。对于模糊的姓名,拒绝继续执行。
Q2(取决于 Q1)— 主体类型
> 该主体是什么类型?请选择其一:个人 / 公司 / 非营利组织 / 政府机构 / 其他。
>
> *询问原因:* 适用不同的信息源矩阵。对于个人,我会检查 LinkedIn、GitHub、Scholar 和新闻;对于公司,我会检查 SEC EDGAR(如果是上市公司)、Crunchbase、新闻,以及技术组织的 GitHub;对于非营利组织,我会检查 ProPublica 上的 Form 990 表格。
强制选择。“其他”需要提供一行描述。
Q3(取决于 Q2)— 目的
> 您在为何做准备?请选择其一:
>
> 1. 销售会议 / 合作伙伴提案
> 2. 投资尽职调查
> 3. 收购尽职调查
> 4. 新闻报道 / 尽职调查
> 5. 求职面试准备
> 6. 竞争情报分析
> 7. 个人背景审查(约会、雇佣、商业伙伴)
> 8. 其他(请注明)
>
> *询问原因:* 目的决定了研究的角度、深度以及对“红旗”(风险信号)的敏感度。销售准备需要对话切入点;投资尽调需要增长信号;个人审查则需要谨慎的敏感度界限。
Q4(取决于 Q3)— 假设 — 强制要求
> 您目前的假设是什么?关于该主体您已经相信了什么,以及您想要验证或反驳什么?
>
> *询问原因:* 这是最关键的问题。一份仅仅证实你既有认知的档案是毫无价值的。通过预先陈述假设,我可以同时寻找*反驳*该假设的证据和支持该假设的证据,从而给你一个真正有用的结论。
>
> 示例:
> - “我认为微软正在将 AI 支出集中在第一方 Foundry 上。请验证或反驳。”
> - “我觉得这位 CEO 已经力不从心了——谈论过多 TAM(潜在市场总量),但没有实际进展。请测试这一点。”
> - “我认为这家非营利组织的管理费用率有问题。请检查 990 表格。”
> - “我认为此人的技术能力足以胜任 CTO 职位。请验证。”
强制要求。 如果用户说“我没有假设”,请一次性追问:“那么请尝试猜测。先确定一个立场,以后可以再更新。档案需要一个可测试的假设,否则它将变成一份泛泛而谈的简介,无法帮助您做出决策。”
如果用户仍然拒绝:则退而求其次,采用隐式假设“我能发现的最令人惊讶的事情是什么?”,并在审计日志中标记此回退操作。
这个问题是防止泛化(non-generic)的锚点。跳过它,这项技能就变成了维基百科摘要。
Q5(取决于 Q3)— 深度
> 时间跨度:5 分钟简报,还是 15 分钟决策级档案?
>
> *询问原因:* 简报模式上限约为 10 次搜索,并跳过人脉网络和声誉审查。决策级档案会对每个部分进行更深入的挖掘。请根据您在该决策中的利益相关程度进行选择。
强制选择。
Q6(仅在 Q3 为 {新闻报道, 个人背景审查} 时询问)— 敏感信息
> 是否有需要排除的敏感信息?例如:个人医疗、家庭细节、政治历史或特定的禁忌话题?
>
> *询问原因:* 某些研究场景存在伦理约束。我希望预先了解,而不是挖掘出一些您永远不会分享的信息。
销售/投资/收购/竞争情报(低敏感度)可跳过;新闻报道/个人审查(高敏感度)必须询问。
停止条件: 在 Q6 之后(或在 d... 之前提前停止)
(依赖项跳过),提交并启动第二阶段。第二阶段开始后,绝不能重新开启入口阶段。
第二阶段:主体消歧
在进入第三阶段之前,将主体解析为具体实体:
- 个人:确认 LinkedIn URL 或(雇主 + 职位 + 城市)
- 公司:确认域名或(法定名称 + 注册地)
- 非营利组织:确认 EIN 或(法定名称 + 州)
- 政府机构:确认官方 .gov URL
如果在 Q1 反馈后仍然模糊:停止并重新询问 Q1,并提供消歧标识符。拒绝继续执行。
第三阶段:来源矩阵选择
根据 Q2 的主体类型进行路由。完整规范请参阅 references/subject_type_source_matrix.md。
个人
- LinkedIn(手动获取或使用 BYOK 的 LinkedIn MCP)
- 个人网站
- Twitter/X(有频率限制;需优雅降级)
- GitHub(若为技术人员)
- Google Scholar(若为学术人员)
- 新闻(WebSearch + WebFetch)
- 会议演讲转录、播客(WebSearch)
公司
- 官方网站(关于、领导层、新闻、招聘)
- SEC EDGAR(免费 API;上市公司的 10-K, 10-Q, 8-K 报表)
- Crunchbase 免费版(或使用 BYOK 的 Crunchbase MCP)
- 新闻(WebSearch + WebFetch)
- GitHub(针对技术组织)
- Glassdoor + Comparably(情绪分析;若抓取被拦截则优雅降级)
- LinkedIn 公司主页
非营利组织
- ProPublica Nonprofit Explorer(免费;Form 990 表格)
- 官方网站
- 新闻
- GuideStar(若可访问)
政府机构
- 官方 .gov 网站
- 新闻
- ProPublica(针对联邦机构)
如果连接了付费 MCP(如 Apollo, Pitchbook, SimilarWeb),请使用并在审计日志中将结果标记为 BYOK-sourced。
第四阶段:假设驱动搜索
所有第四阶段的搜索必须被分类为:
- 支持性证据(证实假设),或
- 反驳性证据(可能推翻假设)
搜索预算的 $\ge 30\%$ 必须分配给反驳性查询。 通过 scripts/disconfirming_evidence_balance.py 强制执行。
针对假设“微软正在将 AI 支出整合至 Foundry”的示例:
- 支持性:"Microsoft Foundry adoption 2026", "Microsoft AI infrastructure consolidation"
- 反驳性:"Microsoft OpenAI deal renegotiation", "Microsoft AI vendor diversification", "Microsoft third-party model partnerships 2026"
这是使档案达到决策级而非确认偏差的关键。
对于每次搜索:
- 通过
citation_tracker.py记录并标注分类(支持/反驳)
- 使用
source_tier_classifier.py为每个结果 URL 分配来源等级
第五阶段:12 个月活动时间线
活动时间线默认窗口为 12 个月;基础身份信息可追溯更久。
类别:
- 新闻(收购、入职、离职、产品发布)
- 融资轮次 / 财务事件
- 争议 / 法律事件
- 公开声明 / 战略转移
按时间反序排列。每条记录需包含超链接并标注等级。
第六阶段:网络 + 声誉信号
网络
- 公司:投资者(进入/退出)、客户(具名)、合作伙伴
- 个人:共同创始人、顾问、导师、雇主、董事会职务
- 非营利组织:资助者、董事会、领导层
列出 5-10 条记录,按与假设的相关性排序。
声誉
- 新闻情绪(近 12 个月)
- 公司的 Glassdoor 评价(综合评分 + 3 条代表性评论)
- 个人的同行提及
- 注意:声誉数据存在噪音;请相应标注等级
第七阶段:红旗审查(风险筛查)
挖掘但不夸大:
- 诉讼(法院记录 $\rightarrow$ 优先...
- 监管行动(SEC、司法部、机构行动 $\rightarrow$ 一级)
- 异常离职(关键人员在 90 天内离职)
- 财务信号(10-K 报告中的持续经营疑虑注释 $\rightarrow$ 一级)
- 声誉受损(持续的负面报道 $\rightarrow$ 二级)
每个标志均分级。 级别将显示在 DOCX 文档中每个标志的旁边。
第 8 阶段:对话切入点(Conversation Hook)生成
生成 3-5 个与实际发现挂钩的具体切入点,而非泛泛而谈的谈话要点。
参考 references/conversation_hook_quality.md 获取标准。
| ❌ 泛泛而谈 | ✅ 基于发现 |
|---|---|
| “询问他们的路线图” | “提到他们最近收购了 [X] —— 这表明他们正在投资垂直领域 Y。建议话术:‘看到关于 [X] 的公告了 —— 这如何改变你们在 Y 方面的路线图?’” |
| “询问招聘情况” | “他们的工程副总裁 3 周前离职了(来自 LinkedIn)。建议话术:‘我注意到 [姓名] 离职了 —— 你们的工程领导层计划是什么?’” |
| “谈谈他们的价值观” | “他们上周更新了定价页面(来自官网)。建议话术:‘看到定价更新了 —— 是什么驱动了这次调整?’” |
每个切入点包含:
- 切入点(一句话)
- 关联的发现(附超链接 + 级别)
- 建议话术(用户可直接采用或修改的原文)
第 9 阶段:DOCX 生成(9 个章节)
通过 Node.js + docx 库实现。
1. 执行摘要 (Executive Summary) —— 一个段落:对方是谁 + 为什么重要 + 假设结论(支持 / 部分支持 / 证伪 / 不确定) + 3 个“你应该知道”的要点。
2. 身份事实表 (Identity Facts Table) —— 成立/出生日期、地点、规模/阶段、当前职位、关键关联机构。所有单元格均需标注来源;悬停文本显示级别。
3. 假设验证 (Hypothesis Test) —— 原样陈述用户的假设。支持证据(3-5 个要点,附超链接引用)。反驳证据(3-5 个要点,附超链接引用)。结论段落(2-3 句话解释权重)。
4. 12 个月活动时间线 (12-Month Activity Timeline) —— 新闻、融资、招聘、离职、产品发布、争议。逆序排列。每项条目均附超链接。
5. 网络信号 (Network Signals) —— 合作者 / 投资者 / 关联人。5-10 个条目,按与假设的相关性排序。
6. 声誉信号 (Reputation Signals) —— 来自新闻的情绪分析、公司的 Glassdoor 评价、个人的同行评价。注:声誉数据存在噪声。
7. 红旗标志 + 隐藏模式 (Red Flags + Hidden Patterns) —— 诉讼、监管行动、异常离职、财务信号、声誉受损。分级显示。
8. 对话切入点 (Conversation Hooks) —— 3-5 个与发现挂钩的具体切入点。每项包含:切入点 + 发现 + 建议话术。
9. 来源出处 + 审计日志 (Source Provenance + Audit Log) —— 按来源列出清单并分级。搜索汇总表(序号、查询词、分类、返回来源数、引用来源数)。三个总数 + 各级别计数。失败的搜索。BYOK-MCP 使用标志。
样式
正文 Arial 12pt,标题深蓝色 (#1a3a5c),表格表头浅蓝色 (#e8f0f8),红旗标志使用红色标注,对话切入点使用绿色标注。
超链接模式
new ExternalHyperlink({
link: "https://...",
children: [new TextRun({ text: title, style: "Hyperlink" })],
});第 10 阶段:交付
- 保存路径:
<output-dir>/dossier_<entity-slug>_<YYYY-MM-DD>.docx
- 聊天摘要:文件路径 + 假设结论 + 审计计数 + 级别分布 + 使用的 BYOK MCPs(如有)
- 验证:使用
python3 -c "import zipfile,sys; zipfile.ZipFile(sys.argv[1]).testzip()" <docx>检查 zip 完整性(无输出即为完整),然后确认所有必要章节均已存在。
工具链
| 脚本 | 角色 |
|---|---|
| scripts/citation_tracker.py | 三次计数审计 + 支持/反驳分类 + 来源分级标记,存储于 ~/.dossier_sessions/<session>.json |
| scripts/disconfirming_evidence_balance.py | 验证 ≥30% 的搜索预算分配给反驳性查询;若存在偏差则发出警告 |
| scripts/source_tier_classifier.py | 通过域名启发式算法将 URL 分类为:一级 / 二级 / 三级来源 |
参考资料
references/hypothesis_testing_discipline.md— ≥30% 规则 + 决策级 vs 百科级(7+ 来源)
references/subject_type_source_matrix.md— 个人/公司/非营利组织/政府来源矩阵(7+ 来源)
references/conversation_hook_quality.md— 基于发现的对话切入点规范(7+ 来源)
错误处理
| 故障场景 | 处理行为 |
|---|---|
| 主体名称模糊 | 拒绝继续。重新提出 Q1 并要求提供消除歧义的标识符。 |
| 用户拒绝提供假设 | 尝试一次引导。若仍拒绝,则回退至“我能发现的最令人惊讶的事是什么?”这一隐式假设。在审计中标记。 |
| 主体无公开足迹 | 明确指出。建议更换名称或标注为早期阶段。严禁捏造。 |
| LinkedIn 抓取被拦截 | 在审计中记录;回退至 WebSearch;建议用户手动验证。 |
| SEC EDGAR 失败 | 重试一次。若仍失败,记录“未获取公开申报文件”并继续。 |
| 情感数据稀疏 | 将声誉部分标记为“公开信号有限”;不要基于训练数据进行推断。 |
| 出现敏感话题(Q6 排除项) | 从 DOCX 中剔除。在聊天中(而非 DOCX 中)告知用户已执行排除。 |
| 连续 3 次工具调用失败 | 停止运行,提醒用户,分享目前已收集的信息。 |
| DOCX 生成失败 | 将原始数据保存为 JSON 作为备选方案。 |
应拒绝的反模式
- 在未强制执行 Q4 假设的情况下生成档案
- 分配给反驳性证据的搜索预算 <30%
- 批量提出引导问题
- 接受模糊的主体名称
- 通用的对话切入点(如“询问他们的路线图”)
- 夸大红旗(Red Flags)风险(应进行分级,而非主观评论)
- 在标记红旗时跳过来源可靠性分级
- 在 LinkedIn 或抓取被拦截时捏造覆盖范围
- 使用 BYOK-MCP 数据且未在审计日志中标记
- 包含用户在 Q6 中排除的敏感话题
- 确认偏差的结论(在未分析反驳证据的情况下直接判定为“支持”)
---
版本: 1.0.0
来源规范: megaprompts/12-dossier-megaprompt.md
构建模式: 路径 B(直接转换)。研究包同级,假设检验变体。