CodeRabbitで登壇する際、コードレビューガイドラインの重要性を取り上げることが多いです。コードレビューガイドラインとは、チームや組織における「コードレビューの共通認識」になります。
このコードレビューガイドラインがないと、以下のような問題が起こります。
- レビューする際の視点がわからない
- レビューする際の視点が人によって違う
- 気分(ノリ)で視点が変わってしまう
そうしたブレを防ぐためにも、コードレビューガイドラインが必要です。
コードレビューガイドラインを作成する際に役立つのが、コードレビュー開発者ガイド | google-eng-practices-jaです。これはGoogleが公開しているガイドラインで、「Google のコードレビューのプロセスとポリシーに関する正規の解説」となっています。なお、大元のリポジトリはアーカイブされているので、最新状況とは異なる可能性があります。
これを読みながら自社の状況に合わせるのがお勧めとしているのですが、一から作るのは大変です。そこで、このGoogleのガイドラインをベースに、ウィザード方式で自社のコードレビューガイドラインを作成できるWebアプリケーションを作ってみました。
Code Review Guideline Creatorについて
Code Review Guideline Creatorで利用している技術は以下の通りです。
- Cloudflare Workers
- React Router
- Tailwind CSS
コードはオープンソースで、MIT Licenseとなっています。
goofmint/review-guideline-creator
作成できるガイドラインについて
Code Review Guideline Creatorでは、以下の2つのガイドラインを作成できます。
- レビュアー向け(レビューする人)
- レビュイー向け(レビューを受ける人)
レビュアーはどういった視点でレビューすべきか、レビュイーはPR提出前にどういった点に配慮すべきかなどを示されています。
ウィザードについて
基本的に質問に回答していくだけです。なるべくデフォルトを設けています。
設問の内容はMarkdownファイルで用意していて、そのファイルを読み込みながらウィザードに反映しています。
この内容を修正すれば、ウィザードも変更されます。なお、設問数は約60問で割と多いので注意してください。
データ保存について
データはサーバー側には一切保存しません。SessionStorageの中に途中経過のデータは保存していて、再読み込みした際に再現するのに利用しています。認証の仕組みもありません。
対応言語について
デフォルトが日本語で、英語にも対応しています。他の言語はウィザード用ファイルを追加すれば対応できます。
AIコードレビューについて
Googleのコードレビューガイドラインには含まれていないAIコードレビューの取り扱いについて、項目を追加しています。レビュアー側、レビュイー側それぞれについて、AIコードレビュー(CodeRabbitのような)をどう扱うかを規定できます。
完成したデータについて
完成したデータはMarkdown、またはPDFでダウンロードできます。ただ、この内容は入力した内容がそのまま出ているだけなので、ちょっと読みづらい印象があります。
そこで、LLM向けのプロンプトも出力するようにしています。こちらの内容をコピーして、ChatGPTやClaudeなどに入力すると、いい感じの読みやすいコーディングガイドラインにしてくれるはずです。
まとめ
コードレビューガイドラインがあると、これからコードレビューをはじめる方のストレス緩和になったり、プルリクエストを提出する人の心構えもできるようになります。
チームの生産性向上、心理的安全性向上のために、ぜひご利用ください!

![FireShot Capture 225 - Code Review Guideline Creator - [rgc.goofmint.dev].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F197026%2Fa6fc0059-7eeb-4891-bdae-a2d607b05221.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=9c989d09549baf0c05f20bd9bf172357)
![FireShot Capture 226 - Reviewer Guidelines - Code Review Guideline Creator - [rgc.goofmint.dev].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F197026%2Faa64c44c-6d29-4b1e-9f6f-430b4b42634f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b3b6dc0e5450af3965affaaac8f05c03)
![FireShot Capture 227 - Guidelines Created - Code Review Guideline Creator - [rgc.goofmint.dev].png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F197026%2F0616944c-3141-470f-ad5b-84f2a69d39da.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=675df0a147755e2afb14466704c7a725)
