create-architectural-decision-record

Par github · awesome-copilot

Créez un document de registre de décision architecturale (ADR) optimisé pour la documentation des décisions par IA.

npx skills add https://github.com/github/awesome-copilot --skill create-architectural-decision-record

Créer un enregistrement de décision architecturale

Créez un document ADR pour ${input:DecisionTitle} en utilisant un formatage structuré optimisé pour la consommation par IA et la lisibilité humaine.

Entrées

  • Contexte : ${input:Context}
  • Décision : ${input:Decision}
  • Alternatives : ${input:Alternatives}
  • Parties prenantes : ${input:Stakeholders}

Validation des entrées

Si l'une des entrées requises n'est pas fournie ou ne peut pas être déterminée à partir de l'historique de conversation, demandez à l'utilisateur de fournir les informations manquantes avant de procéder à la génération de l'ADR.

Exigences

  • Utiliser un langage précis et sans ambiguïté
  • Suivre le format ADR standardisé avec frontmatter
  • Inclure les conséquences positives et négatives
  • Documenter les alternatives avec justification du rejet
  • Structurer pour l'analyse machine et la référence humaine
  • Utiliser des codes de puces (codes de 3-4 lettres + numéros de 3 chiffres) pour les sections multi-éléments

L'ADR doit être enregistré dans le répertoire /docs/adr/ en utilisant la convention de nommage : adr-NNNN-[title-slug].md, où NNNN est le prochain numéro séquentiel à 4 chiffres (par exemple, adr-0001-database-selection.md).

Structure de documentation requise

Le fichier de documentation doit suivre le modèle ci-dessous, en veillant à ce que toutes les sections soient remplies correctement. Le frontmatter du markdown doit être structuré correctement comme dans l'exemple suivant :

---
title: "ADR-NNNN: [Decision Title]"
status: "Proposed"
date: "YYYY-MM-DD"
authors: "[Stakeholder Names/Roles]"
tags: ["architecture", "decision"]
supersedes: ""
superseded_by: ""
---

# ADR-NNNN: [Decision Title]

## Status

**Proposed** | Accepted | Rejected | Superseded | Deprecated

## Context

[Problem statement, technical constraints, business requirements, and environmental factors requiring this decision.]

## Decision

[Chosen solution with clear rationale for selection.]

## Consequences

### Positive

- **POS-001**: [Beneficial outcomes and advantages]
- **POS-002**: [Performance, maintainability, scalability improvements]
- **POS-003**: [Alignment with architectural principles]

### Negative

- **NEG-001**: [Trade-offs, limitations, drawbacks]
- **NEG-002**: [Technical debt or complexity introduced]
- **NEG-003**: [Risks and future challenges]

## Alternatives Considered

### [Alternative 1 Name]

- **ALT-001**: **Description**: [Brief technical description]
- **ALT-002**: **Rejection Reason**: [Why this option was not selected]

### [Alternative 2 Name]

- **ALT-003**: **Description**: [Brief technical description]
- **ALT-004**: **Rejection Reason**: [Why this option was not selected]

## Implementation Notes

- **IMP-001**: [Key implementation considerations]
- **IMP-002**: [Migration or rollout strategy if applicable]
- **IMP-003**: [Monitoring and success criteria]

## References

- **REF-001**: [Related ADRs]
- **REF-002**: [External documentation]
- **REF-003**: [Standards or frameworks referenced]

Skills similaires