スキル

スキルは、コーディングエージェントに独自の手順や知識を覚えさせるための拡張機能です。スラッシュコマンドとして呼び出せるほか、エージェント自身が状況に応じて自動で使います。

スキル のアイキャッチ図解
まずは、こう考えるとつかみやすいです。

新しく入社した担当者に「このプロジェクトではデプロイはこの手順で、コードレビューはこのチェックリストで」と書いたマニュアルを渡すようなものです。渡した後は担当者が自分で判断して動いてくれます。

ひとことで言うと

スキルは、コーディングエージェントに「この状況ではこう動け」という手順書を読み込ませる仕組みです。Claude Code では SKILL.md というファイルに書くだけで、/スキル名 というスラッシュコマンドとして使えるようになります。

スラッシュコマンドとの違い

コーディングエージェントには /help /clear のような組み込みコマンドがありますが、これらは固定のロジックを直接実行します。スキルはそれとは別の概念です:

  • 組み込みコマンド: CLIに実装された固定処理。AIが関与しない
  • スキル: AIへの指示書。エージェントが内容を読んで考えながら実行する。ファイルを読んだりサブエージェントを立ち上げたりと、状況に応じて動きが変わる

Claude Code でのスキルの作り方

スキルは SKILL.md というファイルを作るだけで追加できます。

~/.claude/skills/commit/SKILL.md       # 個人スキル(全プロジェクトで使える)
.claude/skills/deploy/SKILL.md         # プロジェクトスキル(そのプロジェクトだけ)

ファイルの中身はYAMLフロントマターと指示文の組み合わせです:

---
name: commit
description: コミットメッセージを規約に沿って作り、ステージングからコミットまで行う
disable-model-invocation: true
---

1. git diff --staged でステージ済み変更を確認する
2. Conventional Commits 形式でメッセージを作成する
3. git commit を実行する

/commit と入力するとこのスキルが動きます。

フロントマターの主要フィールド

フィールド説明
nameスラッシュコマンド名。省略するとディレクトリ名が使われる
descriptionエージェントがスキルをいつ使うか判断するための説明
disable-model-invocationtrue にするとエージェントが自動で使わず、手動呼び出しのみになる
allowed-toolsこのスキルの実行中に許可するツール
contextfork にするとサブエージェント内で実行される
modelこのスキルに使うモデルを個別に指定できる

どんな場面で使うか

  • チームのコミット・PR・デプロイ手順をスキルとして共有する
  • コードレビューのチェックリストをエージェントに覚えさせる
  • プロジェクト固有のAPI規約や命名規則を背景知識として読み込ませる
  • 引数を受け取って特定のIssueを修正するような反復作業を自動化する

引数の渡し方

スキルには引数を渡せます。$ARGUMENTS で受け取れます:

---
name: fix-issue
description: GitHubのIssueを修正する
disable-model-invocation: true
---

Issue #$ARGUMENTS を修正してください。
1. Issueの内容を gh issue view $ARGUMENTS で読む
2. 修正を実装してテストを書く
3. コミットしてPRを作成する

/fix-issue 123 と実行すると $ARGUMENTS123 に置き換わります。

実務で気にするポイント

  • disable-model-invocation: true を付け忘れると、エージェントが予期しないタイミングでデプロイ系スキルを自動実行することがある
  • description の書き方でエージェントがスキルを使うタイミングが変わる。「いつ使うか」を明確に書く
  • スキルをリポジトリに .claude/skills/ として含めると、チーム全員が同じ手順を使える
  • 複雑な処理は context: fork でサブエージェントに分離し、メインの会話を汚さない設計が有効
  • スキルの内容が長くなりすぎる場合は支援ファイル(examples.md など)に切り出し、SKILL.md から参照する

注意: スキルはAIへの指示書であり、毎回まったく同じ動きになるとは限りません。デプロイや本番操作を含むスキルには disable-model-invocation: true を設定し、実行タイミングを人が制御してください。