第四章:AIの記憶を制御する:.cursorrulesの書き方とContext(コンテキスト)遮蔽テクニック
AIエディター(Cursorなど)をしばらく使っていると、ある現象に気づくでしょう:AIには「デフォルトの頑固さ」があるということです。例えば、古いReactの構文を使いたがったり、Tailwindを使うことを忘れてネイティブCSSでレイアウトしようとしたりします。
この問題を解決するには、AIの「システムメモリ」を制御する方法を深く理解する必要があります。つまり、Vibe Codingの核心となる武器:.cursorrulesファイルと、強力なContext(コンテキスト)遮蔽テクニックです。
.cursorrulesとは?
.cursorrulesはCursorエディター専用の特殊ファイル(通常はプロジェクトのルートディレクトリに配置)で、AIに対する「最高指導原則(System Prompt)」として機能します。
Cursorで質問するたびに、AIは密かに.cursorrulesを読み込んでから回答します。これはAIアシスタントに「社員マニュアル」を与えるようなものです。
完璧な.cursorrulesの書き方
優れた.cursorrulesは長々と書くべきではなく、プロジェクトの技術スタックに合わせて簡潔に制約を記述します。以下はNext.js App Router向けのゴールデンテンプレートです:
# プロジェクト技術スタック
- フレームワーク:Next.js 14+ (App Router)
- 言語:TypeScript
- スタイリング:Tailwind CSS
- UIコンポーネント:Shadcn UI, Framer Motion
- データベース:Supabase (PostgreSQL)
# 開発原則
1. **App Router規格の厳格な使用**:すべてのルーティングは`src/app`下に配置し、旧版の`pages`ルーティングは使用禁止。
2. **Client Components**:`useState`、`useEffect`やインタラクティブイベント(onClick)を使用するコンポーネントでは、ファイル先頭に`"use client";`を必須記載。
3. **Tailwind優先**:カスタムCSSファイルやInline Stylesの使用禁止��すべてTailwind Utility Classesで実装。
4. **型安全**:すべてのAPI ResponseとPropsには厳格なTypeScript Interfaceを定義。`any`の使用禁止。
# 回答スタイル要求
- コードを提示する際は「変更部分」または「完全なファイル」のみを提示し、キーロジックを省略しない。
- 繁体字中国語で回答。
- 解決策を提示する前に、潜在的な問題(Hydration Errorなど)を簡潔に考察。
この内容をプロジェクトルートの.cursorrulesとして保存すれば、AIがあなたの意図を理解するベテラン同僚のように働き始めます!
Context(コンテキスト)遮蔽テクニック
.cursorrulesでグローバルな記憶を制御する以外に、質問時に「AIが過剰にファイルを読み込んで混乱する」問題に直面することがあります。
Cursorではデフォルトで開いているすべてのタブをスキャンしたり、キーワードに基づいてファイルを検索したりします。これが、Header.tsxを修正しているのにFooter.tsxを変更しようとする現象の原因です。
テクニック1:明示的なファイル指定(@ Files)
Cursorのチャットボックスでは、常に習慣として@を使ってAIに読ませるファイルを手動で指定します。
例:
@PricingPage.tsx@PricingCard.tsxPricingPageから渡されるpropsをPricingCardに接続してください。
明示的に指定することで、AIに「この2つのファイル以外は見るな」と指示するのと同じです。これにより集中力が100%向上し、正答率が急上昇します。
テクニック2:不要なノイズの遮蔽(.cursorignore)
AIが絶対に読むべきでないファイルがあります:
package-lock.json.next/- コンパイル済みの
dist/やbuild/
通常Cursorはこれらを自動的に無視しますが、カスタムの巨大なログファイルや一時フォルダがある場合は、.cursorignoreファイル(構文は.gitignoreと同じ)を作成し、貴重なTokenを無駄に消費しないようにします。
テクニック3:会話記憶のクリア(New Chat)
最も見落とされがちなテクニックです。チャットウィンドウの記憶には上限(Context Window)があります。50回のやり取りで3つの異なるBugを解決した後、AIの頭の中には様々な廃棄されたコード断片が蓄積されています。
この状態で4つ目の新しい問題を質問すると、以前の廃棄ロジックが混入する可能性が高くなります。
ベストプラクティス:1タスク、1チャット
独立した小さな機能を完成させGit Commitしたら、迷わずCmd/Ctrl + Lで会話をクリアするか、New Chatを開始します。AIの頭をクリアに保つことが、Vibe Codingで高効率を維持する鍵です。
まとめ
.cursorrulesでプロジェクトの技術スタックと開発規範を固定- 質問時は
@で具体的なファイルを指定し、AIが余計なファイルを読む機会を減らす - 会話を随時クリーンアップし、1タスク1チャットでAIの思考を明晰に保つ
Context制御術をマスターすれば、あなたは単なる「AIユーザー」から「AI指揮官」へと昇格するでしょう!
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション