このブログの記事作成フローは、以前の記事で紹介したように git commit・git push をトリガーにプレビューや本番反映が自動で流れる仕組みになっている。
ただ、毎回 Claude Code を開いて「プレビューして」「本番に反映して」と伝えるのは手間だ。記事を書くことだけに集中したい。 そこで Claude Code のカスタムスラッシュコマンドを使って、これらの操作をワンコマンド化した。
カスタムスラッシュコマンドとは #
Claude Code には、独自のスラッシュコマンドを作れる仕組みがある。所定の場所に Markdown ファイルを置くだけで、そのファイル名がそのままコマンド名になる。
ファイル名 = コマンド名 というシンプルなルールだ。
たとえば preview.md というファイルを置けば /preview というコマンドが使えるようになり、そのファイルの中身がプロンプトとして Claude に渡される。コマンドを入力するだけで、ファイルに書いた指示を Claude が実行してくれる。
配置場所とスコープ #
コマンドファイルの置き場所によって有効範囲が変わる。
| 配置場所 | スコープ |
|---|---|
<プロジェクトルート>/.claude/commands/ |
そのプロジェクトのみ |
~/.claude/commands/ |
全プロジェクトで有効 |
プロジェクト固有の操作はプロジェクト側に置く。こうすると他のプロジェクトで Claude を使っても同名のコマンドが干渉しない。git で管理できるので、チームで共有するときもそのまま使える。
コマンドファイルの書き方 #
基本:ファイル名がコマンド名になる #
.claude/commands/ 配下に置いた .md ファイルが1つのコマンドに対応する。
.claude/
└── commands/
├── preview.md → /preview
├── publish.md → /publish
└── new-article.md → /new-articleファイルの中身は Claude への指示(プロンプト)をそのまま書く。
ローカルプレビューを更新してください。
## 手順
1. `git status` で `files/` 配下の変更ファイルを確認する
2. 変更がなければ「コミットすべき変更がありません」と伝えて終了
3. `git add files/` を実行する
4. コミットメッセージを自動生成して `git commit` を実行する
5. 完了後にプレビューURL を案内する手順を箇条書きにしておくと、Claude が指示通りに動く。
引数を受け取る:$ARGUMENTS
#
$ARGUMENTS をプロンプト内に書くと、コマンド実行時にユーザが入力した文字列に置き換わる。
引数で指定されたファイルをブラッシュアップしてください。
対象ファイル: $ARGUMENTS
## 手順
1. 対象ファイルを読み込む
2. 他の記事と比較してフロントマター・文体・構成を統一する
3. 変更内容を説明してから上書き保存する/new-article files/my-post.md と入力すると、$ARGUMENTS が files/my-post.md に置き換わってプロンプトが実行される。引数を省略した場合は $ARGUMENTS が空文字になり処理できないため、以下のようにプロンプト内でメッセージを出力して終了するよう指示しておく。
対象ファイル: $ARGUMENTS
$ARGUMENTS が空の場合は「対象ファイルを引数で指定してください(例: /new-article files/my-post.md)」と伝えて終了すること。呼び出し方 #
Claude Code のプロンプト入力欄で / を入力すると、利用可能なコマンドが補完候補として表示される。
/preview
/publish
/new-article files/my-post.md引数が必要なコマンドは、コマンド名の後ろにスペースを入れて続けて書く。
/commands でコマンド一覧を確認する
#
CLAUDE.md に「起動時にコマンド一覧を表示すること」と書く方法も試したが、毎回確実に表示されるわけではなく安定しなかった。
そこで、コマンド一覧を表示する専用コマンド /commands を作ることにした。.claude/commands/commands.md を以下の内容で作成する。
このプロジェクトで使えるカスタムコマンドの一覧を表示してください。
```
利用可能なコマンド:
/new-article <files/ファイル名> — 指定記事をブラッシュアップ
/preview — ローカルプレビューを更新
/publish — 本番サーバへ同期
/commands — このヘルプを表示
```必要なときに /commands と入力するだけでヘルプが出る。起動時の自動表示にこだわるより、呼び出せるほうが確実だ。
実際の使い方 #
このブログでは以下の3コマンドを使っている。
/new-article — 記事のブラッシュアップ
#
/new-article files/my-new-post.md指定ファイルと既存記事を読み比べ、フロントマター・文体・構成を統一する。たたきの記事を書いたらまずこれを実行する。
/preview — ローカルプレビュー更新
#
/previewfiles/ 配下の変更ファイルを自動検出し、コミットメッセージを生成して git commit まで実行する。コミットをトリガーにした自動デプロイと組み合わせることで、コマンド一発でプレビューが更新される。
/publish — 本番反映
#
/publish未プッシュのコミット一覧を確認してから git push を実行する。push をトリガーにしたビルド・同期フックと組み合わせることで、コマンド一発で本番まで反映される。
まとめ #
| やること | 方法 |
|---|---|
| プロジェクト用コマンドを作る | .claude/commands/<名前>.md にプロンプトを書く |
| 全プロジェクト共通コマンドを作る | ~/.claude/commands/<名前>.md に置く |
| 引数を受け取る | プロンプト内で $ARGUMENTS を使う |
| コマンドを呼び出す | / 入力で補完候補を表示、または /コマンド名 を直接入力 |
| コマンド一覧をいつでも確認する | /commands コマンドを作って呼び出す |
「記事を書くことだけに集中したい」という動機から始めたが、仕組み自体はどんなプロジェクトにも応用できる。繰り返し使う操作をコマンド化しておくと、Claude Code がより使いやすくなる。