カスタムコマンドとスキルの違いを知りたい
8. スキルコマンド / 機能
.claude/commands/ と .claude/skills/ の統合カスタムコマンドはスキルに統合された
概要
カスタムスラッシュコマンド(.claude/commands/*.md)は Agent Skills に統合されました。.claude/commands/deploy.md と .claude/skills/deploy/SKILL.md はどちらも同じ /deploy コマンドとして呼び出せます。既存の commands/ ディレクトリのファイルもそのまま動作し続けるため、移行は必須ではありません。スキルはディレクトリ構造を持てるため、対応するリソースファイル・frontmatter による呼び出し制御・サブエージェントとしての実行・動的なコンテキスト注入といった、単一 Markdown ファイルの commands/ にはない機能を追加で使えます。
設定例
# 従来のカスタムコマンド(引き続き動作する)
.claude/
commands/
deploy.md # → /deploy
# スキル形式(同じ /deploy として呼び出せる)
.claude/
skills/
deploy/
SKILL.md # → /deploy
scripts/
run-deploy.sh # スキル専用の付随ファイルを同梱できる
templates/
checklist.md
# SKILL.md 側でしか使えない機能の例
---
name: deploy
description: ステージング環境へのデプロイを実行
allowed-tools: Bash, Read
disable-model-invocation: false # Claude による自動呼び出しの可否
context: fork # サブエージェントとして実行
---こんな時に使う
- 既存の commands/ をスキルへ段階的に移行したいか判断したい時
- スキルとカスタムコマンドの機能差を理解したい時
- コマンドに付随ファイル(スクリプトやテンプレート)を持たせたい時
使い方
- 1既存の .claude/commands/*.md はそのまま使い続けられる(動作継続)
- 2新規に作る場合はディレクトリ構造が使える .claude/skills/<name>/SKILL.md を推奨
- 3同じ名前で両方に定義した場合は競合するため、どちらか一方に統一する
Tips
- スキルは対応ディレクトリを持てるため、関連スクリプトやテンプレートを同梱できる
- frontmatter の allowed-tools や disable-model-invocation で呼び出し制御が柔軟にできる
- context: fork でスキルをサブエージェントとして独立実行できる
- commands/ からの移行は必須ではなく、既存資産はそのまま動く