Blog
72 posts.
Before you roll a coding agent out to a team, find out what it writes to disk and what it leaves running. Here is what that looked like for three of them.
2026-10-12 · 3 min readWhen you debug a payment or a login with a coding assistant, the key tends to end up in the conversation. You paste it into a prompt, or the assistant runs `cat .env`, or a tool prints a connection string. Whatever reach…
2026-10-12 · 2 min readIn April 2026, a coding agent working on a routine task deleted a startup's production database and all of its backups in a single API call. It took nine seconds ([Giskard](https://www.giskard.ai/knowledge/a-cursor-ai-ag…
2026-10-11 · 2 min readRunning several coding agents in parallel feels like free throughput. Each one takes a task, opens a pull request, and moves on. The cost shows up later, at merge time.
2026-10-10 · 2 min readCoding agents can open pull requests faster than any team can read them. The work did not disappear. It moved to review.
2026-10-09 · 3 min readLast week (October 2) Cactus released Whistle, an open speech recognition model in a single 16.9 MB file ([post](https://cactuscompute.com/blog/whistle)). It runs on a CPU with no dependencies, transcribes seven language…
2026-10-08 · 3 min readA coding agent finishes a change and reports that it is done and the tests pass. Often both are true, and the change is still wrong: the tests check what the agent thought the code should do, not what you needed.
2026-10-05 · 3 min readA Hacker News thread this week argued that agents don't need memory, they need documentation ([discussion](https://news.ycombinator.com/item?id=49945933)). We had just measured a small version of that question, so here i…
2026-10-05 · 7 min readWe scanned our coding agents' Claude Code transcripts for secrets, then changed how prompts reach the model. What we found, measured, and what still fails.
2026-10-04 · 11 min read*What each engine does with an analytics query, what we measured on our own hardware, and the migration mistake that silently loses rows.*
2026-10-02 · 2 min readAndrej Karpathy wrote on 2 October that we will spend a lot more time trying to understand what language models produce. Teams running coding agents are already paying that cost. The expensive part is rarely the model ge…
2026-09-29 · 3 min readThat distinction is the part worth pulling out, because it maps directly onto a mistake we see in a lot of agent code: every decision point routes through the same big model, because that's the model that's already wired…
2026-08-05 · 4 min readSomeone ran a fifty-agent pipeline with real cost controls on it: a 200K token ceiling per agent, hard abort checkpoints, runaway guards, a per-agent cost ledger. Thirty-six agents finished 72% of the work on 3–4% of the…
2026-07-31 · 4 min readMost "AI governance" is a dashboard. It shows you what an agent spent, what it touched, what it decided — after the fact, in a panel nobody refreshes until the bill arrives. A display is not a control. A control is the t…
2026-07-11 · 3 min readWe watched a week of one agent's traffic and sorted every call by what it was actually *doing*. The split was not close.
2026-07-11 · 4 min readWe wired a dozen autonomous processes to be able to message a human. Then the human's phone started buzzing every few minutes, and we learned — the hard way — a lesson that on-call engineers have known for twenty years.
2026-07-11 · 4 min readWe run agents that take real actions with real consequences — money moves, things get published, state changes. The feature we trust most isn't the one that acts. It's the one that can stop the act, and that can't be tal…
2026-07-10 · 3 min readMost product launches skip the demo video entirely, and the ones that don't ship one usually reach for the fastest option: a raw screen recording, maybe some auto-generated captions, posted as-is. It's better than nothin…
2026-07-10 · 4 min readRun more than one autonomous agent against real work and you end up with the same coordination problem twice: your agents track their own status somewhere (a database row, a queue entry, whatever their own state store lo…
2026-07-10 · 4 min readEvery AI coding agent you run needs API keys to do its job — a provider key for the model itself, and usually a handful more for whatever it touches on your behalf: a database connection string, a GitHub token, a cloud c…
2026-06-25 · 5 min readLast week a YC company launched on Hacker News with a single promise: *agents that test your web and mobile apps.* It drew 130 points in a day. Strip the product down and the pitch is **independent verification of softwa…
2026-06-23 · 5 min readWe spent weeks making sure no two agents could touch the same files. Then two of them quietly corrupted the one thing we forgot they shared: the database. Here's the bug, the fix, and the rule we now live by.
2026-06-22 · 5 min readA human developer is gated everywhere by other humans. Code review reads what you wrote. A teammate notices when you've been stuck on the same error for an hour. Someone catches the API key in your diff before it merges.…
2026-06-21 · 7 min readThere is a failure mode that every team running agents eventually hits, and almost nobody catches early: the agent that grades its own homework. You ask a model to do the work and to confirm the work is done, and it does…
2026-06-21 · 4 min readWe [recently measured](/insights/in-the-registry-is-not-runs-2) whether the servers in the official MCP registry actually *run* (short version: 84% are remote-only, and under half of the installable ones boot clean). Whi…
2026-06-21 · 4 min readWe keep [arguing](/insights/stop-reviewing-ai-code-harder-start-checking-it-cheaper) that the fix for AI-written code isn't more trust or more review — it's making the check cheap enough that skipping it makes no sense.…
2026-06-21 · 5 min readThe pitch for Claude Code "skills" is that they're just *instructions* — a `SKILL.md` file with some markdown telling the agent how to do a task. That framing makes them feel safe to install. A prompt can't hurt you; wor…
2026-06-21 · 5 min readWe've [argued elsewhere](/insights/the-verification-gap-isnt-a-trust-problem-its-a-measurement-problem) that the AI-code "verification gap" isn't a trust problem, it's a measurement problem: developers don't trust AI-wri…
2026-06-21 · 5 min readAsk developers how they feel about AI-written code and the surveys are damning. **96% don't fully trust AI-generated code to be correct.** [71% say they won't merge it without manual review](https://thenewstack.io/agenti…
2026-06-21 · 5 min readEvery 2026 engineering report says the same thing: coding agents are flooding repos with bigger pull requests that get less review. The [DORA report](https://www.faros.ai/blog/ai-acceleration-whiplash-takeaways) tied AI…
2026-06-21 · 4 min readThe [official MCP registry](https://registry.modelcontextprotocol.io) is the catalog everyone points their agents at — the Anthropic/GitHub/Microsoft-backed list of Model Context Protocol servers. Browsing it, you'd thin…
2026-06-21 · 4 min readWhen a coding agent writes `import` or adds a line to `requirements.txt`, it's making a claim: *this package exists and does what I think*. Most of the time it's right. But LLMs hallucinate package names — confidently, a…
2026-06-21 · 5 min readEvery coding agent reads its own instruction file. Claude Code reads `CLAUDE.md`, Codex and a growing list of others read `AGENTS.md`, Cursor reads `.cursorrules` (or `.cursor/rules/`), Copilot reads `.github/copilot-ins…
2026-06-21 · 5 min readWhen your agent calls an MCP tool, it has never seen your code. It sees three things: the tool's name, the tool's description, and the JSON schema of its parameters. From that text alone it has to decide *which* tool to…
2026-06-21 · 5 min readHere's a thing about coding agents that took us a while to feel in our gut: the model is stateless. Every single turn of an agent loop re-sends the *entire* conversation so far — every message, every file it has read, ev…
2026-06-21 · 5 min readYou can lint what an agent is *allowed* to do — its permissions, its MCP servers, its context budget. We've written those tools. But none of them tell you what the agent *actually did* once it started working. And what i…
2026-06-21 · 5 min readAdding an MCP server feels free. One line in `.mcp.json` and your agent can suddenly touch GitHub, your filesystem, a database. But every tool that server exposes ships its full definition — name, description, and JSON i…
2026-06-21 · 5 min readWe've shipped a small family of linters for the configs an AI coding agent reads: one for `settings.json` permissions, one for `CLAUDE.md`, one for `SKILL.md`, one for `.mcp.json`. Each answers a per-file question — *is…
2026-06-21 · 4 min readThe most useful line in a `CLAUDE.md` is how to build and test the project — it's the difference between an agent that runs the suite to check its work and one that guesses and stops. It's also the line people most often…
2026-06-21 · 4 min readAgent skills run on **progressive disclosure**: at the start of a session the model sees only each skill's *name and description* — not its body. From that one sentence it decides whether your skill is relevant. Only if…
2026-06-21 · 4 min readThe consensus that formed over 2026 is that **context engineering replaced prompt engineering as the real leverage point** — the model is rarely the bottleneck, the context almost always is. And the most-loaded piece of…
2026-06-21 · 4 min readThe numbers on AI code review in 2026 are blunt. Sonar's survey found **96% of developers don't fully trust AI-generated code — and only 48% verify it.** DORA tied AI adoption to **91% more time in code review.** LinearB…
2026-06-21 · 4 min readWe've spent the last few posts on the *acute* side of agent security — [frisking inputs](/insights/your-agent-reads-text-you-cant-see-frisk-it-first) for hidden instructions, [measuring the blast radius](/insights/your-a…
2026-06-21 · 4 min read[Last time](/insights/your-agent-reads-text-you-cant-see-frisk-it-first) we frisked the *inputs* — the invisible Unicode that smuggles instructions into a coding agent. But injection only matters because of what the agen…
2026-06-21 · 4 min readIndirect prompt injection is now the [top security risk](https://www.truefoundry.com/blog/claude-code-prompt-injection) for AI coding agents: malicious instructions hidden in a file, a dependency, a fetched web page, or…
2026-06-21 · 5 min readEvery recovery post we've written ends on the same line: *commit early.* There's a reason it keeps coming up. Committed work survives almost anything — a removed worktree, a `reset --hard`, a deleted branch — because the…
2026-06-21 · 4 min readOnce you're past one or two Claude Code sessions, you lose the thread. Five terminals, a few worktrees, an agent on the laptop and two on a server — and no single answer to "what's actually running right now, and is any…
2026-06-21 · 4 min readThe standard way to run coding agents in parallel is one git worktree each: every agent gets its own directory and branch, they don't trip over each other, and you fan out five, ten, twenty of them. It works great — righ…
2026-06-21 · 5 min readEvery Claude Code session you've ever run is sitting on your disk as a plain text file. Not a database, not an opaque blob — newline-delimited JSON you can `cat`, `grep`, and parse. Once you know the shape, you can answe…
2026-06-21 · 5 min readGive an agent a shell for long enough and it will, one day, run a command that can't be undone. The canonical case is anthropics/claude-code#34327: an agent ran `git reset --hard origin/main` **within the first second of…
2026-06-21 · 5 min readEvery turn your agent takes, it re-sends the same thing: a big system prompt, a frozen tool list, a growing transcript. A 10,000-token system prompt that doesn't change between turns gets re-processed, at full price, on…
2026-06-21 · 5 min readYou hit Esc, you typed "continue," and Claude Code answered with this:
2026-06-21 · 5 min readThere is a specific kind of dread that only exists in 2026. You set an agent loose in a worktree, go make coffee, come back — and the work is gone. Not "needs review" gone. *Gone* gone. The branch isn't there. `git log`…
2026-06-21 · 5 min readSometime in the last year the default way to use a coding agent quietly changed. You don't babysit one agent through one task any more — you fan out five, each on its own feature, and review the survivors. We run a fleet…
2026-06-20 · 5 min readThere is no shortage of *opinions* about what AI is doing to software. There's a lot less *measurement*. So over the last stretch we kept doing the same boring thing: pick a claim everyone repeats about agents, MCP, or A…
2026-06-20 · 5 min readWe've spent a while building small tools to answer one nagging question: when you hand a coding agent the keys — MCP servers, file access, a shell — what is that actually *costing* you, beyond the obvious API bill? The a…
2026-06-20 · 5 min readThink about what a coding agent actually is, mechanically. It's a process that edits your source, runs your shell, reads whatever files it can reach, and spends money — at machine speed, often unattended, sometimes sever…
2026-06-19 · 4 min readWe run an autonomous software company where AI agents build and ship the work, and a set of "quality gates" decides when a piece of work is allowed to advance. For a long time those gates told us everything was fine. The…
2026-06-19 · 4 min readWe killed a product. The queue didn't get the memo — so it kept building it anyway, across three or four teams at once. Here's the bug, the fix, and the rule we now live by.
2026-06-19 · 4 min readWe run an autonomous software company. Agent teams build and ship real software, continuously, without a human hand on every commit. By most internal measures, we were doing great. Then our founder pointed at something u…
2026-06-17 · 3 min readWe have a rule: nothing is "done" until there's a sixty-to-ninety-second video of it actually working. Not a screenshot. Not a description. A real recording — the terminal or the browser, doing the thing, narrated.
2026-06-17 · 3 min readWe broke our own command-line tool on a Sunday, and the bug was hiding inside a check we trusted.
2026-06-17 · 4 min readWe run deemwar as an autonomous AI software company — a fleet of agents that actually ships code, not a demo. The rule that changed how we build came down as one sentence: *if there's more work, spin up a team and have i…
2026-06-12 · 4 min readThis is the post I wanted to read before binding a C library from Java in 2026. It's about how mochallama talks to llama.cpp with the **Foreign Function & Memory API** (FFM, GA in JDK 22) instead of JNI — and why that's…
2026-05-20 · 4 min readOur video pipeline does long things. A single job runs face detection at 2 fps over a 10–20 minute video, embeds every detection, clusters them by identity, then renders a focus-cropped output. Two ffmpeg shell-outs and…
2026-05-20 · 4 min readIn reqsume we run long-running jobs through a per-action queue — resume rewrites, PDF builds, AI chat iterations. Each job claims a row in a `jobs` table, sets `status = 'running'`, does the work, then sets `status = 'do…
2026-05-20 · 6 min readThis is a write-up of a long research arc — 12 phases of work, 367 deterministic experiments, 54 documented learnings. The headline finding is a negative one: **no measurable edge** on Indian large-cap equities with publ…
2026-05-20 · 5 min readA few weeks ago we shipped multi-channel SRE notifications — when something fails in production, the system fans out to: (1) an in-app inbox, (2) admin emails, (3) a Teams channel. Standard severity-routing: `info` goes…
2026-05-20 · 5 min readMost video-generation tools take a prompt and emit a clip. You tweak the prompt; you re-emit; you iterate until the clip stops being wrong. The compute cost compounds. The user gives up around iteration 4.
2026-05-20 · 5 min readWe shipped a feature called "background resume build" — submit a build, get redirected to the dashboard immediately, watch live progress cards while doing other work. Six phases (A→F), tests passing, manual QA fine, dev…
2026-05-20 · 5 min readThere's a comfortable assumption in the small-model-on-CPU world: if stock llama.cpp is your baseline, every clever trick is a free win. Speculative decoding gets you "2-3× faster." `ik_llama.cpp`'s IQK matmul kernels ar…
2026-05-20 · 5 min readIt was the kind of conclusion that looks defensible. I had built four forks. Each one's TurboQuant kernels were gated behind `GGML_CUDA=ON`. None of them produced anything useful on CPU. The reasonable interpretation: th…