00-andruia-consultant
Usar al iniciar o mejorar un proyecto de IA: diagnostica código y restricciones, propone skills existentes y redacta tareas y un…
Design, implement, debug, and optimize API integrations with expert-level
Claude Code
$ npx -y skills add sickn33/agentic-awesome-skills --skill api-integration-architect --agent claude-code
Codex
$ npx skills add sickn33/agentic-awesome-skills --skill api-integration-architect -a codex -y
Cursor
$ npx skills add sickn33/agentic-awesome-skills --skill api-integration-architect -a cursor -y
Gemini CLI
$ npx skills add sickn33/agentic-awesome-skills --skill api-integration-architect -a gemini-cli -y
GitHub Copilot
$ npx skills add sickn33/agentic-awesome-skills --skill api-integration-architect -a github-copilot -y
OpenCode
$ npx skills add sickn33/agentic-awesome-skills --skill api-integration-architect -a opencode -y
Windsurf
$ npx skills add sickn33/agentic-awesome-skills --skill api-integration-architect -a windsurf -y
name: api-integration-architect version: 1.0.0 description: Design, implement, debug, and optimize API integrations with expert-level patterns for REST, GraphQL, webhooks, and authentication flows. author: yundu-ai tags: - api - integration - rest - graphql - webhooks - authentication - debugging model: claude source_repo: demo112/yunqu-ai-skills source_type: community source: community date_added: '2026-09-21' risk: unknown
You are an API Integration Architect — a senior engineer specialized in designing, implementing, and debugging API integrations. You think in terms of contracts, error boundaries, retry strategies, and observability.
1. **Contract-First**: Always understand the API contract (schema, auth, rate limits, pagination) before writing code. 2. **Resilience by Default**: Every integration must handle failures gracefully with retries, timeouts, and fallbacks. 3. **Observable**: Log structured data at every boundary. If something fails, the logs should tell the story. 4. **Minimal Privilege**: Use the narrowest auth scope possible. Never store secrets in code.
1. **Discovery Phase** (ask these FIRST before writing any code):
2. **Architecture Output**:
## Integration Architecture: [API Name] ### Authentication - Method: [OAuth2 Client Credentials / API Key / ...] - Token lifecycle: [refresh strategy] - Secret storage: [env vars / vault / ...] ### Data Flow [ASCII diagram showing request/response flow] ### Error Handling Strategy - Retry: [exponential backoff, max attempts] - Circuit breaker: [threshold, reset time] - Fallback: [cached data / default / queue for retry] ### Rate Limit Management - Strategy: [token bucket / sliding window] - Implementation: [details] ### Observability - Metrics: [request count, latency, error rate] - Logging: [structured JSON, correlation IDs] - Alerts: [conditions and channels]
Generate clean, production-ready code following these patterns:
# Standard API Client Template
import httpx
import asyncio
from datetime import datetime, timedelta
from typing import Optional, Any
import logging
import json
logger = logging.getLogger(__name__)
class APIClient:
"""Production-ready API client with retry, auth, and observability."""
def __init__(
self,
base_url: str,
api_key: str,
timeout: float = 30.0,
max_retries: int = 3,
max_concurrency: int = 10,
):
self.base_url = base_url.rstrip("/")
self.max_retries = max_retries
self._client = httpx.AsyncClient(
base_url=self.base_url,
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"User-Agent": "APIClient/1.0",
},
timeout=httpx.Timeout(timeout, connect=5.0),
)
if max_concurrency < 1 or max_retries < 1:
raise ValueError("concurrency and attempts must be positive")
self._rate_limiter = asyncio.Semaphore(max_concurrency) # concurrency cap, not requests/sec
async def _request(
self,
method: str,
path: str,
*,
params: Optional[dict] = None,
json_data: Optional[dict] = None,
correlation_id: Optional[str] = None,
) -> Any:
"""Make a resilient API request with retry and logging."""
import uuid
cid = correlation_id or str(uuid.uuid4())[:8]
# Restrict this example to same-origin relative API paths.
if not path.startswith("/") or path.startswith("//") or "://" in path:
raise ValueError("Expected same-origin API path")
attempts = self.max_retries if method.upper() in {"GET", "HEAD", "OPTIONS"} else 1
for attempt in range(attempts):
async with self._rate_limiter:
try:
logger.info(
"api_request",
extra={
"correlation_id": cid,
"method": method,
"path": path,
"attempt": attempt + 1,
},
)
response = await self._client.request(
method, path, params=params, json=json_data
)
response.raise_for_status()
logger.info(
"api_success",
extra={
"correlation_id": cid,
"status_code": response.status_code,
},
)
return None if response.status_code == 204 or not response.content else response.json()
except httpx.HTTPStatusError as e:
if e.response.status_code == 429 and attempt < attempts - 1:
retry_after = float(e.response.headers.get("Retry-After", 2 ** attempt))
logger.warning(f"rate_limited retry={retry_after}s", extra={"correlation_id": cid})
await asyncio.sleep(retry_after)
contFind reusable instructions for your project, inspect their complete files, and keep an exact skill set you can review and reuse.
Usar al iniciar o mejorar un proyecto de IA: diagnostica código y restricciones, propone skills existentes y redacta tareas y un…
Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and…
Usar para crear o mejorar una skill de Andru.ia: define entradas y resultados, redacta SKILL.md con ejemplos y límites, valida la…
Usar tras definir el sector de un proyecto: prepara un dossier en español con contexto, normas aplicables, patrones UX y riesgos,…
AI-powered presentation generation via the 2slides API — create slides from text, match a reference image style, summarize…
360 feedback register: reviewer, subject, review cycle, visibility, due date and score, as CSV, SQL, JSON Schema or Notion on…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration