AI Codingの新常識 「Rules and Roles」で作る開発ワークフロー

## なぜCursorを使いこなせないのか
Cursor Editorを試したものの「思い通りにコードが書けない」「指示通り動かない」——そんな経験はありませんか？あるいは、一見便利に見える生成AIが、少し複雑な指示になるとカオスを生み、逆に生産性が下がったという声も耳にします。

そんなあなたに伝えたいのが、**AI Codingの新常識** として私が提唱する「**Rules and Roles**」という概念です。これは単なるプロンプトエンジニアリングではなく、**AIにメタ的なコンテキストとワークフローを与える、極めて実践的かつ強力なフレームワーク**です。

### 対象読者
* Cursorを試したが、使いこなせなかった方
* Cursorでコードが崩壊し、怒りに震えた経験がある方
* 本気でAIと共に開発生産性を10倍にしたい全ての開発者

### Rules and Rolesとは
* **Rule**：AIが従うべきルールや制約、メタ的な作業方針（例：要件定義は`.cursor/PRD.md`に記述する、タスクリストは`.cursor/tasks/sprint{number}.md`に記載し、必ずステータスを記載するなど）
* **Role**：AIが担う役割（例：PM、実装エンジニア、レビュアーなど）

Cursorではこの概念を**Cursor Rules**（ルール）と**Custom Modes**（ロール）という機能で実装しています。Custom Modesはv0.48（2025年3月）で登場したばかりであり、<INS>それ以前のTipsはすでに時代遅れ</INS> です。

### なぜ必要なのか？AIが迷子になる構造的な理由

多くの人が直面するAIコーディングの失敗例：
* 「とりあえず」書かせたコードが崩壊していく
* 要件を忘れ、意図しない挙動をする
* 不要ファイル・重複コード・過去のコンテキストを保持しないなどの混乱

これはすべて、「**コンテキストの欠如**」が原因です。

### Claude Codeのベストプラクティスに見る「Rules and Roles」の概形
Anthropic社の公式ガイド「*[Claude Code: Best practices for agentic coding](https://www.anthropic.com/engineering/claude-code-best-practices)*」では、AIコーディングにおける効果的な手法が紹介されています。これらの手法は、「**Rules and Roles**」の概念と密接に関連しており、以下の点で補完し合っています。

1. **`CLAUDE.md`によるコンテキストの明示**
    Claude Codeでは、プロジェクトのルールや作業方針を`CLAUDE.md`ファイルに記述することで、AIが作業時に参照するコンテキストを提供します。これは、Cursorの「**Rules**」に相当し、AIが一貫した行動を取るための指針となります。

1. **ワークフローの明確化と段階的実行**
    Claude Codeは、以下のような段階的なワークフローを推奨しています。
    * **探索と計画**：AIにコードベースを読み込ませ、問題解決の計画を立てさせる。
    * **テスト駆動開発**：まずテストコードを作成し、その後実装を進める。
    * **反復的な実装とレビュー**：実装とテストを繰り返しながら、コードの品質を高める。
    これらのステップは、Cursorの「Custom Modes」を活用した「Roles」の設定と一致しており、AIが各フェーズで適切な役割を果たすことを可能にします。

1. **明確な指示とコンテキストの維持**
    Claude Codeでは、AIに対して具体的で明確な指示を与えることが推奨されています。これは、AIが誤った解釈を避け、期待通りの出力を得るために重要です。また、`CLAUDE.md`やワークフローの活用により、コンテキストの維持が容易になります。

### AI開発ワークフローの構築
```mermaid
sequenceDiagram
    participant PM
    participant ARCH
    participant DEV
    participant REVIEWER
    participant Docs

    Note over PM: 「PRDを作って」
    PM->>Docs: PRD.md を作成

    Note over ARCH: 「構成設計して」
    Docs->>ARCH: PRD.md を読む
    ARCH->>Docs: ARCH.md を作成

    Note over PM: 「タスクに分解して」
    Docs->>PM: PRD.md、ARCH.md を読む
    PM->>Docs: epic_1/task_1.md を作成

    Note over DEV: 「まずテスト書いて」
    Docs->>DEV: epic_1/task_1.md を読む
    DEV->>Docs: epic_1/test_spec_1.md を作成

    Note over DEV: 「実装を進めて」
    DEV->>Docs: 実装コードを書き始める
    DEV->>REVIEWER: レビュー依頼
    REVIEWER->>Docs: レビューノート作成
    REVIEWER->>DEV: フィードバック返却

    DEV->>Docs: コード修正
    Note over DEV: 「実装が完了しました」
```

このシーケンス図は、**各エージェントが明確な役割（Role）と作業ルール（Rule）に従って連携し、AIが迷子になることなく開発を進める理想的なワークフロー**を表しています。
特に、**定型的なドキュメントを共有することによって、一貫性・再現性を維持する**ことが重要です。
これらのドキュメントは、.cursor配下に置くことが一般的となっており、Git管理することでチーム間での共有も可能となるでしょう。ただし、これらは**AIエージェントによる更新が前提のドキュメント**であるため、人が直接編集すべきではありません。適格なロールに指示を与え、ルールに従ってメンテナンスさせるべきです。
従って、各ロールが 「何をすべきか」だけでなく「どのようにすべきか」までを事前に明文化しておくことが極めて重要です。以下はその具体例です。

```markdown
# PM Mode（Technical Product Manager）
## 役割:
* ユーザーやビジネス側からの要望を受け、実装可能な粒度にまで分解したPRD（Product Requirements Document）に落とし込む責任を担う。

## ルール:
* 要件を明文化する際に、UI/UX、技術制約、スコープの範囲（MVP／Post-MVP）を必ず確認・整理する。
* PRDの構成はテンプレートに準拠し、「目的・技術選定・想定ディレクトリ構造・リスク・未知の要素」を明示する。
* 最終成果物（PRD）は、開発と設計の「出発点かつ唯一の真実」として後続工程に連携される。
```

```markdown
# DEV Mode（Developer Agent）
## 役割:
* PRDに基づき、ストーリー単位で正確に実装し、完全にテストされた成果物を作成する。

## ルール:
* 着手前に、story-*.mdファイルをチェックし、現在の開発ストーリーの状態を明確に認識すること。
* ストーリーが Approved でなければ実装に入らない。開発中も、完了ごとに必ず状態を更新・記録する。
* 自動テストの合格はストーリー完了の必須条件。テスト未実施のコードは完成と見なさない。
* ドキュメント更新、アーキテクチャファイルとの整合性確認、命名規則・分離責務の遵守など、コード以外の品質維持にも責任を持つ。
```

### ShowCases
より実践的な具体例として、以下に紹介するプロジェクトは、**Rules and Roles思想**に基づいたワークフローを実装しています。
1. [RIPER5](https://github.com/johnpeterman72/CursorRIPER/tree/main)
    * Research / Innovate / Plan / Execute / Review の5段階で構成
    * 各段階をAIが明示的に遷移していく。メモリバンク機能が先進的
    * 難点：スタートアップコマンドなど事前準備が必要

1. [BMAD-METHOD](https://github.com/bmadcode/BMAD-METHOD)
    * 最新のCursor RuleとCustom Modeに準拠
    * シンプルで扱いやすい構成。ドキュメント生成が中心
    * YouTubeで解説あり。初心者にもわかりやすい

1. [claude-task-master](https://github.com/eyaltoledano/claude-task-master)
    * Claude向けで少し趣旨からそれるが、Cursorでも応用可能
    * タスクベースの管理により、AIが目的を見失わない
    * task-masterとプロンプトを紐づけるルールを作ることができれば有用になりそう

### よくある誤解と本質的な違い
* **Rules and Roles**は「プロンプトエンジニアリング」とは別次元
* MCPやプラグイン多用が目的ではない。**ワークフロー管理こそが本質**
* 「**思い通りにいかなければ、AIに聞け**」——彼らは自分たちに与えられたコンテキストを理解している

## おわりに：今日から始めるAIコーディング
生成AIを開発プロセスに活用する上で最も重要なのは、**「何を、どのように進めるか」を明確に定義すること**です。
ここで求められているのは、人が逐一タスクリストを作成してAIに指示を与えることではありません。
そうではなく、**要件の抽出からタスクの分解、実装、テストに至るまでの一連の開発サイクルを、明確なワークフローとしてAIに遵守させること**が鍵となります。

その基盤となるのが、**Rules（ルール）とRoles（役割）** の明文化です。
Cursorはこの構造を柔軟かつ強力に定義・実行できる、現時点で最も優れたAIコーディング環境のひとつです。

たとえ過去にCursorを挫折した経験があっても、あるいはこれから新たに始めようとしている方であっても、**「AIコーディングが進化する瞬間」** に立ち会うことができます。
今こそ、AIとともに開発を再定義する第一歩を踏み出しましょう。