code-review について
ローカルでコード変更をレビューするためのガイドです。正確性、セキュリティ、テスト、プロジェクト規約を確認し、優先度やファイル位置を添えた指摘の形式を定めています。
主な機能
- 01差分レビューのチェックリスト
- 02セキュリティとテストの確認
- 03i18nとルーティングの確認
- 04クラウドデプロイ影響の確認項目
- 05指摘の出力形式
活用シーン
- 01ローカルのコード差分をレビュー
- 02修正にテストがあるか確認
- 03クラウドデプロイに影響する変更を特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lobehub/ lobehub --skill code-reviewインストール後、Claude Code で/code-reviewを入力して読み込まれたか確認します。
詳細
コードレビューガイド
開始前
- コードスタイルとテスト規約を確認するため、
/typescriptと/testingのスキルを読みます - 差分を取得します(GitHub のレビューツールから注入されるなど、すでにコンテキストに含まれている場合はスキップしてください):
git diffまたはgit diff origin/canary..HEAD
チェックリスト
正確性
console.log/console.debugの残存箇所 —debugパッケージを使うか、削除してください- try/catch 内の
return awaitの欠落 — https://typescript-eslint.io/rules/return-await/ を参照してください(型情報が必要なため、現在は ESLint 設定に含まれていません) - 修正や実装をより簡潔、効率的、または互換性の高いものにできませんか?
セキュリティ
console.*やdebug()の出力に機密データ(API キー、トークン、認証情報)が含まれていないこと- ターミナルに base64 を出力しないこと — 非常に長くなり、出力がフリーズします
- シークレットをハードコードしないこと — 環境変数を使用してください
テスト
- バグ修正には、修正したシナリオを網羅するテストを含めてください
- 新しいロジック(サービス、ストアアクション、ユーティリティ)はテストで網羅してください
- 既存のテストで、変更した動作が引き続き網羅されていますか?
vi.mockよりvi.spyOnを優先してください(/testingスキルを参照)
i18n
- 新しいユーザー向け文字列には、ハードコードしたテキストではなく i18n キーを使用してください
- キーは
{feature}.{context}.{action|status}の命名規則に従い、src/locales/default/{namespace}.tsに追加してください - PR の場合:すべての言語の
locales/翻訳を更新してください(pnpm i18n)
SPA / ルーティング
desktopRouterのペア: 差分がsrc/spa/router/desktopRouter.config.tsxに触れている場合、同じルートパスとネスト構造でsrc/spa/router/desktopRouter.config.desktop.tsxも更新されていますか? 片方のファイルだけを編集すると、差異が生じて画面が真っ白になることがよくあります。
再利用
- 新しく書いたコードは、
packages/utilsや共有モジュールにある既存のユーティリティと重複していませんか? - わずかに異なるコピペのコードブロック — 共有関数に切り出してください
antdのインポートは、@lobehub/uiのラッパーコンポーネント(Input、Button、Modal、Avatarなど)に置き換えられませんか?- ハードコードした色ではなく
antd-styleのトークンシステムを使用してください。ランタイムでの計算が必要な場合を除き、createStyles+tokenよりcreateStaticStyles+cssVar.*を優先してください
データベース
- マイグレーションスクリプトはべき等である必要があります(
IF NOT EXISTS、IF EXISTSガード)
クラウドへの影響
下流のクラウドデプロイはこのリポジトリに依存しています。クラウド側の更新が必要になる可能性のある変更を指摘してください。
- バックエンドのルートパスの変更 — 例:
src/app/(backend)/webapi/chat/route.tsの名前変更、またはエクスポートの変更 - SSR ページパスの変更 — 例:
src/app/[variants]/(auth)/以下のファイルの移動や名前変更 - 依存関係のバージョン更新 — 例:
package.jsonのnextやdrizzle-ormのアップグレード @lobechat/business-*のエクスポート変更 — 例:src/business/の関数の名前変更、またはpackages/business/の型シグネチャの変更src/business/とpackages/business/では、コメントやコード内でクラウド向けの商用ロジックを公開してはいけません
出力形式
ローカルの CLI レビューのみ(GitHub のレビューツールは代わりに PR へインラインコメントを投稿します):
- 指摘事項に連番を付けてください
- 優先度を示してください:[high] / [medium] / [low]
- 各指摘事項にファイルパスと行番号を含めてください
- 問題点のみを列挙し、要約や称賛は含めないでください
- 各指摘事項についてソース全体を読み直し、実際の問題であることを確認してから、「すべての指摘事項を検証しました。」と出力してください
コメント
Markdown 対応