mcpField
R
radical-simplification

radical-simplification

github.com/pproencaエージェントワークフロー218130 回インストール11 週間前に更新
リポジトリ

radical-simplification について

複雑なエンジニアリングやプロダクトの問題に取り組むエージェント向けの思考スキルです。問題の捉え直しや分解、理解の検証など9種類の思考法を提供します。

主な機能

  1. 019種類の思考法カテゴリ
  2. 02症状に応じたルール選択
  3. 03問題の再定義と分解
  4. 04最小ケースと境界ケースの分析
  5. 05推論と理解の自己点検

活用シーン

  1. 01過剰に複雑な設計の簡素な案を探す
  2. 02同じ方法の反復で停滞した調査を進める
  3. 03計画に残る未決定事項を明確にする

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill radical-simplification

インストール後、Claude Code で/radical-simplificationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
audit-fermi-sanity-check.md
audit-feynman-technique.md
audit-name-the-confusion.md
clarify-interview-one-at-a-time.md
clarify-prefer-source-over-asking.md
constrain-dimensional-check.md
constrain-name-the-invariant.md
decomp-orthogonal-axes.md
decomp-what-vs-how.md
frame-essential-vs-accidental.md
frame-find-decision-point.md
frame-restate-problem.md
gen-rising-sea.md
invert-assume-failure.md
invert-work-backwards.md
reduce-limit-cases.md
reduce-pareto-compress.md
reduce-toy-case-first.md
transfer-cross-domain-analogue.md
transfer-suspect-vocabulary-lock-in.md

詳細

根本的な単純化 — 複雑な問題を解きほぐすための思考の手立て

複雑な問題を一貫してシンプルな解決策へと導く数学者、物理学者、エンジニアの、文書化された実践手法をまとめたものです。このスキルは手順のリストではなく、思考の手立てを集めたツールボックスです。それぞれの手立ては、複雑さに直面した有能なモデルが陥りがちな特定の誤った思い込みを正します。各手立てはおおむね独立しているため、症状に合ったものを選んでください。

これは、リファクタリング(code-simplifier)、メトリクス設計(deterministic-metric-design)、レビュー(design-review)の上位に位置する思考のレイヤーです。これらのスキルは、形が明らかな成果物に対して方法論を適用します。このスキルは方法論そのものです。つまり、そもそもシンプルな形にたどり着く方法です。

適用するタイミング

次のような場合にこのスキルを使います。

  • ユーザーが、問題が複雑すぎると感じる、チームが堂々巡りしている、またはもっとシンプルな方法があるはずだと言う
  • 提案された設計にパラメーター、依存関係、分岐が積み重なり、過剰設計に感じられる
  • 計画は作成済みだが未解決の決定事項が残っており、エージェントが仮定した答えを確定しようとしている
  • バグ調査で、同じアプローチのバリエーションをいくつか試しても進展がない
  • レビューで、不可避なものではなく偶発的な複雑さ(Brooks)を指摘される
  • 難しいエンジニアリングまたはプロダクトの問題に対するエレガントな解決策を求められる
  • 前向きの探索が行き詰まり、別の視点が必要になる(逆向きに考える、反転する、別の領域から応用する)
  • 流暢に聞こえるものの、掘り下げられると根拠を示せない出力を生成している(ファインマン・テスト)

このスキルは、すでに正しく機能しているコードを整理するためのものではありません。それにはcode-simplifierを使います。このスキルを使うのは、シンプルにする必要があるのがアプローチそのものである場合です。

使い方

9つのカテゴリは、それぞれ独立した思考の手立てです。症状に合った手立てを選びます。

症状選ぶ手立て最初に読むルール
解決方法に違和感がある — 問題の捉え方が間違っているかもしれない枠組みを定めるframe-restate-problem
計画は作成済みだが未解決の決定事項が残っている明確にするclarify-interview-one-at-a-time
ケース、パラメーター、分岐に圧倒されている減らすreduce-toy-case-first
部分同士が絡み合い、変更の影響が波及する分解するdecomp-orthogonal-axes
前向きの探索が指数関数的に膨らむ、または行き詰まっている反転するinvert-work-backwards
システムの構造的な真実を見落としている制約するconstrain-name-the-invariant
現在の語彙の中にとらわれている応用するtransfer-cross-domain-analogue
特定の問題がどうしても解決できない一般化するgen-rising-sea
根拠を示せない流暢な出力を生成している監査するaudit-feynman-technique

各カテゴリの概要と順序の根拠については、references/_sections.mdを参照してください。

ルールのカテゴリ

#カテゴリプレフィックス方法ルール数
1問題を捉え直すframe言い換え、本質と偶発的な要素を切り分け、判断を見つける3
2インタビューを通じて明確にするclarify推奨する回答を添えて一問ずつ質問する。質問する前にソースを読む2
3最小のケースに縮小するreduceおもちゃの例、極限ケース、パレート圧縮3
4直交する軸に沿って分解するdecomp直交する軸、WHAT と HOW2
5探索を逆転させるinvert逆向きに考え、失敗を仮定する2
6不変条件と対称性で制約するconstrain不変条件に名前を付ける、次元チェック2
7別の領域から転用するtransfer領域横断の類例、用語への固執2
8問題が消えるまで一般化するgen上昇する海1
9自分の理解を監査するauditファインマン、混乱に名前を付ける、フェルミチェック3

クイックリファレンス

1. 問題を捉え直す
  • frame-restate-problem — 解決に取りかかる前に、自分の言葉で言い換えます。誤った問題を解いている可能性に、まだ手遅れでない段階で気づけます
  • frame-essential-vs-accidental — ブルックスの区別です。複雑さの要素をそれぞれ、本質的なものか後付けのものかに分類します
  • frame-find-decision-point — 回答によって変わるべき判断を見つけます。文字どおりの質問ではなく、その判断に答えます
2. インタビューを通じて明確にする
  • clarify-interview-one-at-a-time — 設計の分岐を一つずつたどります。すべての質問に推奨する回答を添えることで、ユーザーは回答を考え出すのではなく、提案された方針を確認できます
  • clarify-prefer-source-over-asking — grep、ファイルの読み込み、実行時チェックで分かることなら、それを実行します。ソースからは分からないことだけを尋ねます
3. 最小のケースに縮小する
  • reduce-toy-case-first — 一般化する前に n=1 を完全に解きます。大きな問題の構造が見えてきます
  • reduce-limit-cases — ゼロ、無限大、空、単位元を調べ、設計が劣化する箇所を明らかにします
  • reduce-pareto-compress — 結果の 80% を生み出す入力の 20% に合わせて設計します
4. 直交する軸に沿って分解する
  • decomp-orthogonal-axes — 一方を変えても他方を変える必要がない場合、その軸は適切です。今日の名詞ではなく動詞を使います
  • decomp-what-vs-how — HOW を議論する前に WHAT を書きます。仕様が判断基準になります
5. 探索を逆転させる
  • invert-work-backwards — 順方向の探索が指数関数的になる場合は、ゴールの一歩手前で何が真でなければならないかを考えます
  • invert-assume-failure — 設計を書く前に事後分析を書きます(マンガーの逆転思考)
6. 不変条件と対称性で制約する
7. 別の領域から転用する
8. 問題が解消するまで一般化する
  • gen-rising-sea — グロタンディークの「上昇する海」です。より抽象的なバージョンのほうが簡単な場合もあります。ただし、概念が増えるのではなく、減る場合に限ります。
9. 自分の理解を監査する
  • audit-feynman-technique — 技術的な略記を初心者にもわかる語彙の文に展開します。曖昧な説明が理解の抜けを示します。
  • audit-name-the-confusion — 行き詰まったら、何がわからないのかを言葉にします。同じアプローチの変形を再試行してはいけません。
  • audit-fermi-sanity-check — 答えを出す前に、桁違いの範囲で妥当性を確認します。10 倍の食い違いが手がかりです。

関連スキル

  • code-simplifier — 適切なアプローチがわかった後に使うリファクタリングのパターンです(このスキルの後に、あちらのスキルを使います)。
  • deterministic-metric-design — 指標を考案するという具体的な問題に、この方法論を適用します。
  • design-review — UI をレビューするという具体的な問題に、この方法論を適用します。

作成時の注意

これらの手法は不可欠な要素であり、飾りではありません。各ルールが正すべき誤った既定の考え方は、そのルール自体に記されています。有能なモデルがすでに正しく実行できていることをルールが言い換えているだけなら、そのルールは削除してください。このスキルの網羅性は、ルール数を満たすことでなく、実際の複雑な問題のプロンプトに対する /dev-skill:eval によって実証されます。

コメント