Claude Code 実践検証 Day 1|環境構築とCLAUDE.md設計の基本
Claude Code、使ってますか?
公式ドキュメント通りにセットアップしたのに、なんか思った通りに動かない。CLAUDE.mdを書いたはずなのに、Claudeが指示を無視してくる。そんな経験、ありませんか?
私もそうでした。というか、最初の1週間はずっとそんな感じでしたね。
このシリーズでは、Claude Codeの機能を25日間かけて検証していきます。公式ドキュメントに書いてあることと、実際に動かしたときの挙動。その差分を明らかにして、「結局どうすればいいの?」という疑問に答えていきたいと思います。
初日の今回は、環境構築とCLAUDE.mdの基本から始めます。
公式ドキュメントの説明
まずは公式が何を言っているか整理しておきましょう。
Claude Codeの設定は、大きく分けて2つあります。
CLAUDE.md(メモリファイル)
- 起動時に自動で読み込まれる指示ファイル
- プロジェクトのルール、コーディング規約、よく使うコマンドなどを記述
-
/initコマンドで自動生成できる
settings.json(設定ファイル)
- 権限、環境変数、ツール動作などを構成
- JSON形式で記述
で、CLAUDE.mdには3つのレベルがあります。
| 種類 | ファイルパス | 用途 |
|---|---|---|
| プロジェクトメモリ | ./CLAUDE.md |
チーム内で共有する指示 |
| ユーザーメモリ | ~/.claude/CLAUDE.md |
全プロジェクト共通のユーザー指示 |
| プロジェクトメモリ(ローカル) | ./CLAUDE.local.md |
個人的なプロジェクト指示(.gitignore対象) |
公式によると、優先順位は「プロジェクト固有 > ユーザー共通」の順。より具体的な設定が優先されるとのこと。
…と、ここまでは公式ドキュメントに書いてある通りなんですが。
検証したい観点
実際に使っていると、いくつか疑問が出てきます。
疑問1:複数のCLAUDE.mdがあるとき、本当にマージされるの?
公式には「設定はマージされ、より具体的な設定がより広い設定に追加またはオーバーライドされます」と書いてあります。
でも、これ、実際どういう挙動になるんでしょう。
たとえば、ユーザーレベルで「コミットメッセージは英語で」と書いて、プロジェクトレベルで「コミットメッセージは日本語で」と書いたら?上書きされる?それとも両方読み込まれて混乱する?
疑問2:/initで生成されるCLAUDE.md、そのまま使っていいの?
/initを実行すると、プロジェクト構造を分析してCLAUDE.mdを自動生成してくれます。便利なんですが、生成される内容がどの程度実用的なのか。修正すべきポイントはどこか。
疑問3:CLAUDE.mdの記述、Claudeはどこまで守ってくれる?
「このプロジェクトではTypeScriptを使う」と書いたら、JavaScriptを提案しなくなる?それとも無視されることがある?
正直、この辺の挙動がよくわからないまま使っている人、多いんじゃないかと思います。
疑問4:Windows環境、結局どれを使えばいいの?
公式ドキュメントを見ると「WSL 1, WSL 2, or Git for Windows」と書いてあります。どちらも公式サポート。
でも、ネット上の情報を見ると意見が割れているんですよね。
- 「WSLじゃないとMCPサーバーが動かない」
- 「Git Bashで十分動く」
- 「Native Windows版が出たからWSL不要」
どれが正しいのか。実際に両方試して、違いを検証します。
疑問5:日本語の文字化け、どう対処する?
Claude CodeはUTF-8で動作しますが、Windows環境には複数の文字コードが混在しています。
- PowerShell(従来): Shift-JIS(CP932)
- Git Bash: UTF-8
- 既存プロジェクト: Shift-JIS(多い)
対処法も複数あって:
- 全部UTF-8に統一する(シンプルだが既存ファイルの変換が必要)
- Shift-JISファイルはCLAUDE.mdで指示する(既存プロジェクト向け)
- シェルを使い分ける(Git Bash + PowerShellのハイブリッド運用)
どれが実用的なのか、これも検証対象です。
検証項目の一覧
明日の検証では、以下を確認します。
| 項目 | 検証内容 | 判定基準 |
|---|---|---|
| CLAUDE.mdの読み込み確認 |
/memoryで読み込み状態を確認 |
期待通りのファイルが表示される |
| 優先順位の検証 | ユーザーとプロジェクトで矛盾する指示を記述 | どちらが優先されるか確認 |
/initの生成内容 |
実際のプロジェクトで/initを実行 |
生成内容の実用性を評価 |
| 指示の遵守率 | 明確なルールを書いて従うか確認 | 5回中何回従うか |
| WSL vs Git Bash | 同じ操作を両環境で実行 | 動作の違い、制限の有無 |
| 日本語ファイル編集 | Shift-JISファイルを編集させる | 文字化けの有無、対策の効果 |
| PowerShell併用 | 日本語出力を伴うコマンド実行 | 文字化け回避できるか |
検証環境
今回の検証環境は以下の通りです。バージョンによって挙動が変わる可能性があるので、明記しておきます。
基本環境
- OS: Windows 11 Pro
- Claude Code: v2.x(最新版を使用、具体的なバージョンは明日記載)
- IDE: Cursor + Claude Code for VS Code拡張
シェル環境(両方を検証)
- Git Bash: Git for Windows付属
- WSL2: Ubuntu 24.04
- PowerShell: 7.x(UTF-8設定済み)
PowerShellプロファイル設定
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$env:PYTHONUTF8 = "1"
Macユーザーの方は、シェル周りの話は読み飛ばしていただいて大丈夫です。ただ、CLAUDE.mdの優先順位や指示の遵守率については共通の話題なので、参考になると思います。
明日の予告
明日は実際に検証した結果を報告します。
特に「CLAUDE.mdの優先順位」と「指示の遵守率」は、実務で使う上でかなり重要なポイントだと思っています。公式ドキュメントを読んだだけではわからない、実際の挙動をお見せできればと。
ちなみに、CLAUDE.mdの書き方で「これは効く」「これは効かない」みたいな経験、すでにお持ちの方いますか?もしあれば、コメントで教えてもらえると検証に反映できるかもしれません。
シリーズ情報
- シリーズ名:Claude Code 実践検証ガイド 2025
- 著者:Akira
- 検証環境:Windows 11 / Git Bash / PowerShell / Claude Code v2.x
明日もよろしくお願いします。
次回:Day 2「CLAUDE.md優先順位とWindows環境の検証結果」
Discussion