用途
Meeting Synthesize 是面向跨会议倡议的考古技能。它消费一段时间内的多份会议回顾(可选包含原始笔记),浮现任何单次会议都无法揭示的模式:决策如何演变、利益相关者立场如何转移、哪些线程停滞、哪些矛盾已经出现。
它与 /discover-interview-synthesis 不同:后者针对用户研究对话,使用研究专用框架(jobs-to-be-done、购买洞察)。本技能针对内部组织会议,使用组织专用模式(利益相关者对齐、决策演变、项目历史)。
本技能属于 Meeting Skills Family,并遵循 Meeting Skills Family Contract。
适用场景
- 跨会议序列的董事会准备或高管简报准备
- 让新团队成员了解某个倡议的历史
- 项目回顾输入(我们如何走到这里的故事)
- 调查为何一个跨会议倡议停滞
- 对跨多次会议的主题进行季度复盘
- 浮现任何单次会议审查者都未捕获的矛盾
不适用场景:
- 单次会议摘要,应使用 foundation-meeting-recap。
- 对外沟通成果,应使用 foundation-stakeholder-update。
- 用户研究对话综合,应使用 discover-interview-synthesis。
使用方式
遵循家族契约,本技能不会因询问而阻塞。默认流程:
- 加载所有提供的源文件(优先回顾,接受原始笔记但标记较低输入质量)
- 应用任何过滤器(时间范围、主题、利益相关者)
- 对主题、利益相关者演变、矛盾运行推理
- 呈现简要推理摘要(过滤后的会议数量、检测到的时间范围、每个源的输入质量、应用的范围内过滤器)
- 接受 go 或纠正
- 生成综合结果
如果以 --go 调用,则跳过推理摘要。格式提示(board-prep、onboarding、retro-input、exec-brief)控制输出呈现,但不改变底层过程。
指令
当被要求创建会议综合时,请遵循以下步骤:
-
加载源:读取所有提供的回顾文件名或笔记文件。解析 frontmatter 提取会议元数据。记录每个源的输入质量(如可用则取回顾 frontmatter 的 input_quality,否则从内容评估)。
-
元数据来源跟踪(v1.1.0):对每份回顾,还要记录 meeting_type_source 字段(explicit | inferred | null)。当跨混合来源综合时,综合结果必须在 Scope 部分明确记录这种混合:“meeting_type values: N explicit, M inferred, K null。”这防止在按 meeting_type 过滤混合置信度来源时产生不可复现的结果。如果按 meeting_type 过滤,说明过滤器是否包含 inferred 值,以及如何处理 null 值。
-
应用过滤器:如果提供了时间范围、主题或利益相关者过滤器,在继续前缩小源集合。在 frontmatter scope_filter 中记录应用的过滤器。
-
呈现 go 模式推理摘要:过滤后的会议数量、从源元数据检测到的时间范围、每个源的输入质量等级、范围内过滤器描述。
-
构建纯文本时间线:按 meeting_date 的时间顺序。每条目显示日期、会议名称、关键决策或转变、以及适用的置信度或矛盾标记。呈现为 markdown(无二进制图像,必须到处都能渲染)。
-
提取主题:跨源聚类重复出现的主题。对每个主题,记录描述、出现的源、以及与频率相关的置信度标记(“出现在 5/5 次会议” → 高;“出现在 2/5 次会议” → 中;“在 1 次会议中提及” → 低)。
-
跟踪利益相关者立场:对跨源的每位具名利益相关者,记录初始立场 → 当前立场、对齐状态(aligned / divergent / shifting)、以及带日期的关键陈述。根据是直接引用还是转述,对每个立场标记置信度。
-
合并决策:跨会议,按时间顺序。表格格式:Date | Decision | Context | Meeting | Confidence。
-
分离决策演变与未解决矛盾(v1.1.0):两个不同输出,而非一个合并的“矛盾”部分:
- 决策演变(已解决):早先决策 → 同一主题上的后来决策,后者取代前者。这是历史背景,不是红旗。无 ⚠ 强调。
- 未解决矛盾:当前处于冲突中、需要协调的决策或立场。使用 ⚠ 视觉强调。对每个:
- 早先引用(会议 + 日期 + 决策)
- 后来引用(会议 + 日期 + 冲突的决策)
- 状态:unresolved / needs reconciliation
这种区分很重要,因为 v1.0.0 将它们混为一谈,在高管语境中产生假阳性“矛盾”,而实际上“矛盾”是有意的范围演变。
-
识别未决项与停滞线程:出现 2 次以上但未解决的主题。它们最后一次出现的时间。
-
起草叙述性摘要:2-3 段:发生了什么、什么改变了、我们现在在哪里、风险是什么。这是会议集合的“故事”。
-
优先排序跟进建议:
- 高:立即解除阻塞;建议负责人或论坛
- 中:重要但不阻塞
- 低:监控
每项附带理由。
-
应用格式提示(如果提供):一个过程生成完整综合数据。提示控制特定用例的部分排序和截断:
- board-prep:以叙述 + 矛盾 + 优先跟进开头;较短时间线
- onboarding:以叙述 + 利益相关者跟踪开头;完整时间线
- retro-input:以主题 + 停滞线程 + 会议质量聚合开头
- exec-brief:仅 TL;DR + 前 3 项
-
渲染 TEMPLATE.md 并验证:
- source_meetings 列表非空
- time_range.start ≤ time_range.end
- 每个主题都有置信度标记
- 每个矛盾都有前/后来源引用
- 至少有 1 个优先跟进
项目记忆契约
仅当 .claude/pm-skills.local.md 存在时激活。无文件时,完全忽略此部分,并严格按上述行为。
- 读取:同一主题的 active_initiative 和先前解释产物,使综合显示移动,而非复述已记录的内容。
- 写入:将综合作为解释产物。
- 姿态:提出条目并等待确认后再写入,除非设置了 memory_auto_append: true,此时追加并回显写入的内容。
- 写入纪律:写入前立即重新读取文件,绝不要从产生提议的副本读取。如果在此之间发生变化,将你的条目合并到当前状态并重新提议,而非覆盖;只添加你自己的条目,并保持其他每个字段和部分逐字节相同。运行时不强制此规则,且文件被 gitignored,因此粗心的全文件写入会丢失另一个会话的工作且无法恢复。
这与家族的基于文件名的链式调用互补而非替代:文件名仍定位一次会议的兄弟产物,而项目记忆跨会议携带持久产品上下文。
质量清单
- 源会议列出文件名 + 日期 + 每个源的输入质量
- 时间范围已填充且合理
- 范围过滤器已描述(或“none applied”)
- 时间线为纯文本 markdown(无二进制图像)
- 主题包含与频率相关的置信度标记
- 利益相关者立场跟踪显示演变(初始 → 当前),而非仅快照
- 合并决策列表按时间顺序并带来源引用
- 矛盾在各自的一级部分中标记(不被埋没)
- 叙述性摘要为 2-3 段,而非项目符号
- 跟进项已优先排序(High / Medium / Low)并带理由
- Frontmatter 省略单次会议字段(meeting_title、meeting_date 等)
- 来源与参考跨源加权输入质量
另见
- Meeting Skills Family Contract
- foundation-meeting-recap。上游:主要输入源
- /discover-interview-synthesis。用户研究对话的兄弟模式(不同领域)