Urgent.News

What's breaking now, across thousands of outlets.

AI

I refuse to open sloppy AI PRs. These eight blockers are the whole review.

Lint is green. The bot left forty comments about naming. Somebody typed LGTM. Then billing double-charged, or the migration locked the table, or the "internal" route was sitting on the public router. If you have been reviewing AI-authored diffs for more than a month, you already know this shape. The model is fluent. The linter is happy. The PR description is a file list. The thing that will page…

I refuse to open AI-authored PRs that lack clear blockers. An AI-generated PR that fails to name a rollback method is essentially a vibe check. The eight blockers I consider before even opening a PR are the whole review process. These blockers are the ones that can page someone, corrupt data, leak access, or ship a change that cannot be undone without a forward-fix.

Naming conventions, file length, and architectural preferences do not qualify as blockers. Every finding must cite the exact path and line number; otherwise, it is not considered a finding. Reviews are categorized into three buckets: BLOCKER, WARNING, and SILENT. A BLOCKER requires immediate fixing or a documented justification for acceptance before merge.

A WARNING is a one-sentence comment that does not delay the merge process. A SILENT finding is ignored entirely. A pass indicates zero blockers. A WarnBlocker is raised when the change is user-visible or writes data, with no way to turn it off or reverse it without a forward-fix. Examples include a missing feature flag on a risky path, an irreversible migration, or deleting an endpoint with no sunset.

When a PR changes request/response shapes, status codes, error codes, event payloads, or CLI flags in a way that current clients will mishandle, it is a BLOCKER. Similarly, ANY change that alters the schema or meaning of stored data, causing existing rows to be wrong, null, or unreadable, is a BLOCKER. New NOT NULL fields without defaults and without backfills are also BLOCKER issues.

An Enum value reuse, timezone or unit changes, and silent field name changes are also BLOCKER issues. Authz gaps are BLOCKER issues when a new or changed path reads or writes sensitive data without the same authorization checks as other resources. Internal endpoints newly reachable from the public router are BLOCKER issues if they do not call the existing guard.

Trusting client-supplied roles and missing tests that would fail in production are also BLOCKER issues. A warning is given when a TODO with an owner is present. However, a 4. Authz gap is a BLOCKER when a change introduces an authorization gap without proper testing. A missing happy-path test that would fail if a blocker were present is also a BLOCKER.

Finally, a warning is given for happy-path tests only, and the change is not security or data-related.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in AI

B2A: Business-to-Agent is the inexorable future of digital companies

O Paradoxo da Autonomia: Um Dossie Estratégico sobre a Economia Business-to-Agent (B2A) A transição para a economia digital de 2026 e 2027 é marcada por uma mudança fundamental no destinatário final…

  • Business-to-Agent (B2A) model emerging as digital economy transitions to 2026-2027
  • Focus shifts from visual audience optimization to API call optimization
  • B2A revolutionizes economic theory by prioritizing utility over emotional branding

More from Wednesday 2 September →