Skip to content
Back to skills

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
ai-agentsshellgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 13, 2026

npx -y skills add po-et/workbuddy-skills --skill doubt-driven-zh --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Doubt Driven Zh?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Doubt Driven Zh
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/po-et-doubt-driven-zh/badge)](https://www.skillsdirectory.com/skills/po-et-doubt-driven-zh)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.md1.2 KB
  • SKILL.md9.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.