上級レベルの判断力と厳格なルーブリックを備えたAIコードレビュアー
lazycoderは、変更されたすべてのコードブロックに対して固定のルーブリック(17のルール)を適用し、サンドボックスでチェックを実行し、APPROVE、REQUEST_CHANGES、またはBLOCKの判定を返すコードレビューエージェントです。決定論的で一貫性があり、監査可能であり、設定駆動のポリシーと回帰ゲートとしての評価スイートを備えています。
lazycoderは、上級開発者の判断力を模倣するAIベースのコードレビューツールです。変更された各コードブロックに対して、固定のルーブリック(R1からR17の17ルール)を適用し、サンドボックス内で実際のチェックを実行し、承認(APPROVE)、変更要求(REQUEST_CHANGES)、ブロック(BLOCK)の明確な判定を返します。
このツールのコア設計哲学は決定論的優先です。純粋にロジックで処理できる部分はすべてロジックで行い、非決定論的な言語モデル(LLM)は最後に接続します。この障害分離戦略により、レビューに問題が発生した場合、その原因はプロンプトまたはモデルに限定され、パイプライン自体にはないことが保証されます。
lazycoderのレビュールールセット(R1-R17)は、コードレベル(データ構造、制御フロー、入出力、障害モード、副作用、依存関係)、セキュリティ(バリデーション、シークレット、インジェクション)、シンプルさ、システムレベル(状態、同期/非同期、モノリス/サービス、不変条件)、および保守性、テスト、互換性をカバーします。すべてのルールが評価されなければ、承認判定は出せません。
設定は宣言的なファイルで管理され、config/ディレクトリに格納されます。プロジェクトコンテキスト、ガードレール、ランタイム、作業ループ、レビュールール、プロダクション準備、評価セット、観測可能性などが含まれます。これらのファイルはコードと同じようにレビュー、差分、交換が可能です。
lazycoderの評価スイート(config/evals.json)は、既知の欠陥ケースとクリーンケースから構成され、レビューア自体の性能を測定します。CIゲートとして機能し、フィードバックループを形成します。つまり、コードレビューア自身がレビューアを持ち、変更のたびに自身の品質を確認できます。
開発はテスト駆動開発(TDD)に厳密に従い、すべての動作はREDから始まりGREENで終わります。ドメインモデルは厳格なpydanticモデルを使用し、無効な状態を表現不可能にしています。例えば、合格したルールは発見事項を持つことができず、不合格のルールは必ず発見事項を持たなければなりません。各発見事項はルールIDと正確なファイル:行番号を引用する必要があります。
現在、lazycoderはエンドツーエンドのパイプラインを実装しています。差分解析、ルール評価、集約判定を経て結果を出力します。2つのモードをサポートします。偽クライアント(テスト用、ネットワークやAPIキー不要)と実際のクライアント(オプションのAnthropic API統合)です。最初の実機実行では、E3評価ケースのSQLインジェクションをモデルが検出し、R7ルールが発動してBLOCK判定が下されました。
今後のロードマップには、全評価セットに対する実機モデルの実行とスコア追跡、およびlazycoderを直接PRゲートとして使用できるGitHub Actionの公開が含まれます。
lazycoderは人間のレビューアを完全に置き換えるものではありません。重要な決定は依然として人間が確認します。しかし、人間が苦手とする部分(17ルールすべての記憶、200ファイルにわたる一貫性の維持、チェックが実際に実行されたことの証明)を排除します。