质疑驱动开发
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指引,将 @kunlungrowth/kg-doubt-driven-development 安装到您的 AI 助手中。
技能介绍
它解决什么问题
长会话里最危险的不是明显的错误,而是被悄悄"坐实"的假设。上下文越积越多,早期一个未经验证的推断——比如"这个缓存层在读重负载下是线程安全的"——会在后续推理中被当成事实反复引用,直到上线后才以竞态、脏数据或不可逆的迁移事故形式暴露。
质疑驱动开发(Doubt-Driven Development)针对的正是这一类 nontrivial 决策:分支逻辑变更、跨模块或服务边界、编译器和类型系统无法验证的属性(线程安全、幂等、顺序、不变量)、正确性依赖读者看不到的上下文,以及不可逆的变更(生产部署、数据迁移、公开 API)。它的纪律是:在任何这类输出定稿前,召唤一个全新上下文、偏证伪而非批准的评审者交叉诘问,趁纠偏便宜的时候把问题挡在出错之前。
它如何工作
核心是一个有界的五步质疑循环:
- CLAIM:把决策显形为两三行的主张——写不出紧凑的主张,说明手里只有"感觉",还没有可审视的决策。
- EXTRACT:隔离出工件(
diff/函数,而非整文件)与契约(必须满足的约束),剥离自己的推理。只交结论只会换回对自己结论的认可。 - DOUBT:用对抗式提示召唤全新上下文评审者,且只传工件与契约,绝不传 CLAIM,让评审者独立判断工件是否满足契约。
- RECONCILE:你是编排者,发现是数据而非裁决。逐条对照工件文本归类:契约误读(先修契约)、有效且可改(改工件重循环)、有效取舍(显式记录让用户看见)、噪声(记下该补什么上下文)。
- STOP:下一轮只剩琐碎发现、或满 3 轮、或用户明说"发吧"即停止。3 轮仍有实质问题,说明工件本身可能未就绪,需呈报而非独自磨下去。
交互式会话中,单模型评审之后必须显式询问用户是否需要跨模型第二意见(Gemini CLI / Codex CLI / 人工外部评审 / 跳过),绝不静默跳过;调用外部 CLI 前要查 PATH、测可用性、确认调用语法,并仅传工件+契约+对抗提示。非交互上下文(CI/loop)则跳过跨模型,并明确声明。
适用边界
不适用:机械操作(重命名、格式化)、清晰无歧义的指令、读/总结既有代码、一行显然正确的改动、纯工具调用,以及用户明确表示速度优先于验证的场景。若每个键击都怀疑,什么都发不出。 评审者也可能因缺上下文而误标,别仅因它是"全新的"就顺从;跨模型评审也抓不住与原作者共享盲点的架构级缺陷。
使用场景
- 评审涉及分支逻辑或跨模块的 PR 前,召唤全新上下文评审者挑出失效锁缺失等竞态
- 宣称某缓存层在读重负载下线程安全等非显然事实时,用对抗式评审证伪后再定稿
- 做不可逆的数据迁移或公开 API 变更前,先显式写出主张与约束再进入质疑循环
- 在 CI 等非交互流水线中,对非平凡断言执行有界质疑并声明跨模型已跳过
适合人员
- 后端工程师:需要为跨服务改动与线程安全断言把关,避免把未经验证的假设带上线
- 架构师:在不完全理解的遗留代码上做不可逆决策,希望先证伪再定稿
- SRE:评估生产部署与数据迁移的风险,依赖对抗式评审暴露隐藏的不变量破坏
- 交互式 AI 编码工具使用者:希望在关键决策点主动获得跨模型或人工第二意见