Skip to content

カスタムコマンド(Skills)

Claude Code では、よく使う操作を カスタムスラッシュコマンド として登録し、ワンコマンドで実行できます。

カスタムコマンドとは

カスタムコマンドは、Claude Code に定義済みの指示をまとめて送れる機能です。毎回同じ指示を入力する代わりに、/my-command のように短いコマンドで呼び出せます。

毎回入力する場合:
  > このコードをレビューして、バグ、セキュリティ、
    パフォーマンスの観点からチェックしてください。
    問題があれば修正も行ってください。

カスタムコマンドを使う場合:
  > /review

時間の節約

よく使う定型的な指示をカスタムコマンドにしておくことで、毎回同じことを入力する手間が省けます。チーム全体で共有すれば、品質の統一にも役立ちます。

カスタムコマンドの種類

Claude Code には 2 種類のカスタムコマンドがあります。

1. プロジェクト固有のコマンド

プロジェクトの .claude/commands/ ディレクトリに配置します。Git でチームと共有できます。

my-project/
├── .claude/
│   └── commands/
│       ├── review.md        → /project:review で呼び出し
│       ├── deploy.md        → /project:deploy で呼び出し
│       └── create-test.md   → /project:create-test で呼び出し
├── src/
└── ...

2. 個人用のコマンド

~/.claude/commands/ ディレクトリに配置します。すべてのプロジェクトで使えます。

~/.claude/
└── commands/
    ├── my-review.md     → /user:my-review で呼び出し
    └── my-template.md   → /user:my-template で呼び出し

プロジェクト vs 個人

  • プロジェクト固有.claude/commands/): チームで共有するコマンド
  • 個人用~/.claude/commands/): 自分だけが使うコマンド

カスタムコマンドの作り方

Step 1: ディレクトリを作成

bash
# プロジェクト固有のコマンド用
mkdir -p .claude/commands

# 個人用のコマンド用
mkdir -p ~/.claude/commands

Step 2: コマンドファイルを作成

コマンドファイルはマークダウン形式で書きます。ファイル名がコマンド名になります。

例: コードレビューコマンド

.claude/commands/review.md:

markdown
以下の観点でコードレビューを行ってください:

1. **バグ**: ロジックエラー、null チェック漏れ、型エラー
2. **セキュリティ**: SQL インジェクション、XSS、認証漏れ
3. **パフォーマンス**: 不要なループ、N+1 問題、メモリリーク
4. **可読性**: 命名規則、コメント、関数の長さ
5. **テスト**: テストカバレッジ、エッジケース

問題が見つかった場合は、修正案も一緒に提示してください。

対象ファイル: $ARGUMENTS

$ARGUMENTS 変数

$ARGUMENTS は、コマンド実行時に渡された引数に置き換えられます。

bash
> /project:review src/utils/auth.ts
# → $ARGUMENTS が "src/utils/auth.ts" に置き換わる

例: コンポーネント作成コマンド

.claude/commands/create-component.md:

markdown
以下の仕様で React コンポーネントを作成してください:

コンポーネント名: $ARGUMENTS

## 要件
- TypeScript で作成
- 関数コンポーネント + Hooks を使用
- Props の型定義を含める
- Storybook のストーリーファイルも作成
- ユニットテストも作成

## ファイル構造
- src/components/$ARGUMENTS/$ARGUMENTS.tsx
- src/components/$ARGUMENTS/$ARGUMENTS.stories.tsx
- src/components/$ARGUMENTS/$ARGUMENTS.test.tsx
- src/components/$ARGUMENTS/index.ts

例: デプロイコマンド

.claude/commands/deploy.md:

markdown
以下の手順でデプロイを実行してください:

1. テストを実行して全てパスすることを確認
2. lint を実行してエラーがないことを確認
3. ビルドを実行
4. ビルド結果を確認
5. 問題がなければデプロイコマンドを実行

環境: $ARGUMENTS(指定がなければ staging)

/agents コマンド

Claude Code には、カスタムサブエージェントを定義するための特別な仕組みもあります。.claude/agents/ ディレクトリにエージェント定義を配置します。

my-project/
├── .claude/
│   ├── commands/        ← カスタムコマンド
│   └── agents/          ← カスタムサブエージェント
│       └── reviewer.md  → /agents:reviewer で呼び出し
├── src/
└── ...

サブエージェントとの違い

カスタムコマンドは「定型的な指示を短縮する」もの、サブエージェントは「特定の役割を持った AI アシスタントを定義する」ものです。サブエージェントについては Step 7 で詳しく説明します。

カスタムコマンドの活用例

チーム開発での活用

コマンド用途
/project:reviewコードレビュー
/project:create-prPR 作成
/project:create-testテスト作成
/project:deployデプロイ手順の実行
/project:fix-lintLint エラーの一括修正

個人の効率化

コマンド用途
/user:morning朝の開発準備(ブランチ確認、Issue 確認)
/user:eod終業時の作業まとめ(コミット確認、メモ作成)
/user:explain指定ファイルの説明を日本語で表示

コマンドファイルの注意点

  • ファイル名に日本語は使わないでください(英数字とハイフンのみ推奨)
  • ファイルの拡張子は .md にしてください
  • コマンドファイル内に機密情報を書かないでください

まとめ

項目内容
配置場所.claude/commands/(プロジェクト)、~/.claude/commands/(個人)
ファイル形式マークダウン(.md)
呼び出し方/project:ファイル名 または /user:ファイル名
引数$ARGUMENTS で受け取り可能

次は、ツール実行時に自動処理を追加する Hooks を学びましょう。

Anthropic公式ドキュメントを基に作成