Communitygithub.com

Piyush-Nagar/coding-agents-skills

La fiabilité est la discipline qui consiste à rester opérationnel quand les choses autour de vous échouent — car elles échoueront. Concevez d'abord pour les pannes partielles ; les chemins heureux se gèrent d'eux-mêmes.

Qu'est-ce que coding-agents-skills ?

Ce skill est dédié à la conception et au déploiement de systèmes résilients en distribué. Il fournit un ensemble de règles et de bonnes pratiques pour garantir qu'un service reste disponible malgré les défaillances partielles des composants externes (timeouts, retries, circuit breakers, bulkheads, etc.). Il est particulièrement utile pour les développeurs utilisant des plateformes d'IA agent (Claude Code, Cursor, Codex) qui souhaitent intégrer des principes de fiabilité directement dans leur code ou leurs configurations. Le skill s'appuie sur la documentation SKILL.md pour énumérer les règles clés (timeouts sur tout appel sortant, idempotence, circuit breaker, graceful degradation) et les signaux d'alerte (ex. absence de timeout, retry sans backoff). Il ne spécifie pas de langage ou d'outil particulier, ce qui le rend applicable à tout projet logiciel nécessitant une meilleure robustesse.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Fiabilité

La fiabilité est la discipline qui consiste à rester opérationnel quand les choses autour de vous échouent — car elles échoueront. Concevez d'abord pour les pannes partielles ; les chemins heureux se gèrent d'eux-mêmes.

Règles

  • Des timeouts sur chaque appel sortant. Aucune exception. Un timeout manquant est un incident d'épuisement de pool de threads en devenir.
  • Ne réessayez que les opérations idempotentes. Avec backoff exponentiel et jitter. Réessayer un POST non idempotent crée des doublons, facture deux fois la carte, envoie deux e-mails.
  • Des clés d'idempotence sur les API publiques mutantes. Permet aux clients de réessayer en toute sécurité lors de problèmes réseau sans que vous ayez à deviner.
  • Coupez le circuit aux dépendances externes. Quand un aval est malade, échouer rapidement protège à la fois vous et lui. Les réessais aveugles transforment une panne en deux.
  • Cloisonnez les chemins critiques. Isolez les pools de threads/pools de connexions par aval pour qu'un lent ne puisse pas noyer l'ensemble du service.
  • La dégradation gracieuse est préférable à une panne dure. Servez un cache périmé, une réponse partielle ou un ensemble de fonctionnalités réduit plutôt qu'une 500.
  • Aucun point de défaillance unique. Multi-AZ pour chaque composant avec état, plusieurs répliques pour chaque composant sans état, vérifications de santé LB qui détectent réellement les pannes.
  • L'arrêt doit être gracieux. Drainez les requêtes en cours, fermez les pools, videz les tampons. SIGTERM → arrêter d'accepter → terminer ou annuler → quitter.
  • Facilitez le redémarrage à tout moment. N'importe quel pod individuel doit pouvoir être tué à tout moment sans impact utilisateur visible. Si ce n'est pas le cas, c'est le bug à corriger.
  • Les sauvegardes ne sont pas testées jusqu'à ce que vous les restauriez. Effectuez un exercice de restauration réel selon un planning.

Signaux d'alerte

  • restTemplate.exchange(...) sans timeout configuré.
  • Une boucle de réessai sans limite et sans backoff.
  • "Ça marche si tu redéploies." (État caché en mémoire.)
  • Des déploiements sans temps d'arrêt qui ne sont en réalité pas sans temps d'arrêt car les requêtes sont abandonnées lors du SIGTERM.
  • Un manuel de reprise après sinistre qui n'a jamais été exécuté.

Individual skills in this repo

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

Skills associés