The problem with rubber-stamp LGTM reviews

When a pull request touches 15 files and 600 lines of code, human reviewers rarely trace every error path or connection-pool boundary. Conversely, a 10-line change often receives 12 bikeshedding comments on variable naming.

CodeOtter brings structured engineering rigor to every pull request—evaluating both small high-risk diffs and large multi-module changes against the exact same six calibrated 0–100 gauges and repository guidelines (AGENTS.md and CLAUDE.md).

How judge() sanitizes untrusted model output before PocketBase storage

A core engineering rule in CodeOtter is that model output is untrusted. Whether scores come from System One or findings come from a language model, judge() normalizes every score, verdict, finding severity, and file walkthrough before writing to PocketBase—preventing malformed model fields from ever reaching the UI.