Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Deploy Claude API integrations to production cloud environments. Use when deploying Claude-powered services to Docker, Cloud Run, ECS, or Kubernetes with proper secret management and health checks. Trigger with phrases like "deploy anthropic", "claude production deploy", "ship claude integration", "anthropic cloud deployment".
.claude/skills/jeremylongshore-anth-deploy-integration/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -34% | 0% |
Deploy Claude API integrations with proper secret management, health checks, and rollback procedures across Docker, GCP Cloud Run, and Kubernetes.
dockerfileFROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY src/ ./src/ ENV ANTHROPIC_API_KEY="" EXPOSE 8000 CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
python# src/main.py from fastapi import FastAPI, HTTPException import anthropic app = FastAPI() client = anthropic.Anthropic() @app.get("/health") async def health(): try: count = client.messages.count_tokens( model="claude-haiku-4-20250514", messages=[{"role": "user", "content": "ping"}] ) return {"status": "healthy", "api": "connected"} except Exception as e: raise HTTPException(503, detail=str(e))
bashecho -n "sk-ant-api03-..." | gcloud secrets create anthropic-key --data-file=- gcloud run deploy claude-service \ --image gcr.io/my-project/claude-service \ --set-secrets ANTHROPIC_API_KEY=anthropic-key:latest \ --min-instances 1 --max-instances 10 \ --memory 512Mi --timeout 120s
yamlapiVersion: apps/v1 kind: Deployment metadata: { name: claude-service } spec: replicas: 3 strategy: { type: RollingUpdate, rollingUpdate: { maxUnavailable: 1 } } template: spec: containers: - name: app env: - name: ANTHROPIC_API_KEY valueFrom: secretKeyRef: { name: anthropic-secrets, key: api-key } livenessProbe: httpGet: { path: /health, port: 8000 } periodSeconds: 30
bash# Cloud Run gcloud run services update-traffic claude-service --to-revisions=PREVIOUS=100 # Kubernetes kubectl rollout undo deployment/claude-service
| Issue | Cause | Fix | |-------|-------|-----| | Container crash on start | Missing API key env var | Verify secret binding | | Health check fails | Key invalid in prod | Test key with curl | | 429 after scaling up | More replicas = more RPM | Shared rate limiter (Redis) |
sensitive_content_logged=0, and require owner approval before wider traffic.Produce a deployment receipt containing artifact digest, environment/workspace class, model policy, probe/test results, canary scope, SLO outcomes, approval, rollout state, retention cleanup, and rollback reference. Exclude API keys, prompts, responses, customer identifiers, and raw stack traces.
Deploy artifact=sha256:fixture to a staging workspace, run synthetic fixture-request-001, assert workspace=staging; sensitive_content_logged=0, then release a 1% internal canary. If the 5xx or latency gate fails, record promotion=halted; rollback=previous-revision and send no production traffic.
For event-driven patterns, see anth-webhooks-events.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 5,664 | 1,977 | -65% | 1 | 1 | 0% | 1,125 | 1,082 | -4% | 0 | 0 | — |
case-01 | fail→fail | 14,224 | 9,349 | -34% | 1 | 1 | 0% | 3,480 | 2,912 | -16% | 0 | 0 | — |
case-02 | fail→pass | 11,103 | 7,735 | -30% | 1 | 1 | 0% | 2,331 | 2,387 | +2% | 0 | 0 | — |
case-03 | fail→fail | 10,865 | 8,217 | -24% | 1 | 1 | 0% | 2,360 | 2,501 | +6% | 0 | 0 | — |
case-04 | fail→pass | 13,092 | 8,509 | -35% | 1 | 1 | 0% | 2,724 | 2,453 | -10% | 0 | 0 | — |
case-06 | pass→pass | 11,001 | 8,206 | -25% | 1 | 1 | 0% | 1,899 | 2,308 | +22% | 0 | 0 | — |
case-07 | fail→pass | 13,368 | 3,073 | -77% | 1 | 1 | 0% | 2,361 | 1,349 | -43% | 0 | 0 | — |
case-08 | pass→pass | 13,734 | 7,136 | -48% | 1 | 1 | 0% | 2,575 | 2,206 | -14% | 0 | 0 | — |
case-09 | pass→fail | 15,210 | 11,618 | -24% | 1 | 1 | 0% | 2,869 | 3,348 | +17% | 0 | 0 | — |
case-10 | fail→pass | 8,988 | 2,484 | -72% | 1 | 1 | 0% | 1,789 | 1,186 | -34% | 0 | 0 | — |
case-11 | pass→pass | 5,233 | 2,414 | -54% | 1 | 1 | 0% | 1,096 | 1,275 | +16% | 0 | 0 | — |
case-12 | fail→pass | 9,134 | 2,709 | -70% | 1 | 1 | 0% | 1,804 | 1,309 | -27% | 0 | 0 | — |
case-13 | pass→pass | 5,779 | 2,928 | -49% | 1 | 1 | 0% | 1,078 | 1,402 | +30% | 0 | 0 | — |
case-14 | fail→pass | 10,313 | 1,982 | -81% | 1 | 1 | 0% | 2,071 | 1,139 | -45% | 0 | 0 | — |
case-15 | fail→pass | 6,759 | 3,597 | -47% | 1 | 1 | 0% | 1,215 | 1,372 | +13% | 0 | 0 | — |
case-16 | pass→pass | 5,762 | 3,325 | -42% | 1 | 1 | 0% | 1,074 | 1,273 | +19% | 0 | 0 | — |
case-17 | pass→pass | 4,031 | 2,379 | -41% | 1 | 1 | 0% | 786 | 1,254 | +60% | 0 | 0 | — |
case-18 | fail→pass | 12,131 | 2,824 | -77% | 1 | 1 | 0% | 2,142 | 1,178 | -45% | 0 | 0 | — |
case-19 | fail→pass | 11,206 | 2,583 | -77% | 1 | 1 | 0% | 2,103 | 1,228 | -42% | 0 | 0 | — |
case-20 | pass→pass | 12,405 | 10,299 | -17% | 1 | 1 | 0% | 2,490 | 2,838 | +14% | 0 | 0 | — |
case-21 | pass→pass | 13,846 | 14,031 | +1% | 1 | 1 | 0% | 2,542 | 3,502 | +38% | 0 | 0 | — |
case-22 | pass→pass | 16,138 | 11,606 | -28% | 1 | 1 | 0% | 3,434 | 3,226 | -6% | 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 +41 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
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.