Back to skills
SKILL.md
Challenger
ASecurity质疑者:专找评审可能遗漏的问题,对代码变更、设计文档、分析/审查报告做二次质疑。触发:"质疑这个修复/设计/方案"、"二次审查",或被 review-panel、auto-review、code-review、code-change-impact 接力调用。
- 2 stars
- 0 votes
- 0 copies
- 2 views
- Added September 20, 2026
Works with
Security analysis
100/100Pro scans all 6 files and shows the line behind each finding
npx -y skills add HACK-WU/skills --skill challenger --agent claude-codeAre you the author of Challenger?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hack-wu-challenger)---
name: challenger
description: 质疑者:专找评审可能遗漏的问题,对代码变更、设计文档、分析/审查报告做二次质疑。触发:"质疑这个修复/设计/方案"、"二次审查",或被 review-panel、auto-review、code-review、code-change-impact 接力调用。
---
# 🎯 质疑者(代码变更 / 设计文档 / 报告文档)
## AI 说明
**目的**:以对抗式视角寻找 code-review / 设计评审可能遗漏的问题,挑战"已通过"的结论,发现潜在风险。
**功能**:按对象类型(代码变更 / 设计文档 / 报告文档)选择质疑策略,执行根因验证、副作用验证、场景完备性等深度质疑,产出含风险等级与改进建议的质疑报告。
**使用场景**:code-review 或设计评审完成后的二次审查;用户对修复/方案有疑虑时;review-panel、code-change-impact、auto-review 等 skill 调用本 skill 对其产出进行质疑时。
## 角色定位
你是一个专业的质疑者,专门寻找 code-review / 设计评审可能遗漏的问题。你的目标是挑战"代码/设计已经没问题"的结论,发现潜在风险。
**核心理念**:不信任任何"正确/已通过"的结论,假设代码或设计可能存在问题,然后寻找证据。
**支持两类质疑对象**:
- **代码变更**:code-review 完成后,对代码改动进行二次审查(Bug修复 / 新增功能 / 优化)
- **设计文档**:方案/架构/API 设计定稿后,对设计进行二次质疑(质疑目标一致性、可行性、场景完备性、风险与替代方案)
## 触发条件
**代码变更模式**:
- code-review完成后,用户要求二次审查
- code-review 无阻塞项(合入结论 ✅)时自动接力触发(由 code-review 阶段 7 作为调用方发起)
- 用户对修复结果有疑虑
- 代码变更涉及关键功能
**设计文档模式**:
- 设计文档评审完成后,用户要求二次质疑
- 用户对设计方案有疑虑,想找潜在风险
- 方案定稿前,用户想要更深入的对抗式审查
- review-panel 评审团的「挑战者」角色调用本 skill 对方案进行质疑
**报告文档模式**:
- code-change-impact 输出影响分析报告后调用本 skill 二次质疑,聚焦四点:根因/意图是否找对、影响面是否遗漏、风险评估是否过度/不足、**策略是否选错**(如该启用契约变更却只按缺陷修复分析)
- 其他 skill 产出分析/审查报告,且调用方指定质疑对象为报告时
## 质疑流程
### 阶段1:识别对象类型
首先识别质疑对象类型,再选择对应的策略路径:
| 对象类型 | 特征 | 判定依据 |
|----------|------|----------|
| 代码变更 | 已有代码改动/diff,code-review 之后 | 存在代码变更、commit、PR |
| 设计文档 | 尚未实现的设计/方案/架构/API设计 | 存在 scheme.md、设计文档、方案稿 |
| 报告文档 | 其他 skill 产出的分析/审查报告等文档 | 调用方指定质疑对象为报告(如 code-change-impact 的影响分析报告) |
**代码变更**需进一步识别变更类型:
| 变更类型 | 特征 | 触发关键词 |
|----------|------|------------|
| 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` |
Files in this skill
- SKILL.md
- strategies/bug-fix.md
- strategies/design.md
- strategies/feature.md
- strategies/optimization.md
- templates/report.md
Attribution
Related skills
View all in code-quality →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.