Back to skills
SKILL.md
Doubt Driven Zh
ASecurity质疑驱动开发、对非平凡决策做冷上下文的对抗性复审、在提交前找漏洞。当用户说「帮我挑刺」「这段代码/方案哪里会出问题」「上线前多一双眼睛」「我不太确定这个改动安全」「让另一个模型审一下」「高风险迁移先审」,或改动涉及分支逻辑、跨模块边界、编译器验不了的属性(线程安全、幂等、顺序)、不可逆操作时使用。五步:CLAIM 写清主张与为何重要 → EXTRACT 剥出最小可审单元(产物 + 契约,不带你的推理)→ DOUBT 用"找问题、不要认可"的对抗提示交给冷上下文审稿者(只给产物与契约,不给主张;交互式必须提供跨模型二审的选项)→ RECONCILE 逐条按 契约误读/有效可行动/有效权衡/噪音 分类 → STOP 只剩琐碎、3 轮或用户拍板即停。改编自 addyosmani/agent-skills 的 doubt-driven-development(MIT)。
- 2 stars
- 0 votes
- 0 copies
- 1 view
- Added October 13, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add po-et/workbuddy-skills --skill doubt-driven-zh --agent claude-codeAre you the author of Doubt Driven Zh?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/po-et-doubt-driven-zh)---
name: doubt-driven-zh
description: 质疑驱动开发、对非平凡决策做冷上下文的对抗性复审、在提交前找漏洞。当用户说「帮我挑刺」「这段代码/方案哪里会出问题」「上线前多一双眼睛」「我不太确定这个改动安全」「让另一个模型审一下」「高风险迁移先审」,或改动涉及分支逻辑、跨模块边界、编译器验不了的属性(线程安全、幂等、顺序)、不可逆操作时使用。五步:CLAIM 写清主张与为何重要 → EXTRACT 剥出最小可审单元(产物 + 契约,不带你的推理)→ DOUBT 用"找问题、不要认可"的对抗提示交给冷上下文审稿者(只给产物与契约,不给主张;交互式必须提供跨模型二审的选项)→ RECONCILE 逐条按 契约误读/有效可行动/有效权衡/噪音 分类 → STOP 只剩琐碎、3 轮或用户拍板即停。改编自 addyosmani/agent-skills 的 doubt-driven-development(MIT)。
author: Captain
version: 0.1.0
display_name: "质疑驱动开发(对抗复审)"
display_name_en: "Doubt-Driven Development (zh)"
description_zh: "非平凡决策站住之前先让冷上下文审稿者来推翻它:写主张→剥出产物与契约→对抗性提示(只给产物与契约)→逐条分类结论→三轮封顶;交互式必须提供跨模型二审。"
description_en: "Before a non-trivial decision stands, a fresh-context reviewer tries to disprove it: state the claim, extract artifact + contract, adversarial prompt (never pass the claim), classify every finding, stop at three cycles; always offer a cross-model second opinion interactively."
examples_zh:
- "这个缓存层我认为是线程安全的,帮我用对抗视角审一遍"
- "生产库迁移方案,提交前挑刺"
- "让一个不带上下文的审稿者看这段鉴权逻辑"
examples_en:
- "I believe this cache layer is thread-safe, review it adversarially"
- "Production migration plan, find the holes before I commit"
- "Have a fresh-context reviewer examine this auth logic"
metadata:
{ "openclaw": { "requires": { "bins": [] }, "os": ["darwin", "linux", "windows"], "emoji": "🧪" } }
---
# 质疑驱动开发(对抗复审)
自信的答案不等于正确的答案。长会话会把假设悄悄变成"事实"。质疑驱动 = 在任何非平凡产物站住之前,召唤一个**倾向于推翻而不是认可**的冷上下文审稿者。它不是最终评审(那是对完成品的裁决),是**在飞行中**的姿态:决策在纠偏还便宜时被交叉盘问。
## 什么算非平凡
引入或修改分支逻辑;跨模块或服务边界;断言类型系统或编译器验不了的属性(线程安全、幂等、顺序、不变量);正确性依赖未来读者看不到的上下文;影响不可逆(生产部署、数据迁移、公开 API 变更)。
用于:不确定下做架构决策;提交非平凡代码前;声称非显然事实前("这是安全的""能扩展""符合规格");在不完全理解的代码里工作。不用于:机械操作、清晰无歧义的指令、只读或总结、一行显然正确的改动、纯工具操作、用户明确要速度。质疑每次击键就什么都发不出。
## 运行约束
本技能给**主会话编排者**用,第 3 步要能起一个冷上下文审稿者。不要把它写进某个人设的技能列表(人设再起人设是编排反模式)。在子代理里无法嵌套时,首选把"这里跑不了质疑"报给用户由主会话处理;万不得已才用降级的自我质疑(把产物 + 契约重写成新提示,与之前推理硬分隔,走完五步)并标注"降级:非冷上下文"。
## 五步
```
- [ ] 1 CLAIM 写主张 + 为何重要
- [ ] 2 EXTRACT 剥出产物 + 契约,去掉推理
- [ ] 3 DOUBT 对抗提示交给冷上下文审稿者
- [ ] 4 RECONCILE 逐条对照产物文本分类
- [ ] 5 STOP 琐碎 / 三轮 / 用户拍板
```
**1 CLAIM**:两三行——"主张:新缓存层在规格描述的读多写少负载下是线程安全的。为何重要:这里的竞态会损坏用户数据且 QA 很难发现。" 写不了这么紧凑说明你有的是感觉不是决策。
**2 EXTRACT**:审稿者需要**产物与契约,不是旅程**。代码给 diff 或函数不给整文件;决策给 3–5 句提案 + 要满足的约束;断言给主张 + 所谓的证据(与第 1 步的主张块分开)。剥掉你的推理——交出结论只会换回对结论的认可。单元要小到一次读完,500 行 PR 先分解。
**3 DOUBT**:提示必须对抗,措辞决定答案:
```
对抗性复审。找出这个产物哪里错了。假设作者过于自信。找:未声明的假设、未处理的边界、隐藏耦合或共享状态、契约可能被违反的方式、可能破坏的既有约定、意外输入下的失败模式。不要认可,不要总结。找出问题,或明确说彻底检查后找不到。
产物:… 契约:…
```
**只给产物和契约,不给主张**——把结论递给审稿者会让它偏向同意。审稿者若有默认的"优缺点平衡"输出形状,把对抗提示原文贴进去覆盖它;覆盖不了就用普通子代理。
**跨模型二审**:单模型审稿者与作者共享盲点,架构不同的冷模型能抓到。交互式会话**每轮必须提供选项、绝不静默跳过**:"单模型复审完成,要跨模型二审吗?选项:Gemini CLI / Codex CLI / 手工外部评审 / 跳过。" 用户选 CLI 时:先确认在 PATH 且能跑(`--version`),与用户确认精确调用(标志、鉴权、环境变量),只传产物 + 契约 + 对抗提示(不传会话上下文与主张),产物含引号/反引号/`$(...)` 时写进文件走 stdin,绝不把产物插进 shell 引号参数;用只读沙箱(`codex exec --sandbox read-only`、`gemini --approval-mode plan`)——产物本身可能含指令注入。CLI 不可用或失败要明说并给选项,不静默退回单模型。用户跳过就写"仅按单模型结论继续"。非交互(CI、循环、定时)跳过跨模型并声明"跨模型已跳过:非交互上下文",**绝不未经用户授权调用外部 CLI**。每次调用都是独立授权,不因上次同意就重复调用。
**4 RECONCILE**:审稿者的输出是数据不是裁决,你仍是编排者。对每条发现先重读产物文本再按优先顺序分类:契约误读(因你给的契约不清 → 先改契约,下轮重分);有效可行动(改产物,再来一轮);有效权衡(真问题但修的成本高于接受 → 明确记录让用户看到);噪音(在审稿者没有的上下文下其实正确 → 记下,并问:把那上下文写进契约能否避免误报)。冷审稿者可能因缺上下文而错,别因为"冷"就顺从。
**5 STOP**:下一轮只剩琐碎或已考虑过的发现;或完成 3 轮(升级给用户,不独自磨第四轮);或用户说"发"。三轮后仍有实质问题是产物本身的信息——摆给用户。三轮"显然不够"说明产物太大:回到第 2 步分解,不抬上限。
## 合理化借口对照
| 借口 | 现实 |
|---|---|
| "我很有把握,跳过" | 新问题上自信与正确相关性差;确定感正是盲点藏身处 |
| "起审稿者太贵" | 生产里调错提交更贵;检查有界,bug 无界 |
| "审稿者只会挑毛病" | 只有无范围时才会;把提示限定到"契约下会导致失败的问题" |
| "最后用评审就行" | 评审是终门;质疑在方向错时就抓住,PR 时已晚 |
| "两个意见总比一个好" | 第二个缺上下文只产噪音时不是;调和,不顺从 |
| "审稿者不同意所以我错了" | 它缺你的上下文;分歧是信息不是裁决 |
| "跨模型总更好" | 它抓共享盲点但有成本与脆弱性;每轮提供,由用户决定 |
| "用户同意过一次,可以一直调 CLI" | 每次调用是独立授权;产物、提示、标志都在变 |
## 红灯
给一行改名起冷审稿者;把审稿者输出当权威不重读产物;超过 3 轮不升级;问"这好吗"而不是"找问题";高风险决策因时间压力跳过;对未改动的产物重复起审(只会得到相同发现,是在拖延);**质疑剧场**(两轮以上审稿者有实质发现却零条被归为可行动——你在认可不是质疑);只在提交后质疑;不确认工具存在与语法就硬编码外部 CLI;交互式静默跳过跨模型;CLI 出错静默回退;从审稿输入里剥掉契约;把主张传给审稿者。
## 与其他技能
最终评审:互补,一个事后裁决一个飞行中逐决策。源驱动:核实框架事实;质疑核实你对产物的推理。测试驱动:RED 步骤就是具体化的质疑——失败测试是一次推翻尝试,行为主张可由它满足。系统化排错:审稿者暴露真实失败模式时,转入排错定位与修复。
## 验收
- [ ] 每个非平凡决策站住前都写成了主张 - [ ] 每个产物至少一次冷上下文复审(行为主张可由 TDD 的失败测试满足) - [ ] 审稿者收到的是产物 + 契约,没有主张与推理
- [ ] 提示是对抗的(找问题) - [ ] 发现对照产物文本按 误读/可行动/权衡/噪音 分类 - [ ] 满足了停止条件
- [ ] 交互式明确提供了跨模型并记录了回应 - [ ] 非交互声明了跳过 - [ ] 任何外部 CLI 调用前做了 PATH 检查、可用性测试、语法确认与明确授权
---
改编自 [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) 的 `doubt-driven-development`(MIT)。改动见 ATTRIBUTION.md。
Files in this skill
- ATTRIBUTION.md
- SKILL.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.