SuperAPI AI 工具集

disciplined-research

智能体与模型

查看项目

更新于 10-16 05:59

技能介绍

用途

disciplined-research 是“有纪律的开发”(disciplined development)方法论的第一阶段技能,目标是在任何设计或实现开始之前,做到对问题的深入理解。它不产出代码方案,而是产出一份研究文档,让决策者能够基于事实做出知情选择。

核心原则

该技能强调五项原则:先理解再设计;主动暴露未知;映射现有依赖;记录一切以支撑决策;聚焦关键少数,剔除其余。

本质主义检验(EXPLORE 阶段)

在投入研究之前,先回答三个本质问题:

  1. 这个问题是否让我们有动力去解决?
  2. 解决它是否能发挥我们的独特能力?
  3. 它是否满足一个重要且已被验证的需求?

规则:如果少于两个问题回答“是”,则停止,先质疑这项工作是否真正必要,再决定是否投入研究时间。

第一阶段目标

产出研究文档,使后续决策有据可依。在研究文档获得批准之前,不进行设计和实现。

研究流程

  1. 问题理解:要解决什么问题、谁遇到这个问题、不解决的后果、成功的样子。
  2. 现有系统分析:当前有什么、现有代码如何处理、扩展点在哪里、存在哪些约束。
  3. 约束识别:技术约束(语言、平台、依赖)、业务约束(时间线、资源、合规)、集成约束(API、协议、格式)、性能约束(延迟、吞吐、内存)。
  4. 风险评估:可能出什么错、还有哪些未知、正在做哪些假设、存在哪些外部依赖。

研究文档模板

文档包含以下章节:

  • 元信息:状态(草稿/评审/批准)、作者、日期、评审人
  • 执行摘要:2-3 句概括问题与关键发现
  • 本质问题检验:表格形式列出三个问题及其答案和证据,并给出“是否继续”的判断
  • 问题陈述:描述、影响、成功标准
  • 现状分析:现有实现、代码位置表、数据流、集成点
  • 约束:技术约束、业务约束、非功能性需求表
  • 关键少数(本质主义):最多 3 个关键约束及理由和证据;明确列出被排除在范围之外的事项及原因(应用 5/25 规则)
  • 依赖:内部依赖表、外部依赖表(含版本、风险、替代方案)
  • 风险与未知:已知风险表、开放问题、假设
  • 研究发现:关键洞察、相关先例、需要做的技术验证(spike)
  • 建议:是否继续、范围建议、风险缓解建议
  • 后续步骤:若批准,列出下一步
  • 附录:参考资料、代码片段

研究技巧

技能给出了若干研究技巧示例:

代码考古:

  • 查找相关文件:rg "feature_name" --type rust
  • 查看最近变更:git log --oneline -20 -- path/to/module
  • 找到熟悉代码的人:git shortlog -sn -- path/to/module
  • 追踪函数调用:rg "function_name\(" --type rust

依赖分析:

  • 展示依赖树:cargo tree
  • 查找某 crate 为何被引入:cargo tree -i crate_name
  • 检查安全问题:cargo audit

接口发现:记录已发现的公共接口,并标注扩展点。

交付物

第一阶段产出:研究文档、代码位置图、风险登记表(按优先级排序)、开放问题清单(用于向干系人澄清)。

门禁标准

进入第二阶段(设计)之前需满足:

标准门禁:

  • 研究文档完成
  • 所有章节已填写(或明确标记为不适用)
  • 风险已识别并分类
  • 已获得人类批准
  • 开放问题已解决或明确延期

本质主义门禁:

  • 本质问题检验完成(至少 2/3 为“是”)
  • 关键少数章节完成(最多 3 个关键约束)
  • 已记录被排除事项(明确不做的事)
  • 通过 90% 规则:这项工作是不是“绝对肯定”?

质量评估

完成研究后,在进入第二阶段之前,需请求使用 disciplined-quality-evaluation 技能进行评估。

限制

  • 不做设计:本阶段纯粹是理解
  • 不做实现:除探索外不修改代码
  • 不做假设:记录而非臆断
  • 时间盒限定:不要无限期研究(中等规模功能通常 1-2 天)

成功指标

决策者能够做出知情选择;第二阶段和第三阶段不会出现重大意外;在承诺之前识别风险;范围现实且被理解。