Communitygithub.com

Piyush-Nagar/coding-agents-skills

La confiabilidad es la disciplina de mantenerse operativo cuando las cosas a tu alrededor fallan — porque fallarán. Diseña primero para fallos parciales; los caminos felices se cuidan solos.

¿Qué es coding-agents-skills?

Este skill, basado en el prompt `Piyush-Nagar/coding-agents-skills`, proporciona un conjunto de reglas y señales de alerta para diseñar y mantener sistemas altamente confiables. Está dirigido a desarrolladores e ingenieros de software que trabajan con agentes de IA como Claude Code, Cursor o Codex, y buscan integrar principios de resiliencia en su código y arquitectura. El skill enfatiza la importancia de manejar fallos parciales desde el diseño inicial, estableciendo reglas como timeouts obligatorios en todas las llamadas externas, retry solo para operaciones idempotentes, uso de claves de idempotencia, circuit breakers, aislamiento de recursos (bulkheads), degradación gradual y eliminación de puntos únicos de fallo. También incluye señales de alerta comunes que indican falta de confiabilidad, como la ausencia de timeouts en peticiones HTTP, bucles de retry sin límite o despliegues zero-downtime que realmente no lo son. Es útil para equipos que buscan mejorar la robustez de sus sistemas distribuidos y asegurar que cualquier pod pueda ser eliminado en cualquier momento sin impacto visible para el usuario.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Piyush-Nagar/coding-agents-skills/tree/HEAD/backend/core/nfr/reliability

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Confiabilidad

La confiabilidad es la disciplina de mantenerse operativo cuando las cosas a tu alrededor fallan — porque fallarán. Diseña primero para fallos parciales; los caminos felices se cuidan solos.

Reglas

  • Timeouts en cada llamada saliente. Sin excepciones. Un timeout faltante es un incidente de agotamiento del pool de hilos a punto de ocurrir.
  • Reintentar solo operaciones idempotentes. Con retroceso exponencial y jitter. Reintentar un POST no idempotente crea duplicados, cobra tarjetas dos veces, envía dos correos.
  • Claves de idempotencia en APIs públicas mutantes. Permite a los clientes reintentar de forma segura a través de fallos de red sin que tengas que adivinar.
  • Circuit-breaker para dependencias externas. Cuando un servicio descendente está enfermo, fallar rápido protege tanto a ti como a él. Los reintentos ciegos convierten una interrupción en dos.
  • Aislar caminos críticos. Aísla los pools de hilos / pools de conexión por servicio descendente para que uno lento no pueda ahogar todo el servicio.
  • Degradación gradual es mejor que fallo duro. Sirve un caché obsoleto, una respuesta parcial o un conjunto reducido de funciones en lugar de un 500.
  • Sin puntos únicos de fallo. Multi-AZ para cada componente con estado, múltiples réplicas para cada uno sin estado, verificaciones de salud del balanceador de carga que realmente detecten enfermedades.
  • El apagado debe ser gradual. Drena las solicitudes en curso, cierra los pools, vacía los búferes. SIGTERM → dejar de aceptar → finalizar o cancelar → salir.
  • Haz que sea seguro reiniciar en cualquier momento. Cualquier pod individual debe poder eliminarse en cualquier momento sin impacto visible para el usuario. Si no, ese es el error a corregir.
  • Las copias de seguridad no están probadas hasta que restauras desde ellas. Realiza un simulacro de restauración real de forma programada.

Señales de alerta

  • restTemplate.exchange(...) sin timeout configurado.
  • Un bucle de reintento sin límite y sin retroceso.
  • "Funciona si lo redeployas." (Estado oculto en memoria.)
  • Despliegues zero-downtime que en realidad no lo son porque las solicitudes se pierden al recibir SIGTERM.
  • Runbook de recuperación ante desastres que nunca se ha ejercitado.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados