メインコンテンツまでスキップ

カスタムスラッシュコマンド

中級

カスタムスラッシュコマンドは、何度も打ち直しているプロンプトを単一の /word にパッケージ化します。一度定義すれば、永遠に再利用できます(そしてチームと共有できます)。

What you'll learn
  • カスタムコマンドは Skills に統合されました。.claude/commands/deploy.md にあるファイルと .claude/skills/deploy/SKILL.md にあるスキルは、どちらも /deploy を作り、同じように動作します — 既存の .claude/commands/ ファイルは引き続き機能します。Skills はサポートファイル用のディレクトリ、呼び出し制御のフロントマター、関連時の自動読み込みを追加します。単一ファイルのプロンプトを超えるものには、Skill を選びましょう。
What you'll learn
  • カスタムスラッシュコマンドとは何か、なぜプロンプトを打ち直すより優れているかを説明する
  • 適切なディレクトリに Markdown ファイルを置いてコマンドを作成する
  • プロジェクトコマンドと個人コマンドを、その場所で見分ける
  • 構成要素を使う:$ARGUMENTS、埋め込まれた bash 出力、ファイル参照、フロントマター
  • あるタスクに対し、スラッシュコマンド、スキル、サブエージェントのあいだで選ぶ

仕組み

コマンドは単なる Markdown ファイルです。commands ディレクトリに置くと、ファイル名がコマンドになります。ファイルの本文は、呼び出したときに Claude が実行するプロンプトです。

ファイルの場所でスコープが決まります:

Guided walkthrough1 of 3
  1. .claude/commands/changelog.md → /changelog として保存します。リポジトリに存在するため、チーム全員が使えます。
Pro tip
  • フロントマターではなくファイル名がコマンド名になります。changelog.md は常に /changelog です。

最小限の例

以下は完全なコマンドファイルです。フロントマターには description が入り、それ以下がプロンプトです。

commit.md — Conventional Commit をドラフトする

---
description: Draft a Conventional Commit message from the staged diff
---

Look at the staged changes with `git diff --cached` and write a single
Conventional Commit message (feat/fix/docs/refactor/chore). Output only the
message, no preamble.

これを commit.md として保存すれば、/commit が毎回実行してくれます。(ファイル名を変えれば別のコマンドになります — 同じ本文を changelog.md として保存すれば /changelog になります。)

便利な構成要素

4 つの要素が、静的なプロンプトを柔軟なコマンドに変えます:

構成要素機能
$ARGUMENTSコマンドの後にユーザーが入力したものを注入します。/review src/auth.ts → パスがプロンプトに入ります。
bash を実行して出力を埋め込むコマンドはシェル出力(例:現在の diff)を含めることができ、Claude はライブ状態で動作します。
ファイル参照ファイルを指定して内容を含めます。
フロントマターdescription(メニューに表示)とその他のオプション。

引数、bash、ファイル参照の正確な構文は公式ドキュメントを参照してください。

盗む価値のあるコマンド

スタータセットはスラッシュコマンドライブラリにあります:コミットメッセージ、PR 説明、コードレビュー、changelog、コンポーネントのスキャフォールド。

コマンド対 スキル 対 サブエージェント

作業をパッケージ化する 3 つの方法 — 違いは誰がトリガーするかどれだけ隔離して実行するか

  • スラッシュコマンドあなたが既知のワークフローをオンデマンドでトリガーします。
  • スキル — Claude が関連時に自動的に専門知識を読み込みます。
  • サブエージェント — 作業の一部を隔離されたエージェントに委任します。
Enter キーまたはスペースキーでカードを裏返します。左右の矢印キーでカードを移動できます。用語を表示しました。
1 / 6

自己チェック

0/4
  1. チーム全員がリポジトリで使えるようにスラッシュコマンドを保存する場所は?
  2. スラッシュコマンドの名前を決めるのは何ですか?
  3. $ARGUMENTS はコマンドで何をしますか?
  4. あなたがトリガーするのではなく、関連時に Claude が自動的に読み込むパッケージング方法は?