All Articles
Three Weeks of Tuning AdMob Floor Prices with Claude in Chrome
Notes from three weeks of small daily floor-price adjustments across four iOS apps, with Claude in Chrome doing the dashboard rounds and me keeping the judgment calls.
Forecasting Claude API token costs with ±10% accuracy from the first three days
A practical EWMA + seasonality decomposition model that forecasts month-end Claude API costs from only the first three days of token usage, with three-tier automated guardrails for prompt caching, model routing, and rate limiting.
Resolving Tool Name Collisions When Bundling Multiple MCP Servers in the Claude Agent SDK
When the GitHub MCP and Linear MCP both expose create_issue, Sonnet 4.6 cannot tell them apart. This article covers the structure of MCP tool name collisions, a TypeScript reconciler implementation, and a measured correction: the schemaHash I originally published missed all five schema drifts I tested it against.
Claude Code Says 'All Tests Pass' but CI Goes Red — Designing Around Exit Code Pitfalls
Locally, Claude Code reports 'all tests pass.' You push it, and GitHub Actions turns red within minutes. The root cause is usually not Claude Code itself but how the shell and the test runner interpret exit codes. Here is a practical, experience-backed walkthrough.
Pruning Custom Subagents in Claude Code: After Six Months, Five Became Two
I built five custom subagents in Claude Code, ran them across six sites for six months, and ended up keeping only two. Here are the notes I took along the way — what worked, what didn't, and how I learned to write subagent descriptions that actually get called.
Compressing Tool Results in Claude Agents — Aggregating Large Responses Without Bloating Context
When a database returns 8,000 rows, a scrape returns 200KB of HTML, or a file read returns several megabytes, dropping the raw payload into your Claude tool result wrecks both cost and quality. This guide presents a three-layer compression architecture — schema projection, summarization, and reference handles — with TypeScript examples from a production agent pipeline.
Hierarchical Chat History Summarization with Claude API: A 3-Tier Design That Cut Tokens by 70%
Working TypeScript design for compressing long in-app chat histories into three tiers — recent turns kept verbatim, mid-range episodes summarized with Haiku 4.5, and long-range memory distilled to JSON by Sonnet 4.6. Includes seven weeks of production data showing input tokens down 70% and monthly API cost down from $480 to $145.
Why Claude Code's WebFetch Returns 403 or Empty Pages — and How to Fix It
When Claude Code's WebFetch returns a 403, or a 200 OK with the body mysteriously empty, there are really only four root causes worth checking. This walkthrough breaks them down — Cloudflare bot protection, client-side rendering, the allowed-domains gate, and stale caches — with the practical responses I use in production.
Installing Safety Valves in Claude Agents: A Three-Layer Kill-Switch Design for Solo Operators
A design record from a real production incident — three hours of runaway retries that cost $32 — that led me to rebuild every Claude agent with a three-layer kill switch: in-process guards, platform-level kill flags on Cloudflare KV, and an observer worker that catches the warning signs within three minutes. Working TypeScript and operational metrics included.
Two Weeks of Reviewing Crashlytics Weekly with Claude in Chrome
I let Claude in Chrome walk through Firebase Crashlytics dashboards once a week instead of checking them every morning. Notes from two weeks of running this loose division of labor as an indie developer behind 50M+ downloads.
Running Apple Privacy Manifest as an Indie Developer — Catching Dependency Drift with Claude Code
Apple Privacy Manifest (PrivacyInfo.xcprivacy) is a quietly painful area for indie iOS developers. Drawing on twelve years of running iOS apps with over 50 million combined downloads, this article walks through how I use Claude Code to detect drift, respond to rejections, and bake the whole flow into CI.
Why Your `cd` and `export` Vanish Between Claude Code Bash Calls
Claude Code's Bash tool runs each call in a fresh shell, so cd and export never persist. Here's the symptom, the cause, and five practical patterns I use across my Dolice Labs pipelines.