16 KiB
16 KiB
Role Debate
異なる専門性を持つロールが議論し、トレードオフを検討して最適解を導出するコマンド。
使い方
/role-debate <ロール 1>,<ロール 2> [議題]
/role-debate <ロール 1>,<ロール 2>,<ロール 3> [議題]
基本例
# セキュリティ vs パフォーマンスのトレードオフ
/role-debate security,performance
「JWT トークンの有効期限設定について」
# ユーザビリティ vs セキュリティのバランス
/role-debate frontend,security
「2 段階認証の UX 最適化について」
# 技術選定の議論
/role-debate architect,mobile
「クロスプラットフォーム vs ネイティブ開発の選択について」
# 3 者議論
/role-debate architect,security,performance
「マイクロサービス化の是非について」
議論の基本原則
建設的議論の心得
- 相互尊重: 他ロールの専門性と視点を尊重する
- 事実ベース: 感情的反論ではなく、データ・根拠に基づく議論
- 解決志向: 批判のための批判ではなく、より良い解決策を目指す
- 実装重視: 理想論ではなく実現可能性を考慮した提案
論拠の質的要件
- 公式文書: 標準・ガイドライン・公式ドキュメントへの言及
- 実証事例: 成功事例・失敗事例の具体的引用
- 定量評価: 可能な限り数値・指標での比較
- 時系列考慮: 短期・中期・長期での影響評価
議論倫理
- 誠実性: 自身の専門分野の限界も認める
- 開放性: 新しい情報・視点に対する柔軟性
- 透明性: 判断根拠・前提条件の明示
- 責任性: 提案の実装リスクも含めて言及
議論プロセス
Phase 1: 初期立場表明
各ロールが専門視点から独立して意見表明
- 推奨案の提示
- 根拠となる標準・文書の明示
- 想定されるリスク・課題の説明
- 成功指標の定義
Phase 2: 相互議論・反駁
ロール間でのクロス議論
- 他ロール提案への建設的反論
- 見落とされた視点の指摘
- トレードオフの明確化
- 代替案の提示
Phase 3: 妥協点探索
実装可能な解決策の模索
- 各視点の重要度評価
- Win-Win 解決策の検討
- 段階的実装アプローチ
- リスク軽減策の検討
Phase 4: 統合結論
最終的な推奨事項の決定
- 合意された解決策
- 実装ロードマップ
- 成功指標・測定方法
- 将来の見直しポイント
出力フォーマット例
2 ロール議論の場合
ロール議論: 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 分」
妥協点探索:
共通理解:
- ユーザー体験とセキュリティの両立が必要
- リスクレベルに応じた柔軟な対応
- 実装・運用コストの現実的考慮
Win-Win 要素:
- リフレッシュトークン機構の活用
- リスクベース認証の段階的導入
- 自動ログアウト機能による補完
統合結論:
「30 分有効期限 + リフレッシュトークン + リスクベース認証」
実装詳細:
1. アクセストークン: 30 分有効期限
2. リフレッシュトークン: 7 日有効期限
3. 高リスク操作: 15 分で強制再認証
4. 無操作 30 分で自動ログアウト
段階的実装:
週 1-2: 基本的な 30 分トークン実装
週 3-4: リフレッシュトークン機構追加
月 2: リスクベース認証の導入
成功指標:
- セキュリティ: インシデント発生率 < 0.1%
- パフォーマンス: API 負荷増加率 < 20%
- UX: ユーザー満足度 > 85%
将来の見直し:
- 3 ヶ月後: 実際の攻撃パターン・負荷状況を評価
- 6 ヶ月後: より洗練されたリスクベース認証への移行検討
3 ロール議論の場合
ロール議論: Architect vs Security vs Performance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
議題: マイクロサービス化の是非
Architect ロールの主張:
「段階的マイクロサービス化を推奨」
根拠: ドメイン境界の明確化、独立したデプロイ、技術選択の自由度
Security ロールの懸念:
「サービス間通信のセキュリティ複雑化」
根拠: API Gateway、mTLS、分散認証の管理コスト
Performance ロールの懸念:
「ネットワーク通信によるレイテンシ増加」
根拠: 内部 API 呼び出しによる N+1 問題、分散トランザクション
3 者議論:
Architect → Security: 「API Gateway で集中管理により統制可能」
Security → Architect: 「単一障害点となるリスク」
Performance → Architect: 「サービス分割の粒度が重要」
...(議論継続)
統合結論:
「ドメイン駆動設計による段階的分割 + セキュリティファースト設計」
効果的な議論パターン
技術選定
/role-debate architect,performance
「データベース選択: PostgreSQL vs MongoDB」
/role-debate frontend,mobile
「UI フレームワーク: React vs Vue」
/role-debate security,architect
「認証方式: JWT vs Session Cookie」
設計判断
/role-debate security,frontend
「ユーザー認証の UX 設計」
/role-debate performance,mobile
「データ同期戦略の最適化」
/role-debate architect,qa
「テスト戦略とアーキテクチャ設計」
トレードオフ問題
/role-debate security,performance
「暗号化レベル vs 処理速度」
/role-debate frontend,performance
「リッチ UI vs ページ読み込み速度」
/role-debate mobile,security
「利便性 vs データ保護レベル」
ロール別議論特性
🔒 Security ロール
議論スタンス:
- 保守的アプローチ (リスク最小化)
- 規則準拠重視 (標準からの逸脱に慎重)
- 最悪ケース想定 (攻撃者視点)
- 長期的影響重視 (技術的負債としてのセキュリティ)
典型的論点:
- "セキュリティ vs 利便性" のトレードオフ
- "コンプライアンス要件の必達"
- "攻撃コスト vs 防御コストの比較"
- "プライバシー保護の徹底"
論拠ソース:
- OWASP ガイドライン
- NIST フレームワーク
- 業界標準 (ISO 27001, SOC 2)
- 実際の攻撃事例・統計
議論での強み:
- リスク評価の精度
- 規制要件の知識
- 攻撃手法への理解
注意すべき偏見:
- 過度な保守性 (イノベーション阻害)
- UX への配慮不足
- 実装コストの軽視
⚡ Performance ロール
議論スタンス:
- データ駆動判断 (測定ベース)
- 効率性重視 (コスト対効果の最適化)
- ユーザー体験優先 (体感速度重視)
- 継続的改善 (段階的最適化)
典型的論点:
- "パフォーマンス vs セキュリティ"
- "最適化コスト vs 効果の投資対効果"
- "現在 vs 将来のスケーラビリティ"
- "ユーザー体験 vs システム効率"
論拠ソース:
- Core Web Vitals メトリクス
- ベンチマーク結果・統計
- ユーザー行動への影響データ
- 業界パフォーマンス標準
議論での強み:
- 定量的評価能力
- ボトルネック特定
- 最適化手法の知識
注意すべき偏見:
- セキュリティの軽視
- 保守性への配慮不足
- プレマチュアオプティマイゼーション
🏗️ Architect ロール
議論スタンス:
- 長期視点重視 (システム進化への配慮)
- バランス追求 (全体最適)
- 段階的変更 (リスク管理)
- 標準準拠 (実証済みパターン優先)
典型的論点:
- "短期効率 vs 長期保守性"
- "技術的負債 vs 開発速度"
- "マイクロサービス vs モノリス"
- "新技術採用 vs 安定性"
論拠ソース:
- アーキテクチャパターン集
- 設計原則 (SOLID, DDD)
- 大規模システム事例
- 技術進化のトレンド
議論での強み:
- 全体俯瞰能力
- 設計パターンの知識
- 長期影響の予測
注意すべき偏見:
- 過度な一般化
- 新技術への保守性
- 実装詳細への理解不足
🎨 Frontend ロール
議論スタンス:
- ユーザー中心設計 (UX 最優先)
- 包摂的アプローチ (多様性配慮)
- 直感性重視 (学習コスト最小化)
- アクセシビリティ標準 (WCAG 準拠)
典型的論点:
- "ユーザビリティ vs セキュリティ"
- "デザイン統一 vs プラットフォーム最適化"
- "機能性 vs シンプルさ"
- "パフォーマンス vs リッチな体験"
論拠ソース:
- UX 研究・ユーザビリティテスト結果
- アクセシビリティガイドライン
- デザインシステム標準
- ユーザー行動データ
議論での強み:
- ユーザー視点の代弁
- デザイン原則の知識
- アクセシビリティ要件
注意すべき偏見:
- 技術制約への理解不足
- セキュリティ要件の軽視
- パフォーマンス影響の過小評価
📱 Mobile ロール
議論スタンス:
- プラットフォーム特化 (iOS/Android 差異考慮)
- コンテキスト適応 (移動中・片手操作)
- リソース制約 (バッテリー・メモリ・通信)
- ストア準拠 (審査ガイドライン)
典型的論点:
- "ネイティブ vs クロスプラットフォーム"
- "オフライン対応 vs リアルタイム同期"
- "バッテリー効率 vs 機能性"
- "プラットフォーム統一 vs 最適化"
論拠ソース:
- iOS HIG / Android Material Design
- App Store / Google Play ガイドライン
- モバイル UX 研究
- デバイス性能統計
議論での強み:
- モバイル特有制約の理解
- プラットフォーム差異の知識
- タッチインターフェース設計
注意すべき偏見:
- Web プラットフォームへの理解不足
- サーバーサイド制約の軽視
- デスクトップ環境への配慮不足
🔍 Analyzer ロール
議論スタンス:
- 証拠重視 (データファースト)
- 仮説検証 (科学的アプローチ)
- 構造的思考 (システム思考)
- バイアス除去 (客観性追求)
典型的論点:
- "相関関係 vs 因果関係"
- "症状対症療法 vs 根本解決"
- "仮説 vs 事実の区別"
- "短期症状 vs 構造的問題"
論拠ソース:
- 実測データ・ログ分析
- 統計的手法・分析結果
- システム思考理論
- 認知バイアス研究
議論での強み:
- 論理的分析能力
- 証拠評価の客観性
- 構造的問題の発見
注意すべき偏見:
- 分析麻痺 (行動力不足)
- 完璧主義 (実用性軽視)
- データ万能主義
議論進行テンプレート
Phase 1: 立場表明テンプレート
【ロール名】の推奨案:
「[具体的な提案]」
根拠:
- [公式文書・標準への言及]
- [実証事例・データ]
- [専門分野の原則]
想定効果:
- [短期的効果]
- [中長期的効果]
懸念・リスク:
- [実装リスク]
- [運用リスク]
- [他分野への影響]
成功指標:
- [測定可能な指標 1]
- [測定可能な指標 2]
Phase 2: 反駁テンプレート
[対象ロール] への反論:
「[対象提案への具体的反論]」
反論根拠:
- [見落とされた視点]
- [対立する証拠・事例]
- [専門分野からの懸念]
代替案:
「[改良された提案]」
妥協可能ポイント:
- [受け入れ可能な条件]
- [段階的実装の可能性]
Phase 3: 統合解決テンプレート
統合解決案:
「[各ロールの懸念を考慮した最終提案]」
各ロールへの配慮:
- [Security]: [セキュリティ要件の満足方法]
- [Performance]: [パフォーマンス要件の満足方法]
- [その他]: [その他要件の満足方法]
実装ロードマップ:
- フェーズ 1 (即座): [緊急対応事項]
- フェーズ 2 (短期): [基本実装]
- フェーズ 3 (中期): [完全実装]
成功指標・測定方法:
- [統合的な成功指標]
- [測定方法・頻度]
- [見直しタイミング]
議論品質チェックリスト
論拠の質
- 公式文書・標準への言及がある
- 具体的な事例・データが提示されている
- 推測と事実が明確に区別されている
- 情報源が明示されている
議論の建設性
- 相手の提案を正確に理解している
- 感情的でなく論理的な反論
- 代替案も提示している
- Win-Win の可能性を探っている
実装可能性
- 技術的実現可能性を考慮
- 実装コスト・期間を見積もり
- 段階的実装の可能性を検討
- リスク軽減策を提示
統合性
- 他分野への影響を考慮
- 全体最適を追求
- 長期的視点を含む
- 測定可能な成功指標を設定
Claude との連携
# 設計文書を元にした議論
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 を先に検討してください