thinking-first-principles について
独立した根拠に基づいて制約を検証し、解決策を組み立て直す思考スキルです。慣例が必要条件と誤認されている可能性のある設計や実現性の検討に向いています。
主な機能
- 01根拠に応じた制約の分類
- 02問題の基本要素への分解
- 03裏付けのない仮定の除外
- 04解決策の再構築と検証
- 05低コストな反証テストの設定
活用シーン
- 01慣例に基づく高コスト設計の再検討
- 02既存の前提にとらわれない新規設計
- 03実現性の主張を根拠に照らして検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tjboudreaux/ cc-thinking-skills --skill thinking-first-principlesインストール後、Claude Code で/thinking-first-principlesを入力して読み込まれたか確認します。
詳細
第一原理
前提とされている制約を取り除き、独立して裏付けられた基本要素から再構築します。慣例が機能しない、または人為的に高コストに見える場合は、類推から脱却します。
使用する場合
- 「コストが高すぎる」「不可能」「いつもこのやり方で行っている」など、独立した裏付けがないまま制約が固定事項として扱われている場合。
- 慣例や類推が機能しない、進展を妨げている、または小幅な派生案しか生み出さない場合。
- グリーンフィールド設計で、業界標準の初期設定に誤った要件が紛れ込む可能性がある場合。
- コストや実現可能性に関する主張が、物理学、数学、または測定されたニーズではなく、価格設定、先例、権威に基づいている場合。
使用しない場合
- 制約が実証済みの物理法則、厳格な規制、または測定された容量である場合 → 受け入れたうえで、その範囲内で最適化します。
- 実績のある標準ライブラリ、プロトコル、または信頼性の高い既知のパターンがすでに適合する場合 → それを使い、再導出しません。
- 時間が重要なインシデントの場合 → 最も可能性の高い原因にまず対処し、第一原理に基づく再構築はインシデント後の再設計に回します。
- 誤った制約の兆候がなく、稼働中のシステムを段階的に磨き上げる場合 → 省略します。
手順
- 問題と、主張されている制約を明示します。 固定事項として扱われているあらゆる制限(コスト、規模、技術スタック、プロセス、「X を使わなければならない」など)を列挙します。
- 各制約を分類します。
physics/math、regulation/contract、measured fact、convention/analogy/authorityのいずれかのタグを付けます。慣例を裏付ける証拠がない限り、最初の3つだけを拘束条件として残します。 - 基本要素に分解します。 必要な入力、保存則や計算量の限界、真に譲れない条件を洗い出します。ベンダーの価格設定や競合他社の先例ではなく、独立した裏付け(測定、導出、一次要件)を求めます。
- 裏付けのない前提を捨てます。 慣例のタグが付いた項目ごとに、それが誤りだと判定できる条件を明示します。裏付けのないものは破棄するか、再交渉します。
- 残った基本要素だけから再構築します。 拘束条件を満たし、人為的な制約を無視する、最もシンプルな解決策を選びます。類推に頼るより、汎用の入力と少ない構成要素を優先します。
- 検証して終了します。 現実の物理法則、契約、測定されたニーズと照らして確認します。最も低コストで実施できる打ち切りテストを定めます。筋の通った再構築と、それを判別できる検証が得られた時点、または実証済みの厳格な制約だけが残った時点で終了します。
出力
第一原理に基づく再構築を出力します。
claimed_constraints:分類タグ付きの一覧primitives:独立して裏付けられた事実のみdiscarded_assumptions:破棄した慣例とその理由rebuild:基本要素だけから導いた解決策binding_residuals:残る実際の制限kill_test:再構築を反証する、最も低コストの確認方法
検証
- 独立性の確認: すべての基本要素に、先例だけではなく、測定、導出、または一次要件を示す必要があります。
- 類推の持ち込み禁止: 基本要素なしに「他者のやり方」を再構築が依然として前提としている場合は、それを取り除きます。
- 制約への誠実さ: 実証済みの物理法則や規制は残します。都合よく無視してはいけません。
- 過剰適用の防止: 実証済みの制約のもとですでに標準的な解決策が最適である場合は、新規性のために再構築しません。
- 終了: 分解 → 分類 → 再構築 → 打ち切りテストを1回行います。新たな証拠がない限り、繰り返しません。
コメント
Markdown 対応