Trimio Field Notes

You've Built the Perfect Claude Code Setup. What Happens When Claude Is Down?

May 27, 2026 7 min read engineeringvendor-lock-inlcrclaude-code

A post on Hacker News today is making the rounds in engineering circles: a practitioner's guide to running Claude Code as a production agentic system — layered .claude/ configuration, subagents with scoped permissions, MCP bindings, cascade CLAUDE.md files for monorepos, skills invoked as slash commands. Good engineering advice. The kind of setup that turns a $20/month tool into a genuine force multiplier for a team.

And in the 78-comment thread, a sharp exchange is playing out that every engineering leader should read carefully:

"What do you do when Claude is down for 8 hours?"

"You just hot-swap providers."

"Sure, but your entire CLAUDE.md, your skills, your MCP bindings, your prompts — all of it is Claude-specific. You've reinvented vendor lock-in at the application layer."

That exchange is the most honest conversation in AI tooling right now. And it points at a structural problem that's going to get a lot of teams into trouble as agentic AI becomes production infrastructure.

the investment compounds — and it's not portable

Essential
Teams spend weeks building CLAUDE.md files, skill libraries, subagent configs, and MCP bindings. Each investment compounds value — but it also compounds provider-specific lock-in. The more it works, the harder it is to leave.

Boris Cherny (Anthropic) articulates the compounding principle well: the single highest-leverage thing you can do with Claude Code is let Claude write rules for itself. Every mistake becomes a CLAUDE.md update. Over weeks, the file accumulates institutional knowledge about your codebase, your conventions, your gotchas. It becomes remarkably effective.

Here's the problem: that CLAUDE.md isn't a configuration file. It's an Anthropic-specific prompt. Your skills directory — .claude/skills/ — is Anthropic-specific. Your .mcp.json server bindings are tested against Claude's tool-call format. The subagent permission scopes are Claude's permission model.

You've built a system that works beautifully. And it runs on one provider's infrastructure, one provider's models, one provider's uptime SLA.

When Anthropic has an incident, you're not hot-swapping providers. You're stopping.

the uptime math doesn't survive at scale

Essential
99.9% uptime on Claude is 8.7 hours of downtime per year. For a team of 50 engineers using Claude Code as their primary coding tool, that's 50 × 8.7 = 435 engineer-hours of blocked productivity per year — conservatively.

Anthropic's status page has had incidents. Every major LLM provider has. This isn't a criticism — it's the nature of running large-scale inference infrastructure. The question is what happens to your engineering team when the incident fires.

If Claude Code is a nice-to-have productivity tool, a few hours of downtime is mildly annoying. Engineers revert to terminal and IDE and push through.

If Claude Code is production infrastructure — if 70% of committed code is AI-generated (as at Uber), if your CI/CD pipeline runs AI-assisted test generation, if your code review tooling uses Claude as the reviewer — then a provider outage is an engineering outage. Not a tool inconvenience. A work stoppage.

The math:

That's before accounting for the tail-risk scenarios: extended outages (hours), regional incidents, rate-limit events from surging demand, or provider-side capacity issues during peak periods.

the lock-in isn't at the prompt layer — it's at the proxy layer

Essential
The correct answer to vendor lock-in isn't "write provider-agnostic prompts" — that's a false constraint that makes your prompts worse. The correct answer is provider agnosticism at the infrastructure layer, not the application layer.

The HN thread's "just hot-swap providers" answer isn't wrong — it's just incomplete. Hot-swapping providers is possible. But it requires that you've done the architectural work to make it possible, and most teams haven't.

The mistake is trying to solve this at the prompt layer. Writing CLAUDE.md to work equally well with GPT-5, Gemini, and Claude makes it worse for all of them — like writing documentation to be equally readable by engineers, lawyers, and MBAs. You end up with something that serves none of them well.

The correct architecture separates two layers:

  1. Application layer: CLAUDE.md, skills, MCPs, subagent configs. Optimized for Claude. Let them be Claude-specific. This is where your team's institutional knowledge lives — optimize it aggressively for the primary provider.
  2. Infrastructure layer: The API endpoint your tools call. This is where provider switching, failover, and routing logic belongs.

If your Claude Code setup is pointed at a proxy endpoint instead of api.anthropic.com directly, a provider incident triggers automatic failover at the infrastructure layer. The application layer (CLAUDE.md, your skills, your subagent configs) is unaffected. The failover model may not produce identical output — model-to-model variance is real — but the workflow continues, and you get signal on where your prompts are truly provider-agnostic versus where they implicitly depend on Claude's specific behavior.

what the proxy layer buys you beyond failover

Essential
Failover is the headline feature. The compound benefits are: cost attribution per workflow (which team, which agent, which skill costs what), budget enforcement (per-key caps before the Uber moment), and routing policy (use GPT-5 for code generation, DeepSeek for summarization, based on cost/quality tradeoff per task class).

Failover is the easiest benefit to articulate, but not the most valuable one for most teams.

The deeper issue with the modern Claude Code setup is that it's invisible to finance. Your team is running subagents, skill chains, multi-step review loops — and the cost of each is somewhere in Anthropic's monthly invoice, aggregated, unattributed. Engineering knows roughly how much they're spending. Finance knows nothing except the total bill.

The proxy layer changes that. When every API call routes through a controlled endpoint, you can tag it: this call came from the CI test-generation agent, this one from the PR review skill, this one from the interactive coding session. The infrastructure that provides failover also provides cost attribution — for free, as a structural property of the architecture.

Add routing rules, and the same proxy that provides failover also optimizes spend: route code-generation tasks to the best model for the cost; route test-file summarization to a cheaper model where quality loss is acceptable; route critical path reviews to the highest-quality model available. The routing logic lives at the infrastructure layer; the application layer (CLAUDE.md, skills) never changes.

the Cloudflare Flagship parallel

Essential
Cloudflare Flagship (launched today, HN #6, 250+ points) is a native feature flag service for Workers: declare targeting rules once, evaluate every request locally at the edge. Feature flags are to product features what LCR routing rules are to model selection. Same mental model — per-request policy enforcement — different layer.

Cloudflare shipped a feature flag product today — Flagship — that's generating a lot of developer discussion for the same reason this whole architecture question is interesting: it separates policy declaration from evaluation. You declare feature visibility rules once; Flagship evaluates them at the edge, zero network hop, per request.

The mental model is identical to what a good LCR routing layer does for model selection. You declare routing rules once (route agent-class traffic to DeepSeek V4 if cost exceeds $X, failover to Claude Sonnet if unavailable). The proxy evaluates the rule per request, zero application-layer changes. Same request, different outcome, based on declared policy.

Feature flags and model routing rules are both instances of the same underlying pattern: per-request governance via declared policy. Cloudflare built it for feature visibility. Trimio builds it for model selection. The developer community is clearly ready to think about this pattern — Flagship's 250+ HN points confirms it.

the practical checklist

If you're building a serious Claude Code setup and you want it to be durable:

  1. Point your tools at a proxy, not at api.anthropic.com directly. This is a one-line config change. It costs nothing and unlocks everything downstream.
  2. Build your CLAUDE.md and skills aggressively for Claude. Don't water them down for provider-agnosticism at the prompt layer. Optimize for your primary provider. Let the proxy handle switching.
  3. Define failover policy at the proxy layer. Which model is the fallback for each traffic class? What quality threshold triggers the switch? These are routing rules, not application-layer decisions.
  4. Tag your virtual keys by workflow. CI test generation, PR review, interactive coding, batch processing — each should have its own virtual key with a cost ceiling. When the ceiling is hit, the proxy throws an error before your bill does.
  5. Review routing outcomes weekly. Your subagents' actual traffic class breakdown (agent vs. chat vs. code vs. summarization) tells you where the cost is coming from and whether the routing policy is doing what you intended.

the bottom line

Essential
The HN thread is asking the right question. The answer isn't "write worse prompts." It's separate application logic from infrastructure policy. Invest in your CLAUDE.md and skills without reservation. Just make sure your API calls go through a layer you control — one that can route, failover, attribute, and enforce limits without touching your application code.

The engineer who built the Claude Code setup described in today's HN post built something genuinely valuable. The skills library, the cascade CLAUDE.md, the subagent configs — these represent weeks of compounded work that makes a team measurably more productive. Don't throw that away in the name of provider agnosticism.

But do point that investment at infrastructure you control. Because the question in the thread — "what happens when Claude is down?" — has an easy answer if you've done the work at the right layer: your failover policy fires, the request routes to the next available model, and your engineering team keeps shipping.

Without that layer, the answer is: everyone waits.

Trimio is the LLM API gateway that adds the proxy layer between your Claude Code setup and Anthropic's API — failover, cost attribution, routing rules, and per-key budget caps, in one URL change. See how it works.

Trimio
One URL change. Provider resilience.
trimio sits between your agentic setup and your LLM providers — failover, cost attribution, routing policy, and budget enforcement in one layer. No code changes required.