Doubt Review(对抗式决策复查)
SkillDatabases & dataLaunch an adversarial, independent re-review of a just-made non-trivial technical decision, strip the decision of its conclusion and hand it to a fresh-context reviewer to "find problems." Use before writing back decisions that affect the ER or shared components, before finalizing complex SQL/state-m
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Doubt Review(对抗式决策复查) skill
What this skill tells your AI
The instructions your AI receives, as published by tscarpe/claude-sdlc-skills in skills/sdlc-doubt/SKILL.md and read by ahel’s review.
定位:自信的答案不等于正确的答案。长会话中,假设会悄然变成"事实"。本 skill 是 in-flight 复查——决策落地前质疑它,不是事后的代码质量检查(如 trellis-check、/code-review)。
何时触发
非平凡决策定义(任一命中才触发)
- 新增/修改分支逻辑或状态机流转
- 跨模块/跨域边界,影响 ER 或公共组件
- 断言编译器无法验证的属性(事务边界、幂等、数据一致性、租户隔离)
- 不可逆或大爆炸半径(删数据、迁移、审核状态变更)
触发场景
- 大需求切片发现影响 ER/公共组件的偏差,回写上层设计文档前
- design.md 关键决策定稿前(技术设计评审前)
- 复杂 SQL 定稿前(join 3 表+ / 租户隔离条件 / 聚合口径)
- 代码提交前,对"全范围检查已通过"这一断言本身存疑时
- 用户明示触发
不触发(防滥用)
命名选择、单层内实现细节、spec 已直接覆盖的规则、机械性改动(重命名/格式化/移动文件)、用户明确要速度不要验证。
五步闭环
复制此 checklist 跟踪:
Doubt cycle:
- [ ] Step 1: CLAIM — 2-3 行命名决策 + 为何重要
- [ ] Step 2: EXTRACT — 提取 artifact + contract,剥离推理,不含 CLAIM
- [ ] Step 3: DOUBT — Agent 子代理 + 对抗 prompt
- [ ] Step 4: RECONCILE — 每条发现按四分类回 artifact 文本归类
- [ ] Step 5: STOP — 满足停止条件(平凡发现 / 3 轮 / 用户 override)
Step 1: CLAIM
CLAIM: "订单取消走快照回滚而非实时表反查,在并发操作场景下数据一致"
WHY: 不一致会导致取消后订单列表与操作记录不符
写不出 2-3 行的紧凑 CLAIM = 还没有决策,只有感觉——先想清楚再质疑。
Step 2: EXTRACT(最关键的一步)
给审查者只准备两样东西:
- ARTIFACT:被审制品——代码 diff、design 片段、SQL,不是整个文件
- CONTRACT:它必须满足什么——接口契约、数据约束、业务规则
剥离自己的推理过程,明确不传 CLAIM——传了结论,审查者会顺着附和。制品大到审查者一遍读不完(如 500 行 PR),先拆分再提取。
Step 3: DOUBT
用 Agent 工具生成子代理(隔离上下文 = 天然 fresh reviewer),prompt 用下方对抗模板。可用 Code Reviewer / general-purpose 类型,但对抗 prompt 必须原样传入以覆盖其默认输出形态。
Step 4: RECONCILE
审查输出是数据,不是判决——每条发现回到 artifact 文本归类后才算数。按下方四分类表处理。不要因为审查者"上下文更新鲜"就服从它。
Step 5: STOP
满足任一即停:下一轮只剩平凡/已考虑过的发现;3 轮上限(3 轮仍有实质问题 = 制品不行,升级用户,不要磨第 4 轮);用户明确说"就这样"。
对抗 Prompt 模板
模板与 sdlc-gate skill(
../sdlc-gate/SKILL.md,同集合安装时与本 skill 同级)Step 2 的对抗模板同源;输出形态按消费方有意分化——本 skill 会话内 RECONCILE 消费,行级证据即可;sdlc-gate 输出汇总进 issues 文件,需结构化四字段(标题/原文/位置/严重度)。单独安装本 skill 时该引用仅作来源说明,不依赖其存在。
Adversarial review. Find what is wrong with this artifact.
Assume the author is overconfident. Look for:
- Unstated assumptions
- Edge cases not handled
- Hidden coupling or shared state
- Ways the contract could be violated
- Existing conventions this might break
- Failure modes under unexpected input
- Concurrency or race conditions under parallel access
- Irreversible or hard-to-rollback changes
Do NOT validate. Do NOT summarize. Find issues, or state
explicitly that you cannot find any after thorough examination.
输出仅限问题清单,每条附 artifact 中的行级证据(引用原文)。
ARTIFACT: <粘贴 artifact>
CONTRACT: <粘贴 contract>
RECONCILE 四分类(按此 precedence 逐类过滤,首个命中即归类)
| 分类 | 判定特征 | 处置 |
|---|---|---|
| 1. 契约误读 | 审查者因不知道的上下文误报(数据来源是内部可信的、上游已校验、变更是注释里写明的有意设计) | 先补全 CONTRACT 再进下一轮 |
| 2. 有效可行动 | 真问题,artifact 确实违反 contract | 修改 artifact,重走 DOUBT |
| 3. 有效权衡 | 真取舍但修复成本大于接受成本 | 在 decisions.md 或 design.md 备注后放行,让用户看见 |
| 4. 噪音 | 同义反复/风格偏好/对不存在场景的防御 | 记下,跳过 |
消费侧详表(甄别他人评审的误报形态)可引用项目内的 AI 评审误报甄别表(如使用 Trellis 的项目在 .trellis/spec/guides/index.md「核对 AI 评审结论时」)——每条 CRITICAL/WARNING 都要回到代码里验证;该文件读不到时跳过,详表是增强材料,不阻塞五步闭环。
红旗(过程性,自查)
- 跳过 EXTRACT 直接把结论传给了审查者
- 审查者输出形态变成"验证/总结"而非"找错"(对抗失效,重发 prompt)
- 3 轮后还在磨同一条发现
- 应触发场景未触发且无用户豁免(静默跳过)
- 2 轮以上审查有实质发现、却零条被归为可行动(在演戏质疑,停止并升级)
Signals
- GitHub stars
- 36
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
sdlc-doubt- Source
- github.com/tscarpe/claude-sdlc-skills