目次を表示する

Claude Code:エージェントプラットフォーム

第7章:ベストプラクティス ── コミュニティが実証した7つの鉄則

第7章:ベストプラクティス ── コミュニティが実証した7つの鉄則

Claude Codeと向き合ってきた世界中の開発者たちが、試行錯誤の末にたどり着いた実践知がある。それは「Claude Codeの仕様書」には書かれていない、使い込んでようやく見えてくるものだ。本章では、コミュニティが実証した7つの鉄則を、その背景にある理由とともに深く掘り下げる。単なる「コツ集」ではなく、なぜそれが機能するのかを理解することで、あなた自身が新しい状況に応用できるようになることを目指す。


鉄則1:ネガティブルールをポジティブルールに変える

「〜しないでください」という否定形の指示は、直感的に見えて実は罠だ。

LLMの処理特性に関する複数の研究が示しているのは、否定形の命令はモデルが遵守しにくいという事実だ。「赤い象を想像しないでください」と言われれば脳が赤い象を想像してしまうように、「コメントを書かないでください」という指示はClaudeのコンテキストに「コメント」という概念を強く打ち込んでしまう。コミュニティの報告では、ネガティブルールをポジティブ表現に書き換えるだけでルール遵守率が約50%向上したという事例も存在する。

具体的にどう変換するか。CLAUDE.mdの例を見てみよう。

Before(否定形):

## コーディングルール
- varを使わないこと
- any型を使わないこと
- コンソールログを残さないこと
- マジックナンバーを使わないこと

After(肯定形):

## コーディングルール
- 変数宣言にはconstまたはletを使う
- 型は明示的に定義する(unknown/neverを活用する)
- ログ出力はloggerモジュール経由で行う
- 数値は名前付き定数として定義する

同じルールを伝えているが、後者はClaudeが「何をすべきか」を直接理解できる。禁止事項を並べるのではなく、あるべき状態を描写する。これが最初の鉄則だ。


鉄則2:探索・計画・実装を分離する(3ステップ法)

多くの開発者が犯す最大のミスは、「実装して」という一言でセッションを始めることだ。Claudeは要求を受け取ったその瞬間からコードを書き始める。計画なし、確認なし、ただ実行あるのみ。これが混乱の始まりだ。

Claude Codeには Plan ModeShift+Tabを2回押す)が存在する。このモードに入ると、Claudeは「観察・分析・計画のみを行い、実際のコードは書かない」状態になる。承認なしにファイルを変更しないため、計画を安全に議論できる。

しかしPlan Modeを使わなくても、魔法の呪文がある:

「計画を立ててください。コードは書かないでください。」

この一言で、Claudeは実装に走る前に思考を整理し、アプローチを提示するモードに切り替わる。実際の会話フローはこうなる:

[ユーザー]
認証システムをJWT + Redisセッションで実装したい。
まず計画を立ててください。コードは書かないでください。

[Claude]
はい、以下の計画を提案します:

1. 依存関係の確認(jsonwebtoken, ioredis)
2. authMiddleware.ts の新規作成
3. /auth/login エンドポイントの修正
4. セッション有効期限を環境変数で管理
5. 既存テストへの影響確認

懸念点:現在 /api/user で直接DBアクセスしているため、
セッション経由に切り替える際に3ファイルへの変更が必要です。
進めてよいですか?

[ユーザー]
5のテスト影響を先に調べてから進めて。

計画を先に見ることで、方向性のズレを早期に発見できる。実装を始めてから「それは意図が違う」と気づくコストは、計画段階で発見するコストの何十倍もかかる。


鉄則3:フィードバックループを設計する

Claude Codeに最大のレバレッジをもたらす一言がある:

「テストも書いて、テストが通ることを確認してください。」

この指示が強力な理由は、Claudeが「自分の実装が正しいかどうか」を自律的に検証できる環境を作り出すからだ。テストなしで実装するClaudeは、いわば目を閉じたまま歩いている。テストという検証手段を与えることで、Claudeは自分の足元を確認しながら前進できるようになる。

フィードバックループの設計は、指示の内容だけでなく出力の形にも及ぶ。スクリーンショットやテスト出力をClaudeに渡すと、実際の動作と期待値のギャップをClaudeが自力で分析できる:

[ユーザー]
このスクリーンショットを見てください。ボタンを押しても
レスポンスが返ってきていません。期待値は200 OKです。
[スクリーンショット添付]

[Claude]
ネットワークタブを確認すると、CORS preflight が失敗しています。
cors ミドルウェアが POST を許可していない可能性があります。
server.ts の cors 設定を確認します...

対して、フィードバックループのない開発はどうなるか:

Before(ループなし):

実装完了 → ユーザーが動作確認 → 「動かない」→ Claudeに報告
→ 推測で修正 → また確認 → また「動かない」(無限ループ)

After(ループあり):

実装 → テスト実行 → 失敗を検知 → 自動修正 → テスト通過 → ユーザーへ報告

後者では、Claudeがデバッグサイクルを自律的に回す。ユーザーは結果だけを受け取ればいい。


鉄則4:/clearを習慣化する

シンプルだが、守れている人は少ない。ルールはこうだ:

タスクが変わったら /clear を打つ。

なぜこれが重要か。Claude Codeのコンテキストウィンドウには限りがある。バグ修正の会話、アーキテクチャの相談、新機能の実装が同じセッションに混在していると、Claudeは「今何をしているセッションなのか」の判断にコンテキストを消費してしまう。前のタスクで使ったコードスニペットや「一時的な方針」が、新しいタスクの判断に影響することもある。

/clearのタイミングを判断するチェックリストはこうなる:

  • 話題が別機能・別ファイルに移った
  • 「ちょっとこっちも見てほしい」という欲求が生じた
  • エラー修正を3回以上繰り返している
  • 「なんか前と違う挙動をしている気がする」という感覚がある
  • セッション開始から1時間以上経過した

1つでも当てはまれば /clear のサインだ。コンテキストをリセットするのは「諦め」ではなく「リフレッシュ」だと認識しよう。クリアなコンテキストでClaudeは最高の仕事をする。


鉄則5:Plan Modeで大きなタスクを承認してから実行する

鉄則2と関連するが、特に大規模なリファクタリング・複数ファイルにまたがる変更・破壊的変更においては、Plan Modeの使用は必須と言っていい。

Shift+Tabを2回押すとPlan Modeに入る。このモードでClaudeは:

  1. コードベースを読み解き(観察)
  2. 変更箇所を特定し(分析)
  3. 実装計画を提示する(計画)

ファイルには一切触れない。

計画を受け取ったユーザーは、内容を確認・修正した上で「進めて」と承認する。その瞬間からClaudeは実装モードに移行する。

[Plan Mode]
変更が必要なファイル:
1. src/models/User.ts     - roleフィールドの追加
2. src/middleware/auth.ts  - ロール検証ロジックの追加
3. src/routes/admin.ts    - 管理者ルートの追加
4. tests/auth.test.ts     - テストケースの追加

影響範囲の懸念:
- 既存ユーザーのroleがnullになる可能性 → マイグレーションが必要

進めてよいですか?

このひと手間が、後戻りのきかない大規模変更の事故を防ぐ。


鉄則6:CLAUDE.mdのPrimacy/Recency Bias活用

認知心理学に「系列位置効果」という概念がある。リストの最初(初頭効果)と最後(新近効果)にある項目は記憶に残りやすく、中間の項目は忘れられやすい。

これはClaude CodeがCLAUDE.mdを読む際にも同様の傾向が見られる。つまり、ファイルの先頭と末尾に書かれたルールの遵守率は高く、中間に埋もれたルールは見落とされやすい。

この特性を意識してCLAUDE.mdを構成するのが鉄則6だ:

CLAUDE.md の最適な構成
━━━━━━━━━━━━━━━━━━━━━━━━
先頭(高優先度・高遵守率)
  → 絶対に守ってほしいルール
  → よく違反するルール
  → 最重要のコーディング規約

中間(通常優先度)
  → プロジェクト構成の説明
  → 使用ライブラリの注意点
  → 一般的なガイドライン

末尾(高優先度・高遵守率)
  → 再び:絶対に守ってほしいルール
  → セキュリティ・本番環境への注意
━━━━━━━━━━━━━━━━━━━━━━━━
graph TD
    A["CLAUDE.md の先頭"] -->|初頭効果| B["最重要ルール<br/>(よく違反するもの)"]
    C["中間部"] -->|記憶に残りにくい| D["一般ガイドライン<br/>プロジェクト説明"]
    E["CLAUDE.md の末尾"] -->|新近効果| F["絶対ルール再掲<br/>セキュリティ注意"]
    B --> G["Claude の遵守率 HIGH"]
    D --> H["Claude の遵守率 LOW"]
    F --> G
    style B fill:#2d6a4f,color:#fff
    style F fill:#2d6a4f,color:#fff
    style D fill:#6b4423,color:#fff
    style G fill:#1b4332,color:#fff
    style H fill:#7b3f00,color:#fff

例えば「テストを必ず書く」というルールがよく破られるなら、先頭と末尾の両方に配置する。「TypeScriptの設定について」のような説明的な内容は中間に置く。


鉄則7:Perplexity MCPを最初に入れる

MCPの設定で、何よりも先にやることが1つある。それがPerplexity MCPの導入だ。

理由はシンプルだ。Claude Codeのトレーニングデータには必ず「カットオフ日」が存在する。特にNode.jsのメジャーアップデート、React 19の新API、最新ライブラリのbreaking changeなど、クイックに動くエコシステムの情報は古くなりやすい。Perplexity MCPを導入すると、ClaudeがライブWeb検索を実行できるようになり、「今このライブラリのAPIはどうなっているか」をリアルタイムで参照しながらコーディングできる。

設定は ~/.claude/mcp_settings.json に以下を追加するだけだ:

{
  "mcpServers": {
    "perplexity": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-perplexity-ask"],
      "env": {
        "PERPLEXITY_API_KEY": "your-api-key-here"
      }
    }
  }
}

導入後の会話はこう変わる:

[ユーザー]
Prisma v6 で enum を追加するマイグレーションを書いて

[Claude - Perplexity MCP経由でWeb検索]
Perplexityで確認したところ、Prisma v6.2 から
enum の追加方法が変わっています。
`prisma migrate dev` の前に以下の手順が必要です...
(最新ドキュメントに基づいた正確な情報を提示)

MCPは数多く存在するが、Perplexityは「知識の鮮度問題」というLLMの根本的な弱点を補う。他のMCPはプロジェクト固有の統合だが、Perplexityは全タスクに横断的に効く。だから「最初に入れる1つ」として鉄則に値する。


7つの鉄則の相互関係

これら7つの鉄則は独立したテクニックではなく、相互に補強し合うシステムだ。

flowchart TB
    P1["鉄則1\nポジティブルール化"] --> CM["CLAUDE.md\n最適化"]
    P6["鉄則6\nPrimacy/Recency配置"] --> CM
    CM --> |"明確な指示"| EXEC

    P7["鉄則7\nPerplexity MCP"] --> |"最新情報"| EXEC

    P2["鉄則2\n3ステップ法"] --> |"計画フェーズ"| PLAN
    P5["鉄則5\nPlan Mode承認"] --> PLAN
    PLAN["計画の承認"] --> EXEC["実装フェーズ"]

    EXEC --> |"テスト・検証"| P3["鉄則3\nフィードバックループ"]
    P3 --> |"問題なければ完了"| DONE["タスク完了"]
    P3 --> |"問題あり"| FIX["自律修正"]
    FIX --> P3

    DONE --> P4["鉄則4\n/clearで次タスクへ"]
    P4 --> |"クリーンな状態"| P2

    style CM fill:#1a1a2e,color:#e0e0ff
    style PLAN fill:#16213e,color:#e0e0ff
    style EXEC fill:#0f3460,color:#e0e0ff
    style DONE fill:#533483,color:#fff
    style P3 fill:#2d6a4f,color:#fff
    style P4 fill:#1b4332,color:#fff

鉄則1と6がCLAUDE.mdを最適化し、鉄則7が最新情報を供給する。鉄則2と5が無計画な実装を防ぎ、鉄則3が自律検証ループを作る。タスクが終われば鉄則4でリセットして次のサイクルへ。この7つを意識的に実践するだけで、Claude Codeとの協働品質は段違いに上がる。

ただし、鉄則はルールではなく習慣だ。最初から全部やろうとするのではなく、まず「鉄則4の/clear」と「鉄則2の計画先行」の2つから始めることを推奨する。この2つだけで、大半のストレスは激減する。