Files
gh-wasabeef-claude-code-coo…/commands/role-debate.md
2025-11-30 09:05:46 +08:00

572 lines
12 KiB
Markdown

## 角色辩论
不同专业角色进行辩论,考虑权衡取舍并导出最优解的命令。
### 使用方法
```bash
/role-debate <角色 1>,<角色 2> [议题]
/role-debate <角色 1>,<角色 2>,<角色 3> [议题]
```
### 基本示例
```bash
# 安全性 vs 性能的权衡
/role-debate security,performance
"关于 JWT 令牌的有效期设置"
# 可用性 vs 安全性的平衡
/role-debate frontend,security
"关于双因素认证的 UX 优化"
# 技术选型的辩论
/role-debate architect,mobile
"关于 React Native vs Flutter 的选择"
# 三方辩论
/role-debate architect,security,performance
"关于微服务化的必要性"
```
### 辩论的基本原则
#### 建设性辩论准则
- **相互尊重**: 尊重其他角色的专业性和视角
- **基于事实**: 基于数据·证据的辩论,而非情绪化反驳
- **解决导向**: 旨在寻找更好的解决方案,而非为批判而批判
- **重视实施**: 考虑可实现性的提案,而非理想论
#### 论据的质量要求
- **官方文档**: 引用标准·指南·官方文档
- **实证案例**: 具体引用成功案例·失败案例
- **定量评估**: 尽可能使用数值·指标进行比较
- **时间考虑**: 评估短期·中期·长期的影响
#### 辩论伦理
- **诚实性**: 承认自身专业领域的局限
- **开放性**: 对新信息·视角保持灵活性
- **透明性**: 明示判断依据·前提条件
- **责任性**: 包括提案的实施风险
### 辩论流程
### 阶段 1: 初始立场表明
各角色从专业视角独立表达意见
- 提出推荐方案
- 明示依据的标准·文档
- 说明预期的风险·挑战
- 定义成功指标
### 阶段 2: 相互辩论·反驳
角色间的交叉辩论
- 对其他角色提案的建设性反驳
- 指出被忽视的视角
- 明确权衡取舍
- 提出替代方案
### 阶段 3: 妥协点探索
寻求可实施的解决方案
- 评估各视角的重要性
- 考虑双赢解决方案
- 分阶段实施方法
- 考虑风险缓解策略
### 阶段 4: 综合结论
决定最终推荐事项
- 达成共识的解决方案
- 实施路线图
- 成功指标·测量方法
- 未来的审查点
### 输出格式示例
### 2 角色辩论的情况
```text
角色辩论: Security vs Performance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
议题: JWT 令牌的有效期设置
Security 角色的主张:
"推荐 15 分钟的短期有效期"
依据:
- 符合 OWASP JWT Security Cheat Sheet
- 最小化令牌泄露时的损害时间窗口
- 限制攻击者的可用时间
担忧事项:
- 长期有效期使攻击风险呈指数级增长
- 合规要求 (金融系统) 必须使用短期
成功指标:
- 安全事件发生率 < 0.1%
- 平均攻击检测时间 < 5 分钟
Performance 角色的反驳:
"推荐 2 小时的有效期"
依据:
- 参考 Google OAuth 2.0 Best Practices
- 避免频繁重新认证导致的服务器负载增加
- 最小化用户体验 (工作中断)
担忧事项:
- 15 分钟间隔的重新认证使 API 负载增加 8 倍
- 移动环境下连接中断频发
成功指标:
- 保持 API 响应时间 < 200ms
- 服务器 CPU 使用率 < 60%
相互辩论:
Security → Performance:
"安全漏洞的业务损失远大于服务器负载。
例: Equifax 事件造成 7 亿美元损失"
Performance → Security:
"通过刷新令牌机制可以两全其美。
后台更新可确保安全而不损害 UX"
Security → Performance:
"刷新令牌也是攻击目标。需要正确实施"
Performance → Security:
"建议分阶段方法。普通操作 30 分钟,敏感操作 15 分钟"
妥协点探索:
共同理解:
- 需要兼顾用户体验和安全性
- 根据风险级别灵活应对
- 现实考虑实施·运维成本
双赢要素:
- 利用刷新令牌机制
- 逐步引入基于风险的认证
- 通过自动登出功能补充
综合结论:
"30 分钟有效期 + 刷新令牌 + 基于风险的认证"
实施详情:
1. 访问令牌: 30 分钟有效期
2. 刷新令牌: 7 天有效期
3. 高风险操作: 15 分钟强制重新认证
4. 无操作 30 分钟自动登出
分阶段实施:
第 1-2 周: 基本的 30 分钟令牌实施
第 3-4 周: 添加刷新令牌机制
第 2 月: 引入基于风险的认证
成功指标:
- 安全: 事件发生率 < 0.1%
- 性能: API 负载增加率 < 20%
- UX: 用户满意度 > 85%
未来审查:
- 3 个月后: 评估实际攻击模式·负载情况
- 6 个月后: 考虑迁移到更精细的基于风险的认证
```
### 3 角色辩论的情况
```text
角色辩论: Architect vs Security vs Performance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
议题: 微服务化的必要性
Architect 角色的主张:
"推荐分阶段微服务化"
依据: 明确领域边界、独立部署、技术选择自由度
Security 角色的担忧:
"服务间通信的安全性复杂化"
依据: API Gateway、mTLS、分布式认证的管理成本
Performance 角色的担忧:
"网络通信导致延迟增加"
依据: 内部 API 调用导致的 N+1 问题、分布式事务
3 方辩论:
Architect → Security: "通过 API Gateway 集中管理可以控制"
Security → Architect: "成为单点故障的风险"
Performance → Architect: "服务拆分的粒度很重要"
...(辩论继续)
综合结论:
"领域驱动设计的分阶段拆分 + 安全优先设计"
```
### 有效的辩论模式
### 技术选型
```bash
/role-debate architect,performance
"数据库选择: PostgreSQL vs MongoDB"
/role-debate frontend,mobile
"UI 框架: React vs Vue"
/role-debate security,architect
"认证方式: JWT vs Session Cookie"
```
### 设计决策
```bash
/role-debate security,frontend
"用户认证的 UX 设计"
/role-debate performance,mobile
"数据同步策略的优化"
/role-debate architect,qa
"测试策略与架构设计"
```
### 权衡问题
```bash
/role-debate security,performance
"加密级别 vs 处理速度"
/role-debate frontend,performance
"丰富 UI vs 页面加载速度"
/role-debate mobile,security
"便利性 vs 数据保护级别"
```
### 角色别辩论特性
#### 🔒 Security 角色
```yaml
辩论立场:
- 保守方法 (风险最小化)
- 重视规则遵守 (谨慎偏离标准)
- 最坏情况假设 (攻击者视角)
- 重视长期影响 (安全作为技术债务)
典型论点:
- "安全 vs 便利性" 的权衡
- "合规要求的必达"
- "攻击成本 vs 防御成本的比较"
- "隐私保护的彻底性"
论据来源:
- OWASP 指南
- NIST 框架
- 行业标准 (ISO 27001, SOC 2)
- 实际攻击案例·统计
辩论优势:
- 风险评估的精度
- 监管要求的知识
- 对攻击手法的理解
需注意的偏见:
- 过度保守 (阻碍创新)
- 对 UX 的考虑不足
- 忽视实施成本
```
#### ⚡ Performance 角色
```yaml
辩论立场:
- 数据驱动决策 (基于测量)
- 重视效率 (成本效益优化)
- 用户体验优先 (重视体感速度)
- 持续改进 (分阶段优化)
典型论点:
- "性能 vs 安全"
- "优化成本 vs 效果的投资回报"
- "现在 vs 未来的可扩展性"
- "用户体验 vs 系统效率"
论据来源:
- Core Web Vitals 指标
- 基准测试结果·统计
- 对用户行为的影响数据
- 行业性能标准
辩论优势:
- 定量评估能力
- 瓶颈识别
- 优化手法的知识
需注意的偏见:
- 忽视安全性
- 对可维护性考虑不足
- 过早优化
```
#### 🏗️ Architect 角色
```yaml
辩论立场:
- 重视长期视角 (考虑系统演进)
- 追求平衡 (全局优化)
- 分阶段变更 (风险管理)
- 标准遵守 (优先经过验证的模式)
典型论点:
- "短期效率 vs 长期可维护性"
- "技术债务 vs 开发速度"
- "微服务 vs 单体"
- "新技术采用 vs 稳定性"
论据来源:
- 架构模式集
- 设计原则 (SOLID, DDD)
- 大规模系统案例
- 技术演进趋势
辩论优势:
- 全局俯瞰能力
- 设计模式的知识
- 长期影响的预测
需注意的偏见:
- 过度泛化
- 对新技术的保守性
- 对实施细节的理解不足
```
#### 🎨 Frontend 角色
```yaml
辩论立场:
- 用户中心设计 (UX 最优先)
- 包容性方法 (考虑多样性)
- 重视直观性 (最小化学习成本)
- 可访问性标准 (WCAG 准拠)
典型论点:
- "可用性 vs 安全性"
- "设计统一 vs 平台优化"
- "功能性 vs 简洁性"
- "性能 vs 丰富体验"
论据来源:
- UX 研究·可用性测试结果
- 可访问性指南
- 设计系统标准
- 用户行为数据
辩论优势:
- 代表用户视角
- 设计原则的知识
- 可访问性要求
需注意的偏见:
- 对技术约束的理解不足
- 忽视安全要求
- 低估性能影响
```
#### 📱 Mobile 角色
```yaml
辩论立场:
- 平台特化 (考虑 iOS/Android 差异)
- 场景适应 (移动中·单手操作)
- 资源约束 (电池·内存·通信)
- 商店准拠 (审核指南)
典型论点:
- "原生 vs 跨平台"
- "离线支持 vs 实时同步"
- "电池效率 vs 功能性"
- "平台统一 vs 优化"
论据来源:
- iOS HIG / Android Material Design
- App Store / Google Play 指南
- 移动 UX 研究
- 设备性能统计
辩论优势:
- 理解移动特有约束
- 平台差异的知识
- 触摸界面设计
需注意的偏见:
- 对 Web 平台的理解不足
- 忽视服务器端约束
- 对桌面环境的考虑不足
```
#### 🔍 Analyzer 角色
```yaml
辩论立场:
- 重视证据 (数据优先)
- 假设验证 (科学方法)
- 结构思维 (系统思维)
- 偏差排除 (追求客观性)
典型论点:
- "相关性 vs 因果关系"
- "对症疗法 vs 根本解决"
- "假设 vs 事实的区别"
- "短期症状 vs 结构问题"
论据来源:
- 实测数据·日志分析
- 统计方法·分析结果
- 系统思维理论
- 认知偏差研究
辩论优势:
- 逻辑分析能力
- 证据评估的客观性
- 结构问题的发现
需注意的偏见:
- 分析瘫痪 (行动力不足)
- 完美主义 (忽视实用性)
- 数据万能主义
```
### 辩论进行模板
#### 阶段 1: 立场表明模板
```text
【角色名】的推荐方案:
"[具体提案]"
依据:
- [官方文档·标准的引用]
- [实证案例·数据]
- [专业领域的原则]
预期效果:
- [短期效果]
- [中长期效果]
担忧·风险:
- [实施风险]
- [运维风险]
- [对其他领域的影响]
成功指标:
- [可测量指标 1]
- [可测量指标 2]
```
#### 阶段 2: 反驳模板
```text
对 [目标角色] 的反驳:
"[对目标提案的具体反驳]"
反驳依据:
- [被忽视的视角]
- [对立的证据·案例]
- [专业领域的担忧]
替代方案:
"[改进的提案]"
可妥协点:
- [可接受的条件]
- [分阶段实施的可能性]
```
#### 阶段 3: 综合解决模板
```text
综合解决方案:
"[考虑各角色担忧的最终提案]"
对各角色的考虑:
- [Security]: [如何满足安全要求]
- [Performance]: [如何满足性能要求]
- [其他]: [如何满足其他要求]
实施路线图:
- 阶段 1 (立即): [紧急应对事项]
- 阶段 2 (短期): [基本实施]
- 阶段 3 (中期): [完整实施]
成功指标·测量方法:
- [综合成功指标]
- [测量方法·频率]
- [审查时机]
```
### 辩论质量检查清单
#### 论据质量
- [ ] 引用了官方文档·标准
- [ ] 提供了具体案例·数据
- [ ] 明确区分了推测和事实
- [ ] 明示了信息来源
#### 辩论的建设性
- [ ] 准确理解了对方的提案
- [ ] 逻辑而非情绪化的反驳
- [ ] 也提出了替代方案
- [ ] 探索了双赢的可能性
#### 可实施性
- [ ] 考虑了技术可实现性
- [ ] 估算了实施成本·期间
- [ ] 检讨了分阶段实施的可能性
- [ ] 提出了风险缓解策略
#### 综合性
- [ ] 考虑了对其他领域的影响
- [ ] 追求全局优化
- [ ] 包含长期视角
- [ ] 设置了可测量的成功指标
### 与 Claude 的协作
```bash
# 基于设计文档的辩论
cat system-design.md
/role-debate architect,security
"辩论这个设计在安全方面的挑战"
# 基于问题的解决方案辩论
cat performance-issues.md
/role-debate performance,architect
"辩论性能问题的根本解决方案"
# 基于需求的技术选型辩论
/role-debate mobile,frontend
"辩论 iOS·Android·Web 的统一 UI 策略"
```
### 注意事项
- 辩论可能需要时间 (复杂议题需要更长时间)
- 3 个以上角色可能导致辩论发散
- 最终决策请用户参考辩论结果做出
- 紧急性高的问题请先考虑 single role 或 multi-role