1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code: Command と Skill の違いと Skill でできること

1
Last updated at Posted at 2026-06-30

きっかけ:MicroCMSへのPOSTを自動化しようとした

Claude Code で MicroCMS の API にコンテンツをPOSTする処理を作ろうとしたとき、最初に作ってくれたのが /microcms-post というカスタムコマンド(Command)でした

カスタムコマンドを知らなかったので、何度か指示し直して Skill に変えてもらいました
その流れで Command と Skill の違い が気になって調べてみました

調べてみた

公式ドキュメント( https://code.claude.com/docs/ja/skills )を読んでみると、こんな記述がありました

カスタムコマンドはスキルにマージされました。.claude/commands/deploy.md のファイルと .claude/skills/deploy/SKILL.md のスキルの両方が /deploy を作成し、同じように機能します。既存の .claude/commands/ ファイルは引き続き機能します。スキルは追加機能を提供します。

Command は Skill に統合された旧仕様 とのことでした

カスタムコマンド(Command)とは

ClaudeCode でカスタムのスラッシュコマンドを作るための仕組みです
.claude/commands/hello.md というファイルを作れば、/hello というコマンドが使えるようになります

.claude/commands/microcms-post.md
---
description: MicroCMS にコンテンツをPOSTする
---

## Instructions

$ARGUMENTS の内容を MicroCMS API にPOSTする。
エンドポイント: https://your-service.microcms.io/api/v1/posts

スキル(Skill)とは

Skill は Command の上位互換にあたる仕組みです
.claude/skills/<スキル名>/SKILL.md というディレクトリ構成で、フロントマターで指定できる項目が多くなっています

.claude/skills/microcms-post/SKILL.md
---
description: MicroCMS にコンテンツをPOSTする。投稿・更新・下書き保存の依頼で使う。
disable-model-invocation: true
allowed-tools: Bash(curl *)
---

## Instructions

$ARGUMENTS の内容を MicroCMS API にPOSTする。
エンドポイント: https://your-service.microcms.io/api/v1/posts

機能比較

機能 Command Skill
ファイル構成 単一 .md ファイル ディレクトリ + SKILL.md
Claudeによる自動呼び出し ✓ description に一致した場合
サブエージェント実行 context: fork
動的コンテキスト注入 !`command` 構文
ツールの事前承認 allowed-tools
サポートファイル ✓ 同ディレクトリに追加可
既存ファイルの継続利用 ✓ 後方互換

機能を調べる

Skill には知らなかった機能がいくつかあったので、それぞれ調べてみました

Claudeによる自動呼び出し

Skill の description フロントマターをうまく書いておくと、ユーザーが明示的に /skill-name と打たなくても、Claude が「これは関係ありそう」と判断して自動的に読み込んでくれます
逆に、副作用のある処理(デプロイ、外部APIへのPOSTなど)は意図せず呼ばれると困るので、disable-model-invocation: true を付けておくとよさそうです

---
description: MicroCMS にコンテンツをPOSTする。投稿・更新の依頼で使う。
disable-model-invocation: true  # ← 副作用があるので手動呼び出しに限定
---

サブエージェント実行

context: fork を付けると、スキルを独立したサブエージェントとして実行できます

通常のスキルは今の会話の中で実行されますが、context: fork を付けると会話履歴を持たないクリーンな状態で分岐して実行され、結果だけがメインの会話に返ってきます

.claude/skills/deep-research/SKILL.md
---
description: コードベースを調査する
context: fork
agent: Explore
---

$ARGUMENTS について徹底的に調査してください。
1. Glob と Grep で関連ファイルを探す
2. コードを読んで分析する
3. ファイルパスを明示しながら結果をまとめる

agent: Explore を指定するとファイル読み取り特化のエージェントが使われるので、コードベースの調査などに向いています

通常スキル context: fork
会話履歴 引き継ぐ なし(クリーンな状態)
実行 メインの会話の中 独立したエージェント
向いている処理 参照・ガイドライン系 調査・デプロイなど重い処理

動的コンテキスト注入(!`command`

SKILL.md の中で !`git diff HEAD` のように書くと、Claude がスキルを読む前にシェルコマンドが実行されて、その結果がそのままプロンプトに埋め込まれます

## 現在の変更

!`git diff HEAD`

## 指示

上記の差分をもとに変更内容を要約してください。

ツールの事前承認

allowed-tools を使うと、スキルが動いている間だけ指定したツールを確認なしで実行できるようになります

ClaudeCode はシェルコマンドを実行するとき、通常ユーザーに承認を求めます。allowed-tools に書いたツールはその確認が省略されます

.claude/skills/microcms-post/SKILL.md
---
description: MicroCMS にコンテンツをPOSTする
allowed-tools: Bash(curl *)   # ← curl コマンドは許可なしで実行できる
---

Bash(curl *) と書くと「curl で始まるコマンドはすべてOK」という意味になります
MicroCMS への POST のような「このスキルを呼んだら curl を叩くのは当然」という処理には書いておくとスムーズです

サポートファイル

Skill はディレクトリ構成なので、SKILL.md 以外のファイルも一緒に置けます

.claude/skills/microcms-post/
├── SKILL.md          # メインの指示(必須)
├── template.md       # 投稿のテンプレート
├── examples/
│   └── sample.md     # 出力例
└── scripts/
    └── validate.sh   # バリデーション用スクリプト

SKILL.md の中でサポートファイルを参照しておくと、Claude が必要なときだけ読みに行きます
SKILL.md を短く保ちながら、詳細な情報を別ファイルに分けられるのが便利です

SKILL.md
## Instructions

$ARGUMENTS の内容を MicroCMS API にPOSTする。

投稿フォーマットは [template.md](template.md) を参照してください。
出力例は [examples/sample.md](examples/sample.md) を確認してください。

まとめ

Command は Skill にマージされた旧仕様で、Skill が現在の推奨です
既存の Command はそのまま動きますが、新しく作るときは Skill を使うとよさそうです

Claude Code が最初に Command を作っていたのは、どちらも /コマンド名 で呼び出せる同じ仕組みだからかもしれないと思いました

最後に、Skill には自動呼び出しやサブエージェント実行など、Command にはない追加機能があることを知ることができたので、より使いやすくするためにも使っていこうと思います

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?