課題
モノレポでは、パッケージによって標準が異なります。Reactフロントエンドはコンポーネントパターンを重視し、NestJSバックエンドは依存性注入を重視し、共有ライブラリはAPIの安定性を重視します。画一的なレビューは機能しません。戦略の概要
Kodusはモノレポに自然にマッピングされる3つの設定レベルをサポートしています:| レベル | 適用範囲 | 例 |
|---|---|---|
| 組織 | すべてのリポジトリ | ”.env ファイルをコミットしない” |
| リポジトリ | モノレポ | ”コンベンショナルコミットを使用する” |
| ディレクトリ | 特定のパッケージ | ”ReactコンポーネントはPascalCaseを使用する必要がある” |
ステップ1 — パッケージをマッピングする
モノレポ内の異なる領域とそのレビューニーズを特定します:ステップ2 — ディレクトリレベルの設定を作成する
コードレビュー設定 → リポジトリ に移動し、設定するディレクトリをクリックします。 各ディレクトリは以下を持つことができます:- Kodyルール(ファイルレベルとPRレベル)
- レビューオプション(有効にする分析タイプ)
- 提案コントロール(重要度フィルター、最大提案数)
- 除外パス
ステップ3 — ターゲットを絞ったルールを作成する
フロントエンドルール(スコープ:apps/web/)
バックエンドルール(スコープ:apps/api/)
共有ライブラリルール(スコープ:libs/shared/)
ステップ4 — クロスカッティング規約にMemoriesを使用する
一部の規約はどこでも適用されます。それらをMemoriesとして教えます:ステップ5 — ディレクトリごとに提案コントロールを設定する
トラフィックの多いパッケージにはより厳格な制限が必要な場合があります:- apps/web/ — 最大5件の提案、中程度の重要度フィルター(フロントエンドは速く変化する)
- libs/shared/ — 最大15件の提案、低い重要度フィルター(安定性が重要)
- infra/ — 最大3件の提案、高い重要度フィルター(少なくても重要なもの)
ステップ6 — 生成されたパスを除外する
ノイズを避けるためにモノレポ固有の除外設定を追加します:ヒント
- ディレクトリごとに2〜3のルールから始め、チームが実際にレビューでフラグを立てるものに基づいて拡張する
- ルール継承を使用する — 組織レベルのルールはセキュリティをカバーし、リポジトリレベルは規約をカバーし、ディレクトリレベルはアーキテクチャをカバーする
- あるパッケージではルールが頻繁に発火するが他では有効な場合は、ルールを弱めるのではなく、そのディレクトリをルールから除外する