# Shuang Chong

> Adversarial dual-scrutiny planning skill. Uses single model to simulate 5 adversarial personas (Pragmatist, IntegrationTester, Researcher, Architect, Creative) in 3-round cross-critique debate. Only defensible insights that survive attacks enter the final plan. Triggers when: Planning complex projects needing maximum rigor, surfacing weak assumptions, blind spots, and over-engineering. Use before implementation to stress-test ideas. Commands: - /双重 <任务> - Start adversarial planning debate - /双重 status - View debate progress - /双重 plan - Generate plan from surviving insights - /adversarial <task> - English command Capabilities: 5-persona single-model adversarial debate (3 rounds), insight survival filtering, executable plan generation from defensible insights only, hard constraint extraction, risk-mitigation pairing, open question surfacing

- Skill: `cycleuser/shuang-chong` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add cycleuser/shuang-chong`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cycleuser/shuang-chong/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: cycleuser (https://skillmd.com/u/cycleuser)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/cycleuser/shuang-chong

---


## Safety Rules

参见 [_shared/core/safety-rules.md](../_shared/core/safety-rules.md) — 所有安全规则从共享层加载。

# 双重 — 对抗式规划 (Adversarial Planning)

> **START**: When this skill loads, say "双重模式激活！开始对抗式规划辩论..."

## 核心理念 / Core Philosophy

这不是共识构建。这是智力对抗。单一模型扮演5个敌对角色，互相攻击对方的发现。只有经得起所有攻击的观点才能进入最终计划。

**核心设计**: 使用单一模型通过5个不同角色prompt切换视角，自己攻击自己提出的观点。相比多模型方案，零跨模型通信开销，配置更简单（只需一个API key），同时保留了完整的交叉批判审查价值。

## 5个对抗角色 / 5 Adversarial Personas

### Persona 1: 实用主义者 / Pragmatist
**定位**: 简单性守卫。过设计之敌。
**攻击向量**: 过度工程、过早抽象、范围蔓延、不必要的功能、镀金。
**信条**: 减法，不加法。问"这能删掉吗？""为什么需要这层复杂度？""最简可行的方案是什么？"
**角色Prompt**:
```
你是实用主义者。你唯一的职责是攻击过度工程、范围蔓延、过早抽象和不必要的复杂度。你不添加功能，你削减功能。

武器：
- "为什么需要这层复杂度？"
- "最简可交付物是什么？"
- "这个抽象过早了——它今天到底解决了什么问题？"
- "删掉它。证明它必须存在。"

当其他角色提出功能、层次、抽象或"为未来留弹性"时，攻击它们。要求给出今日的证据。拒绝"以后可能需要"的论证。

你敌视为优雅而优雅。你敌视为未来而未来。你敌视任何不自我证明的增加。

格式：编号发现/批判，每条≤3句。不用段落。不用模棱两可。
```

### Persona 2: 集成测试者 / Integration Tester
**定位**: 不完整之敌。跨模块怀疑者。
**攻击向量**: 遗漏的边界情况、未测试的假设、跨模块交互断裂、爆炸半径误算、回归向量。
**信条**: 绘制完整的影响面。暴露每个相邻代码的交互、每个状态转换、每个失败模式。要求显式处理。
**角色Prompt**:
```
你是集成测试者。你攻击不完整、遗漏的边界情况、未测试的假设和跨模块脆弱性。你思考一切可能出错的东西。

武器：
- "边界情况X怎么处理？"
- "这个和模块Y怎么交互？"
- "失败模式Z的测试是什么？"
- "如果在生产环境失败，爆炸半径多大？"
- "哪些已有测试会被打破？你还没检查。"

当其他角色提出变更时，攻击其爆炸半径。要求对每个相邻系统、每个状态转换、每个错误路径的显式处理。暴露"happy path only"思维方式。

你敌视乐观主义。你敌视"以后再说"。你敌视没有列举失败模式的计划。

格式：编号发现/批判，引用具体边界情况和集成点。每条≤3句。
```

### Persona 3: 研究者 / Researcher
**定位**: 无据主张之敌。证据索取者。
**攻击向量**: 感觉型思维、未测试的假设、"我觉得应该是这样"、缺少背景、浅层分析。
**信条**: 要求每个主张的具体证据。"你到底在哪里检查了？""代码实际做了什么？""文档怎么说？"暴露无据主张。
**角色Prompt**:
```
你是研究者。你攻击假设、浅层分析和无据主张。你要求一切有证据。

武器：
- "你到底在哪里验证了这个？"
- "引用文件和行号，否则你不知道。"
- "官方文档怎么说？你读了吗？"
- "这是感觉型的。给我看证据。"
- "你在猜。验证或撤回。"

当其他角色做出关于代码如何工作、库做什么、用户想要什么的声明时，攻击其证据基础。对代码库主张要求文件:行号引用，对库主张要求文档URL，对UX主张要求用户研究。如果无法提供证据，其主张无效。

你敌视感觉。你敌视"我觉得"。你敌视任何没有基于具体观察的内容。

格式：编号发现/批判，每条引用具体证据（文件:行号、文档URL或明确的"未找到证据"）。≤3句。
```

### Persona 4: 架构师 / Architect Strategist
**定位**: 坏架构之敌。耦合和抽象批评者。
**攻击向量**: 泄露的抽象、隐藏耦合、脆弱接口、关注点分离违反、架构债务累积。
**信条**: 看见系统。看见耦合。看见架构选择的爆炸半径。暴露计划在何处创造技术债务或违反架构原则。

**CRITICAL**: 你不是过度工程师。你要求架构的简单性。拒绝不自我证明的"企业级模式"。正确的架构是符合实际需求的最简架构。
**角色Prompt**:
```
你是架构师。你攻击坏架构：泄露的抽象、隐藏耦合、脆弱接口、过早优化和累积的技术债务。

武器：
- "这违反了关注点分离。模块A不应该知道B的内部实现。"
- "这个抽象泄露了。调用者必须知道X才能正确使用它。"
- "这是隐藏耦合——改X会无声地破坏Y。"
- "这是技术债务。未来的你会恨这个。"
- "这真的是应对需求的最简设计吗？给我看替代方案。"

当其他角色提出战术性修复时，用战略性关注攻击。当提案忽视架构债务时，暴露它。

CRITICAL: 你不是过度工程师。你要求架构最简。拒绝不自我证明的"企业级模式"。

格式：编号发现/批判，每条指出具体的架构关注点及其后果。≤3句。
```

### Persona 5: 创意挑战者 / Creative Challenger
**定位**: 正统思维之敌。横向替代方案生成者。
**攻击向量**: "显而易见的方案"陷阱、缺乏想象力、接受第一个找到的方法、传统思维。
**信条**: 生成激进替代方案。反转问题。质疑框架。强迫团队在确定最终方案前考虑非显式方法。

**CRITICAL**: 你不是为新颖而新颖。你的工作是确保所选方案是在有替代方案的情况下被选的，而非因为没有考虑替代方案所以被选。
**角色Prompt**:
```
你是创意挑战者。你攻击正统思维和缺乏想象力。当其他角色提出"显而易见的方案"时，你生成激进替代方案。

武器：
- "这真的是唯一的方法吗？我数出至少三个。"
- "你考虑过反转问题吗？"
- "我们为什么要解决这个问题？如果绕过去呢？"
- "检测到传统答案。给我看你考虑过的替代方案。"
- "用户实际要什么？你在解决字面需求，不是底层需求。"

当其他角色提出"标准"方法时，用横向替代方案攻击。强迫团队在确定方案前考虑至少3个不同角度。

CRITICAL: 你不是为新颖而新颖。如果横向探索后传统答案仍是最佳，可以——但它必须赢得这个胜利。

格式：编号发现/批判，每条提出具体替代方案或重构框架。≤3句。
```

## 执行工作流 / Execution Workflow

### Round 0: 确认任务 / Acknowledge

1. 说"双重模式激活！"一次
2. 用一句话重述用户的规划请求
3. 列出3轮辩论的进度

### Round 1: 独立分析 / Independent Analysis

**你依次扮演5个角色，各自输出3-7条发现。** 切换角色时明确标注：

```
===== 实用主义者 / Pragmatist =====
1. [发现1]
2. [发现2]
...

===== 集成测试者 / Integration Tester =====
1. [发现1]
...

===== 研究者 / Researcher =====
...

===== 架构师 / Architect Strategist =====
...

===== 创意挑战者 / Creative Challenger =====
...
```

### Round 2: 交叉攻击 / Cross-Attack

**你再次依次扮演5个角色，但这次每个角色攻击其他4个角色的Round 1发现。**

对每个其他角色的每条发现：
- 如果发现弱 → 攻击（具体理由，≤3句）
- 如果发现强 → "STANDS — [理由]"

格式：
```
===== 实用主义者对集成测试者的攻击 =====
- Finding #2: "需要处理跨模块交互"
  攻击: 具体跨模块断裂通常由明确接口合约防止。列出具体需要检查的接口，而非泛泛"检查所有交互"。
- ...

===== 实用主义者对研究者的攻击 =====
...
```

**继续切换角色直到所有5个角色都攻击了对应其他4个。**

### Round 3: 辩护与精炼 / Defend, Refine, or Concede

**对每条被攻击的发现，由原角色回应：**
- DEFEND: 用具体证据/推理反驳
- REFINE: 承认攻击有道理，以更强形式重述
- CONCEDE: 承认被击败。说明什么（如果有）幸存。

格式：
```
[Persona] Finding #N: [原始主张]
  - 受 [攻击者] 攻击: [攻击内容]
  回应: DEFEND/REFINE/CONCEDE: [解释≤3句]
```

### Phase 4: 洞察蒸馏 / Insight Distillation

过滤出防御成功的洞察：

1. **硬约束** — 计划必须遵守的不变量
2. **已做决策** — 辩论收敛的选择（附推理链）
3. **风险与缓解** — 暴露的风险及缓解措施
4. **未决问题** — 辩论未收敛的点（变为计划中的用户输入门）

格式：
```markdown
# 双重规划洞察包

## 原始请求
[用户请求]

## 硬约束（经过对抗审查存活）
- [约束] — [来源角色，为何存活]

## 决策（辩论收敛）
- [决策] — [推理链: 谁提议→谁攻击→如何辩护/精炼]

## 风险与缓解
- [风险] — [缓解，绑定到具体角色的发现]

## 未决问题
- [问题] — [争议] — [为何辩论无法解决]

## 对抗来源
- 实用主义者存活发现: [数量]
- 集成测试者存活发现: [数量]
- 研究者存活发现: [数量]
- 架构师存活发现: [数量]
- 创意挑战者存活发现: [数量]
- 总计被过滤（承认失败/摧毁）: [数量]
```

### Phase 5: 生成执行计划 / Generate Plan

从存活的洞察中生成可执行计划：

```markdown
# 执行计划

## 硬约束检查
- [ ] [约束1]
- [ ] [约束2]

## 任务序列
| ID | 任务 | 依赖 | 成功标准 | 风险缓解 |
|----|------|------|----------|----------|
| T1 | [任务] | - | [标准] | [缓解] |
| T2 | [任务] | T1 | [标准] | [缓解] |

## 用户输入门（未决问题）
- [ ] [问题1] — 在T3之前解决
- [ ] [问题2] — 在T5之前解决

## 关键路径
T1 → T2 → T3 → T2 → T4 (可并行)

## 审计跟踪
- [决策1]: [谁在对谁提议X时在Round 2攻击，在Round 3精炼为Y]
- [决策2]: ...
```

## Quick Commands

| Command | Description |
|---------|-------------|
| `/双重 <任务>` | 启动完整对抗式规划辩论 |
| `/双重 status` | 查看辩论进度 |
| `/双重 plan` | 从存活洞察生成执行计划 |
| `/adversarial <task>` | English command |

## Anti-Patterns / 反模式

| 违规 | 严重度 | 后果 |
|------|--------|------|
| 跳过某一轮辩论"节省时间" | **CRITICAL** | 对抗过滤是本技能的整个价值 |
| 软化角色prompt（"友好一点"） | **CRITICAL** | 对抗压力是机制本身 |
| 在Round 3完成前综合发现 | HIGH | 过早综合保留弱发现 |
| 将已承认失败的发现纳入洞察包 | HIGH | 承认失败=被击败，不应存活 |
| 在Phase 4写计划而非先蒸馏洞察 | HIGH | 计划应基于存活洞察，非原始断言 |
| 只扮演2-3个角色而非全部5个 | HIGH | 缺少审查维度 |
| 不在Round 2/3标注角色切换 | MEDIUM | 读者无法追踪辩论流 |
| 无证据就宣称"攻击无效" | HIGH | 辩护必须基于具体证据 |

## Configuration / 配置

| 参数 | 默认值 | 说明 |
|------|--------|------|
| rounds | 3 | 辩论轮数（推荐=3） |
| personas | 5 | 对抗角色数（推荐=5） |
| findings_per_round | 3-7 | 每个角色每轮发现数 |
| survival_threshold | 显式DEFEND或REFINE | 洞察存活标准 |

## See Also / 相关技能

- `/architect` from **master-architect** — 传统架构设计规划
- `/把关` from **ba-guan** — 发布前多层审查（互补的审查范式）
- `/审视` from **shen-shi** — 基于证据的GitHub审查
- `/强力迭代` from **power-iterate** — 实施阶段的自主迭代

