Cursorルールを効果的に使用する:ベストプラクティスと一般的な間違い
Cursorの進化に伴い、ルールを適切に実装・管理する方法の理解がますます重要になっています。このガイドでは、一般的な落とし穴を避け、より良いAIアシスタンスのためのルール設定を最適化する方法を説明します。
重要なポイント
- モダンなルール実装には
.cursor/rules
ディレクトリ内の.mdc
ルールを使用 - ルールはシンプルで焦点を絞ったものに
- 繰り返されるAIの間違いに対して特定のルールを作成
- より良い追跡のために可視性ルールを実装
- プロジェクト固有の規約に従う
モダンなルー ル実装
.cursorrules から .mdc への移行
.cursorrules
形式は.mdc
ルールに置き換えられつつあります。以下が移行方法です:
- 既存のルールの特定
# .cursorrules ファイルの一覧表示
find . -name ".cursorrules"
- ルールの変換
# 古い .cursorrules 形式
USE_TYPESCRIPT=true
FOLLOW_STYLE_GUIDE=true
# 新しい .mdc 形式
rule "typescript_usage" {
description = "TypeScriptの使用を強制"
when = "新しいファイルを作成する時"
then = "すべての新規ファイルにTypeScriptを使用"
}
rule "style_guide" {
description = "プロジェクトのスタイルガイドに従う"
when = "コードの作成または修正時"
then = "プロジェクトのスタイルガイドラインに準拠"
}
- 移行の検証
# .mdc ルールが適用されているか確認
/rules status
.mdc ルールの使用
現在推奨されるアプローチは、.cursor/rules
ディレクトリ内で.mdc
ルールを使用することです。.cursorrules
ファイルは引き続き機能しますが、レガシーとみなされ、モダンな.mdc
形式はCursorのAI機能とより良い統合を提供します。
.cursor/
rules/
code-style.mdc
documentation.mdc
testing.mdc
ルール構造のベストプラクティス
-
ルールはシンプルで焦点を絞る
- 異なる関心事には別々のルールファイルを作成
- 無関係なルールを1つのファイルに組み合わせない
- ルールファイルには明確で説明的な名前を使用
-
反復的なルール開発
- AIの応答をモニタリングしパターンを特定
- 繰り返される間違いに気付いたら新しいルールを作成
- 実際の使用に基づいて既存のルールを改良
-
プロジェクト固有のルール
- プロジェクトのコーディング標準にルールを合わせる
- フレームワーク固有の要件を考慮
- ルールの目的と期待を文書化
避けるべき一般的な間違い
-
ルールの複雑化
- 1つのルールで多くのケースを扱おうとしない
- 保守が難しい複雑な 条件ロジックを避ける
- ルール定義は明確で簡潔に
-
ルールの可視性を無視
- 何が適用されているかを追跡するために可視性ルールを有効化
- ルールの効果をモニタリング
- 実際の使用パターンに基づいてルールを調整
-
ルールを更新しない
- 定期的にルールをレビューし更新
- 古くなった不要なルールを削除
- プロジェクトの進化に合わせてルールを維持
ルール管理のベストプラクティス
-
組織化
.cursor/rules/
style/
formatting.mdc
naming.mdc
testing/
unit-tests.mdc
integration-tests.mdc
documentation/
comments.mdc
api-docs.mdc -
バージョン管理
- ルールをバージョン管理に含める
- コミットメッセージにルールの変更を記録
- コードレビュー時にルールの変更をレビュー
-
チームコラボレーション
- 効果的なルールをチームメンバーと共有
- チーム全体のルール規約を確立
- ルールの使用方法と期待を文書化
ルールの例
コードスタイルルール
# style/formatting.mdc
rule "consistent-formatting" {
description = "一貫したコードフォーマットを強制"
when = "コードのフォーマット時"
then = "プロジェクトスタイルガイドに従う:
- 2スペースインデント
- 開き波括弧は同じ行に配置
- 演算子の周りにスペースを追加"
}
ドキュメントルール
# documentation/comments.mdc
rule "function-documentation" {
description = "適切な関数ドキュメントを確保"
when = "関数の作成または修正時"
then = "以下を含める:
- 関数の目的
- パラメータの説明
- 戻り値の説明
- 複雑な場合は使用例"
}
テストルール
# testing/unit-tests.mdc
rule "test-coverage" {
description = "テストカバレッジ基準を維持"
when = "新機能の実装時"
then = "以下を満たすユニットテストを作成:
- すべてのコードパスをカバー
- エッジケースを含める
- AAAパターンに従う
- 意味のあるテスト名を使用"
}
エラー処理ルール
# error-handling/exceptions.mdc
rule "error-handling" {
description = "エラー処理の標準化"
when = "エラー処理の実装時"
then = "エラー処理ガイドラインに従う:
- カスタムエラークラスを使用
- エラーコンテキストを含める
- 適切な詳細をログに記録
- エラーチェーンを維持"
}
ルールのデバッグと検証
1. ルールのテスト
# 特定のルールをテスト
/rules test style/formatting.mdc
# すべてのルールをテスト
/rules test-all
2. ルールの検証
# ルール構文を検証
/rules validate style/formatting.mdc
# ルールの競合をチェック
/rules check-conflicts
3. ルール監視
# ルールの適用を監視
/rules monitor
# ルール統計を表示
/rules stats
トラブルシューティング
ルールの適用に問題が発生した場合:
- ルールの構文とフォーマットを確認
- ルールファイルの場所と名前を確認
- Cursorがルールを読み込んでいることを確認
- AIの応答でルールが適用されているか監視
- ルールデバッグツールを使用
- ルール適用ログを確認