カスタムコマンドを作成・活用しよう
Claude Code には、よく使う指示や複雑な手順を短いコマンドで呼び出せる「カスタムコマンド」という機能があります。
決まったパターンの作業を毎回同じように指示するのは効率的ではありません。
この Lesson では、カスタムコマンドの作成方法と活用法を学びます。
カスタムコマンドとは?
カスタムコマンドは、よく使う指示や複雑な手順を短いコマンドで呼び出せる機能です。
スマートスピーカーやスマホで設定できる「ショートカット」のようなものです。
- 「おはよう」と言ったら → 天気予報、ニュース、今日の予定を読み上げる
- 「帰宅」と言ったら → 家族に連絡、エアコンをつける、音楽を流す
カスタムコマンドも同じように動作します。
たとえば、以下のようなことができます。
/fix-issue 123
と入力したら → GitHub Issue #123 の詳細を確認して修正/deploy-check
と入力したら → デプロイ前の確認項目を実行
複雑な作業を簡単なコマンドで実行できるようになるのです。
2種類のカスタムコマンド
カスタムコマンドには、使える範囲によって2種類あります。
それぞれの特徴を理解して、適切に使い分けましょう。
1. プロジェクトコマンド(チーム共有)
プロジェクトコマンドは、チーム全体で共有できるコマンドです。
保存場所: .claude/commands/
特徴:
- プロジェクトのメンバー全員が使える
- Git でバージョン管理される
- チームの作業手順を標準化できる
呼び出し方: /project:コマンド名
または単に /コマンド名
2. 個人コマンド(自分専用)
個人コマンドは、自分だけが使えるコマンドです。
保存場所: ~/.claude/commands/
特徴:
- 自分だけが使える
- すべてのプロジェクトで利用可能
- 個人的な作業スタイルに合わせてカスタマイズ
呼び出し方: /user:コマンド名
または単に /コマンド名
初めてのカスタムコマンドを作ってみよう
まずは簡単なコマンドから始めましょう。
「コードの改善点を教えてもらう」コマンドを作ります。
プロジェクトコマンドの作成
最初にコマンドを保存するディレクトリを作成します。
# コマンド用のディレクトリを作成mkdir -p .claude/commands
次に、コマンドファイルを作成します。
ファイル名がそのままコマンド名になります。
# コマンドファイルを作成echo "このプロジェクトにおける主要なファイルを確認し、改善点を3つ教えてください。特に以下の観点で確認してください。1. パフォーマンス2. 可読性3. 保守性" > .claude/commands/improve.md
上記コマンドにより .claude/commands/improve.md
というファイルが作成され、以下のように書かれているはずです。
このプロジェクトにおける主要なファイルを確認し、改善点を3つ教えてください。特に以下の観点で確認してください。1. パフォーマンス2. 可読性3. 保守性
このコマンドは improve.md
というファイル名なので、/improve
で呼び出せます。
使い方
Claude Code で以下のように入力するだけです。
> /improve
※もし読み込まれなかった場合は、一度 /exit
で Claude Code を終了してから再起動しましょう。
途中まで入力した時点で、以下のようにコマンド候補が表示されるはずです。
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ > /improve │╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ /improve このプロジェクトにおける主要なファイルを確認し、改善点を3つ教えてください。 (project)
すると、Claude Code は improve.md
の内容を読み込みます。
そして、improve.md
に書いた内容通り、改善提案をしてくれます。
以前のレッスンで作成した index.html
が置いてあるだけのプロジェクトで試した場合、以下のように返答がありました。
> /improve is running…
⏺ プロジェクトの構造を確認して、主要なファイルを特定します。
⏺ List(.) ⎿ Listed 3 paths (ctrl+r to expand)
⏺ Read(index.html) ⎿ Read 17 lines (ctrl+r to expand)
⏺ Update Todos ⎿ ☐ index.htmlのパフォーマンス改善点を分析 ☐ index.htmlの可読性改善点を分析 ☐ index.htmlの保守性改善点を分析
⏺ index.htmlファイルを分析した結果、以下の3つの改善点を提案します:
1. パフォーマンスの改善点
- 言語属性の最適化: lang="ja"は適切ですが、文字エンコーディングの読み込みを高速化するため、<meta charset="UTF-8">をできるだけHTMLの最上部(<head>タグ直後)に配置することを推奨 - リソースヒントの追加: 将来的にCSS/JSファイルを追加する場合に備えて、dns-prefetchやpreconnectなどのリソースヒントを検討 - 画像の遅延読み込み: 今後画像を追加する場合はloading="lazy"属性の使用を推奨
2. 可読性の改善点
- セマンティックHTML: <main>、<section>、<nav>などのセマンティックタグを使用してコンテンツの構造を明確化 - アクセシビリティ: スクリーンリーダー対応のため、適切な見出し階層とaria-label属性の追加 - コメントの追加: 各セクションの目的を示すHTMLコメントを追加
3. 保守性の改善点
- メタ情報の充実: description、keywords、OGPタグなどのメタタグを追加してSEOとソーシャルメディア共有を改善 - 外部リソースの管理: 将来的なスタイルシートやスクリプトファイルの分離に備えた構造化 - バージョン管理: キャッシュ制御のためのファイルバージョニング戦略の準備
引数を使った動的なコマンド
固定の指示だけでなく、状況に応じて変わる部分を「引数」として渡すこともできます。
$ARGUMENTS
という特別なプレースホルダーを使うことで、コマンド実行時に値を渡せます。
ファイルを指定してレビューしてもらう例
特定のファイルのコードレビューをしてもらうコマンドを作ってみましょう。
# コマンドファイルを作成touch .claude/commands/code-review.md
作成された code-review.md
に以下のような内容を記入してください:
$ARGUMENTS のコードをレビューしてください。
以下の観点でチェック:- バグの可能性がある箇所- パフォーマンスの問題- セキュリティの懸念- コードの可読性
問題があれば具体的な修正案も提示してください。
使い方
> /code-review src/components/Button.tsx
これで $ARGUMENTS
の部分が src/components/Button.tsx
に置き換わり、そのファイルのレビューが実行されます。
バグチェック専用コマンドの例
# コマンドファイルを作成touch .claude/commands/bug-check.md
作成された bug-check.md
に以下のような内容を記入してください:
$ARGUMENTS ファイルの潜在的なバグを探してください。
特に以下に注意:- null/undefined参照- 型の不整合- エラーハンドリング漏れ- 境界値の問題
使用例:
> /bug-check src/utils/calculate.ts
複数のファイルを比較するコマンド
$ARGUMENTS
には、コマンド名の後のすべてのテキストが入ります。
# コマンドファイルを作成touch .claude/commands/compare.md
作成された compare.md
に以下のような内容を記入してください:
以下のファイルを比較して違いを説明してください:$ARGUMENTS
共通点と相違点を整理して教えてください。
使用例:
> /compare src/old-version.ts src/new-version.ts
まとめ
カスタムコマンドを使いこなすことで、Claude Code がさらに便利になります。
今回学んだ重要なポイントをおさらいしておきましょう。
- 2種類のコマンド(プロジェクト用と個人用)がある
$ARGUMENTS
で動的な値を渡せる- よく使う作業をコマンド化して効率アップ
/help
でコマンド一覧を確認できる
最初は簡単なコマンドから始めてみてください。
慣れてきたら、引数も駆使した高度なコマンドを作って作業を標準化していきましょう!
コマンド一覧の確認方法
作成したコマンドの一覧を確認したい時は、以下のコマンドを使います。
> /help
これで、利用可能なすべてのカスタムコマンドが表示されます。
プロジェクトコマンドと個人コマンドの両方が確認できます。