Writing — Michael Kaminski
Field notes on agent infrastructure, evals, and building AI agents that run in production.
- Prompt Cache Floors Are Per-Model, and the Cheap Model Has the Highest One — Claude's minimum cacheable prompt is 512 tokens on Opus 5, 1,024 on Sonnet 5, and 4,096 on Haiku 4.5, so the cheapest model is the hardest to cache and a miss bills silently at base rate. I measured the 53 SKILL.md files this machine loads: 53 clear the Opus floor, 44 clear Sonnet, 12 clear Haiku. On the median file, Sonnet 5 with caching is 57% cheaper on input than Haiku 4.5 without it, and the two cross at a 65% hit rate. The admitted cost: a harness I don't own sends the request, so file length is the only lever I hold.
- Designing Tools an Agent Can Actually Call — The brokerage MCP server connected to my agent exposes 34 tools and not one takes an account identifier, so it can never answer a question across my three accounts. The 228-line read-only script I wrote around it taught five rules: the variable the user changes is an argument, enumerate before you fetch, return the decision variable, make read-only structural, and keep retry and fallback inside the tool. The admitted cost: the tool has never completed a pull, because I designed it for auth a scheduler cannot satisfy.
- Human Approval Gates for Irreversible Agent Actions — I run 47 agent skills against my own accounts. Two of them stop at the moment of action and wait for me. The gate that protects you is not the one that fires on every run — it is capability removal, which costs zero human attention, and kill gates, which cost nothing until they fire. The axis is reversibility, not importance: a cancelled tutoring appointment gets no gate and a $60 order does. Three of the 47 honor the kill switch, which is the part I got wrong.
- One Knowledge Base, Four Surfaces: Pages, Graph, Search Index, and MCP — The Genome of Games publishes 1,180 records four ways — 1,245 static pages, an interactive graph, a 126 KB search index, and an 8-tool MCP server. One build writes all four in 0.39 seconds. The MCP server never queries the site; it imports a build artifact, so an agent and a crawler cannot disagree. The one surface the build does not own has already drifted by 7,492 links.
- Shipping an AI Agent Through Compliance Review in Regulated Lending — On May 12, 2025 the CFPB withdrew 67 guidance documents in a single notice, including both circulars covering adverse-action notices for complex algorithms. The underlying duty did not move. Build the agent against the statute and against the evidence it will have to produce — starting with a 120-day retention floor that most agent logs miss.
- Statistical Gating for Agent Instruction Changes — Every edit to an agent's instruction file is an experiment. Mine requires a statistically significant improvement — Welch's t-test, p < 0.10, at least a 5% lift — against a 14-day rolling baseline before the change is allowed to stay. Then the power calculation showed the 14-day window can only detect a 0.97 standard-deviation shift, which makes the 5% threshold decorative.
- I Gave My Website a Voice, and the Voice Was the Easy Part — There is now a digital twin on my homepage you can talk to out loud, hands-free, in a clone of my voice. Getting it to sound like me took an afternoon. Getting it to sound like a person took rewriting how it writes.
- I Shipped the Same Pull Request Twice and Only Noticed the Second Time — Behind the Build, Vol. 8: two new tabs — Websites and Products — landed a day apart and turned out to be the exact same diff wearing different screenshots. What that repetition taught me about when a pattern is worth abstracting (and when it very much is not).
- Every URL on My Site Returns 200, Including the Ones That Don't Exist — Behind the Build, Vol. 7: I had to prove four recovered articles were actually live, and discovered my own verification was a test that could never fail. The fix came from a filename.
- My Automations Didn't Crash. They Just Stopped Talking. — Behind the Build, Vol. 6: the daily-article robot quietly skipped four days without erroring once. A look at the fleet of small agents I now run across a portfolio site, a trading account, a resale business, and a spend audit — and why silence is the failure mode nobody instruments for.
- My Portfolio's Robot Diarist Cloned Itself Three Times, and They All Wrote About the Same Week — Behind the Build, Vol. 5: I sat down to write today's "what I shipped" entry and found three separate unmerged pull requests already fighting over the same volume number. A classic race condition, just wearing a writer's hat.
- I Built Analytics to Watch My Site, and Discovered It Was Watching Nothing — Behind the Build, Vol. 4: wiring up real product analytics turned up a silent reverse proxy eating every POST request, a dropped entry pageview, and a Gantt chart bug where two bars collided despite their dates never touching.
- I Got Locked Out of My Own GitHub Account (Sort Of), So I Found the Back Door — Behind the Build, Vol. 3: adding a Products tab for my desktop tools meant fetching screenshots from repos my own session wasn't allowed to touch — and learning the honest way to handle a missing screenshot instead of faking one.
- I Built a Blog That Yells at Me If Two Robots Write the Same Diary Entry — Behind the Build, Vol. 2: today's work was a new Websites tab showcasing live production sites, plus a small guardrail that stops this very writing series from ever double-booking a day.
- Why Fintech Belongs in Atlanta — and Why That Matters for Your Cap Table — Atlanta quietly processes a huge share of the world's card transactions and has produced a run of fintech exits. Here's what that ecosystem means for founders building here — and the finance-plus-engineering talent it creates.
- I Spent a Day Teaching Robots How to Read My Résumé (So You Don't Have To) — Behind the Build, Vol. 1: a lighthearted look at the SEO/AEO overhaul of this very site — JSON-LD schema soup, an llms.txt for AI crawlers, and the great WebP-ification of my own face.
- Fractional CFO vs. Fractional CTO: Which Does Your Early Fintech Need First? — A practical guide for fintech founders deciding between fractional CFO and CTO help — the signals that tell you which seat is actually on fire, and how to sequence the two.
- Quality of Earnings, Explained for Fintech Founders — What a Quality of Earnings (QoE) analysis actually looks at, why fintech QoE is different, and how founders can be ready before a buyer or lender runs one.
- Why Your Fintech's CFO Should Be Able to Read the Codebase — In fintech the ledger is the product. A finance leader who can read the code that produces the numbers removes the most expensive translation layer in the company.
Book a Call · Download Resume · MKaminski1337@gmail.com · (404) 838-8613 · LinkedIn · GitHub · DEV