Communitygithub.com

enregistrements-de-decisions-architecturales

Capturez les décisions architecturales prises lors des sessions Claude Code sous forme d'ADR structurés. Détection automatique des moments de décision, enregistrement du contexte, des alternatives envisagées et de la justification. Maintient un journal ADR pour que les futurs développeurs comprennent pourquoi la base de code est façonnée ainsi.

Qu'est-ce que enregistrements-de-decisions-architecturales ?

Ce skill automatise la création et la gestion d'Architecture Decision Records (ADR) directement depuis les sessions de codage avec des agents IA comme Claude Code. Il détecte les moments où une décision architecturale est prise (explicite ou implicite) et propose de la documenter dans un format structuré inspiré de Michael Nygard. L'utilisateur peut ainsi capturer le contexte, les alternatives écartées, la justification et les conséquences de chaque choix important. Le skill maintient automatiquement un index dans `docs/adr/README.md` et gère le cycle de vie des ADR (proposé → accepté → déprécié ou remplacé). Il est conçu pour fonctionner avec des assistants de codage et s'intègre naturellement avec d'autres skills comme le planificateur ou le relecteur de code. L'objectif est d'éviter que les décisions architecturales ne restent que dans des discussions éphémères (Slack, commentaires de PR) et de les ancrer dans le dépôt pour les futures équipes de développement.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/architecture-decision-records

Demander à votre IA préférée

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

Documentation

Architecture Decision Records (Enregistrements de Décisions Architecturales)

Capturez les décisions architecturales au fur et à mesure qu'elles se produisent pendant les sessions de codage. Au lieu que les décisions ne vivent que dans des fils Slack, des commentaires de PR ou la mémoire de quelqu'un, ce skill produit des documents ADR structurés qui vivent aux côtés du code.

Quand Activer

  • L'utilisateur dit explicitement « enregistrons cette décision » ou « on fait un ADR de ça »
  • L'utilisateur choisit entre des alternatives significatives (framework, bibliothèque, pattern, base de données, conception d'API)
  • L'utilisateur dit « nous avons décidé de... » ou « la raison pour laquelle nous faisons X au lieu de Y est... »
  • L'utilisateur demande « pourquoi avons-nous choisi X ? » (lire les ADR existants)
  • Pendant les phases de planification où des compromis architecturaux sont discutés

Format ADR

Utilisez le format ADR léger proposé par Michael Nygard, adapté pour le développement assisté par IA :

# ADR-NNNN : [Titre de la Décision]

**Date** : AAAA-MM-JJ
**Statut** : proposed | accepted | deprecated | superseded by ADR-NNNN
**Décideurs** : [qui était impliqué]

## Contexte

Quel est le problème que nous observons et qui motive cette décision ou ce changement ?

[2 à 5 phrases décrivant la situation, les contraintes et les forces en jeu]

## Décision

Quel est le changement que nous proposons et/ou que nous mettons en œuvre ?

[1 à 3 phrases énonçant clairement la décision]

## Alternatives Envisagées

### Alternative 1 : [Nom]
- **Avantages** : [bénéfices]
- **Inconvénients** : [inconvénients]
- **Pourquoi pas** : [raison spécifique du rejet]

### Alternative 2 : [Nom]
- **Avantages** : [bénéfices]
- **Inconvénients** : [inconvénients]
- **Pourquoi pas** : [raison spécifique du rejet]

## Conséquences

Qu'est-ce qui devient plus facile ou plus difficile à faire à cause de ce changement ?

### Positives
- [bénéfice 1]
- [bénéfice 2]

### Négatives
- [compromis 1]
- [compromis 2]

### Risques
- [risque et mesure d'atténuation]

Workflow

Capturer un Nouvel ADR

Lorsqu'un moment de décision est détecté :

  1. Initialiser (première fois uniquement) — si docs/adr/ n'existe pas, demandez la confirmation de l'utilisateur avant de créer le répertoire, un README.md amorcé avec l'en-tête du tableau d'index (voir Format d'Index ADR ci-dessous), et un template.md vierge pour une utilisation manuelle. Ne créez pas de fichiers sans consentement explicite.
  2. Identifier la décision — extraire le choix architectural central en cours
  3. Recueillir le contexte — quel problème a déclenché cela ? Quelles sont les contraintes ?
  4. Documenter les alternatives — quelles autres options ont été envisagées ? Pourquoi ont-elles été rejetées ?
  5. Énoncer les conséquences — quels sont les compromis ? Qu'est-ce qui devient plus facile/plus difficile ?
  6. Attribuer un numéro — scanner les ADR existants dans docs/adr/ et incrémenter
  7. Confirmer et écrire — présenter le brouillon d'ADR à l'utilisateur pour révision. N'écrire dans docs/adr/NNNN-titre-de-la-decision.md qu'après approbation explicite. Si l'utilisateur refuse, jeter le brouillon sans écrire aucun fichier.
  8. Mettre à jour l'index — ajouter à docs/adr/README.md

Lire les ADR Existants

Lorsqu'un utilisateur demande « pourquoi avons-nous choisi X ? » :

  1. Vérifier si docs/adr/ existe — si non, répondre : « Aucun ADR trouvé dans ce projet. Souhaitez-vous commencer à enregistrer les décisions architecturales ? »
  2. S'il existe, scanner l'index docs/adr/README.md pour les entrées pertinentes
  3. Lire les fichiers ADR correspondants et présenter les sections Contexte et Décision
  4. Si aucune correspondance n'est trouvée, répondre : « Aucun ADR trouvé pour cette décision. Souhaitez-vous en enregistrer un maintenant ? »

Structure du Répertoire ADR

docs/
└── adr/
    ├── README.md              ← index de tous les ADR
    ├── 0001-utiliser-nextjs.md
    ├── 0002-postgres-plutot-que-mongo.md
    ├── 0003-rest-plutot-que-graphql.md
    └── template.md            ← modèle vierge pour utilisation manuelle

Format d'Index ADR

# Architecture Decision Records

| ADR | Titre | Statut | Date |
|-----|-------|--------|------|
| [0001](0001-utiliser-nextjs.md) | Utiliser Next.js comme framework frontend | accepted | 2026-01-15 |
| [0002](0002-postgres-plutot-que-mongo.md) | PostgreSQL plutôt que MongoDB pour le stockage principal | accepted | 2026-01-20 |
| [0003](0003-rest-plutot-que-graphql.md) | API REST plutôt que GraphQL | accepted | 2026-02-01 |

Signaux de Détection de Décision

Surveillez ces schémas dans la conversation qui indiquent une décision architecturale :

Signaux explicites

  • « On part sur X »
  • « On devrait utiliser X plutôt que Y »
  • « Le compromis en vaut la peine parce que... »
  • « Enregistre ça comme un ADR »

Signaux implicites (suggérer d'enregistrer un ADR — ne pas créer automatiquement sans confirmation utilisateur)

  • Comparer deux frameworks ou bibliothèques et arriver à une conclusion
  • Faire un choix de conception de schéma de base de données avec une justification énoncée
  • Choisir entre des motifs architecturaux (monolithe vs microservices, REST vs GraphQL)
  • Décider d'une stratégie d'authentification/autorisation
  • Sélectionner une infrastructure de déploiement après avoir évalué des alternatives

Ce qui Fait un Bon ADR

À faire

  • Soyez spécifique — « Utiliser Prisma ORM » pas « utiliser un ORM »
  • Enregistrez le pourquoi — la justification importe plus que le quoi
  • Incluez les alternatives rejetées — les futurs développeurs doivent savoir ce qui a été envisagé
  • Énoncez honnêtement les conséquences — chaque décision a des compromis
  • Restez court — un ADR doit être lisible en 2 minutes
  • Utilisez le présent — « Nous utilisons X » pas « Nous utiliserons X »

À ne pas faire

  • Enregistrer des décisions triviales — les choix de nommage de variables ou de formatage ne nécessitent pas d'ADR
  • Écrire des essais — si la section contexte dépasse 10 lignes, c'est trop long
  • Omettre les alternatives — « on a juste choisi ça » n'est pas une justification valable
  • Remplir rétroactivement sans le marquer — si vous enregistrez une décision passée, notez la date d'origine
  • Laisser les ADR devenir obsolètes — les décisions remplacées doivent référencer leur remplacement

Cycle de Vie d'un ADR

proposed → accepted → [deprecated | superseded by ADR-NNNN]
  • proposed : la décision est en cours de discussion, pas encore engagée
  • accepted : la décision est en vigueur et est suivie
  • deprecated : la décision n'est plus pertinente (ex. fonctionnalité supprimée)
  • superseded : un nouvel ADR remplace celui-ci (toujours lier le remplacement)

Catégories de Décisions à Enregistrer

CatégorieExemples
Choix technologiquesFramework, langage, base de données, fournisseur cloud
Patrons d'architectureMonolithe vs microservices, événementiel, CQRS
Conception d'APIREST vs GraphQL, stratégie de versionnement, mécanisme d'auth
Modélisation de donnéesConception de schéma, décisions de normalisation, stratégie de cache
InfrastructureModèle de déploiement, pipeline CI/CD, stack de monitoring
SécuritéStratégie d'auth, approche de chiffrement, gestion des secrets
TestsFramework de test, objectifs de couverture, équilibre E2E vs intégration
ProcessusStratégie de branchement, processus de relecture, cadence de livraison

Intégration avec d'Autres Skills

  • Agent planificateur : lorsque le planificateur propose des changements d'architecture, suggérez la création d'un ADR
  • Agent relecteur de code : signalez les PR qui introduisent des changements architecturaux sans ADR correspondant

Individual skills in this repo

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

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés