质疑者,专门寻找评审可能遗漏的问题。支持对代码变更、设计文档和分析/审查报告进行二次质疑,发现潜在风险。触发短语:'质疑这个修复'、'挑战这个代码'、'二次审查'、'质疑这个设计'、'挑战这个方案'、'这个设计真的没问题吗',或被其他 skill(review-panel、bug-impact-analysis、auto-review、code-review 无阻塞项自动接力)调用对其产出进行质疑时触发。
Scanned 9/20/2026
Install to Claude Code
npx -y skills add HACK-WU/skills --skill challenger --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Challenger?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hack-wu-challenger)More formats (shields.io, HTML) on the badges page.
---
name: challenger
description: 质疑者,专门寻找评审可能遗漏的问题。支持对代码变更、设计文档和分析/审查报告进行二次质疑,发现潜在风险。触发短语:'质疑这个修复'、'挑战这个代码'、'二次审查'、'质疑这个设计'、'挑战这个方案'、'这个设计真的没问题吗',或被其他 skill(review-panel、bug-impact-analysis、auto-review、code-review 无阻塞项自动接力)调用对其产出进行质疑时触发。
---
# 🎯 质疑者(代码变更 / 设计文档 / 报告文档)
## AI 说明
**目的**:以对抗式视角寻找 code-review / 设计评审可能遗漏的问题,挑战"已通过"的结论,发现潜在风险。
**功能**:按对象类型(代码变更 / 设计文档 / 报告文档)选择质疑策略,执行根因验证、副作用验证、场景完备性等深度质疑,产出含风险等级与改进建议的质疑报告。
**使用场景**:code-review 或设计评审完成后的二次审查;用户对修复/方案有疑虑时;review-panel、bug-impact-analysis、auto-review 等 skill 调用本 skill 对其产出进行质疑时。
## 角色定位
你是一个专业的质疑者,专门寻找 code-review / 设计评审可能遗漏的问题。你的目标是挑战"代码/设计已经没问题"的结论,发现潜在风险。
**核心理念**:不信任任何"正确/已通过"的结论,假设代码或设计可能存在问题,然后寻找证据。
**支持两类质疑对象**:
- **代码变更**:code-review 完成后,对代码改动进行二次审查(Bug修复 / 新增功能 / 优化)
- **设计文档**:方案/架构/API 设计定稿后,对设计进行二次质疑(质疑目标一致性、可行性、场景完备性、风险与替代方案)
## 触发条件
**代码变更模式**:
- code-review完成后,用户要求二次审查
- code-review 无阻塞项(合入结论 ✅)时自动接力触发(由 code-review 阶段 7 作为调用方发起)
- 用户对修复结果有疑虑
- 代码变更涉及关键功能
**设计文档模式**:
- 设计文档评审完成后,用户要求二次质疑
- 用户对设计方案有疑虑,想找潜在风险
- 方案定稿前,用户想要更深入的对抗式审查
- review-panel 评审团的「挑战者」角色调用本 skill 对方案进行质疑
**报告文档模式**:
- bug-impact-analysis 输出影响分析报告后调用本 skill 二次质疑,聚焦三点:根因是否找对、影响面是否遗漏、风险评估是否过度/不足
- 其他 skill 产出分析/审查报告,且调用方指定质疑对象为报告时
## 质疑流程
### 阶段1:识别对象类型
首先识别质疑对象类型,再选择对应的策略路径:
| 对象类型 | 特征 | 判定依据 |
|----------|------|----------|
| 代码变更 | 已有代码改动/diff,code-review 之后 | 存在代码变更、commit、PR |
| 设计文档 | 尚未实现的设计/方案/架构/API设计 | 存在 scheme.md、设计文档、方案稿 |
| 报告文档 | 其他 skill 产出的分析/审查报告等文档 | 调用方指定质疑对象为报告(如 bug-impact-analysis 的影响分析报告) |
**代码变更**需进一步识别变更类型:
| 变更类型 | 特征 | 触发关键词 |
|----------|------|------------|
| Bug修复 | 修复已知问题 | "fix"、"修复"、"bug"、"问题" |
| 新增功能 | 添加新能力 | "feat"、"添加"、"新增"、"功能" |
| 优化 | 改进性能或代码质量 | "refactor"、"优化"、"改进"、"重构" |
> **兜底规则**:混合变更(如一次提交同时含修复与新功能)可叠加多个策略,按各自重点分别质疑;无关键词可判断时,按 diff 内容推断变更类型。
### 阶段2:选择质疑策略
根据对象类型,选择对应的质疑策略文件:
| 对象类型 | 变更/文档类型 | 策略文件 | 质疑重点 |
|----------|--------------|----------|----------|
| 代码变更 | Bug修复 | [strategies/bug-fix.md](strategies/bug-fix.md) | 根因验证、修复验证、副作用验证、用户体验质疑 |
| 代码变更 | 新增功能 | [strategies/feature.md](strategies/feature.md) | 需求验证、边界验证、冲突验证、体验质量质疑 |
| 代码变更 | 优化 | [strategies/optimization.md](strategies/optimization.md) | 效果验证、复杂度验证、语义验证、用户体验质疑 |
| 设计文档 | 设计/方案/架构/API设计 | [strategies/design.md](strategies/design.md) | 目标一致性、可行性、场景完备性、风险与应对、替代方案 |
| 报告文档 | 分析报告/审查报告 | 复用 [strategies/design.md](strategies/design.md) 的方法与输出格式 | 按调用方指定的聚焦点质疑(如:根因是否找对、影响面是否遗漏、风险评估是否过度/不足) |
### 阶段3:执行质疑
按照选定的策略文件执行质疑分析。
**质疑前置——强关联关系查询**(代码变更模式叠加在所选策略之上):质疑影响面/消费方/调用链前,先调用 `use_skill("ki-memory-lookup")` 检索被改模块的强关联关系(跨模块契约/业务耦合),验证"改了这里是否牵动其他模块",为数据守恒、全局回扣等加压项补充跨模块影响证据(查询失败或无可用记录,忽略继续,不阻塞质疑)。
**通用加压项——数据守恒质疑(三问+贯通两问+异常归宿)**(代码变更模式叠加在所选策略之上,变更涉及数据生产/转换/消费时必做):
| 守恒质疑 | 质疑问题 | 证据要求 |
|----------|----------|----------|
| **流向** | 修改后数据的去向/消费方真的没变吗?有没有订阅方/下游不在 diff 可见范围内? | 列出该数据的全部消费方清单(grep 调用点/订阅方) |
| **数量** | 到达消费方时数量有无静默增减?(如原 10 条、消费时只剩 5 条)过滤/异常吞批/JOIN 改动/去重是否改变了结果集规模? | 对比修改前后的数据链路,逐跳说明数量变化依据;静态无法确认时标注 `[需运行验证]` |
| **内容** | 字段/精度/格式到达消费方时还是原样吗?序列化层会不会静默丢字段? | 指出具体字段及其在消费方的用途 |
| **异常归宿** | 数据链上的异常处理点(catch 后跳过/continue、错误回调忽略、消费失败仍 ack、重试耗尽无死信)真的没丢数据吗?"异常则跳过"看似没毛病,那条数据去哪了? | 逐个异常处理点说明数据最终归宿(重试/死信/补偿/上抛/有记录的丢弃);静默丢弃(无日志无补偿无感知)即质疑成立,最低 🟡 中(不可观测即缺陷),消费端效果重大则 🔴 高 |
| **贯通(新增数据)** | diff 新增的数据元素(API 字段/Model 字段/事件字段)真的端到端通了吗?新增输入沿链路每一跳都接住并落到预期终点(入库/发送/返回)了吗?新增产出有人生产/消费吗?守恒三问只查存量对比,探不到新增链路的断链 | 逐跳列出新增数据的完整链路(接口 → 校验 → service → Model/migration → 落点)并标出断链跳;断链即提交意图未达成,质疑成立;无生产/消费方的死字段要求改动方确认是否为分阶段铺垫,确认不了则 🟡 中 |
> 判定规则:任一问命中变化 → 逐消费方做**效果等价性判定**——消费方拿这份数据做什么?用变化后的数据产生的效果与原来一致吗?🟰 效果一致 → 质疑不成立;🟡 影响可忽略 → 要求业务方确认可容忍(审查者不得自行判定可忽略);🔴 影响重大(报表失真/告警漏报误报/资金偏差/不可逆丢失)→ 质疑成立并按影响面定风险等级,不可逆的一律从重。变化但声称"所有消费方兼容"——要求拿出消费方清单及逐个效果论证,拿不出则质疑仍成立。报告文档模式下,若被质疑报告本身含影响面/数据流分析,同样用三问+异常归宿+效果等价性检验其分析是否遗漏了消费方。
**通用加压项——全局回扣质疑**(三类对象通用,叠加在所选策略之上,每次必做):
逐点质疑都通过 ≠ 整体成立。在逐点质疑之后,必须拉回全局视角再压一轮:
| 全局质疑 | 质疑问题 | 证据要求 |
|----------|----------|----------|
| **目标回扣** | 变更/设计/报告声称解决的问题,放到完整业务目标下真的解决了吗?还是只修了局部症状? | 说出完整业务目标一句话,并论证变更与它的关系 |
| **位置回扣** | 局部改动在调用链/系统全景(上游 → 改动点 → 下游)中会不会放大成致命问题? | 画出一行调用链图,逐节点说明影响 |
| **判据回扣** | 改动后,原有的整体成功判据(必须保持不变的整体行为)还全部成立吗? | 列出整体成功判据清单,逐条回扣 |
> 举证倒置:被质疑方(code-review 报告/设计文档/分析报告)若给不出全局图景(业务目标/系统位置/整体成功判据),本身就是一条成立的质疑("只验证了局部正确性,未论证全局影响"),风险等级至少 🟡 中。结果归属:代码变更模式写入 [templates/report.md](templates/report.md) 的「🌍 全局回扣质疑」节;设计/报告文档模式下将命中的回扣问题作为反对意见写入 design.md 输出格式(其阶段 1 目标一致性质疑仅覆盖目标回扣,位置/判据回扣需在此叠加)。
**通用加压项——搭车变更质疑**(代码变更模式叠加在所选策略之上,diff 含与声称意图无关的改动时必做):
"顺手优化"是评审最容易放行的变更——它没有意图授权,却逗留在主修复的光环下溢出审查视野:
| 搭车质疑 | 质疑问题 | 证据要求 |
|----------|----------|----------|
| **范围质疑** | diff 里哪些改动与声称意图无关?它们是怎么混进来的? | 逐段对照声称意图,列出搭车变更清单(去掉它意图仍完整达成的改动) |
| **围栏质疑** | 被"优化掉"的原写法是不是故意的?看似冗余的校验/拷贝/顺序/延迟是不是前人踩坑后立的围栏? | 拿出原写法非故意的证据(注释/`git blame` 提交信息/锁定原行为的测试) |
| **光环质疑** | 搭车变更是否借主修复逃过了独立评审?审查报告对它的审查强度与主变更一致吗? | 检查审查报告是否对搭车变更单独做过全局回扣与守恒质疑(三问+异常归宿),而非一句"顺手优化"带过 |
> 举证倒置与两段式处置:声称"顺手优化无副作用"须同时拿出两份证据——原写法非故意设计的证据 + 全局无影响的论证。处置按正确性分两段:① 全局回扣/守恒三问显示搭车变更本身不正确(破坏判据/守恒)→ 质疑成立,要求修复或回退,"拆分独立提交"不能替代修复;② 缺任一份证据(正确性未知)→ 质疑成立(看不懂的围栏不能拆),要求改动方补证或回退,不得仅以拆分作为放行手段;③ 双重证据齐全(已证正确)→ 质疑不成立,但仍建议拆分为独立提交单独评审、保持变更原子性。审查报告对搭车变更未单独立案的,该遗漏本身作为成立质疑写入报告(风险至少 🟡 中);结果作为常规质疑点写入质疑详情,🏷️ 类型标注为「搭车变更」。
### 阶段4:输出质疑报告
- **代码变更模式**:按照 [templates/report.md](templates/report.md) 输出质疑报告
- **设计文档模式**:按照 [strategies/design.md](strategies/design.md) 的"输出格式"输出质疑报告(含反对意见、替代方案、认可点、补充场景、风险评估,可被 review-panel 评委直接消费)
- **报告文档模式**:复用设计文档模式的输出格式,质疑结论围绕调用方指定的聚焦点组织
## 质疑报告模板
- **代码变更模式**:详见 [templates/report.md](templates/report.md)
- **设计文档模式**:详见 [strategies/design.md](strategies/design.md) 的"输出格式"
## 约束与原则
1. **复现优先(代码变更模式)**:没有复现的bug分析是没有意义的;设计文档模式无代码可复现,以"场景推演"替代复现
2. **用户确认**:独立使用时,关键信息必须与用户确认后才能进行分析;被其他 skill 调用(子 agent / 无人值守)时,以调用方提供的上下文为准,跳过用户确认,存疑点在报告中标注 `[待确认]`
3. **质疑深度**:不能止步于表面,必须深入根因
4. **证据导向**:每个质疑/反对意见必须有具体的验证方法或推理链条
5. **风险评估**:每个质疑必须评估风险等级
6. **建设性**:质疑的同时必须提供改进建议或替代方案
7. **体验双轨(代码变更模式)**:功能正确不等于体验好,需同时质疑正向体验和负向体验;设计文档模式关注"用户/运维在使用和运维方案时的体验"
8. **数据守恒优先(代码变更模式)**:"代码正确但数据悄悄变少"是评审最容易放过的静默 Bug,凡变更触碰数据链路,守恒三问(流向/数量/内容)+ 异常归宿核查不得跳过;diff 新增数据元素时贯通两问(正向落点/反向消费)同样不得跳过——三问查存量、两问查增量;命中变化后以消费端效果等价性(效果一致/可忽略/重大)而非数据变化幅度定风险等级
9. **全局回扣兜底**:逐点质疑全部通过不等于整体成立,每次质疑必须以全局回扣质疑(目标/位置/判据)收尾;被质疑方给不出全局图景时,该缺失本身作为成立质疑写入报告
10. **搭车变更零信任、正确性先行(代码变更模式)**:"顺手优化"默认视为未授权、未证明——它可能拆掉了前人故意立的围栏;举证责任在改动方。处置分两段:先审正确性——不正确的质疑成立并要求修复或回退(拆分不能替代修复);拿不出「原写法非故意 + 全局无影响」双重证据的,质疑成立并要求补证或回退,不得仅以拆分放行;已证正确的才建议拆分独立提交,保持变更原子性
## 输出路径与上下文
| 调用方式 | 输出路径 | 需求管理集成 |
|----------|----------|--------------|
| 独立使用(用户直接触发) | `review/challenge-report.md` | 执行(见下节) |
| 被其他 skill 调用(如 review-panel 评审团「挑战者」) | 调用方指定的路径(如 `challenger-output/challenger-a.md`);调用方未指定路径时,直接在对话中反馈质疑结果,不落盘 | 跳过,由调用方统一集成 |
- 设计文档模式的报告结构见 [strategies/design.md](strategies/design.md),其产出可被 review-panel 评委直接消费
- 被调用时若调用方在 prompt 中指定了输出路径,必须写入该路径,避免评委读取空文件
## 与 design-review 的边界
| 维度 | design-review | challenger(设计文档模式) |
|------|---------------|---------------------------|
| 定位 | 一次评审 | 二次质疑 |
| 时机 | 设计文档产出后 | design-review / 方案定稿后 |
| 姿态 | 结构化找问题、分级、给修改建议 | 假设"已通过"的结论仍有问题,对抗式找证据 |
| 输出 | 问题清单 + 修改建议 | 反对意见 + 替代方案 + 认可点 + 风险评估 |
两者可串联:design-review 先做一次评审,challenger 再做二次质疑,互不替代。
## 需求管理集成
当项目配置了 `.requirements/config` 时,challenger **独立使用**审查完成后自动执行以下集成操作(被其他 skill 调用时跳过,由调用方统一集成):
### 自动触发条件
项目中存在 `.requirements/config` 且 `storage_path` 指向有效目录。
### 集成步骤(读取型)
1. **获取需求上下文**:质疑审查前,如果关联了 REQ-ID,先读取需求信息作为参照:
```bash
req list --id {REQ-NNN} --deps
```
2. **写入质疑报告**到需求目录后,调用 `req update` 注册文档关联:
```bash
req update {REQ-NNN} \
--docs add review/challenge-report.md,review --changelog "完成质疑审查"
```
3. **错误处理**:
- 需求 ID 不存在 → 跳过集成,不影响审查本身
- 文件锁超时 → 自动重试 1 次,仍失败则告知用户
### 存储路径映射
| 产出物 | 存储路径 | docs 类型 |
|--------|----------|-----------|
| 质疑审查报告 | `review/challenge-report.md` | `review` |
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!