mcpField
M
mikado-method

mikado-method

github.com/bsene開発7145 回インストール1 日前に更新
リポジトリ

mikado-method について

mikado-methodは、依存関係を図にして段階的なリファクタリングを導くスキルです。コードベースの安定を保ちながら、実行可能な葉ノードから目標へ進みます。

主な機能

  1. 01前提条件のマップ作成
  2. 02実行可能なリファクタリング目標の定義
  3. 03前提条件の葉ノードから着手
  4. 04失敗した試行を安定状態へ戻す
  5. 05アトミックな実装手順の計画

活用シーン

  1. 01大規模なリファクタリングの段階分け
  2. 02変更前の依存関係の整理
  3. 03リファクタリング中のコードベース安定化

インストール

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

$npx skills add https://github.com/bsene/skills --skill mikado-method

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

同梱ファイル

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

references/
execution-and-situations.md
graph-building.md
organizational-change.md

詳細

ミカドメソッドスキル

ミカドメソッドを開発者に案内するスキルです。コードベースを常に動作する状態に保ちながら、安全かつ段階的にリファクタリングするための、規律あるグラフ駆動型のアプローチです。


ミカドメソッドとは?

ミカド(棒倒し)ゲームにちなんだ名前です。このゲームでは、山を崩さずに一番上の棒を取り除き、最終的に一番価値の高い底の棒にたどり着く必要があります。ソフトウェアでは、目標(「ミカド」)は依存関係の山の下にあります。このメソッドでは、それらの依存関係を視覚化し、安全に一つずつ解消できるようにします。


基本用語

用語意味
目標ルートノードです。開始地点(現在の状態)と成功基準(「完了」がどのような状態か)の2つを定義する必要があります。どちらかが欠けている目標は実行に移せません。両方を備えた前提条件が見つかるまで分解してください。二重丸を付けます。
前提条件親ノードを完了する前に解決しなければならない依存関係です。
リーフノードこれ以上前提条件がないノードです。すぐに実装しても安全です。
ミカドマップ目標と前提条件からなるツリー全体です。リファクタリングの「セーブデータ」です。
元に戻す安定した状態に戻すために、すべての変更を取り消すことです。マップは残りますが、壊れたコードは残りません。

クイックリファレンスカード

MIKADO LOOP
───────────
① Write goal (root) → circle it twice
② Attempt naively in code
③ Every error = a prerequisite bubble
④ REVERT (always, immediately)
⑤ Pick a leaf → repeat from ②
⑥ Leaf passes cleanly → ask: does this still serve the goal?
   → no: discard, do NOT commit, pick the next leaf
   → yes: commit → prune
⑦ Repeat until goal is reached

RULES
─────
• Never build on broken code
• One atomic change per commit
• No behavior changes in refactoring commits
• Leaves only touch one concern
• The map is the work — protect it

修正すべきよくある間違い

間違い修正
エラーを元に戻さず、その場で修正する「今すぐ元に戻してください。これらのエラーを前提条件のノードとして追加してください。」
壊れたコードの上に変更を積み重ねる「これは基本ルールに反しています。続行する前に、正常な状態に戻してください。」
複数の変更を1つの巨大なコミットにまとめる「リーフノードごとに1つのコミットに分割してください。」
「小さな」リファクタリングではグラフを省略する「3ノードのグラフからでも始めてください。スコープの拡大を防げます。」
テストデータの準備の手間を避けるためにモックを使う「代わりに、テストデータビルダーをミカドグラフのリーフノードとして使ってください。」
長期間維持するリファクタリング用ブランチ「mainで作業してください。何も壊さないリーフだけをコミットしてください。」
正常に動作するという理由だけでリーフをコミットする「テストに合格するだけでは不十分です。実際に目標の達成に役立ちますか?そうでなければ破棄して、次の前提条件に進んでください。」

出力形式

ユーザーがミカドメソッドを適用する際は、必ず次の内容を出力してください。

1. ミカドマップ(Mermaid図)
graph TD
    G(["🎯 GOAL: <goal name>"]) --> P1["Prerequisite A"]
    G --> P2["Prerequisite B"]
    P1 --> L1["🟢 Leaf: step 1"]
    P1 --> L2["🟢 Leaf: step 2"]
    P2 --> L3["🟢 Leaf: step 3"]

現在のリーフには🟢、到達できない前提条件には⬜、完了したノードには✅を使ってください。

2. 順序付きの実装計画

リーフから順に進める手順を番号付きリストで示します。各手順には、アトミックなリファクタリング操作、1行の検証テスト、推奨するコミットメッセージを記載してください。

3. 元に戻すことのリマインダー

安易な試みをした後は、必ず次のように伝えてください。「今すぐ元に戻してください — git restore <touched files> — マップは保存されています。壊れたコードは必要ありません。」(元に戻す対象は、作業したファイルに限定してください。git checkout .では、安易な試みだけでなく、コミットしていない作業がすべて破棄されます。)


必要に応じて読む

読むタイミングファイル
グラフの作成、前提条件の追加、リーフの評価、共有される前提条件の確認グラフの作成
実行順序、コミット戦略、レガシーコード、大規模なリファクタリング、衛生ルール、実行可能な目標ではない場合実行と状況
チーム、プロセス、組織の変革(アジャイル/CIの導入、阻害要因)にミカドメソッドを適用する場合組織の変革

出典


ベンチマーク

シナリオ:.benchmarks/scenarios/mikado-method-001-revert-discipline.md

モデルなしあり差分
claude-opus-4-829%100%+71%
claude-sonnet-4-629%100%+71%
claude-haiku-4-514%57%+43%

合格(2026-06-25に実行)。大幅な改善(opus/sonnetは+71)。ベースラインでは、「必ず元に戻す」「リーフごとに1コミット」「3部構成の出力」を自力で適用できません。haikuはスキルを使っても57%にとどまり(マップと元に戻す指示への準拠が弱い)、haikuを対象とした強調の見直し候補です。.agents/skills/skill-optimizer/rules/release-gates.mdに従ってゲートを適用してください。

コメント