メインコンテンツへスキップ
AIツール活用14 min readPR

.cursorrules 完全ガイド:コピペで使えるReact/Next.js/Node.js テンプレート集【2026】

Cursorの.cursorrulesファイルを徹底解説。React・Next.js・Node.js・TypeScript対応のコピペ可能テンプレートを収録。チームでの共有方法やCLAUDE.mdとの使い分けも解説します。

#cursor#cursorrules#ai#productivity#typescript#react#nextjs

「Cursorを使っているのに、毎回同じことを説明するのが面倒…」

そんな悩みを解決するのが .cursorrules ファイルです。プロジェクトのルートに置くだけで、Cursor の AI があなたのコーディングスタイル・技術スタック・命名規則を自動的に理解してくれます。

この記事でわかること:

  • .cursorrules とは何か・なぜ必要か
  • 基本的な書き方と構文
  • React / Next.js プロジェクト用コピペOKテンプレート
  • Node.js / Express API 用コピペOKテンプレート
  • TypeScript 厳格設定用コピペOKテンプレート
  • チームでの .cursorrules 共有方法
  • Claude Code の CLAUDE.md との使い分け

PR

.cursorrules とは?Cursorのカスタム指示ファイルの役割

.cursorrules は、Cursor AI に対してプロジェクト固有のルールや指示を伝えるための設定ファイルです。

具体的に何をするファイル?

例えば、あなたのプロジェクトで以下のルールがあるとします。

  • TypeScript を厳格モードで使う
  • コンポーネントは関数型のみ(クラスコンポーネント禁止)
  • 変数名はキャメルケース、定数は UPPER_SNAKE_CASE
  • API 呼び出しは axios ではなく fetch を使う

このようなルールを .cursorrules に書いておくと、Cursor AI が自動的にそれに従ったコードを生成してくれます。

.cursorrules がない場合 vs ある場合

なし: 毎回「TypeScript で、関数コンポーネントで、fetchを使って…」と指示する必要がある

あり: ルール自動適用 → 「ログイン機能を作って」と言うだけで適切なコードが生成される

ファイルの配置場所

my-project/
├── .cursorrules        ← ここ(プロジェクトルート)
├── src/
├── package.json
└── ...

基本的な書き方と構文ルール

.cursorrules はプレーンテキスト(Markdown に近いフォーマット)で記述します。

基本構文

# プロジェクト概要
このプロジェクトは〇〇です。

# 技術スタック
- フレームワーク: Next.js 16
- 言語: TypeScript(strict モード)
- スタイリング: Tailwind CSS v4

# コーディング規約
- 変数名: キャメルケース(例: userData)
- 定数: UPPER_SNAKE_CASE(例: API_BASE_URL)
- コンポーネント: パスカルケース(例: UserProfile)

# 禁止事項
- `any` 型の使用禁止
- クラスコンポーネントの使用禁止
- console.log を本番コードに残すことを禁止

効果的な .cursorrules を書く 5 つのポイント

ポイント良い例悪い例
具体的に書くfetchを使う(axiosは使わない)HTTPクライアントを使う
禁止事項を明記any型の使用は禁止型を大切に
スタックを明記Next.js 16 App Router最新のNext.js
例を示す例: const [user, setUser] = useState<User>(例なし)
短く簡潔に300〜500文字2000文字以上(認識精度が下がる)

【コピペOK】React / Next.js プロジェクト用テンプレート

以下をそのままコピーして .cursorrules ファイルに貼り付けてください。

# プロジェクト概要
Next.js 16 + TypeScript + Tailwind CSS v4 を使用した Web アプリケーション。
App Router(src/app/)を使用する。

# 技術スタック
- フレームワーク: Next.js 16(App Router)
- 言語: TypeScript 5.x(strict モード必須)
- スタイリング: Tailwind CSS v4
- 状態管理: React useState / useReducer(必要最小限)
- データフェッチ: React Server Components + fetch
- パッケージマネージャ: npm

# コンポーネント規約
- 関数コンポーネントのみ(クラスコンポーネント禁止)
- Server Components を優先し、必要な場合のみ Client Components を使う
- Client Components には先頭に "use client" ディレクティブを記述
- コンポーネントファイルは PascalCase(例: UserProfile.tsx)
- Props の型は interface で定義(type より interface を優先)

# 命名規約
- 変数・関数: camelCase(例: getUserData)
- 定数: UPPER_SNAKE_CASE(例: API_BASE_URL)
- コンポーネント: PascalCase(例: ArticleCard)
- ファイル名(コンポーネント以外): kebab-case(例: use-auth.ts)

# TypeScript 規約
- any 型の使用禁止(unknown を使うこと)
- 型推論できる場合は型注釈を省略してよい
- 戻り値の型は明示的に書く
- null チェックは optional chaining (?.) を使う

# データフェッチ規約
- fetch API を使う(axios 禁止)
- Server Components でのデータフェッチを優先
- API ルートは src/app/api/ 以下に配置
- エラーハンドリングは try/catch で実装

# 禁止事項
- any 型の使用
- console.log を本番コードに残すこと
- useEffect でデータフェッチすること(Server Componentsを使うこと)
- インラインスタイル(style={{ }})の使用

カスタマイズのポイント

上記テンプレートを使いながら、以下の部分をプロジェクトに合わせて変更してください:

  • フレームワーク: の行(Next.js のバージョン)
  • パッケージマネージャ: の行(npm / yarn / pnpm / bun)
  • 状態管理: の行(Zustand / Jotai 等を使う場合は追記)

【コピペOK】Node.js / Express API 用テンプレート

# プロジェクト概要
Node.js + Express + TypeScript で構築した REST API サーバー。
PostgreSQL(Prisma ORM)をデータベースとして使用。

# 技術スタック
- ランタイム: Node.js 22 LTS
- フレームワーク: Express 5.x
- 言語: TypeScript 5.x(strict モード)
- ORM: Prisma
- バリデーション: zod
- テスト: Vitest + Supertest

# ディレクトリ構成
- src/routes/ : Expressルーター(リソースごとに分割)
- src/controllers/ : リクエスト処理・レスポンス返却
- src/services/ : ビジネスロジック
- src/models/ : Prisma スキーマ・型定義
- src/middleware/ : 認証・バリデーション等
- src/utils/ : 共通ユーティリティ

# コーディング規約
- ルーターは RESTful に設計(GET/POST/PUT/DELETE)
- コントローラーはビジネスロジックを持たない(services に委譲)
- すべての入力値を zod でバリデーション
- エラーはカスタム AppError クラスで統一
- 非同期処理は async/await を使う(Promise.then() 禁止)

# セキュリティ規約
- SQL インジェクション対策: Prisma の parameterized queries を使う
- 認証: JWT(express-jwt)
- CORS: cors ミドルウェアで制限
- 環境変数: process.env から直接使わず、src/config.ts 経由で使う
- パスワード: bcrypt でハッシュ化(平文保存禁止)

# エラーハンドリング
- すべての async 関数は try/catch で囲む
- HTTP ステータスコードを適切に使う(200/201/400/401/403/404/500)
- エラーレスポンスは { error: string, details?: unknown } 形式

# 禁止事項
- any 型の使用
- eval() の使用
- SQL の直接文字列結合(インジェクション対策のため)
- 環境変数をハードコード
- console.log を本番コードに残す(logger を使うこと)

【コピペOK】TypeScript 厳格設定用テンプレート

型安全性を最大化したいプロジェクト向けのテンプレートです。

# TypeScript 厳格モード設定

このプロジェクトはTypeScriptの厳格設定を使用します。

# tsconfig.json の主要設定
- strict: true(全strict系オプションを有効化)
- noImplicitAny: true
- strictNullChecks: true
- noUncheckedIndexedAccess: true(配列アクセスにundefinedを考慮)

# 型定義の規約

## 基本方針
- any の使用を完全禁止。unknown を使い、型ガードで絞り込む
- as によるキャストは最終手段。可能な限り型ガードを使う
- 関数の引数・戻り値の型は必ず明示する

## Union Type vs Enum
- enum は使わない(const assertion または Union Type を使う)
- 良い例: type Status = "pending" | "active" | "deleted"
- 悪い例: enum Status { Pending, Active, Deleted }

## Null 安全性
- null と undefined を厳密に区別する
- null: 意図的な「値なし」(DBのNULLなど)
- undefined: 「まだ設定されていない」「オプショナル」
- ?? と ?. を積極的に使う

## ジェネリクス
- 再利用可能な関数にはジェネリクスを使う
- 良い例: function getFirst<T>(array: T[]): T | undefined
- 型引数名: T(汎用)、TKey/TValue(オブジェクト)、TProps(Reactコンポーネント)

## 型ガード
- isXxx という命名で型ガード関数を定義する
- 良い例: function isUser(value: unknown): value is User

# インポート規約
- 型のみのインポートには import type を使う
- 良い例: import type { User } from "@/types"
- パスエイリアス: @/ でsrcルートを指す

# 禁止事項
- any の使用(eslint-disable でのスキップも禁止)
- // @ts-ignore の使用(// @ts-expect-error に変える)
- Object 型・{} 型の使用(具体的な型を定義する)
- Function 型の使用(具体的な関数シグネチャを書く)

チームでの .cursorrules 共有方法(Git管理のコツ)

.cursorrules はチーム全員が同じルールでAIを使えるよう、Git で管理するのが最善です。

Git に含める設定

# .gitignore には .cursorrules を含めない
# (デフォルトでは無視されないので特に設定不要)
 
# 確認コマンド
git status .cursorrules
# → .cursorrules が tracked になっていることを確認

チーム運用のベストプラクティス

1. ルールの変更はプルリクエストで

# ブランチを作って提案
git checkout -b update-cursorrules
# .cursorrules を編集
git add .cursorrules
git commit -m "feat: .cursorrulesにAPIルール追加"
git push origin update-cursorrules
# PRを作ってレビュー → マージ

2. README にルール変更の方法を記載

## AI コーディングルール
 
このプロジェクトでは `.cursorrules` を使って Cursor AI のルールを管理しています。
 
ルールを変更する場合は PR を作成してチームレビューを受けてください。

3. 個人用ルールはローカル設定で追加

プロジェクト共通の .cursorrules とは別に、個人的なスタイル設定は Cursor の Settings(~/.cursor/settings.json)に追加することで、プロジェクト設定を汚さずにカスタマイズできます。


CLAUDE.md(Claude Code)との使い分け

Claude Code にも同様の機能として CLAUDE.md があります。両者の違いを理解して使い分けましょう。

項目.cursorrulesCLAUDE.md
対象ツールCursor AIClaude Code
ファイル形式プレーンテキストMarkdown
配置場所プロジェクトルートプロジェクトルート / ~/
主な用途コーディングスタイル・命名規則プロジェクト全体の指示・禁止事項
階層設定非対応対応(ディレクトリごとに設定可能)
チーム共有Git で管理Git で管理

両方使う場合の役割分担

Claude Code と Cursor を併用しているチームでは、内容を共有しながら両ファイルを維持するのがおすすめです。

.cursorrules  → Cursor 固有の UI 操作・コンポーネント生成ルール
CLAUDE.md     → Claude Code 固有のターミナル操作・自動化ルール
共通ルール     → 両ファイルに同じ内容を記載(命名規則・禁止事項等)

Cursor の使い方全体については、Cursor AI 完全ガイド もあわせてご覧ください。


よくあるミスと改善パターン

ミス 1:ルールが多すぎる(2000文字超)

# ❌ 悪い例(長すぎて AI が認識しきれない)
TypeScriptのstrictモードを使用し、anyは禁止です。また変数名は...
(延々と続く1000行のルール)

# ✅ 良い例(重要ルールに絞る)
- TypeScript strict モード必須
- any 禁止(unknown を使う)
- 関数コンポーネントのみ
- fetch を使う(axios 禁止)

ミス 2:抽象的すぎる表現

# ❌ 悪い例
クリーンなコードを書いてください。

# ✅ 良い例
- 関数は1つの責任のみ持つ(20行以内を目安)
- マジックナンバーは定数に抽出する

ミス 3:バージョンを書かない

# ❌ 悪い例
React を使用します。

# ✅ 良い例
React 19 + Next.js 16(App Router)を使用します。

ミス 4:チームで共有していない

.cursorrules を個人の .gitignore に入れてしまい、チーム全員にルールが伝わっていないケース。必ず Git で管理してチーム共有しましょう。


まとめ

.cursorrules は一度書けば永続的に効果を発揮する「AIへの設定書」です。

やること効果
技術スタックを明記適切なバージョンのAPIでコード生成
命名規則を指定一貫したコーディングスタイル
禁止事項を書くany型・非推奨パターンを自動回避
Git で管理チーム全員が同じAIルールで開発

まず試すべきテンプレート:

  1. Next.js プロジェクト → 上記の React/Next.js テンプレートをそのままコピー
  2. Node.js API → Node.js/Express テンプレートをコピー
  3. 型安全を重視 → TypeScript 厳格設定テンプレートを追加

Cursor 全体の使い方については Cursor AI 完全ガイド を、Claude Code との比較は AIコーディングツール完全比較 2026 をご覧ください。

PR

関連記事