😺

スラッシュコマンドを活用して Git/Github の操作を Claude Code にしてもらう

に公開

はじめに

6/30 から弊社でも Claude Code を使うようになり、おおよそ使用する操作が固まってきました。
今回はその中で利用しているカスタムスラッシュコマンドについてまとめ、実際にどのようなフローで活用しているかを紹介させていただきます。

今回扱う操作

現状、以下の Git/Github 操作をスラッシュコマンドでテンプレート化しています。

  1. Issue の対処
  2. PR の作成
  3. PR に作成された review への対応

設定方法

実際の設定方法は以下の通りです。
保存先には~/.claude/commandsまたはプロジェクト内の.claude/commandsに保存してください。
プロジェクト内でブランチ命名規則やPRのテンプレートがある場合はプロジェクト内に保存するのが良いかと思います。

1. Issue の対処

最新の dev ブランチで基本的に作業を開始するため、checkout するようにしています。
issue 上でアップロードした画像を与えるため、gh-asset というコマンドを使用するように指示しています。

issue-handling.md
新しくブランチを作成して、Issue #$ARGUMENTS に取り組んでください

ただし、github 上に画像リンクがある場合は gh-asset を使って画像をダウンロードして、作業を行ってください
- `gh-asset download <asset_id> .claude/local/assets` 
- 参考: https://github.com/YuitoSato/gh-asset

実行例

今回は Zenn と連携しているリポジトリに以下のような Issue を作りました。

スラッシュコマンドの実行結果は以下の通りです。


Issue 1 を指定


Claude の建てた計画


作成されたブランチ

今回は Zenn と連携しているリポジトリのため、プロジェクト内でブランチ名はタイトルのみのようなルール付けをすると良さそうです。
記事については初めて使ってみましたが、参考に使えそうな記事と publication_name を設定してくれていたのが便利でした。

2. PR 作成

実際の業務での開発では、マージ先をCLAUDE.mdで指定しておくことで、任意のブランチへのマージを義務付けています。

make-pr.md
PR 作成までしてください

実行例


スラッシュコマンドの実行


実際に作られたPR

3. PR に作成された Review への対応

レビューを Copilot と人とで行なっており、その結果見つかった問題について修正する必要があれば取り組んで欲しいため、以下の指示を用意しています。

review-handling.md
PR #$ARGUMENTS に作成された comment, suggestion を精査し、必要であれば対応してください

実行例

今回は試しに以下のようなレビューコメントを追加しました。


追加したレビューコメント


スラッシュコマンドの実行


Claude の建てた計画

実行計画から、レビューコメントが正しく抽出されていることが確認できます。

実際の業務での流れ

上記のカスタムスラッシュコマンドを実際の業務では、以下のフローで活用を行っています。

  1. Claude Code の起動
  2. /issue-handling を実行
  3. plan mode により生成された計画を確認
  4. 計画が問題なければ、Claude Code に対処させる
  5. テストや動作検証の実行
  6. /make-pr を実行
  7. /review-handling を実行
Claude Code を plan mode で起動する方法

Claude Code を指定のモードで起動したい場合は以下の設定を~/.claude/settings.jsonに記入することで実現可能です。

~/.claude/settings.json
{
	"permissions": {
		"defaultMode": "plan"
	}
}

今困っていること

カスタムスラッシュコマンドに追加の指示を与えたい場合に複数 Arguments の指定ができないことに困っています。
arg1, arg2ARGUMENTS[0], ARGUMENTS[1] のような指定の仕方は現状提供されていないため、Issue について追加の情報が与えられません。

issue-handling.md
新しくブランチを作成して、Issue #$ARGUMENTS[0] に取り組んでください

$ARGUMENTS[1] // 追加指示

ただし、github 上に画像リンクがある場合は gh-asset を使って画像をダウンロードして、作業を行ってください
- `gh-asset download <asset_id> .claude/local/assets` 
- 参考: https://github.com/YuitoSato/gh-asset

まとめ

今回は実際に業務で利用しているカスタムスラッシュコマンドについて共有させていただきました。
皆さんも「この作業繰り返し Claude に指示しているな」と感じたら登録してみてください。

参考

カスタムスラッシュコマンドの公式ドキュメント
gh-asset

Discussion