既然沒人再手寫 Assembly,為何仍要審查 2,000 行 AI 程式碼差異?
Nobody Hand-Writes Assembly Anymore. Why Are You Still Reviewing 2,000-Line AI Diffs?
文章主張,AI 生成程式碼令傳統逐行 Code Review 成為低效的安全表演,程式語言正如昔日 Assembly 般,成為更高層抽象之下的新「機器碼」。文中指出,agy 或 Claude 可在 15 秒內重構 12 個檔案、涉及 2,000 行程式碼,工程師仔細閲讀差異則至少需 90 分鐘。文章提出以「Three Defenses」取代舊有審查模式,並提及結合 agy 與 Polter。
TL;DR: In 1957, IBM released Fortran, and veteran engineers furiously swore they would never trust machine-generated assembly without manual verification. Today, history is repeating itself. High-level languages are quietly becoming the new machine code. Staring bloodshot-eyed at a 2,000-line AI git diff isn't rigorous engineering—it's performative security theater. Here is why the old Code Review paradigm is dead, how the "Three Defenses" replace it, and how combining agy (Antigravity CLI) with multi-agent orchestration tools like Polter gives us our sanity back.
In 1957, IBM unveiled something that shook the computing world to its core: Fortran.
It was the world’s first true high-level programming language.
Before Fortran, writing software was an exercise in pure masochism. Programmers spent their days hunched over desks, punching binary machine code and raw assembly mnemonics into paper cards and punch tapes—manually dictating every single memory address, accumulator shift, and hardware register.
When John Backus and his team introduced Fortran, their promise sounded almost utopian:
"You no longer need to remember machine registers or memory offsets. Just write mathematical formulas resembling plain English sentences, and the compiler will translate them into raw machine instructions for you."
How do you think the elite programmers of 1957 reacted?
Did they throw a party? Did they celebrate their newfound freedom?
Not a chance. They hated it.
Computing journals and academic labs erupted in righteous indignation:
- "The code emitted by the compiler is bloated and slow!"
- "No mechanical program could ever optimize memory better than a seasoned human!"
- "If I didn't hand-craft every single opcode myself, I cannot trust it. Every line of emitted assembly must be manually verified!"
Yet, the freight train of history didn't care about their bruised egos.
Within a few short years, virtually all business and scientific computing migrated to high-level languages. Fast forward to today: unless you are writing bare-metal micro-controllers, Linux kernel drivers, or compiler backends, nobody hand-writes assembly anymore. And nobody on your team asks you to review the compiler’s assembly output before pushing a PR.
Why? Because the software industry learned a permanent truth:
Once an abstraction ladder goes up, it never comes back down.
And right now, in 2026, the pendulum of history has swung straight back to the exact same spot.
When an LLM spits out 2,500 lines of pristine TypeScript, Go, or Python in four seconds, millions of developers still sit glued to their monitors at midnight, eyes stinging, scrolling line-by-line through a monstrous git diff.
We seem to have forgotten: Our programming languages are rapidly degrading into modern-day assembly.
1. The Cognitive Trap: Inspecting AI Code Like It's 1995 Assembly
Whenever I tell people that "Python is the new assembly," their gut reaction is almost always defensive:
"Are you crazy? High-level languages have rigid syntax, type safety, and semantic structure! We write code, AI writes code—how can you compare TypeScript to raw machine hex?"
To see why this comparison holds up, we need to understand how technical abstractions actually evolve:
- The Core Rule: Computing history is just the story of putting thicker and thicker lids on underlying complexity.
-
The Automobile Analogy:
- Gen 1 (The Hand-Crank Era): In the early 1900s, starting a car meant walking to the front bumper, inserting an iron crank, and manually spinning the crankshaft. Drivers had to understand spark timing and valve compression just to leave the driveway.
- Gen 2 (The Ignition Key & Automatic Transmission): Turn a key, press the gas pedal, and drive. You don’t know—or care—which microsecond the third cylinder's spark plug fired.
- Gen 3 (Autonomous Driving): You slide into the back seat and say: "Take me to the nearest airport, and avoid the toll roads." If you still spend the entire ride anxiously monitoring whether the steering rack is turning at 14.2 degrees or 14.5 degrees, you aren't being safe; you're just exhausting yourself.
When Keyboard Typing Cost Hits Zero, Syntax Reviews Collapse
Why did we spend the last thirty years worshipping at the altar of the Pull Request Code Review?
Because code was written by meatware.
Humans are slow, clumsy typists prone to fatigue. We accidentally write = instead of ==, we introduce off-by-one errors on Friday afternoons, and we forget null checks. Peer review was an effective linting net for human fallibility.
With AI, the dynamic has completely flipped:
-
Throughput Asymmetry: A state-of-the-art agent like
agy(Google Antigravity CLI) or Claude can refactor 12 files across 2,000 lines of code in 15 seconds. It takes a seasoned engineer at least 90 minutes of intense focus to properly read that diff. The review bottleneck has blown completely wide open. - Cosmetic Perfection Masks Latent Disaster: AI produces gorgeous code. The variable names are poetic, the formatting is spotless, and the docstrings are more descriptive than anything you’ve ever written.
When the human brain encounters a 2,000-line diff of aesthetically flawless code, cognitive fatigue sets in within 10 minutes. By line 400, your vigilance is dead. You scroll, nod, and hit "Approve".
You think you're standing guard as a gatekeeper. In reality, you're paying an extortionate cognitive tax just to purchase psychological comfort.
2. The Great Rebuttal: "Compilers Don't Hallucinate, But AI Does!"
Here comes the immediate objection—and it's a completely legitimate one:
"Wait a minute! Your Fortran analogy is fundamentally flawed. When developers abandoned manual assembly checks, it was because compilers are **deterministic. A C compiler will never invent a nonexistent x86 instruction out of thin air. But LLMs are **probabilistic—they hallucinate! If I don't read every line, how do I know the code won't blow up production?"
Bingo. This is the crux of the entire debate.
Yes, AI hallucinates. But relying on tired human eyeballs to catch those hallucinations in a 2,000-line diff is pure lunacy.
Why? Because in 2026, AI hallucinations are almost never obvious syntax errors.
An AI doesn't write syntax that breaks the compiler. Instead, it introduces insidious, high-entropy bugs:
- It invents an optional parameter that sounds 100% plausible on an AWS SDK, but doesn't actually exist in that version.
- It silently omits an idempotent cleanup handler inside a retry loop that only fires after the 3rd network timeout.
- It writes a shared-memory concurrent routine that passes every naive unit test, but deadlocks under high-throughput race conditions.
Be honest: Are you going to spot that subtle race condition by squinting at a green-and-red diff on GitHub at 11 PM? Or is an automated stress runner in an isolated sandbox going to catch it?
The answer is obvious.
When high-level languages replaced hand-written assembly, engineers didn't surrender to blind faith. They built type checkers, static analyzers, and compiler sanitizers.
Now that we are shifting to probabilistic AI generators, our defenses must evolve from "human eyeballs scanning text" to "Rigid Upstream Contracts + Automated Machine Verification."
3. The New Engineering Paradigm: The "Three Defenses"
Elite teams who have stopped drowning in AI diffs have reorganized their workflow around a Three-Defense Framework:
| Defense Layer | Who / What Runs It | Core Responsibility & Defensive Action |
|---|---|---|
|
1. Upstream Legislation (Architecture & Schema) |
Human Architect + High-Reasoning Agent (e.g. agy / Claude Opus) | Lock down strict interface contracts, database schemas, OpenAPI specs, and state transition invariants before a single line of business code is written. Never give the AI an unconstrained blank canvas. |
|
2. Midfield Pipeline (Throughput & Anti-Corruption) |
Fast Coder Agent + Strict Reviewer Agent + AST Refactoring Agent | Fast, high-throughput models (like DeepSeek Flash / Gemini Flash) implement the business logic. A detached reviewer agent audits against the contract (review only, never edit). An advanced model cleans AST duplicates to prevent tech-debt rot. |
|
3. Downstream Verdict (Empirical Proof & UX) |
Independent Tester Agent in Sandbox + Real Human Product Sense | Sandbox agent boots clean environments, executes deterministic integration suites, fuzzing, and load tests. Humans step in as the final experiential authority to evaluate latency, tactile feel, and product delight. |
Rule 1: Anchor the Two Ends (Contracts Upstream, Evidence Downstream)
- Spend 80% of your time on the blueprint before coding: Review data models, error boundaries, and API contracts with your AI. If the foundational schema is mathematically tight, the AI can code with its eyes closed and the house won’t collapse.
- Judge by empirical runtime evidence, not code diffs: Did the test coverage hit 95%? Did the integration suite pass under 1,000 virtual users on k6? Did the error rate stay at zero? Review the execution proof, not the syntax.
Rule 2: Reclaim What Makes You Human
Stop playing the role of an expensive human linter. Spend your precious biological brain cycles on:
- Untangling nuanced business logic and edge-case domain rules;
- Talking to real customers to unearth what they actually need;
- Actually running the compiled build, clicking through the app, and diagnosing clumsy UX friction that no LLM can feel.
4. The Tooling Gap: Why Traditional IDEs and Isolated CLIs Fail Us
If the "Three Defenses" paradigm makes so much sense, why are most developers still miserable?
Because our developer tooling is trapped in the previous decade:
- The IDE Monoculture Trap: Editors like VS Code were built around the philosophy of one human, one file, one cursor. When an AI refactors 40 files simultaneously, your IDE panics and dumps a massive two-column split diff on your screen, begging you to review line-by-line. The tool’s interaction model directly clashes with the model’s generation throughput.
-
The Isolated CLI Bottleneck: Running autonomous coding CLIs in separate terminal tabs quickly turns into a game of manual babysitting. You copy-paste API schemas between windows; long-running jobs silently freeze waiting for a
Proceed? [y/N]confirmation while you grab a coffee; and if a session crashes, all shared agent memory is gone.
This brings us to the missing link in the modern AI engineering stack: The pairing of advanced agentic CLI engines with a centralized, multi-agent terminal cockpit.
┌─────────────────────────────────────────────────────────────┐
│ HUMAN ARCHITECT │
│ (Defines Contracts, Rules & UX Boundaries) │
└──────────────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ POLTER (Ghostty Multi-Agent Cockpit) │
│ - Millisecond Quiescence Detection - Persistent Task Bus │
│ - Autonomous Prompt Auto-Responder - Shared Local State │
├──────────────────────────────┬──────────────────────────────┤
│ │ │
│ Tab 1: Architect / Sup │ Tab 2: agy (Antigravity) │
│ (Claude Opus / Orchestrator)│ Autonomous Engine & Skills │
│ - Creates Task Cards │ - Deep Codebase Invariants │
│ - Sets OpenAPI / Schemas │ - Subagents & MCP Tools │
│ - Delegates to Workers │ - High-Throughput Coders │
│ │ │
│ Tab 3: Sandbox / Stress │ Tab 4: Cleaner / Sweeper │
│ - Headless Docker Sandbox │ - Cross-file AST Refactor │
│ - k6 Load & Fuzz Testing │ - Dead Code Elimination │
│ - Emits Verified Evidence │ - Anti-Corruption Layer │
└─────────────────────────────────────────────────────────────┘
The Heavy Hitter: agy (Google Antigravity CLI)
If you haven’t used agy (Antigravity CLI) yet, you are missing out on what a true agentic coding environment feels like.
Unlike shallow autocomplete tools that merely guess the next five tokens, agy was engineered from the ground up for high-leverage software engineering:
-
Rich Customization & Rules: With hierarchical
.gemini/rulesand dedicated agent roles, you can bake your architectural standards (e.g., "Never mutate state directly," "All endpoints must validate Zod schemas") straight into the agent’s subconscious. -
Custom Skills & MCP Tooling:
agydynamically activates specialized skills and hooks into local Model Context Protocol (MCP) servers, allowing it to inspect runtime databases, consult internal doc trees, and run diagnostics without context pollution. -
Native Subagent Delegation: Need to implement a new billing engine?
agydoesn’t dump everything into one giant prompt. It can spawn focused subagents (like a specialized research worker or an isolated refactoring unit), synthesize their outputs, and keep your core context clean.
The Cockpit: Polter (Local Multi-Agent Orchestration)
While agy provides the cognitive horsepower and tool-use mastery inside a session, Polter provides the system-level orchestration environment that ties everything together. Built on top of the ultra-fast Ghostty terminal, Polter turns separate terminal tabs into a synchronized, autonomous engineering floor:
-
Supervisor Mode & Externalized Task State: In Polter, an orchestrator terminal (running
become_supervisor) ingests human requirements, writes immutable contracts, and usestask_createto populate a persistent, local task board. Even if your machine reboots, every worker’s status (open,working,closed) is fully preserved. -
Quiescence Detection & Smart Auto-Answering: The biggest killer of automated agent workflows is the silent prompt freeze. If an agent runs an
npm installor creates a directory that prompts[Y/n], traditional setups wait forever. Polter monitors screen quiescence down to the millisecond. If a terminal idles on a non-destructive prompt, the supervisor reads the screen withterminal_readand safely dispatchesterminal_answer_promptto unblock the pipeline. Human intervention is only requested for genuinely risky actions. -
Decoupled Asynchronous Local Bus: Instead of piping everything through a fragile cloud server, worker terminals communicate through local file-backed group channels (
group_postandgroup_read). Anagyagent completes a module, posts the build receipt to the channel, and immediately triggers an isolated testing terminal to run the validation suite. -
Evidence-Driven Handoff: When
agyfinishes a feature under Polter’s watch, you don’t get a 2,000-line diff to eyeball. You get a tidy summary from the supervisor: > "Feature implemented by agy against OpenAPI spec v2.1. 3 sub-tasks closed. Sandbox integration test passed (52/52 assertions). Zero regressions detected. Here is the live staging URL to try it out."
That is what modern software engineering looks like.
5. Conclusion: From Code Reviewer to Systems Designer
Every major transition in software history has met resistance because it forced developers to redefine their self-worth.
In 1957, Fortran didn’t eliminate programmers—it liberated them from allocating registers and calculating memory byte offsets, sparking the software revolution that created the modern world.
In 2026, generative AI and tools like agy have driven the marginal cost of syntax generation to zero. In response, the marginal return of reviewing raw syntax line-by-line has collapsed into negative territory.
The essence of software engineering hasn’t died. Only the interface has changed:
- Stop being a human spell-checker; become an architectural legislator. Your value is in defining razor-sharp schemas, invariant rules, and error budgets before the code is generated.
- Stop eyeballing diffs; demand empirical, automated proof. Let deterministic compilers, strict type systems, and headless sandbox runners catch hallucinations. Trust machine evidence, not your late-night eyesight.
- Save your human intuition for the product itself. When the terminals, agents, and cockpits handle the heavy lifting, you can finally focus on what software was always meant to do: solve complex human problems with clarity, speed, and elegance.
Step away from that 2,000-line diff. Put on your architect hat. The new abstraction layer is already here.
Resources & Open Source Projects
- 🔗 Polter Terminal Workbench: https://github.com/Lugia123/polter — A 100% local, multi-agent terminal cockpit built on Ghostty with supervisor scheduling, quiescence detection, and automated task persistence.
- ⚡ Google Antigravity (
agy) Ecosystem: Leverage custom skills, MCP tools, and autonomous subagent workflows to power your development engine. - 💬 How is your team dealing with massive AI pull requests? Are you still reading every diff, or have you moved to contract-driven verification? Let’s argue in the comments below.
來源:DEV Community · dev.to

