🤖

CursorでAIエディターを制御する設定ファイル入門

に公開

CursorでAIエディターを制御する設定ファイル

はじめに

こんにちは、主にフロントエンドエンジニアのyugoです。
近年、AIエディター「Cursor」を活用する開発者が増えています。Cursorは自然言語で指示を出すだけでコード生成やリファクタリングを行ってくれる便利なツールですが、プロジェクトごとのコーディング規約や命名ルールを反映させたい場合には、**設定ファイル(ルールファイル)**を用いて挙動を細かく制御する必要があります。本記事では、

  • プロジェクト固有の設定ファイルグローバル設定(ユーザー共通ルール) の違い
  • UI上から追加・編集したルールファイルの管理場所
  • 既存プロジェクトをもとにルールを自動生成する方法
    を中心に解説します。

1. Cursorとは?

  • 自然言語プロンプトで「〇〇を実装して」「△△をリファクタリングして」などの指示を出すと、AIがソースコードを生成・編集
  • コード補完だけでなく、テストコード生成やコミットメッセージ作成など、さまざまな開発作業を自動化可能
  • ルールファイル(.mdc形式のMarkdown)を用いることで、プロジェクト独自のコーディングスタイルやファイルパターンごとに異なる指示を設定できる

2. 設定ファイルの種類と用途

CursorでAIの挙動を制御するための設定ファイル(ルールファイル)は、大きく分けて以下の2種類があります。

  1. プロジェクト固有のルールファイル

    • プロジェクトごとに固有のコーディング規約や特徴を記述
    • 該当プロジェクトを開いたときのみ適用される
    • フォルダ構成や使用言語に応じた細かいフィルタリングが可能
  2. グローバル(ユーザー共通)のルール

    • エディタの設定画面(Settings > Rules for AI)から直接登録
    • すべてのプロジェクトで常に適用される
    • 設定ファイルとしてはユーザーの内部設定ストアに保存され、ファイルパスはユーザーから見えない

以下でそれぞれを詳しく見ていきます。


3. プロジェクト固有のルールファイル

プロジェクト固有ルール配置

3.1 配置場所

プロジェクト固有のルールは、プロジェクトルート直下.cursor/ ディレクトリを作成し、その中に配置します。

<プロジェクトルート>/
└── .cursor/
    └── rules/
         ├── typescript-rule.mdc
         ├── test-rule.mdc
         └── ...(必要に応じて複数ファイル可)...
  • rules フォルダ以下の .mdc 拡張子を持つすべてのファイルがルールとして読み込まれます。
  • ファイル名は自由ですが、名前から「何のルールか」が一目でわかるように付けるのがベストプラクティスです(例:typescript-rule.mdc, docs-lint-rule.mdc など)。

3.2 ファイルの書き方(例)

### TypeScript ファイルに対する共通ルール
- glob: "**/*.ts"
  prompt: |
    - このプロジェクトでは TypeScript 4.5 以上を使用する
    - すべての関数に `strict` モードで型アノテーションをつける
    - `eslint --fix` が適用できる形にコードを整形する

### テストフォルダ内のファイル(*.spec.ts)
- glob: "tests/**/*.spec.ts"
  prompt: |
    - Jest を使ったテストコードを生成する際は、必ず `describe` と `it` を分ける
    - 各テストケースにはモックを使用し、外部通信を行わないようにする

3.3 人気記事の例とポイント

ディレクトリツリーやコードスニペットはこう書くと読者が理解しやすいです。

├── src/
│   ├── components/
│   └── services/
├── tests/
└── .cursor/
    └── rules/
        ├── typescript-rule.mdc
        └── test-rule.mdc

4. グローバル(ユーザー共通)のルール設定

グローバルルール登録

4.1 UIからの登録方法

CursorのSettings > Rules for AIから「New Rule」ボタンをクリックすると、UIでルールを入力できます。

4.2 保存場所と仕組み

  • UIで登録したルールは内部設定領域に保存。
  • ユーザーの目に見える形でファイルにはなっていない。
  • 他のプロジェクトにも自動で適用される。
  • バージョン管理が必要なら .cursor/rules/*.mdc を使うとよい。

5. 既存プロジェクトからルールを自動生成する方法

ルール自動生成フロー

  1. Cursorでプロジェクトを開く

  2. コマンドパレットで Generate Cursor Rules を実行

    <実行後のディレクトリ例>
    └── .cursor/
    └── rules/
    ├── typescript-rule.mdc
    ├── test-rule.mdc
    └── docs-rule.mdc

5.1 自動生成例

### TypeScript ファイル (*.ts, *.tsx) ルール
- glob: "**/*.ts?(x)"
  prompt: |
    - TSConfig: “strict”を有効化
    - ESLint: `@typescript-eslint` のルールに準拠
    - Prettier: 80文字幅でフォーマット

### テストフォルダルール
- glob: "src/**/*.test.ts?(x)"
  prompt: |
    - Jestを使用する
    - モック化は `__mocks__` を使う
    - テストは「Arrange / Act / Assert」の順で書く

6. まとめ

本記事では、Cursorの設定ファイルの使い方とAI挙動の制御方法を整理しました。
実務でAIアシストの質を高めたい方は、ぜひ .cursor/rules/ を活用してみてください。

Discussion