--- name: first-principles description: "設計原則から再考。行き詰まった時に根本から考え直す。前提を疑い、本質的な解決策を探る。トリガー: /first-principles, 原点回帰, 根本から, ゼロベース" user-invocable: true allowed-tools: Read, Grep, Glob, WebSearch model: sonnet --- # First Principles Thinking 行き詰まった時、複雑になりすぎた時に、根本から考え直すためのスキル。 ## いつ使うか - 実装が複雑になりすぎた - 何を作ろうとしていたか見失った - 技術的な解決策に固執している - トレードオフの判断に迷っている - 「なぜこうなっているのか」がわからなくなった ## 思考フレームワーク ### Step 1: 本質的な問題の特定 ```markdown ## 今、何を解決しようとしている? **表面的な問題**: (技術的な実装の話) **本質的な問題**: (ユーザー/ビジネスにとっての価値) **確認質問**: - この問題が解決されると、誰がどう嬉しい? - この機能がなかったら、どんな困りごとがある? ``` ### Step 2: 前提の洗い出しと疑問 ```markdown ## 暗黙の前提 現在の実装で当然としている前提を列挙: 1. [ ] <前提1> → 本当にそうか? 2. [ ] <前提2> → なぜそう思った? 3. [ ] <前提3> → 別の方法はないか? **疑うべき前提**: - 「〜でなければならない」 - 「〜は無理」 - 「みんなそうしている」 - 「前からこうだった」 ``` ### Step 3: 制約の再確認 ```markdown ## 本当の制約 vs 思い込み | 制約 | 種類 | 根拠 | |------|------|------| | 予算 100万円 | 🔒 固定 | 承認済み | | React使用 | ⚠️ 要確認 | 「チームが慣れている」だけ? | | REST API | ⚠️ 要確認 | GraphQLではダメな理由は? | | 1週間で完成 | 🔒 固定 | リリース日決定済み | ``` ### Step 4: ゼロベースでの選択肢 ```markdown ## もし最初からやり直すなら? **制約だけを条件に、白紙から考えた選択肢**: 1. **案A**: - メリット: - デメリット: 2. **案B**: - メリット: - デメリット: 3. **案C(現在の方向性)**: - メリット: - デメリット: **最もシンプルな解決策は?** (機能を削る、別のアプローチ、やらない選択肢) ``` ### Step 5: 判断と次のアクション ```markdown ## 結論 **選択**: 案X **理由**: 1. 2. **捨てるもの**: - **次のアクション**: 1. [ ] 2. [ ] ``` ## 質問リスト 行き詰まった時に自問する質問: ### 問題について - 「そもそも、これは解決すべき問題か?」 - 「問題の定義は正しいか?」 - 「誰のための機能か?」 ### 解決策について - 「最もシンプルな解決策は何か?」 - 「この機能を作らない選択肢は?」 - 「80%の価値を20%の労力で得る方法は?」 - 「完璧でなくていいなら、どうする?」 ### 前提について - 「なぜそう思った?」 - 「それは事実か、推測か?」 - 「逆のことが正しい可能性は?」 - 「5年後もこの前提は有効か?」 ## 出力形式 ```markdown ## First Principles 分析 ### 現状 **やろうとしていること**: **行き詰まっている点**: --- ### 本質 **解決すべき本当の問題**: **成功の定義**: --- ### 前提の検証 | 前提 | 検証結果 | |------|---------| | | ✅ 有効 / ❌ 無効 / ⚠️ 要確認 | --- ### 再考後の選択肢 1. **シンプル案**: 2. **現行案の修正**: 3. **やらない案**: --- ### 推奨 **選択**: