Communitygithub.com

Registros de Decisiones de Arquitectura

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é la base de código tiene la forma que tiene.

¿Qué es Registros de Decisiones de Arquitectura?

Este skill permite a los agentes de IA (como Claude Code, Cursor, Codex) capturar y gestionar Decisiones de Arquitectura (ADRs) directamente durante las sesiones de codificación. Es útil porque transforma decisiones fugaces (en chats, comentarios de PR o la memoria de un desarrollador) en documentos estructurados y perdurables que viven junto al código. El skill detecta señales explícitas e implícitas de toma de decisiones, como la elección entre frameworks, patrones arquitectónicos o diseños de API. Una vez detectada una decisión, el agente guía al usuario para documentar el contexto, las alternativas consideradas y las consecuencias, siguiendo una plantilla ligera (basada en el formato de Michael Nygard). Finalmente, escribe el ADR en un directorio `docs/adr/` tras la aprobación explícita del usuario y actualiza el índice de ADRs. El skill también permite consultar ADRs existentes, soporta ciclos de vida (propuesto, aceptado, obsoleto, reemplazado) y se integra con otros skills de planificación y revisión de código.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/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 de Arquitectura?

Captura decisiones arquitectónicas a medida que ocurren durante las sesiones de codificación. En lugar de que las decisiones vivan solo en hilos de Slack, comentarios de PR o la memoria de alguien, este skill 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, librería, 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 ADRs existentes)
  • Durante fases de planificación donde se discuten compensaciones arquitectónicas

Formato ADR

Utiliza el formato ADR ligero propuesto por Michael Nygard, adaptado para 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 proponemos y/o estamos haciendo?

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

## Alternativas Consideradas

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

### Alternativa 2: [Nombre]
- **Ventajas**: [beneficios]
- **Desventajas**: [inconvenientes]
- **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, preguntar al usuario confirmación antes de crear el directorio, un README.md con el encabezado de la tabla de índice (ver Formato del Índice ADR más abajo) y una template.md en blanco para uso manual. No crear 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 la provocó? ¿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/más difícil?
  6. Asignar un número — escanear los ADRs 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 — agregar al final de docs/adr/README.md

Leer ADRs Existentes

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

  1. Verificar si docs/adr/ existe — si no, responder: "No se encontraron ADRs en este proyecto. ¿Te gustaría 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. ¿Te gustaría registrar uno ahora?"

Estructura del Directorio ADR

docs/
└── adr/
    ├── README.md              ← índice de todos los ADRs
    ├── 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 de Arquitectura

| 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 como almacén 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

Observa 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 librerías y llegar a una conclusión
  • Tomar una decisión de diseño de esquema de base de datos con fundamentos explícitos
  • Elegir entre patrones arquitectónicos (monolito vs microservicios, REST vs GraphQL)
  • Decidir sobre 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é — los fundamentos importan más que el qué
  • Incluir alternativas rechazadas — los futuros desarrolladores necesitan saber qué se consideró
  • Declarar consecuencias honestamente — toda decisión tiene compensaciones
  • Mantenerlo corto — un ADR debe poderse leer en 2 minutos
  • Usar tiempo presente — "Usamos X" no "Usaremos X"

No Hacer

  • Registrar decisiones triviales — nombres de variables o elecciones de formato no necesitan ADRs
  • Escribir ensayos — si la sección de contexto supera las 10 líneas, es demasiado larga
  • Omitir alternativas — "simplemente lo elegimos" no es un fundamento válido
  • Retroceder sin marcarlo — si se registra una decisión pasada, anotar la fecha original
  • Dejar que los ADRs se vuelvan obsoletos — las decisiones reemplazadas deben referenciar 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 cloud
Patrones arquitectónicosMonolito vs microservicios, orientado a 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 lanzamiento

Integración con Otros Skills

  • 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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills relacionados