Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Respond to Anthropic API incidents — outages, degraded performance, Use when working with incident-runbook patterns. error spikes, and rate limit issues in production. Trigger with "anthropic down", "claude outage", "anthropic incident", "claude not responding", "anthropic 529".
.claude/skills/jeremylongshore-clade-incident-runbook/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 26% | 0% |
Respond to Anthropic API incidents in production — outages, sustained 529 errors, authentication failures, and timeouts. Covers status page checking, severity classification, model fallback activation, communication, and post-incident review.
bash# Check Anthropic status curl -s https://status.anthropic.com/api/v2/status.json | python3 -c " import json, sys d = json.load(sys.stdin) print(f\"Status: {d['status']['description']} ({d['status']['indicator']})\")" # Test API directly curl -s -w "\nHTTP %{http_code} in %{time_total}s\n" \ https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "claude-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-haiku-4-5-20251001","max_tokens":5,"messages":[{"role":"user","content":"ping"}]}'
| Symptom | Severity | Action | |---------|----------|--------| | 529 overloaded (intermittent) | Low | SDK auto-retries handle this | | 529 overloaded (sustained 5+ min) | Medium | Switch to fallback model | | 401/403 on all requests | High | API key issue — check console | | All requests timing out | High | Check status page, activate fallback | | Status page shows incident | Varies | Follow status page updates |
typescriptasync function callWithFallback(params: Anthropic.MessageCreateParams) { try { return await client.messages.create(params); } catch (err) { if (err instanceof Anthropic.APIError && (err.status === 529 || err.status === 500)) { // Try a different model if (params.model.includes('opus')) { return await client.messages.create({ ...params, model: 'claude-sonnet-4-20250514' }); } if (params.model.includes('sonnet')) { return await client.messages.create({ ...params, model: 'claude-haiku-4-5-20251001' }); } } throw err; } }
| Error | Cause | Solution | |-------|-------|----------| | API Error | Check error type and status code | See clade-common-errors |
See Step 1 (curl status check and API test), Step 2 (severity classification table), Step 3 (fallback code with model downgrade), and Step 5 (post-incident checklist) above.
See clade-reliability-patterns for building resilient integrations.
clade-reliability-patterns)clade-observability)Each section contains production-ready code examples. Copy and adapt them to your use case.
Integrate the patterns that match your requirements. Test each change individually.
Run your test suite to confirm the integration works correctly.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 18,725 | 8,722 | -53% | 1 | 1 | 0% | 3,285 | 2,844 | -13% | 0 | 0 | — |
case-08 | fail→pass | 12,186 | 7,152 | -41% | 1 | 1 | 0% | 2,057 | 2,299 | +12% | 0 | 0 | — |
case-18 | fail→pass | 6,710 | 1,597 | -76% | 1 | 1 | 0% | 927 | 1,247 | +35% | 0 | 0 | — |
case-01 | fail→fail | 18,399 | 11,927 | -35% | 1 | 1 | 0% | 3,420 | 3,435 | +0% | 0 | 0 | — |
case-02 | fail→pass | 32,080 | 22,862 | -29% | 1 | 1 | 0% | 6,192 | 5,306 | -14% | 0 | 0 | — |
case-04 | pass→pass | 4,649 | 3,075 | -34% | 1 | 1 | 0% | 898 | 1,543 | +72% | 0 | 0 | — |
case-05 | fail→pass | 6,518 | 3,080 | -53% | 1 | 1 | 0% | 1,196 | 1,510 | +26% | 0 | 0 | — |
case-06 | pass→pass | 11,571 | 3,442 | -70% | 1 | 1 | 0% | 1,779 | 1,511 | -15% | 0 | 0 | — |
case-07 | fail→pass | 11,535 | 4,374 | -62% | 1 | 1 | 0% | 1,773 | 1,759 | -1% | 0 | 0 | — |
case-09 | pass→pass | 10,681 | 3,846 | -64% | 1 | 1 | 0% | 1,568 | 1,625 | +4% | 0 | 0 | — |
case-10 | fail→pass | 7,208 | 3,191 | -56% | 1 | 1 | 0% | 1,259 | 1,525 | +21% | 0 | 0 | — |
case-11 | fail→pass | 10,717 | 3,456 | -68% | 1 | 1 | 0% | 1,915 | 1,616 | -16% | 0 | 0 | — |
case-12 | fail→pass | 12,164 | 3,193 | -74% | 1 | 1 | 0% | 2,191 | 1,589 | -27% | 0 | 0 | — |
case-13 | fail→pass | 9,244 | 2,946 | -68% | 1 | 1 | 0% | 1,540 | 1,251 | -19% | 0 | 0 | — |
case-14 | fail→pass | 15,644 | 8,587 | -45% | 1 | 1 | 0% | 2,534 | 2,530 | -0% | 0 | 0 | — |
case-15 | fail→pass | 3,946 | 4,323 | +10% | 1 | 1 | 0% | 784 | 1,798 | +129% | 0 | 0 | — |
case-16 | fail→pass | 4,918 | 3,021 | -39% | 1 | 1 | 0% | 662 | 1,512 | +128% | 0 | 0 | — |
case-17 | pass→pass | 12,821 | 3,409 | -73% | 1 | 1 | 0% | 2,204 | 1,544 | -30% | 0 | 0 | — |
case-19 | fail→pass | 9,690 | 2,596 | -73% | 1 | 1 | 0% | 1,553 | 1,436 | -8% | 0 | 0 | — |
case-20 | pass→pass | 16,493 | 12,420 | -25% | 1 | 1 | 0% | 2,947 | 3,555 | +21% | 0 | 0 | — |
case-21 | pass→pass | 12,694 | 13,757 | +8% | 1 | 1 | 0% | 2,260 | 3,604 | +59% | 0 | 0 | — |
case-22 | pass→pass | 19,154 | 18,983 | -1% | 1 | 1 | 0% | 3,579 | 5,169 | +44% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.