Claude Codeを使いこなそうとすると、CLAUDE.mdとSkillsの使い分けで悩む場面は多いはずだ。プロジェクトの全体像を伝えるCLAUDE.mdにすべての指示を詰め込みすぎると、Claudeの応答が遅くなったり、重要な情報が埋もれてしまったりする。一方で、Skillsの設計を誤ると、せっかくの再利用性が活かせないまま、単なる手順書の置き場所で終わってしまうこともある。このバランスは、正直、少し厄介だと感じる開発者もいるだろう。(出典: anthropic.com)
この記事では、Claude CodeのSkillsを効果的に配置し、SKILL.mdを記述することで、こうした課題を解決し、より効率的で整理されたAI開発ワークフローを築くための具体的なガイドを示す。適切なファイル管理を通じて、Claude Codeをプロジェクトの真のパートナーとして活用できるようになるはずだ。無駄のないAIコーディング環境を構築し、開発の生産性を高めるための実践的なヒントをここで見つけてほしい。この記事を読み終える頃には、あなたのプロジェクトに合わせたCLAUDE.mdとSkillsの最適な配置、さらにはMCPやhooksの活用まで含めた、効率的なAI開発ワークフローの青写真が描けるだろう。(出典: Anthropic)
CLAUDE.mdとSkillsの役割を理解する:憲法と専門家

Claude Codeの設定において、CLAUDE.mdとSkillsはそれぞれ異なる役割を担っている。これらを明確に区別し、適切に使い分けることが、効率的なAI開発ワークフローを構築する上での最初の、そして最も重要なステップとなる。(出典: Claude Code)
CLAUDE.mdは、プロジェクト全体に常に適用される「普遍的なコンテキスト」を提供するファイルだと考えてほしい。Claudeがそのプロジェクトで作業する上で、常に知っておくべき「事実」や「基本的なルール」を記述する場所だ。具体的には、使用している技術スタック、コーディング規約、プロジェクトのアーキテクチャ概要、テストの実行方法といった、プロジェクトの根幹をなす情報をここに集約する。このファイルはセッション開始時に無条件にロードされるため、内容が長すぎるとトークンコストが増大し、Claudeのパフォーマンスに影響を与える可能性がある。プロジェクトの「憲法」のようなものと捉えておくと、その役割が明確になるだろう。常に参照されるべき、不変性の高い情報を置くのが理想的な使い方だ。(出典: medium.com)
一方、Skillsは特定のタスクやワークフローを実行するための「再利用可能な機能」を定義する。これらは.claude/skills/<skill-name>/SKILL.mdという形式で専用のディレクトリに格納され、CLAUDE.mdとは異なり、Claudeがそのスキルに関連するタスクを認識したとき、あるいはユーザーが明示的に呼び出したときにのみロードされる仕組みだ。このオンデマンドな読み込みが、コンテキストウィンドウの肥大化を防ぎ、トークンコストを最適化する上で非常に重要になる。特定の目的を持った「専門家」を、必要なときにだけ呼び出すイメージだ。(出典: reddit.com)
想定ケース: Claude Codeでファイル編集やBash実行を任せ始めたリポジトリに、最小限のhooksを入れる場面を想定します。読者が持ち帰る成果物は、.claude/settings.jsonの小さなhooks設定、危険コマンドを止めるスクリプト、自動整形をどこまで許可するかの判断メモです。(出典: reddit.com)
使う判断: PostToolUseで整形やログ保存を走らせる、PreToolUseで危険なBashだけを止める、といった決定的で小さい処理はhooksに向いています。(出典: Connect Claude Code to tools via MCP)
止める判断: 秘密情報の送信、広い外部権限、破壊的なGit操作、確認なしのデプロイは、人間が差分とログを見てから進めます。
| イベント | 向いている用途 | 人間の確認 |
|---|---|---|
| PreToolUse | 危険なBashや秘匿ファイルアクセスを止める | ブロック条件が広すぎないか |
| PostToolUse | 整形、lint、ログ保存を実行する | 失敗時に作業を壊さないか |
| Stop | 完了前の最終チェックを走らせる | 長時間処理にならないか |
いつSkillに切り出すか:判断の基準と「使う判断」「止める判断」

「これはCLAUDE.mdに書くべきか、それともSkillにすべきか?」という疑問は、Claude Codeを使いこなす上で多くの開発者が直面するポイントだ。この判断は、AIとの対話の効率性や、将来的なメンテナンス性に大きく影響する。基本的な判断基準は、その情報が「常に必要なプロジェクトの事実やルール」なのか、それとも「特定の状況で実行する手順やワークフロー」なのか、という点にあると見てほしい。(出典: Best practices for Claude Code)
もし、あなたがClaudeとのチャットで、同じ指示、チェックリスト、あるいは複数の手順を繰り返し貼り付けているなら、それはSkillとして切り出すべき明確なサインだ。手作業でのコピペは、時間の無駄であるだけでなく、指示の抜け漏れや一貫性の欠如につながりやすい。また、CLAUDE.mdのあるセクションが、もはやプロジェクトの「事実」ではなく、特定の「手順」の説明で肥大化してしまった場合も、Skillへの移行を真剣に検討するタイミングだ。CLAUDE.mdが長くなりすぎると、Claudeが重要な情報を見落としたり、余計な情報を処理するためにトークンコストが増えたりする。これは、AIの思考を鈍らせる原因にもなりかねない。
Skillとして切り出す「使う判断」の具体例
効果的なSKILL.mdの書き方とファイル構成

SKILL.mdは、Claude Codeに特定の作業手順を渡すための再利用可能な説明書です。CLAUDE.mdに常駐させる共通ルールとは分け、繰り返す作業、入力、制約、出力形式だけを小さくまとめます。
---
name: release-check
description: リリース前確認を標準化するSkill
---
# リリース確認Skill
## 目的
差分、テスト、影響範囲を毎回同じ観点で確認する。
## 入力
- 対象ブランチ
- 変更目的
- 対象ファイル
## 手順
1. 差分を要約する。
2. テストと設定漏れを確認する。
3. リスクと確認方法を分けて出す。
## 制約
- 秘密情報や本番トークンの実値を書かない。
- 破壊的な操作は人間の承認を待つ。
## 出力形式
変更概要、リスク、確認コマンド、反映判断
この形にしておくと、Claude Codeへ依頼するときに「どのファイルを対象にするか」「何をしてよいか」「人間がどこを確認するか」を毎回同じ粒度で渡せます。
CLAUDE.mdをスリムに保つ運用戦略
CLAUDE.mdは、プロジェクトの「脳」とも言える重要なファイルだ。しかし、その内容が肥大化しすぎると、Claudeの思考を阻害し、不必要なトークン消費につながってしまう。これは、人間が膨大な量の情報の中から必要なものを見つけ出すのに苦労するのと似ている。Skillsを適切に活用することで、CLAUDE.mdをスリムに保ち、その真価を最大限に発揮させることが可能になる。
CLAUDE.mdには、プロジェクトの「普遍的な真理」とも言える、以下の項目に絞って記述することを強く推奨する。
- プロジェクトの概要と目的: このプロジェクトが何を目指しているのか、どのような課題を解決するのか。Claudeがプロジェクトの全体像を理解するための基盤となる。
MCPとHooksの活用:高度なワークフローの設計
Claude Codeの真価は、CLAUDE.mdとSkillsの適切な使い分けにとどまらない。.mcp.json(Model Configuration Protocol)とhooksを組み合わせることで、さらに高度な自動化と外部連携が可能になる。これらは、AI開発ワークフローをより深くカスタマイズし、プロジェクトの特性に合わせた柔軟な運用を実現するための強力な手段だ。
.mcp.json:外部ツール連携の鍵
.mcp.jsonファイルは、Claude Codeが外部のツールやサービスと連携するための設定を定義する。例えば、Gitコマンドの実行、ファイルシステムの操作、特定のAPIへのアクセスなどをClaudeに許可する際に使用する。これにより、Claudeは単なるコード生成だけでなく、環境のセットアップ、テストの実行、デプロイプロセスの補助など、より広範な開発タスクに関与できるようになる。
Claude Codeとの協調ワークフロー:依頼とレビューのポイント

Claude Codeにタスクを依頼する際、SkillsやMCPの存在と役割を意識することで、より的確で効率的な指示が出せるようになる。しかし、AIが生成した結果を盲目的に受け入れるのは危険だ。常に人間が最終的な品質と安全性を保証する視点を持つことが不可欠となる。
人間とAIが協調してワークフローを進める際、その全体像を理解しておくことが重要だ。まず、人間がタスクの目的と制約を明確にし、Claude Codeに依頼する。ClaudeはCLAUDE.mdの知識と、必要に応じてSkillsやMCPを活用して作業を進める。そして、最終的に生成された結果は、必ず人間がレビューし、品質と安全性を確認する。このサイクルを回すことで、AIの能力を最大限に引き出しつつ、人間のコントロールを維持できる。
人間が確認するリスト
- 変更差分が依頼範囲に収まっているか。
- MCPやhooksの権限が必要最小限か。
- 秘密情報、接続文字列、社内URLの実値が含まれていないか。
- 失敗時に戻せる手順とログが残っているか。
次のステップ:整理された環境で開発を加速する
Claude CodeのCLAUDE.mdとSkillsを適切に整理・運用することは、単にファイルをきれいに保つだけでなく、AIを活用した開発の効率と品質を飛躍的に向上させる。CLAUDE.mdにはプロジェクトの普遍的な知識を、Skillsには再利用可能な手順を格納するという明確な線引きをすることで、Claudeはより少ない情報で的確な判断を下し、あなたの意図を正確に反映した結果を生成できるようになる。
まずは、あなたのプロジェクトで繰り返し行っている作業や、CLAUDE.mdに長々と書かれている手順の中から、Skillとして切り出せそうなものを見つけることから始めてみよう。小さなSkillを一つ作成し、その効果を実感することが、整理されたAI開発環境への第一歩となるはずだ。そして、生成された結果は常に人間の目で確認し、フィードバックを与えながら、より洗練されたSkillsへと育てていくプロセスを楽しんでほしい。
Claude Codeの進化は速い。Anthropicの公式ブログやドキュメント、GitHubリポジトリを定期的にチェックし、新しい機能やベストプラクティスが発表されていないかを確認すると良いだろう。特に、MCPやhooksに関するアップデートは、ワークフローの可能性を大きく広げる可能性があるため、注目しておきたい。また、コミュニティでの議論や他の開発者の事例も、あなたのプロジェクトに合った最適な運用を見つけるヒントになるはずだ。
Claude Codeへの依頼例
依頼例1:
対象ファイル: .claude/settings.json と .claude/hooks/block-dangerous-commands.sh
変更範囲: Bash実行前に git reset --hard、git push --force、rm -rf を止めるPreToolUse hookを追加する
制約: 既存設定を消さず、ブロック時は理由をstderrに出す
確認観点: 通常のgit statusは通り、危険コマンドだけが止まるか
依頼例2:
対象ファイル: .claude/settings.json と package.json
変更範囲: EditまたはWrite後に対象ファイルだけprettierを走らせるPostToolUse hookを追加する
制約: 失敗しても作業ファイルを壊さず、対象外ファイルへ広げない
確認観点: hookのログ、終了コード、差分の範囲を確認できるか
参考文献
anthropic.com Anthropic Claude Code medium.com reddit.com reddit.com Connect Claude Code to tools via MCP Best practices for Claude Code
