Slash Commands (スラッシュコマンド)
重要キーワード
Slash Commands
/ で始まるコマンドで、よく使うタスクをショートカット化できます。
組み込みコマンド (一部)
| コマンド | 機能 |
|---|---|
/help |
ヘルプ |
/clear |
コンテキストクリア |
/model |
モデル切替 |
/init |
CLAUDE.md 雛形生成 |
/review |
PR レビュー |
/security-review |
セキュリティ観点でのレビュー |
/config |
設定 |
/agents |
サブエージェント一覧 |
/permissions |
権限ルール編集 |
/cost |
セッションのトークン消費表示 |
/compact |
会話の要約圧縮 |
カスタムコマンド
.claude/commands/<name>.md を作るだけで自分の slash command を定義できます。
例: .claude/commands/test.md
---
description: プロジェクトの全テストを実行する
---
このプロジェクトの自動テストを実行し、失敗があれば原因を分析してください。
- Python: `pytest -q`
- Node: `npm test`
失敗したテスト名と原因の要約を箇条書きでまとめてください。
$ARGUMENTS
引数を受け取れます。
---
description: 指定したファイルを要約
---
@$ARGUMENTS の内容を 5 行で要約してください。
呼び出し:
/summarize src/server.py
階層
~/.claude/commands/...ユーザーグローバル<repo>/.claude/commands/...プロジェクト固有
チームでカスタムコマンドを共有するなら、リポジトリにコミットしましょう。
よく使われる自作コマンド例
| コマンド | 用途 |
|---|---|
/lint-fix |
フォーマッタ + 自動修正 + テスト |
/changelog |
直前のコミット群から CHANGELOG エントリを生成 |
/migrate-test |
DB マイグレーションのテスト |
/triage |
直近の Issues を優先度順にトリアージ |
/release-notes |
リリースノートを下書き |
Frontmatter の主な項目
---
description: コマンドの説明 (必須)
allowed-tools: Read, Edit, Bash # 利用可能ツールを限定 (任意)
argument-hint: <file path> # 引数のヒント (任意)
---
Plugin としての配布
カスタムコマンド・スキル・MCP を一括配布する Plugin という仕組みもあります。
GitHub に公開して、claude plugin install <user>/<repo> のように受講者全員に配るのに便利。
実用例: 5 つの自作コマンド完全版
すぐコピペで使える 本格的な自作コマンド集。.claude/commands/ に置くだけで動きます。
① /review — git diff レビュー
.claude/commands/review.md
```markdown
description: 現在の git diff をレビューし、問題点と改善提案を出す allowed-tools: Bash, Read, Grep
現在のブランチの未コミット変更 (git diff) と、main からの差分 (git diff main...HEAD) をレビューしてください。
レビュー観点
- バグの可能性 - off-by-one、null チェック漏れ、例外処理の抜け
- セキュリティ - SQL injection、XSS、シークレットのハードコーディング
- パフォーマンス - N+1 クエリ、不要なループ、巨大コピー
- 可読性 - 命名、関数の長さ、コメントの過不足
- テスト - 変更箇所に対応するテストが追加されているか
出力フォーマット
- 🔴 Critical: 必ず直すべき
- 🟡 Warning: 直したほうが良い
- 🟢 Nit: 好み・スタイル
- ✅ Good: 褒めるべき改善点
各指摘にファイル名と行番号 (file:line 形式) を必ず添えてください。
```
呼び出し: /review
② /ship — テスト → コミット → push の連鎖
.claude/commands/ship.md
```markdown
description: テスト→コミット→push を自動化 (失敗時は中断)
allowed-tools: Bash, Read, Edit
argument-hint:
以下を順に実行してください。いずれかが失敗したら即座に停止し、原因を報告してください。
git statusで現在の変更を確認pytest -q(Python) またはnpm test(Node) でテスト実行ruff checkまたはeslint .で lint- すべて緑なら
git add -A && git commit -m "$ARGUMENTS" git push origin HEADで push- もし PR がまだなら
gh pr create --fillで PR 作成
中断時の対応
- テスト失敗: 失敗テスト名と原因を報告し、修正提案
- lint 失敗: ファイル名と違反内容を報告
- コミット拒否 (pre-commit hook): フックの出力を要約
途中で中断する時は 絶対に push しない。 ```
呼び出し: /ship feat: add OAuth login
③ /debug — エラー再現と原因特定
.claude/commands/debug.md
```markdown
description: エラーログから再現手順と原因を特定 allowed-tools: Read, Grep, Glob, Bash argument-hint: <エラーメッセージ or ログファイルパス>
ユーザーが提示するエラー: $ARGUMENTS
手順
- エラーから関連ファイルを推定 (スタックトレース・キーワードを Grep)
- 関連コードを Read して現状を把握
- 再現スクリプト を作成 (
scripts/repro_<日付>.sh等の使い捨て) - 再現を実行 して挙動を確認
- 根本原因を仮説 (3 つ程度)
- 修正案 を提示 (パッチではなく、変更すべき箇所と理由)
修正は 適用しないこと。原因特定だけが仕事。 適用するかは人が判断する。 ```
呼び出し: /debug TypeError: Cannot read property 'name' of undefined at user.js:42
④ /cleanup — 削除候補のスキャン
.claude/commands/cleanup.md
```markdown
description: 未使用コード・依存・ファイルの候補をスキャン allowed-tools: Bash, Read, Grep, Glob
このリポジトリから 削除候補 をスキャンしてください。
チェック項目
- 未使用 import (Python:
ruff check --select F401, JS:eslint --rule no-unused-vars) - 未使用関数/変数 (定義されているが参照ゼロ)
- 未使用ファイル (どこからも import/require されていない)
- 重複コード (3 箇所以上で似たロジック)
- 古い TODO/FIXME (3 ヶ月以上前の git blame)
- 重複依存 (package.json / requirements.txt に同種ライブラリ)
- 使われていない環境変数 (.env.example にあるが参照なし)
出力
| カテゴリ | パス | 提案 | リスク (高/中/低) |
勝手に削除しないこと。レポートのみ。 ```
呼び出し: /cleanup
⑤ /explain — コード解説
.claude/commands/explain.md
```markdown
description: 指定ファイルを初心者向けに解説
allowed-tools: Read
argument-hint:
@$ARGUMENTS を読み、プログラミング 1 年目の人 が理解できる粒度で解説してください。
構成
- このファイルの役割 (1〜2 行で)
- 全体のフロー (時系列の箇条書き)
- 重要な関数 3 つ をピックアップして詳細解説
- 使われている設計パターン があれば名前と理由
- 読むときの注意点 (落とし穴・前提知識)
- 関連ファイル (一緒に読むと理解が進むファイル)
専門用語は初出時にカッコで日本語訳。コード断片を引用するときは file:line を添える。
```
呼び出し: /explain src/auth/oauth.py
コマンド設計 4 原則
- 動詞 + 目的が一目で分かる名前 (
/review◎ vs/check△) - allowed-tools で最小権限 (Read だけで済むものに Bash を渡さない)
- 出力フォーマットを明示 (絵文字・表・優先度ラベル)
- 「やってはいけないこと」を書く (
/debugの「修正は適用しない」など)
💡 自分が 週 3 回以上打つフレーズ は Slash Command 化すると劇的に速くなります。
演習: /test カスタムコマンドを作る
あなたのプロジェクトで .claude/commands/test.md を作成し、次の動作をするようにしてください:
pytestまたはnpm testを実行- 失敗があれば失敗テスト名を一覧化
- 失敗の根本原因を 1 行で推定
実装後、Claude Code セッションで /test を打って動作確認してください。
演習: /explain $ARGUMENTS を作る
ファイル名を引数に取り、コードを 200 字以内で説明する /explain コマンドを作ってください。
呼び出し例: /explain app.py
まとめ
お疲れ様でした!