Claude Code(およびCursor)でコンベンションを無視しないように設定する方法

Dev.to / 2026/5/31

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • 多くの開発者はClaude CodeやCursorが期待ほど機能しないと感じがちですが、それはエージェントがコードベースに関する明確なブリーフを欠いており、結果として誤った前提を置いてしまうためだと記事は述べています。
  • 記事の主張する改善策は、専用の設定ファイルを用意することです(Claude CodeはCLAUDE.md、Cursorは.cursorrules)。そこに、アーキテクチャ上のルールを“提案”ではなく“命令”として明示します。
  • データ取得やロジックの置き場所(例:Server Components/Route Handlers、Server Actionsなど)に関する具体的な制約を入れることで、エージェントが既存の慣習から逸脱するのを防ぐことを勧めています。
  • タスク完了を宣言する前に、型チェック・Lint・テストといった検証コマンドを必ず実行させるよう、ガイドでは重視されています。
  • さらに「やってはいけないこと(What NOT to do)」のセクションを設けて、不要な依存追加やTypeScriptの回避策のようなありがちな失敗パターンをブロックすることも提案しています。

ほとんどの開発者は Claude Code や Cursor をインストールし、いくつかプロンプトを試して、感動できずに放り投げます。エージェントは間違ったファイルを編集し、彼らの慣習を無視し、存在しないプロジェクト構成を自信満々にでっち上げます。

ツールが問題ではありません。足りないのは設定です。

AI コーディングエージェントは、あなたのコードベースを一度も見たことがない優秀な請負業者のようなものです。ブリーフなしで放り込めば、適当に推測するでしょう。1ページのブリーフ――あなたのスタック、ルール、コマンド、そして 触ってはいけないもの――を渡せば、まるであなたのチームで1年働いてきた人みたいに振る舞います。

そのブリーフが CLAUDE.md ファイルです(Cursor なら .cursorrules)。実際に機能するものの書き方を紹介します。

1. アーキテクチャのルールを、ルールとして伝える — 「提案」ではなく

最大の勝ち筋はこれです。スタックをぼんやり説明しないで、必ず守らなければならない「明確なルール」を渡してください。

## Architecture rules (follow exactly)

- Server Components by default. Only add "use client" when a component needs
  state, effects, or browser APIs. Push client boundaries as far down as possible.
- Data fetching lives in Server Components or Route Handlers, never in useEffect.
- Mutations go through Server Actions, not ad-hoc API routes.
- No business logic in components — extract to lib/.

これらは 命令的で具体的 だという点に注目してください。 「ベストプラクティスを使って」では何も変わりません。 「Server Components をデフォルトにして、state/effects には 'use client' を追加する」なら、エージェントの出力は即座に変わります。

2. コマンドを渡して、実行させる

エージェントは、あなたが検証方法を教えない限り、自分の作業を確認できません。

## Commands

- Typecheck: `pnpm tsc --noEmit`
- Lint: `pnpm lint`
- Test: `pnpm test`

**完了だと言う前に、必ず typecheck と lint を実行してください。**

最後の1行を見落としている人がほとんどです。これがないと、コンパイルできないコードでもエージェントは「完了」と言ってしまいます。これがあれば、あなたが気づく前に自分のミスを検出してくれます。

3. 「やってはいけないこと(What NOT to do)」のセクションを書く

否定の制約は過小評価されています。最も厄介な失敗パターンを止めてくれます。

## What NOT to do

- 依存関係を追加しないでください。まず聞いてください。既にその能力が存在しないか確認します。
- 型エラーを消すために `any``@ts-ignore` を使わないでください。型を修正します。
- 変更していないファイルを再フォーマットしないでください。

4. コードレビュー用のサブエージェントを追加する

Claude Code も Cursor もサブエージェントに対応しています。呼び出せる専門的な役割です。無骨なシニアエンジニアのように あなたの差分(diff だけ) をレビューするコードレビュー担当が、最も投資対効果が高いものです。

---
name: code-reviewer
description: "Reviews a diff for bugs and quality. Use after writing code."
---

あなたは git の diff をレビューします。発見事項を Bug / Risk / Cleanup として分類してください。正確なファイル:行を引用してください。フォーマッターが見つけるようなスタイルの細かい指摘はスキップしてください。お墨付き(ゴム印)で通さないでください。

これで「レビューして(review my changes)」が、一般的な褒め言葉ではなく、焦点の合ったレビューを返してくれます。

盗んでください:私の設定(無料)

上記のすべてについて、動作する「そのまま使える」バージョンをパッケージ化しました。CLAUDE.md のテンプレート2つ(Next.js + Python/FastAPI)と、コードレビュー用サブエージェントはGitHub で無料で提供、MIT ライセンスです。

https://github.com/devloadout/awesome-claude-code-configs

あなたのスタック用のものをコピーし、3行を編集して、エージェントを再起動してください。これでセットアップは完了です。

フルセットが欲しい場合――6つのスタック(Go、Rust、モノレポも)、4つのサブエージェント、スラッシュコマンド(/review/ship/test)、フックレシピ(自動フォーマット、コミット済みのシークレットをブロック、停止時にテスト実行)――そして MCP のセットアップをコピー&ペーストできる形でまとめたものは、すべて この complete kit(ローンチ週の価格)に入っています。

あなたの CLAUDE.md には何が入っていますか? コメント欄に「一番良いルール」を投稿してください。いいものを集めています。