Prompt-driven development workflows ask models to enforce rules they can also forget, reinterpret, or talk around. The usual response is to add more instructions: remember the review verdict, stop after four rounds, never merge an unapproved change, wait for every parallel worker. Each sentence describes behavior I want, but none of them makes the unwanted behavior impossible. I built signalbox…
Most copying claims start with two codebases that look alike. Generative AI has made that resemblance cheaper to manufacture and harder to read, which makes the underlying forensics matter more, not less. Two codebases that look alike is the weakest place a copying case can start, and usually where the weak ones end. Resemblance only tells you something when it shows up in the parts of the code…
I am watching an AI agent rewrite my database schema in real time. It types a description into the tool loop. "Add a phone field to Contact, indexed, optional." A second later it has emitted a block of DSL. The validator rejects it. Strict-mode Cedar finds an authorization policy that referenced the old shape and now points at a field that does not exist. The agent reads the error, edits its…
Every piece of accounting software I've used was built in a world where the person writing the ledger was also the person who would notice if something went wrong. That world is ending. For the past year I've been using AI assistants to help run the books for my consulting business—categorizing expenses, reconciling imports, flagging anomalies. The AI part works. What doesn't work is the software…
The conventional wisdom in event-driven systems is that more capability means more power. Give every component the ability to publish, subscribe, transform, and route, and developers can build anything. This is true. It is also the source of most complexity in event-driven architectures: when everything can do everything, nothing about the system is predictable from its structure alone. You must…
Last month I was debugging a multi-agent system I'd built on acton-reactive when a deployment migration broke everything. I'd moved an approval agent from one cloud provider to another—different endpoint URL, different API gateway. Workflows that referenced the old URL started failing. Cached references in other agents? Stale. Audit logs? Now ambiguous about which agent they referred to. The agent…
My daughter plays Warrior Cats: Ultimate Edition on Roblox. It's a roleplaying game where players coordinate hunts, assign clan roles, and narrate collaborative stories. Communication is the game. On January 7, 2026, Roblox deployed global age verification that gates chat access behind facial age estimation. My daughter, like most players under 13, couldn't verify. Chat disappeared. Within 48…
Terminal UIs feel stuck because we think about them wrong. We treat the screen as a canvas to paint on, managing coordinates and redraw logic ourselves. Web frameworks showed us a better way for browser UIs: compose independent components that own their state and coordinate through messages. But there is an even older set of ideas that maps surprisingly well to terminal interfaces: the actor…
Multi-agent AI systems face a coordination problem. As frameworks scale from a handful of agents to dozens, orchestration overhead dominates actual work. Current approaches (AutoGen's conversation managers, MetaGPT's role hierarchies, CrewAI's explicit backstories) all import human organizational patterns that create bottlenecks. But nature solved this problem millions of years ago. Ant colonies…
In 2019, when I set out to build rusty_paseto , a Rust implementation of the PASETO token specification, I wasn't just thinking about correctness. I was thinking about the developer who would use it at 2am during an incident, the one copy-pasting from Stack Overflow, the one who just wants tokens to work without becoming a cryptography expert. The question that drove every design decision: How do…
Most Rust actor frameworks prioritize flexibility. They let you send any message to any actor, handle errors however you want, and change system behavior at runtime. I built acton-reactive around the opposite principle: intentional constraints serve users better. By encoding invariants in the type system (actors can't start without handlers, read-only operations are distinct from mutations,…