メインコンテンツまでスキップ

Cursor でカスタムモードを作成して使用する

Cursor Custom Modes

Cursor では、カスタムエージェントモードを作成できます。これは、特定のタスク、技術スタック、またはコーディング標準に合わせて調整された専用の AI ロールです。このガイドでは、カスタムモードの構築、構成、使用方法について説明します。

カスタムモードとは?​

カスタムモードは:

  • 特定のタスク向けに設計された専用エージェントロール
  • フレームワークや言語に合わせた技術スタック固有のもの
  • コーディング標準を強制するスタイル制約
  • 保存してプロジェクト間で共有できる再利用可能な構成

組み込みモード​

Cursor には、複数の組み込みモードが付属しています:

モード用途ユースケース
General汎用コーディング日常のタスク
Agent自律実行複雑なマルチファイルタスク
AskQ&A説明、学習
Reviewコードレビュー品質チェック

カスタムモードの作成​

ステップ 1:モードの目的を定義する​

モードが何を行うかを決定します:

モード名:フロントエンドテストエキスパート
目的:React コンポーネントの包括的なテストを作成する
技術スタック:React、Jest、React Testing Library
出力:テストファイルとカバレッジレポート

ステップ 2:モードエディタを開く​

  1. 設定 > エージェント設定 > モード に移動
  2. + 新しいモードを作成 をクリック
  3. または Cmd/Ctrl + Shift + M を押す

ステップ 3:モードを構成する​

基本情報​

名前:フロントエンドテストエキスパート
説明:React コンポーネントの包括的なテストを作成する
アイコン:🧪(オプション)
ショートカット:Cmd+Shift+T(オプション)

システムプロンプト​

これはモードの指導的な人格です:

あなたはフロントエンドテストに焦点を当てた QA エキスパートです。

## あなたの責務
- React コンポーネントの包括的なテストを作成する
- 単体テストと統合テストを実装する
- React Testing Library と Jest を使用する
- テスト駆動開発(TDD)の原則に従う

## 出力形式
1. テストの目的を説明するコメント
2. レンダリング、インタラクション、エッジケースをカバーするテスト
3. UI 一貫性のためのスナップショットテスト
4. アクセシビリティテスト(a11y 準拠のため)
5. テスト完了後のカバレッジレポート

## コーディング標準
- すべてのテストに `describe`/`it` ブロックを使用する
- AAA パターン(Arrange-Act-Assert)に従う
- すべてのインタラクションに `screen` オブジェクトを使用する
- セレクターとして `data-testid` を優先する
- すべてのテスト ID に定数を使用する

## カバレッジ要件
- ブランチ:>80%
- 関数:>90%
- 行:>85%
- ステートメント:>85%

ルールファイル(オプション)​

.cursor/rules/testing-expert.mdc を作成:

---
description: 'フロントエンドテストエキスパートルール'
globs: ['**/*.test.{ts,tsx}']
alwaysApply: true
---

## テスト標準

### 各コンポーネントはテストする必要がある
1. 異なる props を使用したレンダリング
2. ユーザーインタラクション(クリック、入力、送信)
3. エッジケース(空の状態、読み込み、エラー)
4. アクセシビリティ属性
5. コールバック関数の実行

### テスト構造
```typescript
describe('ComponentName', () => {
describe('レンダリング', () => {
it('デフォルトの props でレンダリングする必要がある', () => {});
it('カスタムの props でレンダリングする必要がある', () => {});
});

describe('インタラクション', () => {
it('クリック時にクリックイベントを処理する必要がある', () => {});
it('入力時に値を更新する必要がある', () => {});
});

describe('エッジケース', () => {
it('空のデータを処理する必要がある', () => {});
it('読み込み状態を表示する必要がある', () => {});
it('エラー状態を表示する必要がある', () => {});
});
});

カバレッジ閾値​

  • ブランチ:>80%
  • 関数:>90%
  • 行:>85%

### ステップ 4:モードをテストする

コミットする前にモードをテストします:

[フロントエンドテストエキスパート] UserProfile コンポーネントのテストを作成してください。

コンポーネントパス:src/components/UserProfile.tsx


### ステップ 5:保存して有効化する

1. **モードを保存** をクリック
2. モードセレクターで選択
3. 会話を開始

## 高度なカスタマイズ

### フレームワークベースのモード

#### React エキスパートモード

```markdown
## React エキスパートモード

### 技術スタック
- React 18+ with hooks
- TypeScript
- Tailwind CSS
- データ取得には React Query

### コーディング標準
1. すべてのコンポーネントに関数コンポーネントを使用
2. props の定義には TypeScript インターフェースを使用
3. 最適化には React.memo を実装
4. すべての副作用には useEffect を使用
5. ロジックにはカスタムフックを使用

### ファイル構造

src/ components/ ComponentName/ index.tsx ComponentName.tsx ComponentName.test.tsx types.ts hooks/ useComponentName.ts


### 出力形式
1. 型付きコンポーネントファイル
2. 単体テスト
3. Storybook ストーリー(該当する場合)
4. ドキュメントコメント

API 開発モード​

## API 開発モード

### 技術スタック
- Node.js + Express
- TypeScript
- Prisma ORM
- Zod バリデーション

### コーディング標準
1. リクエストのバリデーションには Zod スキーマを使用
2. すべてのエンドポイントに適切なエラーハンドリングを実装
3. すべての API レスポンスに一貫した形式を使用
4. レート制限を実装
5. すべてのエンドポイントに swagger ドキュメントを追加

### ファイル構造

src/ routes/ entity/ index.ts entity.controller.ts entity.service.ts entity.validator.ts entity.types.ts


### 出力形式
1. バリデーション付きコントローラー
2. ビジネスロジックを含むサービス層
3. ルート定義用のインデックスファイル
4. データベースアクセス用のリポジトリパターン

ツール付きモード​

データベースマイグレーションモード​

## データベースマイグレーションエキスパート

### ツール
- Prisma Migrate
- Drizzle ORM
- TypeORM

### ワークフロー
1. 現在のスキーマを分析
2. マイグレーションファイルを作成
3. ロールバックスクリプトを生成
4. データの整合性を確認
5. シードデータを更新

### 出力形式
1. マイグレーション SQL ファイル
2. ロールバックスクリプト
3. マイグレーションログ
4. 検証クエリ

チェック制約付きモード​

セキュリティ監査モード​

## セキュリティ監査モード

### 焦点
- OWASP Top 10
- 入力検証
- 認証/認可
- データ保護

### ワークフロー
1. 一般的な脆弱性をスキャン
2. インジェクションリスクを特定
3. 認証の欠陥をチェック
4. データの露出をレビュー
5. セキュリティレポートを生成

### 出力形式
1. 重大度でソートされた脆弱性リスト
2. 影響を受けるファイルと場所
3. 推奨される修正
4. コード例
5. セキュリティテストケース

モードの切り替え​

手動切り替え​

  1. チャットのモードセレクターをクリック
  2. ドロップダウンからモードを選択
  3. タスクを開始

自動切り替え​

ファイルタイプに基づいてモードを自動的に切り替えるルールを使用:

---
description: 'コンテキストベースの自動モード切り替え'
globs: ['**/*.test.{ts,tsx}']
alwaysApply: true
---

このコンテキストで作業する場合、**フロントエンドテストエキスパート** モードに切り替えてください。
テスト標準とカバレッジ要件に従ってください。

ワークフローの組み合わせ​

複数のモードを組み合わせたワークフローを作成:

# ステップ 1:アーキテクトモードを使用
[アーキテクト] ユーザ管理用の API エンドポイントを設計してください。

# ステップ 2:API 開発モードを使用
[API 開発] ステップ 1 で設計したエンドポイントを実装してください。

# ステップ 3:テストモードを使用
[フロントエンドテストエキスパート] API クライアントのテストを作成してください。

# ステップ 4:レビューモードを使用
[レビュー] すべての変更の品質をレビューしてください。

モードの共有​

モードのエクスポート​

# モード構成をエクスポート
cursor mode:export frontend-testing-expert > frontend-testing-expert.json

モードのインポート​

# モード構成をインポート
cursor mode:import frontend-testing-expert.json

チームでの共有​

  1. モードファイルを .cursor/modes/ に保存
  2. バージョン管理にコミット
  3. チームメンバーがインポート
  4. すべてのプロジェクトで標準化

モードテンプレートライブラリ​

テンプレート 1:コードレビュアー​

## コードレビューエキスパート

### 焦点
- コード品質
- パフォーマンス
- メンテナンス性
- ベストプラクティス

### レビュー基準
1. コードはプロジェクトのスタイルに従っている
2. 関数は十分に小さく、焦点が絞られている
3. 変数の命名が明確である
4. エラーハンドリングが適切である
5. コードの重複がない
6. パフォーマンスが最適化されている

### 出力形式
1. 総合品質スコア
2. 具体的な問題と行番号
3. 改善提案
4. リファクタリング例
5. ポジティブフィードバック

テンプレート 2:ドキュメント作成者​

## テクニカルドキュメント作成者

### 焦点
- API ドキュメント
- README ファイル
- コードコメント
- 使用ガイド

### 標準
1. すべての公開 API にドキュメントがある
2. README にセットアップ手順が含まれている
3. コードにインラインコメントがある
4. 例が提供されている
5. 変更ログが維持されている

### 出力形式
1. 例付き Markdown ドキュメント
2. JSDoc/TypeDoc コメント
3. README セクション
4. 変更ログエントリー
5. 使用ガイド

テンプレート 3:パフォーマンスオプティマイザー​

## パフォーマンス最適化エキスパート

### 焦点
- ランタイムパフォーマンス
- メモリ使用量
- ビルド最適化
- ネットワーク効率

### 分析
1. ボトルネックの特定
2. メモリ使用量の分析
3. ビルド出力のレビュー
4. ネットワークリクエストの確認
5. 読み込み時間の測定

### 最適化
1. コード分割
2. レイジーロード
3. キャッシュ戦略
4. リソース圧縮
5. クエリ最適化

### 出力形式
1. パフォーマンスベースライン
2. ボトルネック分析
3. 最適化提案
4. 実装計画
5. 測定結果

ベストプラクティス​

モード設計​

  1. 具体的:単一の目的に焦点を当てる
  2. 制約:明確な制限を定義する
  3. テスト可能:検証基準を含める
  4. 記録:意思決定プロセスを説明する

プロンプトエンジニアリング​

## 効果的なモードプロンプト構造

### ロール定義
- あなたは誰か
- あなたの専門知識
- あなたの制約

### ワークフロー
- 従うステップ
- 意思決定点
- 品質基準

### 出力形式
- 応答構造
- 含める内容
- 使用する規約

### 制約
- 必ず行うべきこと
- 絶対に行ってはいけないこと
- 品質基準

関連リソース​