Addy Osmani: AI coding agents need judgment, not more output

Addy Osmani says automated code generation still needs humans upstream, where intent, architecture, and quality bars are set. His “software factory” model emphasizes deterministic checks for evidence, with reviews focused on high-risk changes and clear ownership.

Addy Osmani: AI coding agents need judgment, not more output

TL;DR

  • Humans upstream: Decide product intent, system shape, and quality bar before any agent code generation
  • Deterministic back-pressure: Agents generate code gated by types/tests, mutation/property checks, budgets, architecture/dependency policies
  • Checks as evidence: Prefer declared intent, preconditions, and post-assertions over transcripts; optimize signal-to-noise, not check count
  • Checks are fallible: Mutation testing and tooling output provide leads; results require interpretation rather than serving as final answers
  • Concentrated review at exits: Focus on high blast-radius changes, weak checks, subjective trade-offs, and new abstractions; risk-scored change groups

Addy Osmani argues that automated coding systems still need human judgment at the points where product intent, architecture and ownership are decided. In a post on X, the Chrome engineering leader outlined a model for software factories in which agents generate code inside an environment of deterministic checks, while humans focus on decisions that automated systems cannot reliably settle.

Judgment belongs upstream

Osmani’s accompanying framework is headed “Where Human Judgment Goes,” with the subtitle “Generation is abundant. Judgment is scarce. So place it on purpose.”

Its first stage, “01 · Upstream,” places humans “before any code exists.” The listed decisions include:

  • Product intent: the problem, users and non-goals
  • System shape: boundaries, invariants and coupling
  • The quality bar: what “good enough” means

The framework warns that “cheap implementation makes a mistake here very expensive.” That places responsibility for defining the system’s direction before an agent begins producing implementation details.

Osmani also cautions that human review should not be applied uniformly. Code review remains useful in a “lights-on factory,” he states, but it should concentrate on areas where automated back-pressure breaks down or where maintainability trade-offs require judgment.

Checks should produce evidence

The second stage, “02 · The Loop,” describes an agent operating inside “deterministic back-pressure.” The agent generates code, while the surrounding environment pushes back through checks such as:

  • Types, tests, mutation testing and property checks
  • Complexity, security and performance budgets
  • Architecture rules and dependency policy

Osmani’s post lists security scanners, automated tests and linting for architecture rules among the checks that can run early and continuously. He also warns that the number of checks does not equal quality. Teams need to determine which checks provide a useful signal-to-noise ratio, then deliberately tighten or relax constraints.

A reply from a user highlighted a limitation for agent workflows that leave no diff behind. If the work exists only as a session on another server, the reviewer may receive little more than a transcript of what the agent clicked. Osmani responded that transcripts should not be treated as the primary evidence. Instead, agents should emit a record of their declared intent, the preconditions checked before acting and the assertions verified afterward.

The framework makes the same distinction more directly: “Evidence, not output. It all fires before a human ever looks.”

That approach also treats automated checks as fallible signals rather than final answers. One reply about mutation testing noted that it can expose tests that pass without verifying meaningful behavior. Another commenter described reviewing 168 statements identified by a tool: three revealed genuine test gaps, while 40 were attributed to a tool defect. The result was described as a source of leads, not definitive conclusions.

Review should be concentrated

The third stage, “03 · The Exits,” returns to humans “where it still changes things.” The highlighted review area covers changes with a large blast radius and weak checks, as well as subjective trade-offs and new abstractions.

A separate workflow illustration groups multiple GitHub pull requests into larger “Change” units. Those groups carry risk scores of 18, 54 and 86, labeled low, medium and high. Zohar Einy described a similar approach in a reply, with an agent scoring the risk of each grouped change and reviewers focusing on the riskiest ones.

The process ends with “ship,” alongside the qualification that someone owns what went out. Its closing statement is blunt: “‘The agent wrote it’ is not an engineering explanation.”

Tools are emerging around the handoff

Several replies connected Osmani’s model to tools intended to keep agents running with limited supervision while preserving points for human intervention.

Other replies pointed to verifiable coding-agent runtimes and tools for managing reusable context. The common thread was not removing humans entirely, but reducing routine supervision while preserving human involvement for design choices, quality assurance and understanding consequential changes.

Osmani’s framework closes with a simple principle: “judgment is the scarce resource.”

Source: Addy Osmani on X

Continue the conversation on Slack

Did this article spark your interest? Join our community of experts and enthusiasts to dive deeper, ask questions, and share your ideas.

Join our community