doubt-driven-development

在最终确定每个重要决策之前,使用全新上下文进行对抗性审查。适用于正确性比速度更重要、在陌生代码中工作、风险较高(生产环境、安全敏感逻辑、不可逆操作)或任何自信的输出现在验证比以后调试更划算的情况。

提供方:addyosmani/agent-skills调用次数:3.9k收藏:139更新:2026/08/28

技能说明addyosmani/agent-skills

在最终确定每个重要决策之前,使用全新上下文进行对抗性审查。适用于正确性比速度更重要、在陌生代码中工作、风险较高(生产环境、安全敏感逻辑、不可逆操作)或任何自信的输出现在验证比以后调试更划算的情况。

技能简介

Doubt-Driven Development(怀疑驱动开发)让每个重要决策在落定之前接受一次「全新上下文对抗性审查」。它解决的核心问题是:长时间会话会让假设悄悄变成「事实」,而自信的结论往往并不正确。该技能引入一个偏向「证伪」而非「认可」的独立审查视角,在纠错成本还很低时对关键决策进行交叉质询。

使用场景

  • 在不确定性下做架构决策
  • 提交非平凡代码(含分支逻辑、跨模块边界、编译器无法验证的断言)
  • 声称非显而易见的结论(如「这是安全的」「这能扩展」「这符合规范」)
  • 在不熟悉的代码库中工作
  • 高风险操作前(生产部署、数据迁移、公共 API 变更等不可逆操作)

使用方法

在 Claude Code 中启用该技能。需要质疑关键决策时,复制检查清单并依次执行五个步骤:

Doubt cycle:
- [ ] Step 1: CLAIM — 用两三行写出决策主张及其重要性
- [ ] Step 2: EXTRACT — 隔离最小审查单元(工件 + 契约),剥离推理过程
- [ ] Step 3: DOUBT — 用对抗性提示词调用全新上下文的审查者
- [ ] Step 4: RECONCILE — 将审查发现对照工件文本逐一分类
- [ ] Step 5: STOP — 满足停止条件即结束

要点:调用审查者时只传 ARTIFACT 和 CONTRACT,绝不传 CLAIM,否则审查会被你的结论带偏;对抗性提示词必须逐字粘贴,以压过审查者角色默认的「优缺点平衡」输出格式,只产出问题清单。

注意事项

  • 不要将此技能加入 persona 的 skills: frontmatter,避免 persona 嵌套调用(编排反模式)。
  • 若在 subagent 上下文无法嵌套启动新审查者,应提示用户交由主会话处理;降级自问模式不是真正的新鲜上下文审查,结果需标注「降级」。
  • 停止条件:仅剩琐碎发现、已满 3 轮对抗审查、或用户手动叫停。