今回業務で次の構成で開発を進めることになりましたので、簡単にCLAUDE.mdに記述すべきルールについてClaude Codeをどう使うかや、Claude CodeとIDEAの責務分離、Claude.mdの重要性についてまとめて見ました。

【構成】
VSCode × Claude Code × Docker × IntelliJ IDEA

今回の開発構成(前提)

本記事の前提となる環境は以下です。

ローカル開発環境

  • macOS(Intel / Apple Silicon)
  • Java 17 + Gradle + Spring Boot
  • VS Code
    • Claude Code 導入
    • 設計相談・レビュー・設定ファイル確認
  • IntelliJ IDEA
    • Java / Spring Boot 実装・起動・デバッグ
  • Docker Desktop
    • MySQL / phpMyAdmin / nginx のみを起動
    • Spring Boot アプリは Docker で起動しない

👉 「全部を Docker で起動しない」ハイブリッド構成です。

なぜハイブリッド構成なのか?

この構成には明確な理由があります。

Docker の役割を限定している

Docker は以下の用途に限定されています。

  • MySQL
  • phpMyAdmin
  • nginx

つまり、

アプリケーションの実行・デバッグは IntelliJ IDEA
基盤(DB 等)の再現性は Docker

という役割分担です。

この前提を Claude Code が理解していないと、

  • 「Spring Boot を Docker で起動しましょう」
  • 「mysql コンテナ名で接続しましょう」

といった ズレた提案が発生します。

👉 これを防ぐのが CLAUDE.md です。

Claude Code は「実装者」よりも「設計補助役」

まず大前提として、今回の構成では Claude Code に以下を期待します。

Claude Code にやらせること

  • 設計相談
  • アーキテクチャレビュー
  • Docker / YAML / 設定ファイルの確認
  • コード差分のレビュー
  • 「この実装は妥当か?」の壁打ち

Claude Code にやらせないこと

  • IntelliJ IDEA の操作指示
  • 勝手なリファクタリング
  • Docker 環境の破壊的変更
  • 実行コマンドの無断実行

👉 Claude Code は「実装を支える相棒」
👉 実装は IntelliJ IDEA が主役

だから CLAUDE.md が最重要になる

CLAUDE.md は、Claude Code に対する プロジェクト憲法です。

追記すべきルール例

以下は、今回のハイブリッド構成に 必須 のルールです。

① Docker 前提を誤解させないためのルール





## Environment Constraints

- The application runs with Spring Boot executed locally via IntelliJ IDEA.
- Docker is used only for infrastructure components (MySQL, phpMyAdmin, nginx).
- Do NOT assume Spring Boot runs inside Docker containers.

このルールの意味

・DB 接続先は localhost
mysql というコンテナ名を前提にしない
・「docker-compose up app」などの誤提案防止

② VS Code と IntelliJ IDEA の役割分離

## IDE Usage Policy

- Java and Spring Boot code is written and executed in IntelliJ IDEA.
- VS Code is used for:
  - Claude Code interactions
  - Reviewing Docker, YAML, and configuration files
  - Architecture and design discussions

このルールの意味

・Claude が VS Code 前提の Java 操作を提案しなくなる
・IntelliJ の強み(Spring 解析・デバッグ)を前提に回答する

③ ファイル変更範囲の制限(事故防止)

## File Modification Policy

- Do NOT modify files unless explicitly listed.
- Especially restricted files:
  - docker-compose.yml
  - Dockerfile
  - application.properties

このルールの意味

・MySQL / nginx 設定の破壊防止
・環境差分事故の防止
・「Yes, allow all edits」事故の回避

④ Java / Spring 前提ルール

## Java & Spring Guidelines

- Assume Java 17 and Spring Boot.
- Prefer annotation-based configuration.
- Do NOT change server.port or datasource settings unless instructed.

のルールの意味

・今回の server.port=8081/8082/8083 前提を守らせる
・application.properties の無断変更防止

macOS 環境構築手順との対応関係

環境構築手順は、Claude Code 視点では次のように整理されます。

項目Claude Code が理解すべき前提
Java 17JDK バージョン固定
Gradleビルドツールは Gradle
Docker MySQLDB は localhost:3306
Spring BootIntelliJ から起動
ポート分離8081 / 8082 / 8083

👉 CLAUDE.md にこれを書いておくことで、
👉 Claude Code の回答精度が 一段階上がります

この構成での Claude Code の正しい使い方

例1:設計レビュー

「この Spring Boot 構成は、Docker MySQL + IntelliJ 実行前提で妥当ですか?」

例2:設定確認

「application.properties のこの設定、macOS + Docker MySQL 前提で問題ありますか?」

例3:差分レビュー

「IntelliJ で実装した差分です。設計・責務・セキュリティ観点でレビューしてください」

このようにプロンプトでも構成を明確に伝えた指示をすると回答の正確性が上がります。

まとめ

  • 今回の環境は VS Code / Docker / IntelliJ のハイブリッド構成
  • Claude Code は 実装者ではなく設計補助
  • CLAUDE.md は 誤解・事故を防ぐ安全装置
  • Docker は基盤、IntelliJ は実装、Claude は思考支援

この役割分担ができると、
Claude Code は 本当に使える開発パートナーになります。

ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。

  • 選考ではありません
  • 履歴書不要
  • 技術の話が中心
  • 所要時間30分程度
  • オンラインOK

エンジニアと話してみる