实战指南:从研究循环到决策级 research.md 的收口流程)
BMAD Deep Recon 报告综合Synthesis实战指南从研究循环到决策级 research.md 的收口流程【免费下载链接】BMAD-METHODBreakthrough Method for Agile Ai Driven Development项目地址: https://gitcode.com/gh_mirrors/bm/BMAD-METHODBMAD Deep Recon 是 BMAD-METHOD 中负责为决策做研究的技能模块无论材料来自本仓库内的原生 Run并行网络研究循环还是来自外部工具的 Process 导入报告最终都必须沉淀为一份research.md——下游技能直接消费、无需再处理原材料的决策级产物。本文聚焦该流程的收口环节Synthesis综合完整讲解research.md的八段式组装顺序、执行摘要与来源附录的写作纪律、时效性地图与已验证计数等机械化步骤的脚本化实现并结合 recon_kit.py 源码说明staleness、tally、citations等子命令的底层原理与真实调用方式。读完本文你将掌握如何把分散的维度章节、digest 文件与 memlog 记录组装成一份决策优先、可引用、可刷新、下游可直接消费的合成报告。一、Synthesis 在 Deep Recon 流程中的定位Deep Recon 提供三种可自由组合的服务Draft为用户的工具起草深度研究提示词、Process把一份成品报告提炼成简洁引用摘要、Run在本仓库内通过并行网络 fan-out 完成研究详见 SKILL.md 与各意图的参考文档。无论走哪条路径所有模式共享同一个 run 文件夹工作区形状brief.md、imports/、digests/、research.md、.memlog.md。Synthesis 是研究内容正式落盘为最终产物的阶段对于Run模式综合发生在所有维度的获取循环acquisition loop结束之后。每个维度在循环中已按 run.md 的约定逐轮获取、逐轮把 digest 写入{doc_workspace}/digests/每轮每助手一个文件形如dimension-rround-n.md并在落盘时按 verification.md 完成逐维度验证。Synthesis 接手时各维度章节已经存在要做的是调和与收口。对于Process模式综合是提炼步骤子代理从导入文件中抽取所有与决策相关的 claim 到 digest 文件对照类型 pack 检查覆盖面后按同一份 synthesis 规则蒸馏出简洁、带引用的决策优先摘要见 process.md。文档开篇定下的总原则是报告回答的是决策——无论材料来自原生 Run 还是已处理的导入简洁是契约Succinct is the contract交付的是发现与裁决不是论文理由留在 memlog 里读者在几分钟内获得与决策相关的真相。对 Process 模式而言这尤为关键——摘要就是下游消费者唯一阅读的东西因此没有人需要再处理原始报告没有实质内容支撑的章节应塌缩成一行而不是靠文字填充。二、八段式组装顺序research.md 的骨架research.md按照{workflow.audience}受众配置见 customize.toml 中的audience字段默认为技术/商业平衡的文体塑形并按以下顺序组装顺序章节核心要点1执行摘要Executive summary决策优先证据建议怎么做、支撑该答案的两三个关键发现、最大的警示最多一页、可独立阅读最后写、放最前2维度章节Dimension sections循环中已写好现在调和统一术语、消除重复内容、将验证状态与纠错应用到正文3跨维度洞见Cross-dimension insights只有组合才显现的结论如市场在增长但监管维度限制了可达细分市场技术最优解输在生态健康度无洞见就如实说明不强行制造4反证证据Contrary evidence红队red-team通过运行并发现材料时最强的存续反论点带引用5建议Recommendations每条都绑定到决策且若项目有绑定到消费它的下游产物按 pack 的Feeds条目brief 章节、PRD 输入、架构约束每条建议注明其置信依据基于低置信或有争议 claims 的建议须在同句中说明6开放问题Open questions研究未能回答的问题以及回答它需要做什么7来源附录Source appendix编号来源表[n] \| claim/finding it supports \| publisher \| pub date \| accessed \| confidencepublisher 单元格为指向来源 URL 的 markdown 链接正文中每个行内[n]都必须在此解析8时效性地图Staleness map老化最快的 claims计算而非手工推导从 ledger 构建 claims 列表claim、class、pub_date把 pack 的新鲜度条freshness bars映射为每类月份数运行uv run scripts/recon_kit.py staleness claims.json --windows map——渲染其复查日期并指出最早的复查日期。这是 Refresh 的工作指令下面逐一展开每一段的写法与机械支撑。三、执行摘要与维度章节决策优先的写作纪律执行摘要最后写、放最前执行摘要是整份报告的门面也是决策者唯一可能只读的部分。它的约束是决策优先第一件事告诉读者证据指向什么行动而不是复述研究过程两三个驱动发现只保留真正推动结论的发现砍掉装饰性内容最大的警示caveat最可能让结论翻车的限制条件必须出现一页以内、可独立阅读不依赖正文就能成立写作顺序反直觉在所有维度收口、跨维度洞见与反证都明确之后再写然后放在文件最前。这与 research.template.md 的种子结构一致模板 frontmatter 中status: draft正文以Decision this research serves:开头并注明Sections are appended per the approved research plan; the executive summary is written last and placed here, first.——即维度章节按计划追加执行摘要最后写、放最前。维度章节调和而非重写维度章节在 Run 循环中已经逐轮写就见 run.md 的Synthesize the dimension步骤按 pack 骨架从 digest 文件编织成散文每个承重 claim 行内引用[n]置信度低于 high 处明确标注矛盾处双方都带引用。Synthesis 阶段对它们的处理是调和统一术语各维度循环中可能使用不同措辞收口时对齐消除重复地基多个维度覆盖同一事实时只保留一处应用验证状态与纠错verification 阶段产生的状态变更verified / disputed / unverified / overturned与纠错必须落实到正文而不是只存在于 memlog。四、跨维度洞见、反证证据与建议让组合产生价值跨维度洞见这是研究框架harness值回票价的章节单独看每个维度都成立但只有组合才显现的结论。文档给出的两个例子非常典型市场在增长但监管维度限制了可达细分市场技术上最优的选项在生态健康度维度上落败。写作要求是诚实如果没有跨维度洞见就明说没有绝不为了凑结构而制造洞见。洞见必须能从已写就的维度章节中推导出来而不是引入新证据。反证证据反证证据章节只在满足两个条件时出现红队通过运行了且发现了材料。红队机制定义在 verification.md默认关闭{workflow.red_team}offoffer在计划门提出on总是运行high验证级别会为重大结论包含红队、max全广度运行。当红队运行时一个全新上下文的怀疑者子代理——只拿到结论和搜索预算不给支持性证据、不给 run 上下文——专门寻找否定性证据熊市观点、失败尝试、相反数据、最强的结论是错的的善意论证。回到综合阶段红队产出的处理原则是权衡而非追加存续的结论在综合中承认其最强反论点未存续的结论在报告陈述前修正真正的搜索结果却零发现这本身是可报告的——说明搜索了什么、没找到什么。建议绑定到决策与下游产物建议的硬性要求是每条建议绑定到决策当项目有下游产物时还要按类型 pack 的Feeds条目绑定到消费该建议的具体产物。以 types/market.md 为例市场研究的 Feeds 为brief机会、问题、用户、PRD人物画像、差异化、定价与 GTM 决策。因此建议写作形如建议进入该细分市场决策——该结论支撑 brief 的机会章节与 PRD 的差异化章节下游绑定依据为市场规模 claim [3]high 置信与痛点评分 [5]medium 置信单一来源。置信度纪律每条建议注明其置信依据建立在低置信或有争议 claims 上的建议必须在同一句话里说明这一点不能让读者误以为建议与证据同权。五、开放问题与来源附录诚实边界与可追溯性开放问题研究没能回答的问题要如实列出并写明回答它需要做什么。这直接呼应 Run 模式的停止规则见 run.md达到轮次上限仍有未答问题就作为开放问题报告绝不静默丢弃stop-and-write valve停止即写作阀门也要求研究明显拖过计划门估计时停止派生新任务用磁盘上已有的 digests 综合剩余部分作为开放问题附上一条出路之后 Deepen或为用户自己的工具起草提示词。开放问题章节还承担了 Refresh 的入口职责——见下文时效性地图。来源附录机械校验来源附录是行内[n]引用的唯一解析地。表格列格式固定为六列[n] | claim/finding it supports | publisher | pub date | accessed | confidencepublisher 单元格是指向来源 URL 的 markdown 链接每个行内[n]都必须在此解析反之每个附录行都应有正文引用。这层机械一半由recon_kit.py citations子命令保证见 recon_kit.py。其实现细节用strip_fences先抹掉围栏代码块避免代码内容被误判为引用标记或附录行用appendix_rows识别附录行markdown 表格行、首格为裸[n]或n扫描正文中MARKER_RE re.compile(r\(\d)\)命中的行内标记[3]但排除3链接形式跳过附录行自身输出dangling_markers有标记无附录行与orphaned_rows有附录行从未被引用两者皆空时ok: true退出码 0否则退出码 1。finalize.md中的引用检查是先机械、后语义两步先跑citations精确修复悬空标记与孤立行再用全新上下文子代理只做判断一半——每个被引来源是否真的支持正文论断不重写发现不支持的 claim 降级置信度并把不匹配记为 memlogevent见 finalize.md。六、时效性地图Refresh 的工作订单为什么要计算而非手工推导时效性是 Deep Recon 认知论的一部分新鲜度是真相的一部分见 SKILL.md每个类型 pack 按 claim 类别设置新鲜度窗口三年前的市场规模数字是历史而非事实。时效性地图的作用是把哪些 claim 最先过期、何时需要复查以结构化方式交付给 Refresh 生命周期流程。命令与数据流综合阶段按以下三步执行构建 claims 列表从 memlog ledger 中取出每条 claim 记录的claim、class、pub_date字段写成 claims JSON映射新鲜度条把 pack 定义的新鲜度条转成每类月份数JSON。以 types/market.md 为例size/growth ≤ 18 个月、pricing feature claims ≤ 3 个月、behavior data ≤ 2 年、GTM benchmarks ≤ 12 个月运行 staleness 子命令uv run scripts/recon_kit.py staleness claims.json --windows {size/growth: 18, pricing: 3, behavior: 24, gtm: 12}从源码看recon_kit.py该命令的算法为parse_date兼容YYYY-MM-DD、YYYY-MM、YYYY三种粒度add_months用日历感知的月份加法含月末钳制如 1 月 31 日加 1 个月得到 2 月 28/29 日计算复查日期每条 claim 的recheck pub_date class 窗口月份数stale recheck today汇总stale_count与earliest_recheck最早复查日期未配置窗口的 class 列入no_window_classes供人工补齐有 stale claim 时退出码为 1。输出渲染进research.md的时效性地图小节逐条列出复查日期并以最早的复查日期收尾。这份地图就是Refresh 的工作订单见 lifecycle.mdRefresh 机械地构建同样的 claims 集合、运行同样的 staleness 命令把 stale 标记作为候选集只重新验证这些 claim交付增量报告confirmed / changed / overturned 新来源并更新 frontmatter 的updated。跨出范围的 claims 保持原状态。七、收尾三件事frontmatter、memlog 与交接八段组装完成后Synthesis 文档规定收尾工作为更新 frontmatterstatus: complete、updated当前日期以及 verified/unverified 计数——计数来自uv run scripts/recon_kit.py tally {doc_workspace}/.memlog.md严禁手工计数。tally子命令的实现recon_kit.py按行解析 memlog 条目- (type) ...前缀识别条目类型对claim条目提取status与ref[n]同一 ref 最后一次状态胜出last status wins这正是验证状态变更以追加新 claim 行实现的原因。输出by_type与按状态归类的claims计数verified/unverified/overturned等。注意Process 与 Run 的 digests 中claim 的机器可读形状为ref[n] statusverified|unverified|disputed|overturned classclass pubYYYY-MM — claim后续状态变更是带相同ref的新 claim 行。在 memlog 中记录最终event通过uv run {project-root}/_bmad/scripts/memlog.py --type event追加一行让过程记忆完整可审计。进入 finalize.md按{workflow.output_format}auto/html/md/both决定是否渲染 HTML 简报html-briefing.md 规定简报为报告的全保真呈现而非第二事实源其来源表必须用recon_kit.py escape-sources生成以转义不可信 URL执行{workflow.doc_standards}润色默认skill:bmad-review lensesstructure,prose执行外部交接如 NotebookLM、Confluence最后告知用户报告、简报、imports、memlog 的位置与时效性地图指示的复查时机。八、一句话总结Synthesis 是 Deep Recon 从研究到决策产物的收口执行摘要最后写放最前、维度章节调和不重写、跨维度洞见与反证如实呈现、建议逐条绑定决策与下游 Feeds、开放问题诚实列出、来源附录经citations机械校验、时效性地图经staleness计算得出并作为 Refresh 工作订单最后用tally计数、更新 frontmatter、记 memlog event把接力棒交给 finalize——整条链路的核心信条始终是简洁是契约报告回答决策下游无需再处理原始材料。进一步阅读SKILL.md三服务总览与认知论run.md原生研究循环与维度综合process.md报告导入与蒸馏verification.md信任层与红队finalize.md引用检查与交接lifecycle.mdRefresh / Deepenrecon_kit.py机械辅助脚本customize.tomlworkflow 配置面。【免费下载链接】BMAD-METHODBreakthrough Method for Agile Ai Driven Development项目地址: https://gitcode.com/gh_mirrors/bm/BMAD-METHOD创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考