Skip to main content
← Build with Claude · 4 of 27 lessons live

Field Notes

A course-style series on running Claude Code and agentic pipelines in production, built entirely from incidents on this site's own infrastructure — what broke, why it was hard to see, and the actual fix.

For engineers already running Claude Code and agentic pipelines in production.

Module 1

Cost & Infrastructure Economics

What it actually costs to run Claude Code day to day and on a schedule — and the specific changes that cut real spend without cutting quality.

  1. 1The Cheapest Way to Run Scheduled Claude Jobs Isn't the APIA twice-daily job billed against the API drained an account balance for days. Moving it to a subscription runner fixed the bill and the blind spot it created.
  2. 2The Env Var That Secretly Tripled Our AI Coding BillWe named our cost-control setting something that collided with Claude Code's own environment. Every automated run quietly inherited the most expensive option.
  3. 3When Prompt Caching Costs You More Than It SavesPrompt caching is supposed to be free money. On calls spaced further apart than the cache actually lasts, it's a straight surcharge with nothing recouping it.
  4. 4Why Your Spend Limit Doesn't Survive a Fresh CI CheckoutA per-day API spend cap enforced in code still failed, because every scheduled run started from a clean checkout with no memory of prior spend.
  5. 5How Five Free Workflows Added Up to a Real BillEvery automation looked cheap in isolation. Nobody added them up until the free tier ran out mid-month.Coming soon
  6. 6Stop Letting Your AI Agent Reroll From Scratch After Every RejectionA rejected draft doesn't need a whole new attempt — it needs one targeted fix using the reviewer's own notes.Coming soon
Module 2

Silent Failures

The absence of an error is not the same claim as "it worked." Seven incidents where a pipeline looked healthy while doing nothing, or the wrong thing.

  1. 7The Page That Loaded Fine and Showed NothingEvery page built, returned 200, and sat in the sitemap. Ten of them rendered zero content, and nothing but a manual look could tell.Coming soon
  2. 8The Eighteen Tests That Never Actually RanTwo test runners, two file conventions, and a flag that turns 'found nothing' into a pass. Eighteen tests guarding a publish gate had run zero times.Coming soon
  3. 9We Built a Drift Detector That Could Never Detect DriftOne shell pipe put the counter in a subshell. The parent process never saw an increment, so the report always said the reassuring thing.Coming soon
  4. 10Your Alerts Need Their Own AlarmA deadman signal that fails open, a background task the runtime kills mid-flight, and drafts nothing was watching for — three ways an alert system can go quiet without telling you.Coming soon
  5. 11The Outage Where Every Health Check Said Everything Was FineA retired model ID and a dead API key both failed the same way: silently, for days, while every automated check reported green.Coming soon
  6. 12A Feature Being Off Looks Exactly Like a Feature Being BrokenA form guard that was deliberately disabled and one that was accidentally broken produced the identical warning — until the difference got written down.Coming soon
  7. 13One in Nine of Our Articles Was Cut Off Mid-SentenceNobody checked why the model stopped generating. It turns out that's a field the API hands you for free, and ignoring it is expensive.Coming soon
Module 3

Credentials & Secrets

Agentic workflows change how credentials get created, checked, and leaked. Four incidents that weren't about a stolen key — they were about a check that lied.

  1. 14A Redaction Script Hid Every Secret Except OneA regex that matched every variable name but one printed a live credential in full — and looked, at a glance, like it had worked.Coming soon
  2. 15Why Our Health Check Said a Working Key Was DeadOne HTTP client returned 401 on a key that worked everywhere else. The false alarm was more dangerous than no check at all.Coming soon
  3. 16The Error Message That Sent Us In the Wrong DirectionThrowing away a command's real output made a script confidently prescribe a fix that could not possibly have worked.Coming soon
  4. 17The Day Our Three Secret Stores DisagreedThe same secret lived in three places. When they drifted, the failure looked like a mystery instead of the inevitability it was.Coming soon
Module 4

Running Claude Unattended

Scheduling agentic work and coordinating more than one agent surfaces failure modes interactive sessions never hit.

  1. 18Our Local Cron Jobs Kept Missing Their RunsA schedule tied to a laptop's uptime is not a schedule. Moving it to the cloud changed more than reliability.Coming soon
  2. 19The Scheduled Jobs Nobody Told the Scheduler AboutNine task directories existed on disk. The thing that actually runs jobs only knew about seven of them.Coming soon
  3. 20A Green Checkmark Doesn't Mean the Work Got DoneExit code 0 means the session ended cleanly. It does not mean the thing you scheduled actually happened.Coming soon
  4. 21What Happens When Two AI Agents Race to Log the Same EventTwo agents publishing at the same time registered the same event twice, and neither one could tell.Coming soon
  5. 22The Auto-Merge Setting That Doesn't Actually Protect AnythingThe setting was on. It gated nothing. Understanding why required reading how the feature actually decides when to wait.Coming soon
Module 5

Deploy, CI & Git

Shipping what an agent builds hits its own class of problems — most of them about ordering, not code.

  1. 23The Deploy Command That Broke Three Different Ways in One MonthThe same wrong deploy target failed differently each time, which made it look like three separate bugs instead of one repeated mistake.Coming soon
  2. 24A Squash Merge That Changed Nothing and Broke EverythingTwo commits that added a change and reverted it squashed into a no-op — except the earlier, still-broken version was what actually landed.Coming soon
  3. 25Our Security Scanner Got Cancelled by the Step Before ItA routine, unrelated failure earlier in the job silently skipped the secret scan behind it — and the red X read as 'pipeline is being careful,' not 'the scan never ran.'Coming soon
  4. 26The Webhook That Was Faster Than Its Own DatabaseA publish event triggered a rebuild in seconds — faster than the database it read from had finished catching up.Coming soon
  5. 27One Leftover File Broke Every CI Run for a WeekA single tracked file, left over from an experiment, put every checkout into a state git's own tooling couldn't clean up after.Coming soon
Want this in your own stack

Running Claude Code in production is a program, not a prompt

If your team is scaling from individual Claude Code use to agentic pipelines running unattended, most of the failure modes above show up eventually. Happy to talk through what we've built.

Work with me →