🔍

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(多い)

対処法も複数あって:

  1. 全部UTF-8に統一する(シンプルだが既存ファイルの変換が必要)
  2. Shift-JISファイルはCLAUDE.mdで指示する(既存プロジェクト向け)
  3. シェルを使い分ける(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