Mon–Fri · 6 AM ET
← All Episodes
EP  • 00:12:18

Your ePub Is fine | Build or Be Replaced

Today: Your ePub Is fine | Curl will not accept vulnerability reports during July 2026 | Show HN: Kage – Shadow any website to a single binary for offline viewing Episode date: 2026-06-15.

Download MP3 →

Transcript

JOSH: It's Monday, June 15. This is Build or Be Replaced — powered by ScanBrief.dev. I'm Josh, here with Erik Anderson.
ERIK: Maintainers are tired, local AI is getting real, and guardrails beat hero engineering every time.
JOSH: Stick around — Erik's got an AI pro tip at the end about making agents prove their work before they touch production.
[pause]
JOSH: First headline. Curl is taking July off from vulnerability reports. Wait, really?
ERIK: Yep. Curl said they won't accept vulnerability reports during July 2026. That includes bug bounty reports and email disclosures. Daniel Stenberg and the team are basically saying, we need one month where security triage doesn't eat our lives.
JOSH: That's a pretty loud signal.
ERIK: It is. Curl is infrastructure. Everything uses it. When a project like that has to block the front door for a month, the story isn't laziness. The story is maintainers carrying half the internet with a tiny crew.
[beat]
JOSH: Second headline. Apple Foundation Models showed up in the ScanBrief list today.
ERIK: That's the local AI story. Apple wants developers building against models on the device, not shipping every prompt to a cloud endpoint. For normal users, that's privacy. For builders, that's latency, cost control, and app features that still work when the network is trash.
JOSH: And third. Rio de Janeiro's homegrown LLM may not be very homegrown.
ERIK: That one is spicy. The claim is their model looks like a merge of an existing model. This is why model provenance matters. If you're spending public money and calling something sovereign AI, you better know what weights you're actually running.
[pause]
JOSH: Curl pausing vulnerability reports feels extreme. Is that normal?
ERIK: No. And that's why it matters. Curl isn't some random weekend project with six users and a README from 2014. Curl is in operating systems, appliances, phones, containers, CI pipelines, network gear, weird industrial boxes, everything.
[beat]
ERIK: When Curl says, don't send us vulnerability reports for a month, that's not a vacation post. That's an incident report about open source maintenance.
JOSH: But security reports are kind of the point, right? You want people to send them in.
ERIK: Correct. But every report has cost. Even junk reports. Especially junk reports. Somebody has to read it, reproduce it, decide if it's real, coordinate disclosure, write a patch, write an advisory, deal with CVEs, deal with downstreams, deal with companies who panic because their scanner lit up red.
JOSH: Sounds like a second job.
ERIK: More like a second job stapled to the first job while strangers yell at you for free.
[beat]
ERIK: Security reporting has become weird. Bug bounty platforms created incentives for volume. People run scanners, paste output, and call it research. Some reports are real and valuable. A lot are noise. But maintainers can't ignore them, because the one you ignore might be the real one.
JOSH: So what's the lesson for companies listening?
ERIK: Stop treating open source like public plumbing that fixes itself. If your product depends on Curl, OpenSSL, Postgres, Kubernetes, Caddy, whatever, you need a support plan that isn't vibes.
JOSH: What does that look like in practice?
ERIK: First, know your dependency graph. Not just package names. Know which services use what, where they're deployed, and who owns patching. Second, don't run every scanner finding straight to panic mode. Put a triage layer in front of it. Third, fund critical projects if you're making money on top of them.
[beat]
ERIK: In my world, PrimeBus processed 832 automation events across 14 projects today. That's normal now. But I don't let random events mutate production. Gandalf reviews the change. Tests run. If the signal is weak, it gets blocked.
JOSH: That's the auto-merger stat from this morning, right?
ERIK: Yep. Since June 5, PrimeBus auto-merger has run 889 attempts: 593 merged, 296 blocked by Gandalf, 0 escalated to me. That's the part I care about. The 296 blocked means the system had a spine.
JOSH: So the Curl problem is really a queue problem?
ERIK: A queue problem, a trust problem, and a people problem. Maintainers need a way to accept reports without every report becoming an emergency. That's where automation can help, but only if it's strict. You can have an agent dedupe reports, map them to affected versions, run a repro harness, check whether the reporter included enough detail.
JOSH: But don't let the agent close the ticket because it feels confident.
ERIK: Exactly. Confidence is not evidence. Evidence is a repro, a failing test, a patched test, and a diff that passes review. Claude can help write the harness. NATS can route the event. PrimeBus can track the state. Gandalf can block the nonsense. But humans still define the policy.
[pause]
JOSH: Apple Foundation Models. This feels like a different AI story than the usual giant cloud model announcement.
ERIK: It is. Cloud models are still king for hard reasoning, coding, long context, and agent work. Claude is my daily driver for building. But on-device models change the shape of normal apps.
JOSH: How?
ERIK: They make AI features boring. And boring is good. Your phone can summarize a note, classify a message, generate a quick response, clean up text, or pull entities from a form without a server round trip.
[beat]
ERIK: That's not a moonshot. That's a checkbox developers can start using.
JOSH: Is local AI mostly about privacy?
ERIK: Privacy is the headline. Cost is the builder story. If you're running an app and every small inference hits a paid API, your margins get weird fast. Local models let you keep cheap tasks on the device and save Claude or GPT for the heavy stuff.
JOSH: Give me an example from your own systems.
ERIK: HumanDesignApp has an iMessage state machine. Some messages need deep interpretation. That's cloud model territory. But a lot of state handling is simpler. Is this person asking a follow-up? Are they changing birth time? Are they stuck in onboarding? That kind of classification can move closer to the edge when the model quality is good enough.
JOSH: So you split the work.
ERIK: Yep. Small model handles routing. Big model handles reasoning. Same pattern in automation. A cheap detector watches logs. A better model writes the fix. A stricter reviewer decides if it ships.
[beat]
JOSH: That sounds a lot like how a network engineer would design it.
ERIK: Because it is. You don't send every packet through the most expensive inspection path if you don't have to. You classify, route, inspect where needed, and drop garbage early.
JOSH: Where does Apple have an advantage?
ERIK: Distribution. If Apple gives developers a stable API and the model is already on the device, adoption gets stupid simple. No API key. No billing surprise. No data leaving the device for basic tasks.
JOSH: What's the downside?
ERIK: Capability gaps. Local models are smaller. They can be wrong. Developers will overuse them because the demo looks good. Then users get weird behavior in production.
JOSH: Classic.
ERIK: Always. The fix is the same as cloud AI. Bound the task. Don't ask a small local model to be a consultant. Ask it to classify one thing, rewrite one paragraph, extract three fields, or choose from a short list.
[beat]
ERIK: ScanBrief scored 71 items across 54 sources today. That pipeline isn't one big magical prompt. It's feeds, scoring, dedupe, summarization, ranking, and delivery. Models do pieces. Systems do the work.
JOSH: That's a clean line.
ERIK: It's the whole show. Build systems around AI. Don't build a hope machine and call it a product.
[pause]
JOSH: The Rio de Janeiro LLM story. Why should normal builders care if some city model was merged from another model?
ERIK: Because we're about to see this everywhere. Companies, cities, universities, agencies. Everybody wants their own AI. Sovereign AI. Private AI. Domain AI. Fine. But if you can't explain the base model, training data, license, evals, and modifications, you don't own what you think you own.
JOSH: Is merging models bad?
ERIK: No. Merging can be useful. Fine-tuning can be useful. Distillation can be useful. The problem is branding it like you trained a national model from scratch when it's really a remix of public weights.
[beat]
JOSH: Why is that dangerous?
ERIK: Licensing, security, and trust. If the base model has license restrictions, you inherit them. If the weights include behavior you don't understand, you inherit that too. If you deploy it into public services, now citizens are interacting with something nobody can properly explain.
JOSH: That's wild.
ERIK: Public sector AI needs boring paperwork. Model card. Data lineage. Eval results. Known failure modes. Human review process. Audit logs. I know everyone wants the cool demo. The demo is the least important part.
JOSH: How would you verify a model?
ERIK: Start with provenance. Where did the base weights come from? What license? What changed? Then run behavioral tests. Prompt suites. Safety tests. Domain tests. Regression tests. Then watch production telemetry.
[beat]
ERIK: Same way I treat automation. PrimeBus doesn't get to say, trust me bro. It emits events. The reviewer logs decisions. The merge has a trail. If something blocks, I know why.
JOSH: You mentioned 0 escalated to you this morning.
ERIK: Right. That doesn't mean the system is magic. It means the guardrails handled it. In the last 7 days, 538 auto-merger runs: 324 merged, 214 blocked, 0 escalated. The blocked count is the good news.
JOSH: Most people would brag about the merged number.
ERIK: The blocked number is where the engineering lives. Anybody can make an agent that opens pull requests. Shipping safely is the job.
[pause]
JOSH: There's also a Hacker News item today on formal methods and the future of programming. Does that connect?
ERIK: Big time. Formal methods sound academic, but the idea is simple. Prove properties about the system instead of hoping tests catch everything.
JOSH: Are you using that day to day?
ERIK: Not in the full theorem-prover sense for every project. I'm practical. But the mindset matters. Define invariants. This must never happen. This field must exist. This state transition must be valid. This command must not run unless these checks pass.
[beat]
ERIK: Agents need that more than humans do.
JOSH: Because agents are creative?
ERIK: Because agents are confident little bulldozers. They will solve the wrong problem beautifully if you let them. Formal-ish guardrails make the box smaller. JSON schemas. state machines. policy checks. dry-run plans. test gates. approval gates.
JOSH: That's less exciting than a big autonomous agent demo.
ERIK: Good. Exciting production systems wake people up at 2 AM. Boring ones send you a summary after breakfast.
JOSH: Put that on a shirt.
ERIK: Prime Automation merch department is currently one guy and too many cron jobs.
[beat]
JOSH: Where do tools like Terraform and Kubernetes fit into this?
ERIK: They're already formal-ish. Terraform has a plan. Kubernetes has desired state. NSO has service models and transactions. The whole point is to declare intent and let the system converge. AI agents should behave the same way.
JOSH: Not just run commands.
ERIK: Never just run commands. Agent proposes intent. System turns it into a plan. Tests validate the plan. Policy checks the blast radius. Then it applies. If it fails, emit telemetry and roll forward or stop. Don't freestyle on prod.
[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?
ERIK: Make your agent return a proof packet before it changes anything.
[beat]
ERIK: Not a paragraph saying it looked at the code. A real packet. Files touched. Tests it expects to run. Risk level. Rollback plan. Exact command it wants to execute. Expected output. What would make it stop.
JOSH: So the prompt asks for evidence first.
ERIK: Yep. Use a two-step workflow. Step one: analyze and produce the proof packet. Step two: only if the packet passes your checks, allow the agent to make the change.
[beat]
ERIK: This works with Claude, GPT, local models, whatever. The model is less important than the contract. If it can't explain the change clearly before touching files, it doesn't get write access.
JOSH: That's usable today.
ERIK: Very usable. Put it in your coding agent instructions. Put it in your CI bot. Put it in your NATS workflow. Small rule, huge difference. That's your tip. Use it.
[pause]
ERIK: That tip is straight out of The Autonomous Engineer — my book on building systems that run themselves. Grab it on Amazon.
[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.