review-checklist について
LobeChat のコード貢献者向けレビュー用スキルです。正確性、安全性、テスト、ローカライズ、ルーティング、再利用、DB マイグレーション、クラウドへの影響を確認します。
主な機能
- 01正確性とセキュリティの確認
- 02テストカバレッジと分離の指針
- 03ローカライズとルーティングの確認
- 04共有 UI とユーティリティの再利用
- 05DB マイグレーションの安全策
- 06クラウド影響の確認項目
活用シーン
- 01バグ修正や機能 PR のレビュー
- 02新しい DB モデルやリポジトリの確認
- 03ローカライズとデスクトップルートの確認
- 04クラウドデプロイに関わる変更の評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lobehub/ lobehub --skill review-checklistインストール後、Claude Code で/review-checklistを入力して読み込まれたか確認します。
詳細
レビューチェックリスト
正確性
console.log/console.debugの消し忘れ —debugパッケージを使うか、削除してください- try/catch 内で
return awaitが抜けていないか — https://typescript-eslint.io/rules/return-await/ を参照(現時点では型情報が必要なため、ESLint 設定には含まれていません) - 修正や実装を、より簡潔かつ効率的に、または互換性を高める形にできませんか?
セキュリティ
console.*やdebug()の出力に機密データ(API キー、トークン、認証情報)が含まれていない- ターミナルに Base64 の出力がない — 出力が極端に長くなり、フリーズするため
- シークレットをハードコードしていない — 環境変数を使用する
テスト
- バグ修正には、修正したシナリオを網羅するテストを含める必要があります
- 新しいロジック(サービス、ストアアクション、ユーティリティ)にはテストカバレッジが必要です
- 新しいデータベース Model/Repository(
packages/database/src/models/**、src/repositories/**)には、同じ階層に__tests__/<name>.test.tsを追加する必要があります。ユーザー分離テストも含めてください。BM25 検索はdescribe.skipIf(!isServerDB)でガードしてください(/testing→db-model-test.mdを参照) - 既存のテストで、変更した動作も引き続きカバーできていますか?
/testingスキルを参照し、vi.mockよりvi.spyOnを優先してください
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/で、コメントやコードにクラウド向けの商用ロジックを公開してはなりません
コメント
Markdown 対応