JOSH: It's Thursday, April 30. This is Build or Be Replaced — powered by ScanBrief.dev. I'm Josh, here with Erik Anderson.
ERIK: Three stories today. Faster editors, stricter code review, and a Linux bug that turns bad patching into a career event.
JOSH: Stick around — Erik's got an AI pro tip at the end about getting better output from coding agents with one simple constraint.
[pause]
JOSH: First headline. Zed 1.0 is out. Is this actually a threat to the Electron editor pile, or is Hacker News doing its usual thing?
[beat]
ERIK: It's real. The Atom guys rebuilt the editor stack in Rust with a GPU-driven UI, and the point is simple: stop dragging a browser around just to edit text.
[beat]
JOSH: Next one. The Zig project put up a hard anti-AI contribution policy. Is that anti-progress or just sane?
[beat]
ERIK: For compiler work, it's sane. If the person sending the patch doesn't understand the patch, the reviewer becomes the author, and that's a bad deal.
[beat]
JOSH: Last headline. Copy Fail. Portable local root exploit. How ugly is that one?
[beat]
ERIK: Ugly enough that you stop assuming "local only" means low risk. If an unprivileged user lands on the box and the kernel's exposed, your day gets shorter fast.
[pause]
JOSH: Start with Zed. Why did that one jump out at you?
[beat]
ERIK: Because editors matter more than people admit. Everybody talks about the model. Claude, GPT, Cursor, whatever. But the editor is the cockpit. If the cockpit is heavy, weird, or fights you, you feel it every hour.
[beat]
JOSH: A lot of people listening probably use VS Code and don't think about it.
[beat]
ERIK: Right, because VS Code works. That's the hard part for challengers. You don't beat VS Code by being slightly cleaner. You beat it by making the whole thing feel sharper. Startup. Search. Scrolling. Multi-cursor. Remote work. AI hooks. All of it.
[beat]
JOSH: And Zed's bet is speed first?
[beat]
ERIK: Speed and architecture. They didn't build another wrapper around Chromium and call it innovation. They built their own UI stack. That's a serious engineering choice. More risk up front. Better ceiling later.
[beat]
JOSH: Why should builders care about the ceiling?
[beat]
ERIK: Because the next phase of coding tools is not one autocomplete box on the side. It's editors acting like orchestration surfaces. Multiple agents. Diff reviews. background indexing. Terminal hooks. semantic search. repo memory. live previews. If the foundation is bloated, every new feature taxes the experience.
[beat]
JOSH: So this is less about "pretty fast text editor" and more about what happens when the editor becomes the operating system for coding.
[beat]
ERIK: Exactly. You said it shorter than most product pages do.
[beat]
JOSH: That's rare for me.
[beat]
ERIK: Mark the date.
[beat]
JOSH: How does this compare to what you actually use every day?
[beat]
ERIK: In my lab I care about throughput. I have 64 projects across two servers. Neo and Morpheus. Two hundred twenty-nine cron jobs. Three Claude instances on a PrimeBus NATS mesh. When I touch code, I need low friction because the coding session is usually one step inside a larger automation chain.
[beat]
JOSH: Meaning?
[beat]
ERIK: Meaning I may not be "sitting down to code." I might be fixing a failing test from PrimeBus, checking a generated patch, editing a prompt for InkEngine, then hopping into Terraform, then into a Python worker for ScanBrief. Context moves fast. Tool lag compounds.
[beat]
JOSH: So editor performance is not cosmetic for you.
[beat]
ERIK: Not even a little. PrimeBus has logged 214 auto-fixes with a 78 percent success rate. The 22 percent that fail usually need a human pass. That's me looking at diffs, traces, logs, and generated variants. If the editor drags when I'm moving through those fixes, that cost hits every day.
[beat]
JOSH: That's the part people miss. Ten little delays times a hundred actions.
[beat]
ERIK: Yep. Death by "it's only a second."
[beat]
JOSH: Do you think Zed wins?
[beat]
ERIK: Wins what? Mindshare, maybe. Replacing VS Code everywhere, not soon. The moat is extensions and habit. But that doesn't mean it loses. If it becomes the place where serious AI-native workflows feel best, it carves out a real lane.
[beat]
JOSH: AI-native is the phrase everyone throws around. What's the non-buzzword version?
[beat]
ERIK: The editor should know your repo, your terminal, your git state, your errors, your tests, and what the agent just changed. It should help you supervise work, not just type faster. That's AI-native.
[beat]
JOSH: You think Electron gets in the way of that?
[beat]
ERIK: Sometimes. Not always. Plenty of great stuff ships on Electron. But if you're building for the next five years, not the next five months, owning the stack matters. Same reason I built PrimeBus instead of duct-taping more one-off scripts together forever.
[beat]
JOSH: That's the common thread with your stuff. You build the bus once, then everything plugs in.
[beat]
ERIK: Right. Messages on the bus. Agents subscribe. Errors trigger workflows. Warnings trigger workflows. Humans step in only when confidence drops. That's how HumanRail came out too. If the model isn't sure, route it to a person instead of pretending confidence.
[beat]
JOSH: So Zed 1.0 matters because it says, "we're not patching the old shape, we're building the next shape."
[beat]
ERIK: That's why it matters. Even if you never install it, it pressures the whole editor market to stop being lazy.
[pause]
JOSH: The Zig policy is a different kind of signal. They basically said AI-generated contributions are not welcome. A lot of people heard that as anti-AI. You didn't.
[beat]
ERIK: No. I heard "bring less garbage to review." That's not anti-AI. That's anti-noise.
[beat]
JOSH: Explain the difference.
[beat]
ERIK: AI is useful. I use Claude every day. PrimeBus literally spins up Claude sessions to attempt fixes. InkEngine exists because models can draft, reshape, and structure a lot of text fast. But useful does not mean unsupervised copy-paste into a compiler project.
[beat]
JOSH: Because the reviewer pays for it?
[beat]
ERIK: Exactly. If you send a patch you don't understand, then the maintainer has to prove your code is safe, coherent, and aligned with the language design. That reviewer is now doing two jobs. Their job and yours.
[beat]
JOSH: That's wild because the whole pitch from AI coding tools is more output.
[beat]
ERIK: Output is cheap. Comprehension is expensive.
[beat]
JOSH: That's a good line.
[beat]
ERIK: It's also the whole problem.
[beat]
JOSH: How do you handle that in your own systems? Because you're absolutely using AI to write code.
[beat]
ERIK: Yeah, but with guardrails. PrimeBus doesn't get a gold star for producing text. It gets measured on merged fixes that pass tests. Out of 214 auto-fixes, 78 percent succeeded. That sounds good because it is good. But the number matters because it tells you the boundary. The model is productive. It is not trusted by default.
[beat]
JOSH: So what does the boundary look like?
[beat]
ERIK: Small changes first. A/B fix variants. Run tests. Compare outcomes. Keep diffs tight. Log why it changed something. If confidence is low, HumanRail can bounce it to a human. That's how you keep agentic coding from turning into fancy vandalism.
[beat]
JOSH: Fancy vandalism is probably a fair label for some pull requests.
[beat]
ERIK: More than some.
[beat]
JOSH: Why would Zig need to be this blunt though?
[beat]
ERIK: Because compiler and systems work punish shallow understanding. In app code, a bad AI patch might break a view, fail a unit test, maybe chew up an afternoon. In a compiler, a subtle bad patch can rot semantics, break portability, or create bugs nobody finds for months.
[beat]
JOSH: Higher blast radius.
[beat]
ERIK: Much higher. And Zig is not alone. Plenty of maintainers are thinking the same thing. They may not all write it down that directly, but they're thinking it.
[beat]
JOSH: Does that mean AI coding hits a wall in serious projects?
[beat]
ERIK: No. It means the projects with standards are going to force better usage. Which is good. The model should help you think, test, compare, summarize, and explore. The human should still own the patch.
[beat]
JOSH: That sounds less sexy than "one-click software engineer."
[beat]
ERIK: Good. Sexy is how people end up diffing 800 lines they never should've accepted.
[beat]
JOSH: For builders listening, what's the practical takeaway?
[beat]
ERIK: Stop asking if AI wrote the code. Ask if the submitter can explain the code. Big difference. If they can't explain it, reject it, even if it passes.
[beat]
JOSH: Even if it passes?
[beat]
ERIK: Especially then. Passing tests can hide shallow understanding. Tests are a floor, not a soul.
[beat]
JOSH: That's a little dark.
[beat]
ERIK: I work in automation. Dark is familiar.
[beat]
JOSH: You've seen this outside software too, right? Ops, infra, runbooks?
[beat]
ERIK: Constantly. Teams copy vendor snippets into production, then nobody knows why BGP is flapping or why the NSO service model keeps drifting. Same disease. Borrowed output without ownership. AI just makes the disease faster.
[beat]
JOSH: So Zig isn't saying "no AI ever." They're saying "don't outsource your brain and hand me the bill."
[beat]
ERIK: That's the clean version, yeah.
[pause]
JOSH: Copy Fail. Local Linux privilege escalation. Those stories can get abstract fast. What's the plain-English version?
[beat]
ERIK: Plain English: if someone can get a foothold as a normal user on the box, this kind of bug can turn that into root. Then it stops being "one compromised account" and starts being "own the system."
[beat]
JOSH: Why should people care if they're thinking, "our servers aren't public shells"?
[beat]
ERIK: Because attackers chain things. Phish a developer box. Abuse a weak container escape. Land through a bad service account. Local privilege escalation is often step two, not step one.
[beat]
JOSH: And this one looked broadly portable.
[beat]
ERIK: That's what makes it nasty. If one binary works across a spread of distros and kernel vintages, patch lag becomes a real liability. Enterprises love patch windows. Attackers love them more.
[beat]
JOSH: Where do teams usually get this wrong?
[beat]
ERIK: They rank it low because it's "local." That label tricks people. In real environments, local access is not rare after initial compromise. It's the normal path.
[beat]
JOSH: How do you think about that in your own stack?
[beat]
ERIK: Small blast radius. Tight permissions. Separate services. Fast patching. Telemetry everywhere. My home lab isn't a toy. Two servers, yes. But I treat them like real infrastructure. Services are segmented. Workflows are observable. If a box starts acting weird, I want the bus to tell me before I have to guess.
[beat]
JOSH: Is that what ScanBrief is partly for too? Staying ahead of this stuff?
[beat]
ERIK: Yeah. ScanBrief pulls 56 sources and scores 396 items daily. I don't need more content. I need fewer blind spots. Security bugs, model updates, tooling changes, editor releases, weird billing issues like that HERMES commit-message thing. All of it matters because all of it touches the build loop.
[beat]
JOSH: That HERMES story is funny until it isn't.
[beat]
ERIK: Exactly. If text in a commit message can trigger a more expensive path somewhere in an AI toolchain, that tells you the plumbing is still immature. Builders need to assume side effects. Names, files, prompts, metadata. All of it can matter in ways vendors don't advertise.
[beat]
JOSH: That seems like the bigger theme today. Hidden costs.
[beat]
ERIK: Hidden costs everywhere. Heavy editor architecture. Reviewer burden from AI patches. Patch lag on local root bugs. Weird tooling bills from stray text. People think the work is the feature. The work is usually the system around the feature.
[beat]
JOSH: That's why your stuff ends up as flywheels instead of one-off apps.
[beat]
ERIK: Right. PrimeDistro isn't "send a postcard." It's scrape 845 businesses, audit websites, generate 62 previews, send cards through LOB at sixty-three cents each, and know one website sale pays for the campaign. That's the system view. Same thing here.
[beat]
JOSH: When you look at these three stories together, what's the call?
[beat]
ERIK: Build with standards. Fast tools. Hard review lines. Short patch cycles. If your setup makes sloppy work easy, sloppy work is what you'll get.
[beat]
JOSH: And if your setup makes ownership visible?
[beat]
ERIK: Then good people move faster. That's the whole point.
[pause]
ERIK: This episode is sponsored by Prime Automation Solutions. If you're still doing it manually, we automate it. Also, special on a website — $250. primeautomationsolutions.com
[pause]
JOSH: Alright, what's the AI pro tip today?
[beat]
ERIK: Force the model to state its uncertainty before it writes the fix.
[beat]
JOSH: That's it?
[beat]
ERIK: That's it, and most people don't do it. Before you ask for code, tell the model: "List the top three assumptions, the likely failure mode, and what you'd test after the change. Keep it short. Then write the patch."
[beat]
JOSH: Why does that help?
[beat]
ERIK: Because it changes the model from eager intern mode into reviewer mode. You surface bad assumptions early. You also get better diffs, because the model is less likely to wander into side quests when it has to admit uncertainty first.
[beat]
JOSH: So you're not asking for more words. You're asking for better framing.
[beat]
ERIK: Exactly. In PrimeBus, the good results come when the agent knows the target, the boundary, and the test. Same thing in a chat window. If the model says, "assumption one, this bug is in auth state hydration; failure mode, token refresh loop; test, expired session plus page reload," now you're supervising something concrete.
[beat]
JOSH: And if the assumptions are dumb?
[beat]
ERIK: Then you saved yourself from reading a dumb patch. That's the win.
[beat]
JOSH: Short version for people to use today?
[beat]
ERIK: Ask for assumptions, failure mode, and test plan before code. Three lines. Then let it write. That's your tip. Use it.
[pause]
JOSH: Track your freedom score and net worth with the Freedom Blueprint app — free download, link in the show notes.
[pause]
JOSH: One more thing — we started a Discord for builders. If you're shipping AI, automation, or anything that makes a human obsolete — come hang out. Link at buildorbereplaced.dev.
ERIK: Post what you built. We'll post what we're building. Real wins, real builds, no fluff.
[pause]
ERIK: Build or be replaced.
JOSH: If you want these signals in your inbox every morning, scanbrief.dev. See you tomorrow.