@haram

Cursor .mdc活用術 — トークンを節約し、フォルダごとのカスタムルールを適用する方法
Cursorでコーディングする際、毎回同じ指示を入力する手間を省こうと、ルールファイルを使っている方は多いでしょう。しかし、すべてのルールを1つのファイルに詰め込むと、質問するたびに貴重なAIコンテキストトークンが無駄に消費されてしまいます。
今や、フォルダや機能ごとにルールを細かく分割して管理する.mdcファイル形式が標準となっています。トークンを確実に節約しつつ、作業中の場所に合わせたルールが自動で適用される、快適な開発環境の作り方を解説します。
常に適用は厳禁 — トークン浪費を防ぐ「2-4-2の法則」
Cursorルールファイル(.mdc)で開発を自動化していると、つい欲が出てあらゆる指示を詰め込みたくなります。しかし、すべての設定をalwaysApply: trueにしてしまうのは危険です。コードを1行修正するたびに、Cursorがプロジェクト内のすべてのルールを読み込んでしまい、膨大なAIトークンが消費されてしまうからです。
この問題をスマートに解決するためにコミュニティで広く使われているのが「2-4-2の法則」です。ルールの性質や使用頻度に応じてファイルを分割して管理する方法です。
まず、プロジェクト全体に常に適用する共通ルール2つを用意します。ポイントは200行以下の軽量なサイズにすることです。コーディングスタイルの規約や主要なフレームワーク一覧など、開発中常に意識すべき基本ガイドのみを常時適用設定にします。
次に、特定のフォルダやファイル単位で自動的に機能する条件付きルール4つを設計します。バックエンドフォルダやフロントエンドコンポーネントなど、特定の作業時のみ適用されるよう設定はオフにしておき、特定のパスパターンを登録することで、そのファイルが開かれた時に自動的に読み込まれるようにします。
残りの特殊ルール2つは、普段はオフにしておき、必要な時だけ手動で活用します。頻繁には使わないデバッグのヒントや、複雑なデプロイチェックリストなどがこれに該当します。普段はコンテキストを占有せず、開発者がチャット欄で@記号を入力して直接呼び出した時のみアクティブになる仕組みです。
このようにルールの役割を賢く分担させることで、Cursorが必要な時にだけリソースを集中させることができ、トークンの無駄を確実に防げます。
気づかないうちに機能しなくなるYAML構文エラーを解消する
ルールを丁寧に書いても、Cursorに無視されているように感じることがあります。エラーメッセージも出ずにルールが反応しない場合、多くはファイル先頭のYAMLフロントマターにおける些細な構文エラーが原因です。
.mdcファイルは、最上部のトリプルダッシュ(---)で囲まれた設定エリアが完全に記述されている必要があります。特に注意すべきルールは以下の通りです。
- ブーリアン値は小文字で:
alwaysApplyの値は必ず小文字のtrueまたはfalseで記述する必要があります。大文字小文字は厳密に区別されるため、先頭を大文字にしたTrueは認識されません。 - パスパターンに空白を含めない: 適用対象を指定する
globs項目は、空白を入れずにカンマでつなぐのが安全です。空白が混ざるとパース時にファイルのマッチングに失敗しやすくなります。 - 要約説明の重要性:
descriptionは120文字以内の1文で要点をまとめてください。alwaysApplyが無効になっている時、Cursorはこの説明を読んでルールをスマートに呼び出すからです。
正しい.mdcファイルのフロントマターの骨組みは、以下のテンプレートを参考にしてください。
---
description: "React 컴포넌트 작성 시 한글 주석 가이드와 코드 스타일 제어"
globs: "src/**/*.tsx,src/**/*.ts"
alwaysApply: false
---
# React 개발 규칙
- 컴포넌트 파일 생성 시 반드시 한글 주석을 활용합니다.
- 공통 유틸리티는 `@/shared/utils` 경로에서만 불러와 사용합니다.最低限の文法を正しく守るだけで、ルールが競合したり無視されたりすることなく、快適にカスタムルールを自動適用できるようになります。
最も近いルールが優先される:フォルダごとのオーバーライドと読み込み順
Cursorは、現在作業中のファイルから最も近い場所にあるルールフォルダを最優先で適用します。例えば、バックエンドフォルダ内のサービスファイルを編集している場合、プロジェクトルートの汎用ルールよりも、バックエンドフォルダ内のルールが先に適用されます。
このように、具体的である下位フォルダのルールが上位フォルダのルールを上書きしてマージされるため、開発環境をフォルダごとにスマートに管理できます。
もし同じフォルダ内で複数のルールが同時に実行される際の競合が心配であれば、ファイル名の付け方を工夫してみてください。Cursorは同一フォルダ内のルールファイルをアルファベット順に読み込みます。
読み込み順を整理するコツは、ファイル名の先頭に数字を付けることです。001-base.mdc、100-frontend.mdcのように整列順序を指定すれば、複雑に絡み合っていたルールが意図した順序で安全に読み込まれます。
小さく明確なルールが、AIをより賢くする
すべての指示を詰め込んだ重いルールファイルを1つ置くよりも、役割を絞った軽量な.mdcファイルを複数置く方がはるかに強力です。今回紹介した2-4-2の法則とディレクトリごとの優先順位を活用して、プロジェクトのルールをスマートにリファクタリングしてみてください。Cursorが不要なコンテキストを読み込んで迷う時間やトークン消費を大幅に減らし、より快適で直感的な開発フローを体験できるはずです。