3 Layers of Code Review on Next.js + TypeScript: I Cut Human Review Time From 4h to 25min per PR A developer cut human code review time from four hours to 25 minutes per pull request by implementing a three-layer review system on a Next.js 15 + TypeScript + Prisma project. The layers use Biome and husky for mechanical checks, CodeRabbit and Copilot for pattern-level review, and the developer for design and business rule decisions. The developer found that 70% of their review comments could have been automated. I was spending about four hours per pull request on review. Not on hard PRs — on all of them. Prisma model tweak? Half an hour of comments about naming. Server Action refactor? An hour of "hey, missing use client " back-and-forth. New Repository class? Ninety minutes because I was reading through 12 similar files to double-check the pattern. I ran a small audit on my own comments across a month. About 70% of what I wrote could have been said by a tool. Types, naming, format, "you forgot a test", "don't use any ". Only 30% touched actual design decisions. So I split review into three layers, wired them up on a Next.js 15 + TypeScript + Prisma project, and the human portion dropped to about 25 minutes per PR. Below are the actual configs. Layer 1: Biome + husky pre-commit, pre-push — mechanical Layer 2: CodeRabbit + Copilot on PR open — pattern-level Layer 3: Me — design + business rule Each layer has an explicit job. Layer 1 refuses to let mechanical noise reach Layer 2. Layer 2 refuses to let pattern-level noise reach Layer 3. Layer 3 only fires when the diff has already survived the first two. That's the whole idea. The rest is config files. Before any config: the file all three layers point to. AGENTS.md Project Next.js 15 + TypeScript + Prisma + PostgreSQL Architecture - App Router Server Component default - Repository Pattern data access via Prisma - Service layer business logic - Result