challenge
红蓝对抗(Red-Blue Adversarial)结构化思维工具。对方案、架构、决策、技术选型、故障假设进行多轮攻防审查,蓝军挑战假设、红军用数据回应,迭代收敛到更优方案。当用户提到"红蓝对抗"、"challenge"、"挑战一下"、"帮我找漏洞"、"找找风险点"、"可能翻车的地方"、"Devil's advocate"、"对抗分析"、"攻防"时触发。也适用于:用户对方案不够自信想要压力测试、纠结多个方案想暴露各自弱点、怀疑某个故障根因但不确定方向是否正确。注意:简单的技术比较("X 和 Y 哪个好")不应触发此 skill,除非用户明确要求对抗/攻防式分析。
来源信息
- 仓库
- zhuqingxun/zqxbase
- 最近来源活动
- 2026年4月24日 15:47
- 检测到的 SKILL.md 语言
- 中文
- 星标
- 0
- 分支
- 0
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- challenge
- description
- 红蓝对抗(Red-Blue Adversarial)结构化思维工具。对方案、架构、决策、技术选型、故障假设进行多轮攻防审查,蓝军挑战假设、红军用数据回应,迭代收敛到更优方案。当用户提到"红蓝对抗"、"challenge"、"挑战一下"、"帮我找漏洞"、"找找风险点"、"可能翻车的地方"、"Devil's advocate"、"对抗分析"、"攻防"时触发。也适用于:用户对方案不够自信想要压力测试、纠结多个方案想暴露各自弱点、怀疑某个故障根因但不确定方向是否正确。注意:简单的技术比较("X 和 Y 哪个好")不应触发此 skill,除非用户明确要求对抗/攻防式分析。
- argument-hint
- [要挑战的方案或主题]
# 红蓝对抗(Red-Blue Adversarial)
对方案进行结构化的多轮攻防审查,通过蓝军(攻击方)挑战假设和红军(防御方)用数据回应的交替迭代,暴露盲点、消除过度工程、收敛到最小可行方案。
## 参数
- `/challenge` — 对当前对话上下文中的方案发起对抗
- `/challenge [方案描述或文件路径]` — 对指定方案发起对抗
- `/challenge --light` — 轻量模式,快速压力测试
- `/challenge --deep` — 深度模式,含隐性假设专项攻击和前瞻分析
## 输入
对抗目标:$ARGUMENTS
如果 $ARGUMENTS 为空,从当前对话上下文中识别最近讨论的方案/设计/决策作为对抗目标。如果上下文中也没有,使用 AskUserQuestion 询问用户要对什么进行对抗。
## 核心原则
1. **蓝军必须提"最小实验"**:每条批评必须附带一个可在 10 分钟内执行的验证动作,空谈无效
2. **红军必须"用数据回应"**:引用实际数据(grep 结果、API 响应、日志条目、配置文件内容),禁止纯理论反驳。数据有可信度层级(见证据分级),致命/严重问题的回应必须用高可信度证据
3. **对抗是双向的**:红军不是来认错的,而是用证据守住合理设计。轻易全盘投降和顽固不化一样有害——如果方案的某个决策有充分理由,红军有义务据理力争。好的对抗让方案的合理部分更坚固,不合理部分被替换
4. **对抗目标是收敛**:每轮对抗应减少方案的复杂度或不确定性,不是增加
5. **采纳有成本**:每次"采纳"意味着修改方案,修改本身引入复杂度和风险。红军在采纳时必须评估修改成本,避免"攻击什么就改什么"的条件反射
## 证据可信度分级
对抗中引用的"数据"并非同等可靠。按可信度从高到低:
| 层级 | 证据类型 | 示例 |
|------|---------|------|
| **L1 实验** | 实际运行的实验结果 | 写脚本测量延迟、部署测试环境验证 |
| **L2 探测** | API/curl/命令行实时测试 | `curl -I https://...`、`netstat -ano` |
| **L3 检索** | 读取当前代码/配置/日志 | `grep`、`cat`、读文件内容 |
| **L4 引用** | 文档、记忆、历史记录 | MEMORY.md 记录、官方文档 |
| **L5 推理** | 逻辑推断(无直接证据) | "根据 X 原理,Y 应该成立" |
**硬性要求**:
- 蓝军标记为"致命"的攻击,最小实验执行后必须产出 L1-L3 级证据
- 红军驳回"致命/严重"攻击时,数据支撑必须达到 L1-L3 级
- L5 推理不能单独作为驳回依据,必须搭配更高层级证据
## 对抗流程
### Phase 0:锚定对抗目标
1. 明确对抗对象:方案文档、架构设计、技术选型、故障假设等
2. 用 1-3 句话概括方案的核心主张
3. 识别方案依赖的**显性假设**(通常 3-5 个)
4. **挖掘隐性假设**:列出方案中没有明确说出但必须为真的前提条件——这些是最危险的,因为从未被质疑过。重点关注:
- 运行环境假设(OS、网络、权限、依赖服务可用性)
- 规模假设(数据量、并发量、增长速率)
- 用户行为假设(使用方式、操作顺序、容错预期)
- 时间假设(执行频率、延迟容忍、生命周期)
5. **评估对抗深度**(如果用户未通过 `--light` / `--deep` 指定):
| 模式 | 适用场景 | 流程 | 预期规模 |
|------|---------|------|---------|
| **轻量** | 局部决策、2-3 个假设、影响范围小 | Phase 0 → 单轮精简攻防 → 结论 | 3-4 个攻击点 |
| **标准** | 功能设计、技术选型、中等复杂度 | 完整 Phase 0-4 | 5-7 个攻击点 |
| **深度** | 架构设计、高风险决策、生产环境变更 | 完整流程 + 隐性假设专项攻击 + 前瞻分析 | 7+ 个攻击点 |
不确定时默认标准模式。
输出格式:
```
## 对抗目标
**方案**:[方案名称/概述]
**核心主张**:[1-3 句话]
**显性假设**:
1. [假设 1]
2. [假设 2]
3. [假设 3]
**隐性假设**(未被明确说出但必须成立):
- [隐性假设 1]:风险等级 [高/中/低]
- [隐性假设 2]:风险等级 [高/中/低]
**对抗模式**:[轻量/标准/深度],理由:[为什么选这个级别]
```
### Phase 1:蓝军攻击
蓝军的目标不是"找茬",而是帮方案找到自己看不见的风险。好的蓝军攻击让方案制定者感到"幸好在实施前发现了这个"。
**必做:先钢铁人(Steelman)再攻击**
每轮攻击开始前,蓝军必须用 2-3 句话展示对方案优势的真正理解——这不是客套。如果蓝军不理解方案为什么这样设计,攻击容易打偏。钢铁人描述应包含:方案试图解决的核心问题、当前设计的合理性来源、相比显而易见的替代方案的独特优势。
**蓝军攻击技巧(按优先级)**:
1. **"没确诊就开药"**:方案是否基于未验证的假设?是否先设计了方案再找问题?
→ 要求:提出验证假设的最小实验
2. **过度工程化检测**:最简方案试过了吗?能用 3 行代码解决的问题是否用了 3 层抽象?
→ 要求:给出更简单的替代方案
3. **逻辑悖论识别**:方案是否自相矛盾?如"用规则解决忘记规则的问题"
→ 要求:指出具体的逻辑环
4. **房间里的大象**:是否忽略了已有的现成方案/工具/框架?
→ 要求:列出被忽视的已有方案
5. **成本盲区**:隐含的运维成本、token 消耗、注意力代价、技术债是否被低估?
→ 要求:给出粗略的成本估算
6. **钢铁人攻击(Steelmanning Attack)**:在理解方案优势的基础上,指出在某个特定条件下优势不成立
→ 要求:明确指出使优势失效的具体条件
7. **反转测试**:把方案的核心决策反转(如从微服务改为单体),结果会更差吗?
→ 要求:给出反转后的具体对比
8. **前瞻性失败**(深度模式):假设方案已上线 6 个月,它最可能因为什么原因失败?
→ 要求:给出具体的失败场景和触发条件
**严重度定义**(严格校准):
| 严重度 | 定义 | 判断标准 | 每轮上限 |
|--------|------|---------|---------|
| **致命** | 方案上线后会导致**不可逆损失**或**完全无法工作** | 数据丢失、安全漏洞、核心功能失效 | 最多 2 个 |
| **严重** | 方案能工作但会产生**显著的持续性问题** | 性能瓶颈、维护负担、成本超预期 | 不限 |
| **中等** | 方案可以工作但有改进空间 | 代码冗余、缺少监控、扩展性不足 | 不限 |
致命上限的意义:如果超过 2 个问题都符合致命定义,说明方案需要从头审视而非逐条修补——此时蓝军应直接建议用户重新评估方案可行性,而不是继续攻击细节。
**输出格式**:
```
## 蓝军攻击 Round N
**钢铁人理解**:[2-3 句话展示对方案优势的理解]
| # | 严重度 | 攻击类型 | 问题 | 最小实验(<10min) |
|---|--------|----------|------|-------------------|
| B1 | 致命 | [类型] | [问题描述] | [验证动作] |
| B2 | 严重 | [类型] | [问题描述] | [验证动作] |
| B3 | 中等 | [类型] | [问题描述] | [验证动作] |
```
蓝军攻击完成后,**立即执行**所有标记为"致命"和"严重"的最小实验,将实验结果(含证据层级标注)记录在攻击表下方。这些实验结果将作为红军回应的证据基础。
### Phase 2:红军回应
红军的使命是双重的:修正方案中真正有问题的部分,同时守住合理的设计决策。好的红军回应让方案变得更好,而不是被蓝军牵着鼻子走。
**红军的平衡约束**:
红军不应全盘接受蓝军攻击。当蓝军提出 5 个以上攻击时,如果红军全部采纳,往往说明红军没有认真评估每个攻击的真实成本。对于 5+ 个攻击,红军必须对至少 30% 做出实质性抗辩(驳回、或部分采纳中附带对不合理部分的反驳),除非每个攻击都附带了 L1-L3 级铁证且修改成本可忽略。
"实质性抗辩"不是简单说"不同意"——是提供反面证据,或证明蓝军攻击的前提不成立,或证明修改成本大于风险。
**红军回应模式**:
| 类型 | 含义 | 要求 |
|------|------|------|
| **采纳** | 攻击有效,修改方案 | 给出具体修改 **+ 修改成本**(新增复杂度、影响范围、额外工作量) |
| **部分采纳** | 攻击方向对但结论过头 | 说明接受/拒绝各部分,拒绝理由附 L1-L3 数据 |
| **驳回** | 攻击无效或修改成本不合理 | 给出驳回理由 + L1-L3 级数据支撑 |
| **降级** | 攻击有效但当前阶段不处理 | 说明何时处理、临时缓解措施、降级的风险敞口 |
| **超出范围** | 超出当前评审范围 | 说明归属范围,是否需要单独跟踪 |
**回应技巧**:
1. **认同 + 修正**:认可批评方向,但修正具体推论或解决方案
2. **降级而非放弃**:将"立即引入"降级为"Phase 2 观察",而非完全移除
3. **用数据反转**:用 grep/curl/实验的实际结果推翻蓝军的假设
4. **区分"方向对"和"结论过头"**:承认问题存在但质疑蓝军建议的解决方案
5. **约束声明**:明确方案的适用边界,"这个方案不处理 X 场景,因为..."
6. **成本对比**:攻击指出的风险确实存在,但缓解成本 > 风险期望损失
7. **检验攻击前提**:蓝军的攻击是否基于正确的前提?前提本身是否需要验证?
**输出格式**:
```
## 红军回应 Round N
**防守立场**:[1-2 句话——哪些设计决策值得坚守,为什么]
| # | 蓝军编号 | 回应类型 | 回应内容 | 数据支撑 [证据层级] |
|---|---------|---------|---------|-------------------|
| R1 | B1 | 采纳 | [回应] **修改成本**:[评估] | [数据] [L3] |
| R2 | B2 | 驳回 | [回应] | [数据] [L2] |
| R3 | B3 | 部分采纳 | [接受部分] / [拒绝部分及理由] | [数据] [L1] |
### 方案修正 Diff
**变更 1**:[原设计] → [修正后设计]
理由:采纳 B1,[具体原因]
修改成本:[引入的新复杂度/工作量]
**坚守的设计决策**:
1. [决策 1]:驳回 B2,理由 [摘要]
2. [决策 2]:未被攻击,仍然合理因为 [摘要]
```
### Phase 3:蓝军第二轮攻击(收敛轮)
针对红军修正后的方案,进行第二轮审查。此轮重点关注:
1. **修正是否引入新问题**:改 A 是否破坏了 B?
2. **降级处理是否合理**:被降级的项目是否真的可以推迟?
3. **整体一致性**:修正后的方案各部分是否仍然自洽?
4. **驳回质量审查**:红军的驳回证据是否足够?如果驳回仅靠 L4-L5 证据,重新挑战
此轮只关注"致命"和"严重"问题,中等及以下问题不再提出。
### Phase 4:红军第二轮回应(终结轮)
回应蓝军第二轮攻击,产出最终方案。
## 收敛判断
满足以下**任一**条件即可结束对抗:
1. **蓝军无致命/严重问题**:第二轮蓝军攻击未发现致命或严重问题
2. **红蓝共识**:双方对所有致命/严重问题的处理达成一致
3. **最大轮次**:已完成 3 轮完整对抗(极少需要第 3 轮)
如果 2 轮后仍有致命问题未解决,使用 AskUserQuestion 询问用户:
- 继续第 3 轮对抗
- 将未解决问题标记为已知风险,接受当前方案
- 暂停对抗,先执行实验收集更多数据
## 最终输出
对抗收敛后,输出结构化的攻防报告:
```
## 红蓝对抗报告
### 对抗目标
[方案名称/概述]
### 对抗强度
[轻量/标准/深度] | [N] 轮 | 蓝军 [M] 个攻击 | 红军驳回率 [X%]
### 攻防摘要
- **蓝军提出问题**:[M] 个(致命 X / 严重 Y / 中等 Z)
- **采纳**:[A] 个 | **部分采纳**:[B] 个 | **驳回**:[C] 个 | **降级**:[D] 个
- **方案修改总成本**:[总体评估——修改引入的复杂度是否可控]
### 关键变更
1. [变更 1]:[原方案] → [修正方案](来源:B[n])
2. [变更 2]:[原方案] → [修正方案](来源:B[n])
### 坚守的设计决策
1. [决策 1]:经受了 B[n] 攻击,驳回理由 [摘要]
2. [决策 2]:经受了 B[n] 攻击,驳回理由 [摘要]
### 已知风险与降级项
1. [风险 1]:降级计划 / 风险敞口 / 触发条件
2. [风险 2]:驳回理由 / 残余风险
### 隐性假设状态
- 已验证:[列表]
- 未验证但风险可接受:[列表]
- 需要持续监控:[列表及监控方式]
### 收敛后方案
[最终方案的完整描述,已整合所有采纳的变更]
### 下一步行动
1. **立即执行**:[最高优先级的具体动作,精确到命令或操作步骤]
2. **本周完成**:[短期跟进项]
3. **持续监控**:[降级项的观察指标和触发阈值]
```
## 轻量模式输出格式
轻量模式跳过多轮迭代,用更紧凑的格式快速产出:
```
## 快速对抗:[方案名称]
**钢铁人理解**:[方案的核心优势]
**隐性假设**:[1-2 个最高风险的未验证前提]
### 压力测试
| # | 风险点 | 验证结果 | 建议 |
|---|--------|---------|------|
| 1 | [问题] | [实验结果 + 证据层级] | [采纳/驳回 + 理由] |
| 2 | [问题] | [实验结果 + 证据层级] | [采纳/驳回 + 理由] |
### 结论
[方案是否可行] + [最大的单点风险] + [建议的下一步]
```
## 使用场景适配
### 架构设计评审
- 蓝军重点:过度工程化、未验证假设、忽略已有方案
- 红军重点:用代码实验和 grep 结果回应
- 默认深度模式
### 方案选型决策
- 蓝军重点:对每个候选方案分别攻击,暴露各自弱点
- 红军重点:用对比数据(benchmark、成本、复杂度)回应
- 特殊规则:不偏袒任何方案,最终推荐基于攻防后的综合评分
- 默认标准模式
### 故障根因分析
- 蓝军重点:挑战"确认偏误"——当前假设的根因是否有其他解释?
- 红军重点:用日志、监控数据、复现实验回应
- 特殊规则:蓝军必须提出至少 2 个替代假设
- 默认标准模式
### 快速决策压力测试
- 蓝军重点:最大的单点风险是什么?
- 红军重点:用已有数据快速验证
- 默认轻量模式
## 注意事项
- **对抗是工具,不是目标**:如果方案本身足够简单且经过验证,不需要强行对抗。快速判断后告知用户"此方案无需对抗"也是有效输出
- **避免对抗膨胀**:蓝军每轮最多提 7 个问题,超出时按严重度裁剪
- **实验优于辩论**:能用 10 分钟实验解决的分歧,不用 3 轮辩论
- **用户是最终裁判**:当红蓝双方僵持时,使用 AskUserQuestion 呈现双方论据让用户裁决
- **警惕全盘采纳**:如果红军对所有攻击都说"采纳",暂停反思——是方案真的全盘有问题(则建议用户重新评估),还是红军偷懒没做防守(则重新执行红军回应)
在 GitHub 查看