Communitygithub.com

Registros de Decisiones Arquitectónicas (ADR)

Captura decisiones arquitectónicas tomadas durante sesiones de Claude Code como ADR estructurados. Detecta automáticamente momentos de decisión, registra contexto, alternativas consideradas y fundamentos. Mantiene un registro de ADR para que futuros desarrolladores comprendan por qué el código tiene la forma que tiene.

¿Qué es Registros de Decisiones Arquitectónicas (ADR)?

Esta habilidad permite a Claude Code capturar y documentar decisiones arquitectónicas clave durante sesiones de codificación, transformándolas en documentos ADR (Architecture Decision Records) estructurados. Es útil porque evita que las decisiones queden perdidas en conversaciones, comentarios de PR o la memoria de los desarrolladores, asegurando que el razonamiento detrás de la arquitectura sea accesible a todo el equipo. La habilidad soporta plataformas como Claude Code, Cursor y Codex, y se activa tanto por señales explícitas (como el usuario diciendo 'registremos esta decisión') como implícitas (comparando alternativas significativas). El proceso incluye la detección del momento de decisión, recopilación de contexto, documentación de alternativas consideradas, asignación de un número secuencial y escritura del ADR en el directorio `docs/adr/` después de la aprobación explícita del usuario. También mantiene un índice en `README.md` para consulta fácil y maneja el ciclo de vida de los ADR (propuesto, aceptado, obsoleto, reemplazado). La habilidad incluye pautas claras sobre qué decisiones merecen un ADR, un formato estandarizado basado en el propuesto por Michael Nygard, e integración con otras habilidades como el agente planificador o el revisor de código.

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

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Registros de Decisiones Arquitectónicas (ADR)?

Capture las decisiones arquitectónicas a medida que ocurren durante las sesiones de codificación. En lugar de que las decisiones queden solo en hilos de Slack, comentarios de PR o la memoria de alguien, esta habilidad produce documentos ADR estructurados que viven junto al código.

Cuándo activar

  • El usuario dice explícitamente "registremos esta decisión" o "ADR esto"
  • El usuario elige entre alternativas significativas (framework, biblioteca, patrón, base de datos, diseño de API)
  • El usuario dice "decidimos que..." o "la razón por la que hacemos X en lugar de Y es..."
  • El usuario pregunta "¿por qué elegimos X?" (leer ADR existentes)
  • Durante fases de planificación cuando se discuten compensaciones arquitectónicas

Formato ADR

Utilice el formato ADR ligero propuesto por Michael Nygard, adaptado para el desarrollo asistido por IA:

# ADR-NNNN: [Título de la Decisión]

**Fecha**: YYYY-MM-DD
**Estado**: propuesto | aceptado | obsoleto | reemplazado por ADR-NNNN
**Decisores**: [quiénes participaron]

## Contexto

¿Cuál es el problema que estamos viendo que motiva esta decisión o cambio?

[2-5 oraciones describiendo la situación, restricciones y fuerzas en juego]

## Decisión

¿Cuál es el cambio que estamos proponiendo y/o realizando?

[1-3 oraciones que expongan claramente la decisión]

## Alternativas Consideradas

### Alternativa 1: [Nombre]
- **Pros**: [beneficios]
- **Contras**: [desventajas]
- **Por qué no**: [razón específica por la que fue rechazada]

### Alternativa 2: [Nombre]
- **Pros**: [beneficios]
- **Contras**: [desventajas]
- **Por qué no**: [razón específica por la que fue rechazada]

## Consecuencias

¿Qué se vuelve más fácil o más difícil de hacer debido a este cambio?

### Positivas
- [beneficio 1]
- [beneficio 2]

### Negativas
- [compensación 1]
- [compensación 2]

### Riesgos
- [riesgo y mitigación]

Flujo de trabajo

Capturar un Nuevo ADR

Cuando se detecta un momento de decisión:

  1. Inicializar (solo la primera vez) — si docs/adr/ no existe, pregunte al usuario confirmación antes de crear el directorio, un README.md con el encabezado de la tabla de índice (consulte Formato de Índice ADR más abajo) y una template.md en blanco para uso manual. No cree archivos sin consentimiento explícito.
  2. Identificar la decisión — extraer la elección arquitectónica central que se está tomando
  3. Recopilar contexto — ¿qué problema motivó esto? ¿Qué restricciones existen?
  4. Documentar alternativas — ¿qué otras opciones se consideraron? ¿Por qué fueron rechazadas?
  5. Declarar consecuencias — ¿cuáles son las compensaciones? ¿Qué se vuelve más fácil o más difícil?
  6. Asignar un número — escanear ADR existentes en docs/adr/ e incrementar
  7. Confirmar y escribir — presentar el borrador del ADR al usuario para revisión. Solo escribir en docs/adr/NNNN-titulo-decision.md después de la aprobación explícita. Si el usuario rechaza, descartar el borrador sin escribir ningún archivo.
  8. Actualizar el índice — añadir al final de docs/adr/README.md

Leer ADR Existentes

Cuando un usuario pregunta "¿por qué elegimos X?":

  1. Verificar si docs/adr/ existe — si no, responder: "No se encontraron ADR en este proyecto. ¿Desea comenzar a registrar decisiones arquitectónicas?"
  2. Si existe, escanear el índice docs/adr/README.md en busca de entradas relevantes
  3. Leer los archivos ADR coincidentes y presentar las secciones de Contexto y Decisión
  4. Si no se encuentra coincidencia, responder: "No se encontró un ADR para esa decisión. ¿Desea registrar uno ahora?"

Estructura del Directorio de ADR

docs/
└── adr/
    ├── README.md              ← índice de todos los ADR
    ├── 0001-usar-nextjs.md
    ├── 0002-postgres-sobre-mongo.md
    ├── 0003-rest-sobre-graphql.md
    └── template.md            ← plantilla en blanco para uso manual

Formato del Índice ADR

# Registros de Decisiones Arquitectónicas

| ADR | Título | Estado | Fecha |
|-----|--------|--------|-------|
| [0001](0001-usar-nextjs.md) | Usar Next.js como framework frontend | aceptado | 2026-01-15 |
| [0002](0002-postgres-sobre-mongo.md) | PostgreSQL sobre MongoDB para almacén de datos principal | aceptado | 2026-01-20 |
| [0003](0003-rest-sobre-graphql.md) | API REST sobre GraphQL | aceptado | 2026-02-01 |

Señales de Detección de Decisiones

Esté atento a estos patrones en la conversación que indican una decisión arquitectónica:

Señales explícitas

  • "Vamos con X"
  • "Deberíamos usar X en lugar de Y"
  • "La compensación vale la pena porque..."
  • "Registra esto como un ADR"

Señales implícitas (sugerir registrar un ADR — no crear automáticamente sin confirmación del usuario)

  • Comparar dos frameworks o bibliotecas y llegar a una conclusión
  • Tomar una decisión de diseño de esquema de base de datos con fundamentos declarados
  • Elegir entre patrones arquitectónicos (monolito vs microservicios, REST vs GraphQL)
  • Decidir sobre una estrategia de autenticación/autorización
  • Seleccionar infraestructura de despliegue después de evaluar alternativas

Qué Hace un Buen ADR

Hacer

  • Ser específico — "Usar Prisma ORM" no "usar un ORM"
  • Registrar el porqué — la justificación importa más que el qué
  • Incluir alternativas rechazadas — los futuros desarrolladores necesitan saber qué se consideró
  • Declarar las consecuencias honestamente — cada decisión tiene compensaciones
  • Mantenerlo breve — un ADR debe ser legible en 2 minutos
  • Usar tiempo presente — "Usamos X" no "Usaremos X"

No Hacer

  • Registrar decisiones triviales — elecciones de nombres de variables o formato no necesitan ADR
  • Escribir ensayos — si la sección de contexto supera 10 líneas, es demasiado larga
  • Omitir alternativas — "simplemente lo elegimos" no es una justificación válida
  • Retroceder sin marcarlo — si se registra una decisión pasada, anotar la fecha original
  • Dejar que los ADR se vuelvan obsoletos — las decisiones reemplazadas deben hacer referencia a su reemplazo

Ciclo de Vida del ADR

propuesto → aceptado → [obsoleto | reemplazado por ADR-NNNN]
  • propuesto: la decisión está en discusión, aún no comprometida
  • aceptado: la decisión está en vigor y se está siguiendo
  • obsoleto: la decisión ya no es relevante (ej., funcionalidad eliminada)
  • reemplazado: un ADR más nuevo reemplaza a este (siempre enlazar el reemplazo)

Categorías de Decisiones que Vale la Pena Registrar

CategoríaEjemplos
Elecciones tecnológicasFramework, lenguaje, base de datos, proveedor de nube
Patrones arquitectónicosMonolito vs microservicios, basado en eventos, CQRS
Diseño de APIREST vs GraphQL, estrategia de versionado, mecanismo de autenticación
Modelado de datosDiseño de esquema, decisiones de normalización, estrategia de caché
InfraestructuraModelo de despliegue, pipeline CI/CD, stack de monitoreo
SeguridadEstrategia de autenticación, enfoque de cifrado, gestión de secretos
PruebasFramework de pruebas, objetivos de cobertura, balance E2E vs integración
ProcesoEstrategia de ramificación, proceso de revisión, cadencia de lanzamientos

Integración con Otras Habilidades

  • Agente planificador: cuando el planificador propone cambios de arquitectura, sugerir crear un ADR
  • Agente revisor de código: marcar PRs que introduzcan cambios arquitectónicos sin un ADR correspondiente

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 relacionados