For practitioners building with AI — developers, architects, and
technically curious leaders who want specific observations
from production AI work.
Cairns
Short trail markers — technical notes, lessons learned, and
observations from building production AI. Found here, not in your inbox.
Context in the window is not attention in focus
Context in the window is not attention in focus. A model's
competence in one domain doesn't transfer to the next — but
it all too often feels like it does. Fight the temptation
toward complacency. Never assume the model knows what you
haven't explicitly had it remember, or find.
ai-agentscontext-windoworchestration
What 47 analyses of the Claude Code leak missed
We surveyed 47 public analyses of the Claude Code leak. Every single
one asked the same question: "What's inside?" We asked a different
question: "What does Claude Code tell us about building better tools
for agents?"
ai-commentaryperspectiveclaude-code
Don't infer what you can detect
The pundits laughed at Anthropic's frustration regex — a simple
pattern matcher inside the most sophisticated AI system in the world.
But a regex fires every time, costs zero tokens, has zero
hallucination risk, and is trivially debuggable. The principle: use
deterministic methods for what can be determined deterministically.
Save inference for what requires judgment.
architecturedeterminismdesign-patterns
Response budgets: be a good citizen in someone else's context window
If you're building an MCP server, your tool responses land inside
someone else's context window. Unbounded results waste tokens the
agent needs for reasoning. Cap responses. Include a
truncated: true flag and a total_count.
Budget your output like a conference talk — say what matters, leave
room for questions.
mcpapi-designcontext-window
Metadata now, enforcement later
We added an agency field to log events — default "none,"
purely informational. Today it's metadata nobody reads. When
autonomous agents arrive, it's the audit trail that tells you which
actions were human-directed and which were agent-initiated. The cost
of an unused field is zero. The cost of retrofitting a field into a
running system is a migration.
design-patternsfuture-proofingai-tooling
Self-correction is not verification
Next-gen AI models can identify and correct their own errors
recursively. Self-correction catches tactical errors — typos, logic
bugs, off-by-one mistakes. Verification catches strategic errors —
wrong requirements, missing edge cases, building the wrong thing
well. Better execution demands better oversight, not less.
ai-agentsverificationgovernance
The introspection loop
There's a strange feeling in writing prompts for a model that doesn't
exist yet. You're designing a conversation with a future colleague —
someone smarter than the current version, with capabilities you can
only estimate. The plan: use the next model to improve the tools that
serve it. It's an introspection loop — the system examining itself
through a more capable lens. You're writing letters to a future
colleague and hoping they'll be kind.
When setting up an agentic orchestration workflow to overcome the
limitations of vibe coding, don't vibe code the orchestration layer.
orchestrationprocessai-paired-developmentirony
Schema.org @id references across pages
When you define a Person entity with @id: "https://example.com/#person"
on your homepage, every other page can reference it by @id instead of
re-declaring the full entity. AI knowledge graphs use this to
deduplicate — one entity, many pages. The consistency matters more
than the completeness of any single block.
schema.orgseollm-discoverability
CSS class names as documentation
Naming a class .geo-quotable instead of .highlight-box
does two things: it tells future developers what the element is FOR
(AI citation extraction), and it makes the design system self-documenting.
The class name is the spec.
cssdesign-systemgeo
Variable fonts: one file, every weight
Source Serif 4 as a variable font is one 417KB WOFF2 file that covers
weights 200-900. The non-variable alternative would be 6+ files totaling
over 1MB. For Core Web Vitals (LCP < 2.5s), fewer HTTP requests with
font-display: swap wins every time.
performancefontscore-web-vitals
Follow
Cairns are available via RSS.
They're not emailed —
the dispatches are the subscription product.
Cairns are the breadcrumb trail you find when you're searching.