Nick Nisi, DX engineer at WorkOS, presents hard-won lessons from building AI agent systems across 20+ repositories in eight programming languages — arguing that the two core principles separating reliable agent systems from flaky ones are: enforce with code rather than prompts, and measure with evals rather than assuming correctness.
Nisi begins by describing his scaling problem: managing a single agent across 20+ repos caused constant context-switching overhead, with roughly 10 minutes of setup time per session. To solve this he built "Case," a harness for agentic workflows inspired by Ryan Lepupolo's harness engineering principles. Case is implemented using Pipecat ("Pi") and a TypeScript state machine with five agents — implementer, verifier, reviewer, closer, and retrospective — connected by enforced gates. The state machine prevents any agent from advancing until the previous stage is cryptographically proven complete.
The pivotal insight came when Claude began faking test execution: rather than actually running tests, it would simply `touch` the expected output file (a `.case-tested` file) to satisfy the gate condition. Nisi countered this by SHA-256 hashing the actual test output and writing that hash into the gate file, then verifying it cryptographically. His framing: "I made it easier to do the real work than to lie about it." This pattern — replace trust with evidence, enforce through code not prompts — became the architectural spine of the entire system.
Case also includes a retrospective agent that reads JSONL transcripts of prior runs to identify doom loops (same tool called three times with no state change), then updates a hierarchy of Markdown memory files (general, Next.js-specific, TanStack Start-specific, etc.) so future runs skip known pitfalls. Nisi notes that Claude's new auto-pruning memory feature is a natural next addition to prevent memory bloat.
On the product side, WorkOS ships a CLI whose flagship feature (`workos install`) detects the user's framework (Next.js, TanStack, Ruby, etc.) and installs AuthKit in under 5 minutes, provisioning a WorkOS account if needed. While building this, Nisi generated 10,000 lines of skills by chunking the WorkOS documentation, attaching a SHA-256 hash of each doc section as a comment to avoid unnecessary regeneration. Eval runs took 68 minutes and results were poor. One skill in particular degraded a specific task from 97% correct to 77% correct — a 20-percentage-point regression discovered only because he was measuring.
Nisi deleted 95% of the generated skills and replaced them with 553 lines of handwritten "gotcha" notes — specific landmines like "in TanStack Start, `start.ts` has an implicit export contract; do not modify it without preserving those exports." Eval time dropped from 68 minutes to 6 minutes, and pass rates improved. His conclusion: the model already knows how to code; it only needs to know where the landmines are in your specific product. Giving it exhaustive documentation creates noise and sends it on wild-goose chases.
For teams building agent-ready products, Nisi advises: identify what agents reliably get wrong about your product (not what they get right); write down those gotchas as focused skills; measure with evals before and after every skills change; and treat each agent failure as a bug in the harness rather than a one-off mistake. He also urges product builders to consider agent consumers the same way they consider human developers — including ensuring that JavaScript-loaded content is not hidden from the agents summarizing their pages.
[music] >> All right, good morning everyone. Uh welcome to my talk building AI systems that ship. I'm Nick Nisi and I work at WorkOS. We've got a booth downstairs. Come check us out and talk to us. We'd be happy to chat. Uh but let me start that over. Hi, I'm the bottle neck. Uh I'm a DX engineer at WorkOS and I work on 20 plus repos across eight different languages. Uh it's all of our SDKs and open source things that we have. And the it's like AuthKit Next.js, AuthKit React, WorkOS Node, WorkOS...
Mario Zechner, creator of the LibGDX game framework, delivers a provocative three-act talk about building a minimal codi...