CLAUDE.md・サブエージェント・スキル・コマンド、結局どう使い分ける?

Claudeを使うほど、なぜか疲れる

Claude Codeを使い始めた頃、すべてがメインチャットで完結していた。

シンプルで分かりやすかった。

ところが使い込むうちに、CLAUDE.mdを知り、コマンドを覚え、スキルやサブエージェントという概念に出会いました。

便利になるはずが、「これはどこに書くべき?」「この処理はコマンド?スキル?」と、なぜか迷う時間が増えていきました。

気づけば、Claudeに指示を出す前の「準備」で疲れてしまっている。

もしあなたが同じような状況にいるなら、この記事が役に立つかもしれません。

今回は、私自身が混乱から抜け出すために整理した「使い分けの考え方」を共有したいと思います。

4つの機能を一言で整理してみる

まず、各機能の役割を一言で把握しておきましょう。

機能一言で言うと具体例
CLAUDE.md前提・思想・ルール「このプロジェクトは TypeScript で書く」「テストは必ず書く」
コマンド呼び出しの入口/blog:new で記事作成フローを開始
スキル再利用可能な処理「SEO最適化」「校正」などの定型処理
サブエージェント役割を持った相談相手「インタビュアー」「エディター」など

いかがでしょうか?

実際に使い始めると「で、この場合はどっち?」という場面が必ず出てきます。

よくある間違った使い分け

私自身がやってしまった失敗パターンを紹介します。

失敗1:CLAUDE.mdに「すべて」を書く

「Claudeへの指示はCLAUDE.mdに書けばいい」と思い、プロジェクトのルール、よく使うコマンド、作業手順まで全部詰め込んでしまいました。

結果、CLAUDE.mdが肥大化。

Claudeの応答が遅くなり、しかも指示が多すぎて肝心なルールが埋もれてしまいました。

失敗2:コマンドとスキルを同じものだと思っていた

「どっちも処理を呼び出すものでしょ?」と混同していました。

確かに似ていますが、役割が違います。

コマンドは「入口」で、スキルは「中身」。

玄関と部屋の違いのようなものです。

失敗3:サブエージェントを作りすぎる

「役割分担すれば効率的」と考え、細かい作業ごとにサブエージェントを定義しました。

管理が大変になり、どのエージェントを呼べばいいか分からなくなりました。本末転倒でした。

Claude Codeでよくある失敗パターンでも触れていますが、「便利にしようとして複雑にする」のは典型的な落とし穴でした。

「前提・判断・作業」で分ける

混乱を抜け出すために、私は3つの軸で整理することにしました。

前提:CLAUDE.md

「Claudeが常に知っておくべきこと」を書く場所。

  • プロジェクトの技術スタック
  • コーディング規約
  • 絶対に守るべきルール

ポイントは「毎回伝える必要があること」だけを書くこと。

一度きりの指示や、特定の作業手順は書かないことにしました。

CLAUDE.mdの育て方で詳しく記載しましたが、最初は3〜5行で十分。

使いながら育てていくのがコツだと感じています。

判断:コマンド

「何をするか決める入口」がコマンド。

ユーザーが「この作業をやりたい」と意思表示する手段です。

コマンドを実行すると、必要なスキルやサブエージェントが呼び出されます。

例えば `/blog:new tech` と打てば、「techカテゴリの新規記事を作る」という判断が伝わり、適切な処理フローが始まります。

作業:スキルとサブエージェント

「実際に手を動かす部分」がスキルとサブエージェント。

では、この2つはどう違うのか?

  • スキル:定型的で、毎回同じように実行される処理
  • サブエージェント:状況に応じて判断しながら進める処理

SEO最適化のように「決まったチェック項目を確認する」のはスキル向き。

インタビューのように「相手の回答に応じて質問を変える」のはサブエージェント向き。

最小構成のおすすめ例

「結局どこから始めればいいの?」という人のために。

Step 1:CLAUDE.mdだけ作る

まずはこれだけ。

markdown
# プロジェクト概要

このプロジェクトは〇〇です。

# 技術スタック

- TypeScript

- React

# ルール

- 関数には必ずJSDocを書く

これだけで、Claudeの出力がプロジェクトに合ったものになります。

Step 2:よく使う作業をコマンド化

同じ指示を3回以上繰り返したら、コマンドにする。

.claude/commands/review.md

中身は、いつも打っている指示をそのまま書けば大丈夫です。

Step 3:必要になったらスキル・サブエージェントを追加

「コマンドの中身が複雑になってきた」「役割を分けた方が管理しやすい」と感じたら、初めてスキルやサブエージェントを検討します。

最初から全部揃える必要はありません。

迷ったときの判断基準

それでも「これはどこに書く?」と迷うことがあります。

そんなときの判断基準です。

Q: 毎回Claudeに伝える必要がある?

  • Yes → CLAUDE.md
  • No → 次へ

Q: ユーザーが明示的に呼び出す?

  • Yes → コマンド
  • No → 次へ

Q: 処理は定型的?

  • Yes → スキル
  • No → サブエージェント

この順番で考えれば、大体の場合は整理できると思います。

/compactと/clearの使い分けのように、具体的なコマンドの使い方を知ると、この判断基準がより腑に落ちるようになるでしょう。

慣れないうちは複雑に感じてしまうと思いますが、ひとつづつ理解していく感じで大丈夫です。

今日からできる1アクション

最後に、今日からできることを1つ。

「次にClaudeを使うとき、CLAUDE.mdに1行だけ追加してみる」

大げさな設計は要いりません。

「このプロジェクトではsnake_caseを使う」でも「日本語で返答する」でもいいです。

その1行が、Claudeとの会話を少しだけ楽にしてくれます。

そこから少しずつ育てていけばいいのです。

機能が増えて複雑に見えても、本質は「Claudeとの会話をどう設計するか」だけ。

前提・判断・作業という3つの置き場所を意識するだけで、混乱はかなり減るとおもいます。

Claudeを使うことが負担ではなく、本当の意味で「楽」になることでしょう。

参考文献