CC逆引きリファレンス

カスタムコマンドとスキルの違いを知りたい

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. 1既存の .claude/commands/*.md はそのまま使い続けられる(動作継続)
  2. 2新規に作る場合はディレクトリ構造が使える .claude/skills/<name>/SKILL.md を推奨
  3. 3同じ名前で両方に定義した場合は競合するため、どちらか一方に統一する

Tips

  • スキルは対応ディレクトリを持てるため、関連スクリプトやテンプレートを同梱できる
  • frontmatter の allowed-tools や disable-model-invocation で呼び出し制御が柔軟にできる
  • context: fork でスキルをサブエージェントとして独立実行できる
  • commands/ からの移行は必須ではなく、既存資産はそのまま動く