🎶

Clineの3兄弟をざっくり比較してみた 🧐

に公開

Clineの3兄弟(.clinerules / Memory Bank / .mdc)をざっくり比較してみた 🧐

この記事は “AI と一緒にコーディングしてたらプロンプトがカオス化してきた” 私が、悩みを解決すべく Cline の設定ファイルたちを調べたメモです。専門用語はなるべくゆる〜く解説します。


そもそも何が問題?

  • プロンプト肥大化 🤯
    「とりあえず全部システムプロンプトに詰め込めばいいや」で始めると、数日後には トークン破産 が待ってます。
  • チームで指示がバラバラ 🙅‍♂️
    Git のコードレビューはやるのに、AI への指示は口頭共有? それ、後で泣きます。

解決策として Cline が用意してくれているのが 三種の神器.clinerules, Memory Bank, .mdc です。


.clinerules ― 恒久不変な “社則” ファイル

  • 役割: 絶対に守ってほしい大原則 を書く。

  • 置き場所: プロジェクト直下 or ~/.clinerules/

  • ポイント:

    1. Git でバージョン管理できる → ルールも PR レビュー対象に。
    2. ファイルが 1KB なら読み込みも爆速。
    3. 逆に長文化すると応答遅延の元凶⚠️

✏️ Tips: 複数ファイルに分けたいときは .clinerules/ ディレクトリを作って 01_base.md, 02_security.md…みたいにアルファベット順に並べると良き。


Memory Bank ― AI が忘れっぽい? ならメモ帳を渡そう

  • 役割: 長期記憶。決定事項・進捗ログ・技術メモを Markdown で保管。

  • 構造: memory-bank/ 配下に projectbrief.md, techContext.md など 6 コアファイルが初期生成される。

  • メリット:

    • セッションをまたいでも “前回どこまでやったっけ?” が一瞬で思い出せる。
    • ドキュメント化が勝手に進む → ナレッジ共有がラク。
  • デメリット:

    • 読み込みトークンが 重い。巨大プロジェクトだとコストがヒリヒリ💸
    • 情報が腐ると誤答の温床。定期お掃除は必須!

🚿 お掃除ハック: 週1度 bot に「古い進捗を要約して縮めて」とお願いして自動クリーンアップする仕組みを組むと幸せになれます。


.mdc ― “このフォルダーだけ” ルールを差し込みたいとき

  • 役割: front‑matter(YAML)でメタデータを持つ 細粒度ルール

  • 置き場所: .clinerules/ 内に置くのがベター。

  • 推しポイント:

    1. globs: src/**/*.tsx みたいに対象ファイルを絞れる。
    2. Cursor, RooCode など他 IDE でもそのまま読めるので転用楽ちん。
    3. priority タグで “どのルールが勝つか” を調整可能。
  • 落とし穴:

    • YAML のインデントを 1 つズラしただけで無効化 → プチ発狂案件。
    • ルールファイルが増殖すると管理が地獄。

🎯 早見表でおさらい

.clinerules Memory Bank .mdc
主目的 恒久ルール 長期記憶 部分適用ルール
読み込み頻度 毎タスク1回 複数ファイル 対象操作時のみ
トークンコスト 中〜高
メリット 再現性◎ 忘れない 細粒度&IDE共通
デメリット 冗長化リスク お掃除必須 YAML事故多発

🛠️ 実践レシピ

  1. まずは .clinerules を 1KB 以内で書く
    → “会社の憲法” だけに絞る。

  2. コストが気にならない規模なら Memory Bank を導入

    • ただし週次で progress.md を要約・圧縮する bot を仕込む。
  3. 言語やテスト固有の約束事は .mdc へ分割

    • 例:react-guidelines.mdcglobs: src/**/*.tsx
  4. ルールの衝突は priority: 1 で解決

    • “勝たせたいファイル” ほど数字を小さく。

TL;DR 💡

  • .clinerules = 恒久ルール(軽く・短く)。
  • Memory Bank = AI の長期メモ帳(重いので掃除はマメに)。
  • .mdc = フォルダー別・言語別の拡張ルール(YAMLミス注意)。

三兄弟をうまく使い分けて、プロンプト破産とおさらばしましょう!


それでは良き AI ライフを〜👋

Discussion