Commands vs Skills 完全比較

Claude Code

.claude/commands/ vs .claude/skills/ — いつどちらを使うべきか

Claude Codeでカスタム自動化を作る時、CommandsSkillsのどちらを使うべきか迷うことが多い。核心的な違いを整理する。

最大の違い:自動実行の有無

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監査(スコアリング参照文書が必要)
  • ✓ 認証スキャフォールディング(テンプレートコードが必要)
  • ✓ テスト自動生成(コード変更時自動トリガー)
  • ✓ 複数ステップのワークフロー+参照文書

使い方

1

シンプルな繰り返し作業なら → .claude/commands/名前.md 作成

2

複雑なワークフローなら → .claude/skills/名前/SKILL.md + references/ 作成

3

自動トリガーが必要なら → Skillのdescriptionにトリガー条件を明示

4

引数が必要なら → $ARGUMENTS変数で受け取り(Commands/Skills両方対応)

タグ

#command #skill #comparison #automation #workflow #claude-code

Source

Anthropic Docs