【個人用メモ】Cursor説明

## Cursorのシンボル機能（2025年5月時点）

| シンボル      | 概要・用途                                                                                      | 例・構文                      |
|--------------|-----------------------------------------------------------------------------------------------|-------------------------------|
| `@Files`     | 特定のファイルの内容をAIに参照させる                                                            | `@main.py` `@src/utils.ts`    |
| `@Folders`   | 特定フォルダ内のファイル一覧や構造をAIに参照させる                                               | `@src/` `@tests/`             |
| `@Code`      | 特定の関数・クラス・コードブロックを参照させる                                                   | `@MyComponent`                |
| `@Docs`      | プロジェクト内のドキュメントを参照させる                                                        | `@README.md`                  |
| `@Git`       | Gitリポジトリのコミットや履歴などを参照させる                                                    | `@git`                        |
| `@Codebase`  | プロジェクト全体のコードベースをAIの参照対象にする                                               | `@Codebase`                   |
| `@Web`       | ウェブ上の情報や外部リソースを参照させる                                                        | `@Web`                        |
| `@Chat`      | チャット履歴をAIのコンテキストに追加し、過去の議論やバグ報告などを参照できる                     | `@Chat`                       |

- シンボルはチャット欄やAIプロンプトで `@` から始めて指定します
- 外部ドキュメントや独自サイトもカスタムDocとして登録・参照可能です

---

## Cursorの主なショートカットキー一覧（2025年5月時点）

| 機能                        | macOS                         | Windows/Linux               |
|-----------------------------|-------------------------------|-----------------------------|
| Chatを開く                  | Cmd + I                       | Ctrl + I                    |
| 選択コードでChatを開く       | Cmd + Shift + I               | Ctrl + Shift + I            |
| コマンドパレット            | Cmd + K / Cmd + Shift + P     | Ctrl + K / Ctrl + Shift + P |
| コード生成（AI依頼）        | Cmd + K                       | Ctrl + K                    |
| コード説明                  | Cmd + K → "explain"           | Ctrl + K → "explain"        |
| 型追加                      | Cmd + K → "add types"         | Ctrl + K → "add types"      |
| テスト作成                  | Cmd + K → "add tests"         | Ctrl + K → "add tests"      |
| リファクタ                  | Cmd + K → "refactor"          | Ctrl + K → "refactor"       |
| デバッグ                    | Cmd + K → "debug"             | Ctrl + K → "debug"          |
| ファイル名検索              | Cmd + P                       | Ctrl + P                    |
| シンボル検索                | Cmd + Shift + O               | Ctrl + Shift + O            |
| ファイル内検索              | Cmd + F                       | Ctrl + F                    |
| 全ファイル検索              | Cmd + Shift + F               | Ctrl + Shift + F            |
| ターミナル開閉              | Cmd + J                       | Ctrl + J                    |
| サイドバー開閉              | Cmd + B                       | Ctrl + B                    |
| タブ切り替え                | Cmd + Shift + ] / [           | Ctrl + Shift + ] / [        |
| AIリファクタ提案            | Cmd + Shift + R               | Ctrl + Shift + R            |
| AIドキュメント生成          | Cmd + Shift + D               | Ctrl + Shift + D            |
| Cursor Tab機能オン/オフ     | カスタム設定例: Ctrl + Cmd + T| カスタム設定例: Ctrl + Alt + T|

- コマンドパレット（Cmd/Ctrl + Shift + P）から「Keyboard Shortcuts」で割り当て変更が可能です[

---

もちろんです！Cursorでのコードレビュー方法を、実際の流れや使い方に沿って、わかりやすくまとめ直します。

---

## Cursorでのコードレビュー方法（2025年5月版）

### 1. コミット前のレビュー（作業中のコードをレビューしたい場合）

#### 方法A：今編集しているファイルや選択範囲をレビュー
1. **レビューしたいコードを選択**（もしくはファイル全体を開く）
2. **ショートカットでAIレビューを呼び出す**
   - Mac: `Cmd + K` →「review」と入力
   - Win: `Ctrl + K` →「review」と入力
3. **AIに「この部分をレビューして」と依頼**  
   例：「この関数のバグがないかレビューして」

#### 方法B：変更した部分（差分）だけをレビュー
1. **ターミナルで変更差分を出力**
   ```bash
   git diff > diff.txt
   ```
2. **diff.txtをCursorで開き、AIにレビューを依頼**
   - 例：「このdiffの内容をレビューしてください」

---

### 2. コミット後のレビュー（既にコミットした内容をレビューしたい場合）

#### 方法A：直近のコミット内容をレビュー
1. **ターミナルで直近コミットの差分を出力**
   ```bash
   git show HEAD > last_commit.diff
   ```
2. **last_commit.diffをCursorで開き、AIにレビューを依頼**

#### 方法B：ブランチやPull Requestの差分をレビュー
1. **比較したいブランチ間の差分を出力**
   ```bash
   git diff main..feature-branch > branch.diff
   ```
2. **branch.diffをCursorで開き、AIにレビューを依頼**

---

### 3. その他の便利なレビュー方法

- **特定のフォルダやファイルだけをレビューしたい場合**  
  例：「@src/components/ ディレクトリ内の変更だけレビューして」
- **セキュリティやパフォーマンスなど観点を指定したい場合**  
  例：「この変更にセキュリティ上の問題がないか確認して」

---

### 4. チームでのレビュー活用例

- **Mermaid記法でガントチャートや設計図をレビュー**  
  例：「このMermaidコードのタスク順序が妥当かレビューして」
- **レビュー結果をMarkdownやドキュメントとして保存**  
  例：「レビュー結果をREADMEに追記して」

---

## ポイントまとめ

- **コミット前**は「今編集している部分」や「未コミットの差分」をAIに見せてレビュー依頼
- **コミット後**は「コミットの差分」や「ブランチ間の差分」をAIに見せてレビュー依頼
- **レビュー観点**（バグ、セキュリティ、パフォーマンスなど）は自由に指定できる
- **差分ファイル（diff）を作ってAIに渡す**のが一番確実で便利

---

### 参考コマンド・例

```bash
# 作業中の差分をdiffファイルに出力
git diff > diff.txt

# 直近コミットの差分をdiffファイルに出力
git show HEAD > last_commit.diff

# ブランチ間の差分をdiffファイルに出力
git diff main..feature-branch > branch.diff
```



.cursorrulesは、AIコードエディタ「Cursor」で使用される特別な設定ファイルで、プロジェクトごとの開発ルールやコーディングスタイル、命名規則、推奨ライブラリ、禁止事項などを明文化し、AIのコード生成や提案内容をプロジェクトの方針に合わせてカスタマイズするためのものです。

---

## .cursorrulesの主な役割

- **プロジェクト固有のルール設定**  
  変数や関数の命名規則、コンポーネントのスタイル、使用するライブラリ、テストディレクトリの場所など、プロジェクト特有のルールをAIに伝えます。

- **AIの動作・提案内容の調整**  
  ルールを記述することで、AIが生成するコードや提案内容がプロジェクトのコーディングスタンダードやベストプラクティスに沿うようになります。

- **チーム開発の一貫性向上**  
  ルールをチーム全体で共有することで、誰がコードを書いても一貫したスタイル・品質が保たれます。新メンバーもすぐにプロジェクトのルールを理解できます。

- **生産性・学習コストの最適化**  
  AIがプロジェクトに最適化された提案をするため、手動修正や調整が減り、開発効率が向上します。また、AIを通じてベストプラクティスを学ぶこともできます。

.cursorrulesファイルの作成・使い方は以下の通りです。

---

## 1. ファイルの作成

- プロジェクトのルートディレクトリに「.cursorrules」という名前のテキストファイルを作成します[1][3][4][5][6]。
- ターミナルで作成する場合は  
  ```bash
  touch .cursorrules
  ```

---

## 2. ルールの記述

- .cursorrulesファイルには、プロジェクト固有のコーディングルールやスタイルガイド、AIへの指示を記述します。
- 記述方法はプレーンテキスト、JSON、あるいは簡潔な命令文でOKです。

**記述例（プレーンテキスト）**  
```
Use camelCase for variables and function names
Use PascalCase for React components
Do not use console.log; use src/utils/logger.ts instead
Place all tests in the __tests__ directory
Use Zod for all schema validation
Avoid declaring any type in TypeScript
```
**記述例（JSON形式）**  
```json
{
  "name": "ls -R customization",
  "description": "Customize ls -R output",
  "rules": [
    {
      "command": "ls -R",
      "output_format": "{directory}:{files}"
    }
  ]
}
```
- ルールはプロジェクトやチームの方針に合わせて自由にカスタマイズできます。

---

## 3. ファイルの適用

- Cursorエディタでプロジェクトを開くと、自動的に.cursorrulesが読み込まれ、AIによるコード生成や提案内容に反映されます。
- もし適用されていない場合は、Cursorの設定画面で「Include .cursorrules file」を有効にしてください。
- ルールを変更した場合は、Cursorを再起動するかプロジェクトを開き直すことで反映されます。
。

以下は、**Laravelプロジェクト**で使うことを想定した日本語の.cursorrulesファイル例です。  
実際のプロジェクトの方針やチーム文化に合わせて、自由に加筆・修正してください。

---

## 4. .cursorrulesの参考ファイル例
```
# Laravelプロジェクト用 .cursorrules

1. コントローラー、モデル、リクエストクラス、リソースなどのクラス名はパスカルケース（例：TaskController）を使用すること
2. 変数名、関数名はキャメルケース（例：taskList、getUserTasks）を使用すること
3. Bladeテンプレートファイルはスネークケースで命名すること（例：task_list.blade.php）
4. コントローラーのメソッドはRESTfulな命名（index, show, create, store, edit, update, destroy）を基本とする
5. バリデーションはFormRequestクラスを利用し、コントローラー内で直接バリデーションしないこと
6. Eloquentモデルのリレーションはメソッド名を複数形・単数形などLaravelの慣習に従うこと
7. データベースのテーブル名・カラム名はスネークケースで統一すること
8. マイグレーションファイルやSeederのファイル名は日付＋スネークケースで記述すること
9. コード内で直接SQL文は原則使わず、EloquentまたはQueryBuilderを利用すること
10. ルーティングはroutes/web.php（Web）とroutes/api.php（API）に分けて管理すること
11. ログ出力にはLogファサードを利用し、ddやdumpは本番コードに残さないこと
12. テストコードはtests/Featureまたはtests/Unitディレクトリに配置し、テストメソッド名は「test_」で始めること
13. コードの日本語コメントは必要最小限にとどめ、基本は英語コメントとすること
14. 依存パッケージの追加はcomposerで管理し、composer.lockも必ずコミットすること
15. .envファイルに機密情報やAPIキーは直接記載せず、必要に応じて.env.exampleも更新すること
16. コーディング規約（PSR-12など）に従い、php-cs-fixerやLaravel Pintで整形すること
17. コードレビュー時はこのルールを基準に確認すること

# 必要に応じて追加・修正してください
```

---

### 補足

- 日本語で記述してもCursorは十分理解できます。
- ルールは500行以内、できれば簡潔にまとめ、必要なら分割して管理するのが推奨されています。
- 上記はLaravelの一般的なベストプラクティスを意識した内容です。プロジェクト独自の運用やコーディング基準があれば、さらに詳細化・調整してください。


## その他参考サイト


> Cursorで要件定義がエラいスムーズになった話  
> https://qiita.com/WdknWdkn/items/7c130f2febfdf33b31a4

> （続）Cursorで「詳細設計→ガントチャート草稿」作成がめっちゃ楽になった話  
> https://qiita.com/WdknWdkn/items/b0d9807e32acfc328f2e

> AI Agent × Cursor で要件整理から実装まで
> https://zenn.dev/kii/articles/with_ai-agent_on_2504
---