C
Claude Academy
Slash Commands

Slash Commands (スラッシュコマンド)

約 12 分 · クイズ 4 問 · 演習 2 問
重要キーワード (3 語)
Slash Command (スラッシュコマンド) — / で始まる定型タスク呼び出し
Frontmatter (フロントマター) — Markdown 冒頭の YAML メタデータ
$ARGUMENTS (引数変数) — コマンド呼び出し時の引数を展開する変数

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

---
description: 現在の git diff をレビューし、問題点と改善提案を出す
allowed-tools: Bash, Read, Grep
---

現在のブランチの未コミット変更 (`git diff`) と、main からの差分 (`git diff main...HEAD`) をレビューしてください。

## レビュー観点
1. **バグの可能性** - off-by-one、null チェック漏れ、例外処理の抜け
2. **セキュリティ** - SQL injection、XSS、シークレットのハードコーディング
3. **パフォーマンス** - N+1 クエリ、不要なループ、巨大コピー
4. **可読性** - 命名、関数の長さ、コメントの過不足
5. **テスト** - 変更箇所に対応するテストが追加されているか

## 出力フォーマット
- 🔴 Critical: 必ず直すべき
- 🟡 Warning: 直したほうが良い
- 🟢 Nit: 好み・スタイル
- ✅ Good: 褒めるべき改善点

各指摘にファイル名と行番号 (`file:line` 形式) を必ず添えてください。

呼び出し: /review

/ship — テスト → コミット → push の連鎖

.claude/commands/ship.md

---
description: テスト→コミット→push を自動化 (失敗時は中断)
allowed-tools: Bash, Read, Edit
argument-hint: <commit message>
---

以下を順に実行してください。**いずれかが失敗したら即座に停止し、原因を報告**してください。

1. `git status` で現在の変更を確認
2. `pytest -q` (Python) または `npm test` (Node) でテスト実行
3. `ruff check` または `eslint .` で lint
4. すべて緑なら `git add -A && git commit -m "$ARGUMENTS"`
5. `git push origin HEAD` で push
6. もし PR がまだなら `gh pr create --fill` で PR 作成

## 中断時の対応
- テスト失敗: 失敗テスト名と原因を報告し、修正提案
- lint 失敗: ファイル名と違反内容を報告
- コミット拒否 (pre-commit hook): フックの出力を要約

途中で中断する時は **絶対に push しない**

呼び出し: /ship feat: add OAuth login

/debug — エラー再現と原因特定

.claude/commands/debug.md

---
description: エラーログから再現手順と原因を特定
allowed-tools: Read, Grep, Glob, Bash
argument-hint: <エラーメッセージ or ログファイルパス>
---

ユーザーが提示するエラー: $ARGUMENTS

## 手順
1. **エラーから関連ファイルを推定** (スタックトレース・キーワードを Grep)
2. **関連コードを Read** して現状を把握
3. **再現スクリプト** を作成 (`scripts/repro_<日付>.sh` 等の使い捨て)
4. **再現を実行** して挙動を確認
5. **根本原因を仮説** (3 つ程度)
6. **修正案** を提示 (パッチではなく、変更すべき箇所と理由)

修正は **適用しないこと**。原因特定だけが仕事。
適用するかは人が判断する。

呼び出し: /debug TypeError: Cannot read property 'name' of undefined at user.js:42

/cleanup — 削除候補のスキャン

.claude/commands/cleanup.md

---
description: 未使用コード・依存・ファイルの候補をスキャン
allowed-tools: Bash, Read, Grep, Glob
---

このリポジトリから **削除候補** をスキャンしてください。

## チェック項目
1. **未使用 import** (Python: `ruff check --select F401`, JS: `eslint --rule no-unused-vars`)
2. **未使用関数/変数** (定義されているが参照ゼロ)
3. **未使用ファイル** (どこからも import/require されていない)
4. **重複コード** (3 箇所以上で似たロジック)
5. **古い TODO/FIXME** (3 ヶ月以上前の git blame)
6. **重複依存** (package.json / requirements.txt に同種ライブラリ)
7. **使われていない環境変数** (.env.example にあるが参照なし)

## 出力
| カテゴリ | パス | 提案 | リスク (高/中/低) |

**勝手に削除しないこと**。レポートのみ。

呼び出し: /cleanup

/explain — コード解説

.claude/commands/explain.md

---
description: 指定ファイルを初心者向けに解説
allowed-tools: Read
argument-hint: <file path>
---

@$ARGUMENTS を読み、**プログラミング 1 年目の人** が理解できる粒度で解説してください。

## 構成
1. **このファイルの役割** (1〜2 行で)
2. **全体のフロー** (時系列の箇条書き)
3. **重要な関数 3 つ** をピックアップして詳細解説
4. **使われている設計パターン** があれば名前と理由
5. **読むときの注意点** (落とし穴・前提知識)
6. **関連ファイル** (一緒に読むと理解が進むファイル)

専門用語は初出時にカッコで日本語訳。コード断片を引用するときは `file:line` を添える。

呼び出し: /explain src/auth/oauth.py


コマンド設計 4 原則

  1. 動詞 + 目的が一目で分かる名前 (/review ◎ vs /check △)
  2. allowed-tools で最小権限 (Read だけで済むものに Bash を渡さない)
  3. 出力フォーマットを明示 (絵文字・表・優先度ラベル)
  4. 「やってはいけないこと」を書く (/debug の「修正は適用しない」など)

💡 自分が 週 3 回以上打つフレーズ は Slash Command 化すると劇的に速くなります。

Hands-on 演習

演習 1: /test カスタムコマンドを作る

あなたのプロジェクトで .claude/commands/test.md を作成し、次の動作をするようにしてください:

  1. pytest または npm test を実行
  2. 失敗があれば失敗テスト名を一覧化
  3. 失敗の根本原因を 1 行で推定

実装後、Claude Code セッションで /test を打って動作確認してください。

▶ Playground を開いて実行
💡 ヒント

Frontmatter は必ず --- で囲むこと。allowed-tools を絞ると安全 (例: Bash, Read のみ)。

演習 2: /explain $ARGUMENTS を作る

ファイル名を引数に取り、コードを 200 字以内で説明する /explain コマンドを作ってください。

呼び出し例: /explain app.py

▶ Playground を開いて実行
💡 ヒント

@$ARGUMENTS と書くと Claude Code がそのパスを Read してくれます。

進捗保存にはログインが必要 クイズに挑戦 (4問)

💬 このレッスンへの質問 (0)

全質問を見る →
質問の投稿には ログイン が必要です。閲覧は誰でも可能です。

まだ質問はありません。最初の 1 件を投稿してみましょう。