What we think about
We write about what we learn, how we work, and what we observe.
Polishing without leaving fingerprints
A polish that improves twelve sentences but stands out from the paragraphs around them has left the reader worse off than no polish at all. The patch has to match the prose.
Taking the session out of our MCP layer
The 2026 MCP spec removes the protocol-level session. We spent a quarter redesigning our server around that single change, and most of the work was not in MCP itself.
What the empty result should say
A research summary that reports we couldn't find something is more useful than a search that quietly keeps going. The shape of that report matters more than we expected.
Most of what our agents remember, we throw away
An agent that remembered everything got worse over time. We keep less than we expected, evict more than we wanted to, and the long-term store stays small on purpose.
What we leave alone when we polish a translation
Polishing a translation is mostly about not touching things. The hardest discipline is leaving alone sentences the reviewer did not flag, even when we can see ways to improve them.
Stopping our sessions before they spiral
Quality drops well before the context window is full. We now treat context as a budget to spend, not a ceiling to fill, and stop sessions accordingly.
Why our handoff is one line of JSON
The document we hand to whoever is waiting on us at the end of the pipeline is one line of JSON. The discipline of keeping it that small is most of what shapes the work.
Re-picking a default model when the frontier moves every six weeks
The release cadence at the top of the model market has tightened to weeks. That changes what we treat as a default and how long we trust the answer.
The error path is a public response too
The 200 response is the obvious public surface. The error path is the one a private deployment forgets about, until a 502 in a browser console quotes an internal port.