Commands vs Skills 完全比較
Claude Code.claude/commands/ vs .claude/skills/ — いつどちらを使うべきか
Claude Codeでカスタム自動化を作る時、CommandsとSkillsのどちらを使うべきか迷うことが多い。核心的な違いを整理する。
最大の違い:自動実行の有無
Commandsはユーザーが/名前で直接呼び出した時のみ実行。Skillsはそれも可能だが、Claudeが作業コンテキストを見て自動判断で実行することもできる。例えばRailsコードを書くとrspec-test-generatorスキルが自動トリガーされる。
2つ目の違い:ファイル構造
Commandsはcommands/名前.mdファイル1つが全て。Skillsはskills/名前/ディレクトリ内にSKILL.md(メイン指示書)+ references/(参照文書)+ その他補助ファイルを含められる。
3つ目の違い:複雑さ
Commandsは「これをやれ」というシンプルなプロンプトに適している。Skillsは複数ステップのワークフロー、参照文書、テンプレートパターン等が必要な複雑な作業に適している。
選択基準
シンプルな繰り返し作業(コミットメッセージ生成、ブログスタイル選択等)→ Command
複雑なワークフロー(アプリスキャフォールディング、PRレビュー、SEO監査等)→ Skill
Commands vs Skills 比較表
| 区分 | .claude/commands/ | .claude/skills/ |
|---|---|---|
| 呼び出し方法 | /command-nameで直接実行のみ | /skill-nameで実行、またはClaudeが自動判断で実行 |
| ファイル構造 | 単一.mdファイル |
ディレクトリ(SKILL.md + references/等補助ファイル) |
| 複雑さ | シンプルなプロンプト/指示書 | 複雑なワークフロー+参照文書を含める |
| 自動トリガー | 不可 — 手動呼び出しのみ | 可能 — descriptionにトリガー条件を明示でClaude自動実行 |
| 引数 | $ARGUMENTS |
$ARGUMENTS(同じ) |
| 参照ファイル | 不可 — .mdファイル1つに全て記述 | 可能 — references/フォルダにスペック、ガイド、テンプレート等配置 |
いつどちらを使う?
Commandが適している場合
- ✓ ブログエントリ生成(/blog-comparison)
- ✓ コミットメッセージ生成(/commit)
- ✓ PR作成(/pr)
- ✓ シンプルな1ページ指示
Skillが適している場合
- ✓ SEO/GEO監査(スコアリング参照文書が必要)
- ✓ 認証スキャフォールディング(テンプレートコードが必要)
- ✓ テスト自動生成(コード変更時自動トリガー)
- ✓ 複数ステップのワークフロー+参照文書
使い方
シンプルな繰り返し作業なら → .claude/commands/名前.md 作成
複雑なワークフローなら → .claude/skills/名前/SKILL.md + references/ 作成
自動トリガーが必要なら → Skillのdescriptionにトリガー条件を明示
引数が必要なら → $ARGUMENTS変数で受け取り(Commands/Skills両方対応)
タグ
Source
Anthropic Docs