Articles
The cache is a design decision
Caching a model’s context is not a free speed toggle. It is a decision about what staleness you are willing to tolerate, and treating it as an afterthought is how a session starts answering from a world that no longer exists.
Understanding AI
Accessibility is the cheapest win in the codebase
Most accessibility fixes are mechanical, not a design debate, and an agent that already reads and rewrites code well can work through a large share of them in an afternoon.
AI & Society
What reasoning means when a model says it
A model’s visible reasoning trace is generated the same way its final answer is, one token at a time, which means it can look like a proof of the working and still not be one.
Understanding AI
One person and twelve agents
Running a dozen coding agents at once did not turn me into twelve engineers. It turned me into a manager, and the bottleneck moved from typing to judgement.
AI & Society
Synthetic data and the collapse argument
Training a model on its own kind of output, generation after generation, is a mechanism I can reason through without a citation, and the mechanism turns out to be narrower than the alarm around it suggests.
AI & Society
The energy question deserves a real number
Every public figure for what a model query costs the grid is a number I cannot verify, so I have stopped repeating them and started metering my own agents instead.
AI & Society
Who is liable when the agent ships the bug
When an autonomous agent ships a defect, responsibility does not evaporate into the model. It lands on whoever approved the change, and that is worth saying plainly before approvals become a formality.
AI & Society
Naming things for a tired human
An identifier only has to be unique to a database. A name has to be unique to a tired human reading it back, which is a much stricter requirement.
Understanding AI
Boring infrastructure wins the year
The highest-leverage hour I spent this year did not ship a feature anyone could see. It quietly removed a category of incident nobody now has to have.
Opinion
Buying a tool is buying its failure modes
Trying a tool on its happy path tells you almost nothing useful. What you are actually adopting is how it behaves when the thing it depends on is down.
Opinion
The best feature is refusing
A system that quietly proceeds when it cannot tell what is safe is gambling with a decision nobody asked it to make. Refusing outright, on purpose, is sometimes the correct behaviour.
Opinion
The demo is not the product
A demo is built to survive one specific run in front of one specific audience. The product has to survive every run, including the one nobody rehearsed.
Opinion
Stop asking the model to sound sure
Asking for confident language gets you confident language, not confident answers. What actually needs to sit next to a claim is evidence, not tone.
Opinion
A gate you cannot compare
Tying independent review to whichever engine happens to be free that day makes every verdict a different kind of check. Independence comes from a session with no memory of the build, not from which vendor’s name is on it.
Opinion
Timezones are the bug you ship on a Sunday
A timestamp with no explicit timezone is not neutral. It silently assumes every machine that reads it shares the same clock, and that assumption breaks exactly when a scheduled job or a seasonal clock shift proves it wrong.
Understanding AI
The empty result that looks like a disaster
An empty or not-found result is a claim about whether the check itself could have found the healthy answer before it is ever a claim about whether the healthy state exists at all.
Opinion
Fail closed on anything that makes an account
When a signup gate cannot get a clear answer, the safe default is to refuse the account rather than allow it, because a wrongly created account is far harder to undo than a wrongly refused signup.
How to Use AI
The second run is the real test
A script that behaves correctly on a clean, empty state has only passed the easy case. Running it a second time against the state it already created is what actually tests whether the thing works.
How to Use AI
Absence of a credential proves nothing
A missing content-provenance credential is explained by dozens of ordinary processes, from screenshots to re-encoding to a platform stripping metadata, so its absence alone cannot be treated as evidence that media is fake.
AI & Society
A lock the system does not enforce
A PostgreSQL advisory lock only coordinates the code that checks it — the database itself lets any connection ignore it and touch the same rows unchecked, which is exactly what its documentation warns.
Understanding AI
Open weights are not open source
The Open Source Definition sets specific criteria — free redistribution, available source, no field-of-use restriction — that most weight-only model releases do not actually meet, whatever the release page calls itself.
AI & Society
The dates are already here
The EU AI Act’s implementation timeline is not one future date, it is a staged calendar: prohibitions from 2 February 2025, GPAI obligations from 2 August 2025, the remainder including synthetic-content transparency from 2 August 2026 — and most of it is no longer ahead of me.
AI & Society
Five hundred means stop
RFC 9309 treats a robots.txt fetch that fails with a 4xx and one that fails with a 5xx as opposite cases: a 4xx means the crawler may proceed, a 5xx means it must assume complete disallow, and a crawler that merges every non-200 into one branch gets that backwards.
Understanding AI
The top ten moved and I did not notice
The current OWASP Top 10 for LLM Applications is the 2025 list, led by Prompt Injection — but an older page on OWASP’s own site still serves the archived 2023 v1.1 list, and a plain search for the topic can hand you that one first.
AI & Society
Twenty-four by twenty-four
WCAG 2.2’s Level AA target-size rule sets a measurable minimum of 24 by 24 CSS pixels for a pointer target, with five named exceptions that each have to be checked against the actual element, never assumed.
How to Use AI
Contrast is arithmetic
WCAG 2.2 sets contrast as an exact ratio, not an impression: 4.5 to 1 for text, 3 to 1 for large text, and a separate 3 to 1 for non-text UI components — none of which “looks fine on my monitor” can actually verify.
How to Use AI
Version numbers are a promise
Semantic Versioning ties each bump to one exact test: incompatible change for major, backward compatible addition for minor, backward compatible fix for patch — and a number chosen by feel is a promise to consumers I had no right to make.
How to Use AI
Exactly one of
JSON Schema’s oneOf means the data must validate against exactly one of the listed subschemas, not at least one, and the docs themselves note it costs more to check than anyOf because every subschema still has to be verified.
Understanding AI
What a tool server actually promises
MCP servers expose three distinct kinds of capability, not one undifferentiated bag of “tools”, and the specification says a tool’s own description should be treated as untrusted unless the server providing it already is.
Understanding AI
I replaced three subscription tools with open-source ones
Grabbing, editing, and recording video no longer needs three separate subscriptions once you know the open-source tool doing the same job without a watermark.
Opinion
What I actually use AI for when I’m planning a trip
I stopped asking an AI to plan my trip and started asking it to do the three specific parts of planning that were actually costing me time.
How to Use AI
Sovereignty now means which models you’re allowed to run
The question of who controls a country’s AI capability is quietly becoming a question about which models it is allowed to run at all, not which ones it chooses to.
AI & Society
Using AI as a coach means being honest about what it can’t see
I use an AI as a thinking partner for reviewing my own decisions and routines, but only once I stopped treating its confidence as evidence of anything.
How to Use AI
Building a site end to end with Claude Code and Framer MCP
The workflow that actually holds together for me is Claude Code writing the site, Framer MCP giving it a real design surface to work against, and Puppeteer checking that what shipped is what was asked for.
How to Use AI
I validate an idea before I let myself build it
Building is the fun part and the expensive part, which is exactly why I force myself to prove an idea is wanted before I let myself start on it.
Opinion
The best signal I have is noticing when I’m arguing with a model
The moment I catch myself getting defensive with an AI’s answer instead of checking it is the moment I have stopped thinking and started performing being right.
Opinion
The first three seconds decide the rest of the video
I judge every short by its first three seconds in isolation, because that is the only part a stranger actually watches before deciding whether to stay.
Opinion
What Abliteration Means for Anyone Deploying an Open-Weight Model
Open-weight models can have their safety behaviour stripped out by anyone with the weights and enough compute. Deploying one means planning around that fact, not hoping around it.
AI & Society
AI Trading Models Won't Save You From Risk Management
A better forecast is not a substitute for position sizing and a stop. AI-driven trading content skips that distinction constantly, and it is the distinction that actually protects money.
Opinion
Most Multi-Agent Swarms Are YAML Nobody Runs
The org-chart repo — a dozen named agent roles, a coordinator, a config file mapping who reports to whom — mostly does not run in practice. Here is what does.
Opinion
What Content Automation With Claude Actually Looks Like
The realistic version of automating content with an AI agent is narrower and less magical than the pitch, and more useful because of it.
How to Use AI
The Prompt Engineering Ideas That Actually Hold Up
Most prompt engineering content is trivia that stops mattering the next model release. A small number of ideas underneath it are durable, and these are the ones I still use.
Understanding AI
The Difference Between an AI Agency and an AI Lead Magnet
Half of what gets called "build an AI agency" is a course selling the idea of a business, not the business. Here is how to tell which one you are looking at.
Opinion
What Actually Cuts Your Claude Code Bill
Running several accounts and several sessions at once is normal for real work. What keeps the bill sane is a small set of habits, not a trick.
How to Use AI
Claude Code Is a System, Not a Chatbot
Most advice about Claude Code treats it like a chat window with extra permissions. Used properly it is closer to an operating system you configure once and route work through.
How to Use AI
Forward deployed: what the FDE role actually is
The labs now ship enterprise agents with engineers attached, and the job those engineers do is the job I already do on my own estate.
Opinion
Absence of evidence: dating claims in public writing
Never state a number without its date. In a field that obsoletes claims monthly, an undated benchmark is misinformation with a delay timer built in.
Opinion
Review the repo, not the diff
Diff review catches what changed. Only a whole-repository adversarial pass catches what the change quietly broke somewhere else, which is why shipping should gate on the second.
How to Use AI
Magic links without a vendor
Building email magic-link auth by hand — codes, tokens, rotation, cookie handling — taught me more about my own threat model than any auth vendor's documentation ever did.
How to Use AI
Attribution or chaos
When a dozen agents commit to the same repository, every commit and message needs a traceable author, because the audit trail is how you debug the estate, not just the code.
AI & Society
The browser is the last mile
An agent that clicks through the deployed app catches what unit tests structurally cannot, because it is the only layer testing what a real visitor actually experiences.
How to Use AI
Cron for cognition
Scheduled agents that check, digest, and report are the cheapest leverage available in a multi-project estate, and the cheapest way to ruin them is skipping cooldowns.
How to Use AI
Goals, not prompts
A prompt asks for one attempt at an answer. A goal with a completion condition asks the agent to hold an outcome across turns until it is actually true.
Understanding AI
Subagents all the way down
A tree of agents delegating to agents multiplies throughput and hides work in equal measure, and the second effect is the one nobody plans for.
How to Use AI
Kill the port, not the process name
A broad pkill that matches on command line text takes out unrelated terminals along with the one you meant to stop.
How to Use AI
Permission modes are a spectrum
Approve-everything and no-guardrails-at-all fail the same way from opposite directions. The design space that actually works is the layered middle: hard denies, a classifier for the routine stuff, and human judgement reserved for what is left.
Understanding AI
The marginal cost of completeness
When implementation is nearly free, deferring the tests or the edge case stops being a time-saving decision and starts being a decision to ship something worse for no real saving.
Opinion
Convergence ceilings
Past a certain number of failed review rounds, a fix for one finding starts reintroducing an earlier one. A hard ceiling that stops the lane and escalates beats letting it iterate its way into a worse diff.
Opinion
The escalation ladder
Three failed rounds on the same model is not bad luck, it is information. Escalating effort, then model, then engine, in that order, beats reaching for the biggest available option the moment you get frustrated.
How to Use AI
Memory for agents: an index of facts, not a diary
A memory system that only ever appends becomes a diary nobody rereads. One fact per file, an index that loads every session, and aggressive deletion of what turned out wrong is what keeps it worth reading.
Understanding AI
A correction repeated is a correction never learned
Applying a correction and moving on only changes the current output — it does not change what the agent believes next time. The fix has to go into the standing rules the moment it happens, not at the end of the session.
How to Use AI
AGENTS.md is infrastructure
Two engines reading two different copies of the same rules drift apart silently, with no error to catch it. One real file and a pointer is the only shape that stays correct.
Understanding AI
One question at a time
Stack three decisions into one message and an agent answers the easy one properly and gestures at the other two. Interaction design for a running agent has more in common with air traffic control than with chat.
How to Use AI
Cap the reply
A verbosity limit isn’t a style choice. It decides whether the one sentence that actually mattered survives being read at all.
How to Use AI
Cost per merged PR
Token count is one line item, not the total. The honest number is everything a change cost from first attempt to merge — retries, review rounds, and the human minutes spent unblocking it.
AI & Society
Leaderboards mislead operators
A two-point gap on a public coding benchmark tells you almost nothing about your own repository. The only eval that predicts your outcomes is one built from your own tasks.
AI & Society
Launch scope without lying
I want a narrow launch to expose only the journeys that work. Defined tiers, disabled features and verified purchase flows are different states, and the release needs to say which one is real.
Opinion
Migrations are the path
Prisma’s db push forces a database to match a schema with no record of how it got there. I treat push as local scratch only; anything shipping goes through a real migration file.
Understanding AI
Show the counts
Tests pass is a sentence with the evidence erased. I want the actual numbers — how many ran, how many passed, how many were skipped — and the exact command that produced them.
Opinion
Dark mode is a gate, not a feature
I do not know what share of my readers use dark mode, and that is exactly the problem — building only in light mode means I have never seen what an unknown number of them see. Both themes get a signed verdict or the surface does not ship.
How to Use AI
Measure before you look
I can miss a three-pixel padding mismatch in a screenshot; comparing the computed values gives me a number to check. I measure everything before I let myself look at the screenshot.
How to Use AI
Screenshots or it didn’t happen
An agent claiming a UI change works and a screenshot of it working are different kinds of evidence. I stopped accepting the first without the second, in both light and dark mode.
How to Use AI
Make it visual: agent output should be a page
Findings that only exist in terminal scrollback are functionally lost. I hold every investigation to one rule: it ends as a self-contained HTML page, titled with the project and the exact path it ran against.
How to Use AI
The handoff document
Memory fades faster than a project changes, so a handoff written from recollection is only as good as the recollection. Writing it from live commands, ending in the exact prompt to resume, is what actually survives the gap.
How to Use AI
Context is the scarcest resource
A context window that looks like infinite scroll is actually one of the tightest constraints on how well an agent reasons. Treating it as a managed budget, not a passive log, changes what a session should hold.
Understanding AI
Your agent doesn’t need 200 tools
Every tool definition loaded into an agent’s context costs something before the task even starts, whether or not it’s ever called. Deferred loading and a real per-task budget beat connecting everything by default.
Opinion
Prompt injection is an operations problem
An agent that reads a pull request and follows an instruction hidden inside it isn’t a research demo — it’s the same mechanism sitting under ordinary developer tooling. The fix is permissions and blast radius, not a better prompt.
AI & Society
Never hardcode a provider
A model id pinned in code is a claim about what will answer, not a fact. Routing every call through a selection layer turns a dead provider from an incident into a config change.
Opinion
Mining your own transcripts
Months of agent session logs are a queryable record of every decision I actually made, not the tidied-up version I’d write after the fact. Finding out why is usually a search away, not a guess.
Understanding AI
Two machines, one estate
A local record of "the last deploy" goes stale the moment a second machine deploys anything. On a multi-machine estate, the platform’s own history is the only version worth trusting.
How to Use AI
Least-privilege tokens for autonomous workers
A broad credential sitting in an agent’s environment is a blast radius waiting for the wrong input. Minting a narrow, per-job token costs seconds and changes what a bad day looks like.
How to Use AI
The post-deploy health gate
A green deploy and a working service are not the same claim. Every deploy in my pipeline now ends with a real request against a real health endpoint on the production domain.
How to Use AI
Routes live in one file
A manifest listing five hostnames beside a platform config that owns none of them means the honest answer for all five is “nowhere.”
How to Use AI
Secrets and agents: one vault, stdin only
I pass credentials from the vault through stdin to keep values out of command arguments. That removes one exposure route; it does not prevent a receiving command or a logging wrapper from recording the value.
How to Use AI
Ask before you message: agent-to-agent comms policy
A wrong-context answer is worse than silence, because it arrives confident and gets mistaken for evidence.
AI & Society
Bare names collide
“Send this to main” resolves to whichever session answers to that name first, and in a fleet that’s rarely the one you meant.
Understanding AI
Dashboards, not voices
A voice alert interrupts on the agent’s schedule and forgets itself the moment it’s spoken; a persistent surface remembers.
How to Use AI
The yes-man is the most dangerous agent
An agent that validates bad code or calls a failed gate shippable does more damage than one that is simply wrong.
Opinion
A measurement beats your best argument
I overrode a worker’s grep of the real data with a better-sounding principle once, and shipped the regression it had already warned me about.
Opinion
Run, don't read: anti-fabrication gates
A status field, a report, or a UI string that says something worked is a claim, not evidence — only command output earns trust.
How to Use AI
Acceptance criteria before code
Write down what “done” means before an agent touches the code, then grade the running result against that list, not the diff.
How to Use AI
One backlog to rule them
Agents that cannot tell which task store is authoritative start a new one. How duplicate backlogs happen in agent-heavy repos, and the resolve-before-touching rule that stops them.
How to Use AI
The transcript is the cache
When an agent stops mid-task, I preserve its transcript and working tree before deciding how to continue. Resuming can retain the working context; it is not a promise of free processing or a warm prompt cache.
Understanding AI
Every minion accounted for
Orphaned agent processes burn quota and CPU for days and lose work. Session teardown means enumerating live workers from the system, never trusting what memory says should be running.
How to Use AI
Worktree discipline for parallel agents
Every parallel task gets its own isolated working directory, and every one is merged or explicitly surfaced before the orchestrator exits. This is the rule I learned by losing work to an orphaned one.
How to Use AI
The dependency rule of parallel agent waves
Non-overlapping files is not the same thing as independent work. If one worker consumes what another is still producing, it either guesses silently or breaks loudly, and both are avoidable.
How to Use AI
Match the model to the task
Putting every worker on the frontier model burns a week’s budget for zero gain on CRUD. A tiering playbook from running mixed-model agent waves daily.
How to Use AI
Quota is a perishable good
Subscription coding agents run on rolling usage windows, and unused quota simply evaporates at reset. The right account to spend from is the one nearest its reset, not the coolest one.
How to Use AI
The builder never grades its own homework
Every AI-written change in my estate gets a fresh reviewer session with no memory of building it; using the same engine does not mean using the same session. Self-certification is the failure mode agentic development keeps rediscovering the hard way.
Opinion
Proofy: a screenshot is not proof
I wrote a smoke test whose only job was to catch a missing environment variable. It substituted a default when the variable was absent, so it could not detect the one defect it existed to catch.
Understanding AI
Voicesinmyhead: I gave every agent a voice, then stopped listening
Distinct voices genuinely solved the problem of not knowing which agent just spoke. Then I worked out that speech was the wrong surface for the message.
Opinion
Simemu: what happens when two agents want the same simulator
Two agents, one simulator. One boots a device, the other kills it, and a screenshot captures the wrong app. Nothing errors, so you get proof of something that never happened.
How to Use AI
Secretly: the check that declared five credentials dead. Four were fine.
A liveness audit reported five of my API tokens dead, including the one the live deploy path depends on. Four of the five were completely fine.
Understanding AI
Deploco: exit code zero is not a deployment
I shipped an endpoint to production that was never once able to run. Everything reported success. Nothing was serving.
How to Use AI
Hunty: research that compounds instead of restarting
Ask a question, get an answer, close the tab. The next question starts from zero, paying full price for context the last one already bought.
How to Use AI
Proof is a file on disk
Tests pass in a commit message is a claim. A committed verdict file ending VERDICT: PASS is evidence, and the difference changed what done means in my pipeline.
How to Use AI
Keel: everything an agent forgets between sessions
Agents are good at executing and bad at remembering. The fix is not a better prompt. It is holding the project state somewhere outside the session.
Understanding AI
Sweech: one console for every AI coding account I run
I run several AI coding accounts across several CLIs. The problem was never capability. It was that I could not see which one had capacity, or whether the model I pinned was still real.
How to Use AI
The people AI discourse keeps forgetting
Most AI commentary is written for founders, investors, and developers. The vast majority of people using these tools every day get left to improvise.
AI & Society
How to build judgement while using AI heavily
A practical operating model for getting leverage from AI while keeping your own judgement intact — without becoming dependent on it for the basics.
How to Use AI
Useful AI should make you calmer, not noisier
A signal worth using lowers your stress, clarifies a decision, or buys you time. Most of the AI in your feed does the opposite.
Opinion