はじめに
FeatureブランチのコードレビューをするCodexのSkillsを作成しました。
以下のようなユースケースを想定しています。
- Gitコミット毎のコードレビューを行いたい場合
- 自分の改修内容について、Github Pull Requestでの自動コードレビューが行われる前に、ローカル環境でコードレビューをしておきたい場合
- 他の人のPull Requestを、Github上の自動コードレビュー以外により細かく行いたい場合
今回作成したCodex Skills
以下で公開しています。
Skills 導入方法
以下の要領でインストール可能です。
# codex CLIを起動
$ codex
# codex CLI内で以下を実行
$skill-installer https://github.com/koda-h/feature-branch-single-commit-review を導入してください
feature-branch-single-commit-review Skillsの仕様
※ 以下、README と同一の内容です。
develop から派生した feature ブランチを対象に、分岐後のコミットを 1 コミット差分単位で順番にレビューする skill です。
できること
-
merge-base -> 1件目,1件目 -> 2件目のように差分ペア単位でレビューする - 各指摘について、最新コミット
HEADで未修正か修正済みかも確認する - 各指摘に、GitHub コードレビューのように読める
変更前 / 変更後の差分抜粋をデフォルトで含める - レビューレベルを
high/middle/lowで切り替える - レビュー結果を
docs/code_review/<branch-name>_YYYYMMDDHHmm.mdに保存する
レビュー件数
- デフォルトは 10 件単位でレビューします
- 残件がある場合は、その場で続けるか確認します
- 件数を指定すれば、その件数だけレビューできます
- 続きをレビューする場合は、新しいファイルを作らず先に作成したレポートへ追記します
出力ファイル
- 保存先:
docs/code_review/ - ファイル名:
<現在ブランチ名の / を - に置換>_YYYYMMDDHHmm.md - 続きレビュー時: 同一ブランチの最新レポートファイルへ追記
例:
-
feature/TASK-1111->docs/code_review/feature-TASK-1111_202603301230.md
使い方
$feature-branch-single-commit-review
$feature-branch-single-commit-review で middle 以上だけレビューして
$feature-branch-single-commit-review でまず 10 件レビューして
$feature-branch-single-commit-review で次の 5 件をレビューして
レポート内容
- 差分ペアごとの指摘
- 各指摘の文頭に置く状態ラベル (
[未修正]/[修正済み]/[要確認]) - 重大度 (
high/middle/low) - 対象ファイルと位置
- GitHub コードレビューのように読める
変更前 / 変更後の差分抜粋 - 問題内容
- 最新コミットでの状態 (
未修正/修正済み/要確認)
差分抜粋について
変更前 / 変更後 の差分抜粋は追加オプションではなく、デフォルトの出力に含まれます。
差分抜粋は GitHub コードレビューに近い diff コードブロックで出力します。
- 行を変更前、+ 行を変更後として読める形で示します。
長い差分全文は貼らず、レビュー論点に必要な最小限の hunk に絞って出します。
具体的な利用方法
今回はこちらのECSのダッシュボード機能を提供するシステムにて、ユーザ一管理機能を開発したとき、このSkillsを利用したレビューを行いました。
$feature-branch-single-commit-review を実行します。
$f のように入力すると、Skills一覧が表示されるので、該当のSkillsを選択してEnterを押すとSkills名が補完されます。
実行すると以下のようにコードレビューが行われます。
以下の通り、レビュー結果が表示されました。
docs/code_review/feature-add_manage_view_202604051920.md
に書き込んで問題ないか聞かれますので、Yes回答をします。
コードレビュー結果のファイルは以下です。
Skills作成のためのCodex指示
以下のようにCodexに指示していくことで、今回のSkillsを作成しました。
› コードレビューするskillsをつくりたいです
developブランチからfeatureブランチをつくる運用にしています
featureブランチが作られた以降の1コミットの差分の内容をレビューするようにしたいです。
レビューレベルは、high, middle, low に分けられ、skills 利用時にどのレベル以上が必要か選択できるようにしたいです。
デフォルトは全レベルとします。
--------------
› 追加要件です。 レビュー結果は、 documents/code_review_202603301230.md のような形式で保存して欲しいです。
--------------
› 格納ディレクトリですが docs/code_review/feature-TASK-1111_202603301805.md のようになるようにしてください
feature-TASK-1111 は、 feature/TASK-1111 のような featureブランチ名です。
--------------
› ベースが a66345a なので a66345a との差分、 次に 46cb6e2 と 0d529d4 の差分 というように順番にレビューしていくようにしたいです。
出力ドキュメントには どこのコミット差分での指摘かわかるように、指摘内容の箇所に 1. `a9e265be` -> `e5837e7a` のような記載をしてください。
--------------
› feature-branch-single-commit-review の修正依頼です。
各コミットのレビューをする際には、必ず最新コミットの内容も確認し、各コミットで問題がある箇所が見つかった場合、最新コミットでは修正済みなのかをチェックしてください。 レビュー内容としては出力させ、最新コミットで修正されているかどうかの記載もするようにしてください。
--------------
› feature-branch-single-commit-review の修正依頼です。
レビューするコミット数は10件単位で行ってください。完了してまだ件数がある場合はユーザに続けてチェックするか確認してください。確認する際は、デフォルトは10件だが件数を指定すればその件数をチェックすることも可能なことをユーザに示してください。
--------------
› feature-branch-single-commit-review の修正依頼です。
README.md をつくってください
--------------
› feature-branch-single-commit-review の修正依頼です。
10件完了後に続きを行う場合は、新しくファイルを作成するのではなく、先にレビューしていたファイルに対して追記する形にしてください。
--------------
› feature-branch-single-commit-review の修正依頼です。
Githubコードレビューのように、変更前と変更後の差分を表示するようにしてください
おわりに
今回このSkillsを作成しようとしたきっかけとしては、
- とりあえずSkillsがどのようなものかつくって使ってみたかった
- Pull Request後にGithub CopilotやCodexのレビューをしていたが、レビュー内容が多いため先にローカルでレビューをした上でPull Requestを出したい
- Pull Request後だと、developとの差分に対してレビューすることになるが、コミット毎の差分でレビューしたい
と、考えたためです。
また、Skillsを作成していく中で、
- コミット毎のレビューでは指摘があるが、最終的には直っている場合もあるので、最新コミットではその指摘部分が修正されているかどうかを確認したい
- Github Pull Request上のレビューのように、指摘部分のコードの変更差分も表示させたい
というような追加要件もでてきたので、それらも追加で指示することでSkillsの機能を拡張することができました。
本記事が、CodexのSkills作成の参考になれば幸いです。
※ 生成AI利用に際して、取り扱う情報については十分ご注意ください。


