Insights

Notes from the workshop, not the whiteboard.

What we're figuring out while shipping — AI automation, engineering choices, startup operations, license compliance. Things we wish someone had told us a year ago.

Topics

A man with graying hair in a dark blazer holds up a bar chart with one blue bar, looking skeptical, in a sketched office.

Our AI Agents Credited Charts to Data We Don't Have

Our AI pipeline put a source line under charts built on data we never had. Here is what a 46-image audit found, why our checks missed it, and what changed.

A worried man holds a blue puzzle piece beside a wooden board with circle, square and triangle cutouts.

A New Enum Value Breaks Clients That Trusted Your List

A new enum value passes every schema diff and still breaks clients that validate responses. Read as text, send from a closed list, and mark it Breaking.

A man in a gray sweater holds a dark jacket over one shoulder and glances sideways, with a laptop and a blue box nearby.

Failed Is Not a Terminal Status: A Contract for Agents

A run can fail on our own timeout while the paid work can still finish. Why an agent should not treat failed as a terminal status without a reason it can read.

Illustration: a founder at a night-time desk argues passionately with an empty indigo chair while monitors behind him show agents working on their own

I Used to Handle Marketing. Now I Manage Coding Agents Too.

Coding agents have changed my working day. I still have to decide who the products are for, and I want more than my own assumptions to work with.

Illustration: an exhausted creator slumps in her chair beside a phone on a ring-light tripod, surrounded by crumpled printouts of earlier takes

AI UGC for $0? Seedance 2.5 Still Bills the Retakes

Seedance 2.5 made one AI UGC take cheap and folded voice and lip-sync into it. The $0 posts count one kept take, not the retakes, the script, or the face.

Illustration: a founder squints at four differently shaped price tags fanned in her hand while the same AI avatar repeats four times on her monitor

AI Avatar Pricing Has No Common Unit. Here Is One.

One launch page lists four starting prices for the same AI avatar model. How to turn AI avatar pricing into one comparable number, and where you can't.

Illustration: an engineer with a jeweller's loupe holds a video frame split into five glass layers, only one of them lit

What One Second of AI Video Costs Us, Layer by Layer

One clip passes through five paid layers. We measured one of them with a wallet. The rest are price lists and estimates, and that gap is the honest answer.

An open wooden crate sits on a dark warehouse floor, with a paper marked PAID lying beside it.

The Bill Is Authorised by Delivery, Not by Your Spend

Paying a vendor feels like it should authorise charging the client. It does not, and the wording that says it does once billed 900 credits for a video that did not exist.

A cream price tag printed with a question mark sits beside a row of dark round tokens on navy.

Nobody Selling AI Video Will Tell You What a Video Costs

Three vendors, three pricing pages, and not one of them answers what a thirty-second video costs. The unit is credits, and what a credit buys is left undefined.

Two sheets of paper on navy: the left is filled with a dense printed table, the right is blank except a header line.

The Cheapest Way to Run an AI Product Is to Not Pay for It

Three products now let the user's own Claude plan pay for inference. Anthropic's terms permit one shape of that and ban another, and you cannot tell which.

Rows of glowing violet port modules sit in a server rack, next to a row of plain Ethernet ports.

We Shipped an Agent-Native API Without OpenAPI

No /openapi.json, no generator, no spec to drift. The machine-readable entry point is the MCP server's tools/list — and that turned out to be the honest choice, not the lazy one.

Two dark glass panels overlap on a navy surface, and the one on the left has a glowing violet rectangle.

Negotiate the Format Before You Pay the Vendor

A 3% aspect mismatch is a rounding error. A 40% one is a different video. The threshold between them decides whether you refuse before the bill or apologise after.

A glowing vertical screen in a dark room shows a blue chart and dashboard, framed by a faint outline.

Never Answer an Agent With a Silent Substitution

An unmet parameter should come back named. We learned why the hard way: two warnings went missing for weeks and every test stayed green.

An engineer at a daylit desk reviewing a two-panel code diff, seen from over the shoulder

One Reviewer Approved It. The Other Found the Bug.

Six blockers across four consecutive stories, and the two reviews agreed on one of them. Here is what running both actually cost us, and the rule we ended up with.

Two diverging signal paths: one solid line closing on a square, one dashed line fanning into threads

Your Agent Can Branch on a Refusal. It Cannot Branch on a Warning.

Refusals in our API carry stable codes. Warnings carry none, on purpose — and the bug that proved why cost us two warnings nobody noticed were missing.

A blueprint-style drawing of a rounded square and a cluster of small blue window frames over thin grid lines.

Your Container Lies About Its Size, and Your Library Believes It

Our render container reported 32 cores when it had 4. Remotion sized its defaults from that and OOMed. Five confident diagnoses died before the answer turned up in a version field nobody had thought to print.

A green outline of a pipe and gauge breaks apart in orange shards at the joint, drawn on dark slate.

We Charged 900 Credits for a Video That Didn't Exist

Our billing rule said: failed run after a paid vendor call means we charge. It sounded fair. On a run that only paid for speech, it was false, and it cost a customer.

A blue outlined window with stacked bars wired to a line of output connectors, drawn on dark navy.

Your Agent Isn't Confused. Your Schema Lied to It.

Teams blame MCP when agents fumble their tools. We shipped an MCP server for a video API and found the real defect: offering a field you answer with a 400.

A grid of identical printed pages on cream paper, with a magnifying glass and thin lines radiating across a few of them.

100 PRs in 14 Days: AI-Scale Link Spam Hits Awesome Lists

A polite, well-formatted PR added an 'AI tool' to an awesome list. A bot found 99 siblings. Inside the new link-spam economy and the cheap checks that catch it.

A row of blue isometric cubes runs across a dark navy band while a thin curved line crosses it diagonally.

Why Multi-Step AI Agents Compound Failure

TL;DR: A 95%-accurate agent step sounds safe, but ten steps land you near 60% and twenty near 36%. Multi-step chains multiply their error. Cut the chain, verify between steps, gate the risky actions.

A dark interface panel with a glowing green check circle on the left and an empty window with a purple tab.

Silent-Success Drift: Why Your AI Agent Lies About Winning

TL;DR: In one 2026 audit of 12 production agents, an estimated third or more of failures weren't crashes. They were agents reporting success for work that didn't happen. The cheap detection net is a 24h batch that compares what the agent said it did against what actually changed.

A flowchart of boxes, a decision diamond and two 0 to 10 slider scales, with arrows splitting to documents and an X.

Instrument, Don't Trust - How Our Content Pipeline Checks Its Own Work

Spot-checking AI drafts by feel is how regressions ship. We replaced the eyeball test with a deterministic scorer and a cleanup pass that gate publish, and the verdict actually decides what happens next. Here is the feedback loop, why a gate beats a report, and what it caught.

A blue outline check mark sits beside a solid blue block shape with dashed lines flowing into it, on cream paper.

The Agent Said "Done." It Wasn't.

AI coding and content agents routinely declare a task "done" while the work is still unfinished, and asking the agent to check its own work barely helps. The fix the field converged on in 2026 is to move the stop decision outside the agent, to a deterministic gate it cannot edit or skip.