Communitygithub.com

Arquitectura de Producto

Define la forma de un sistema de software: límites, contratos, presupuestos NFR, modelos de amenazas y ADRs. Es la etapa Shape de la familia de habilidades de Productos Digitales.

¿Qué es Arquitectura de Producto?

Esta habilidad, llamada 'Arquitectura de Producto', se enfoca en la etapa 'Shape' del ciclo de vida de un producto digital. Su propósito es tomar las decisiones arquitectónicas fundamentales y difíciles de revertir, como los límites de los servicios, la forma de las API públicas, la elección de bases de datos y modelo de consistencia, el modelo de autenticación y los objetivos de SLO. No se encarga de la implementación del código, que es responsabilidad de las habilidades de construcción (frontend, backend, data, AI). La habilidad opera de forma independiente, pero puede integrarse con artefactos previos de producto (PRDs, handoffs). Su flujo de trabajo central exige capturar primero los requisitos funcionales y no funcionales para evitar contradicciones, luego seleccionar un trabajo principal (como diseño de sistema, descomposición, contratos de API o seguridad) y opcionalmente una superposición de superficie (web SaaS, móvil, agéntico/LLM, datos intensivos o plataforma interna). Produce artefactos como documentos de arquitectura (basados en arc42), ADRs, presupuestos NFR, modelos de amenazas STRIDE y un archivo handoff.yaml legible por máquina para la siguiente etapa de construcción. Está diseñada para Claude Code, Cursor, Codex y otras herramientas de AI agent, y sigue principios estrictos como 'no sobre-arquitecturar', 'analizar según reversibilidad' y 'distinguir entre hechos, decisiones, suposiciones y propuestas'.

Compatible con~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add gabros20/architecture-skill

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Arquitectura de Producto?

Misión y límite

Decide la forma de un sistema de software: sus límites, contratos de interfaz, presupuestos NFR, modelo de amenazas y el registro de decisiones duraderas, con la precisión suficiente para que las habilidades de construcción puedan implementar lo correcto en paralelo sin tener que redescubrirlo. Es dueña de la etapa Shape, ubicada entre producto (que decide qué construir y por qué) y las habilidades de construcción (que escriben el código de producción): las decisiones consecuentes y difíciles de revertir — límites de servicios, forma de la API pública, elección de almacén de datos y modelo de consistencia, modelo de autenticación, objetivos SLO — no la implementación detrás de ellas.

Es dueña de la decisión, el contrato, el presupuesto y el modelo de amenazas; no del código. El código de producción frontend/backend/datos/AI pertenece a las habilidades de construcción; UX y UI a diseño; descubrimiento, PRDs y priorización a producto; pruebas de carga independientes y escaneo de vulnerabilidades a calidad; monitoreo de SLO en tiempo real, paneles y pipelines de despliegue a operación; procesos de negocio transversales que abarcan sistemas que no posees a automatización. Contribuye a esos; no es dueña de ninguno. Opera de forma independiente cuando se invoca sola; cuando se suministran artefactos ascendentes compatibles (un PRD, un handoff de producto, un registro ADR existente o un documento de diseño), los usa sin sobrescribir silenciosamente las decisiones establecidas. Recomienda habilidades adyacentes cuando sea útil; no las invoca automáticamente a menos que el usuario haya solicitado explícitamente un flujo de trabajo de composición.

Rutear antes de actuar

  1. Captura los requisitos primero (ver invariantes) — no abras una referencia a la solución antes de que se hayan declarado los requisitos funcionales y los NFRs y se hayan expuesto las contradicciones.
  2. Elige un trabajo principal que necesite la solicitud, y como máximo una superposición de superficie — el tipo de sistema redefine los límites, contratos y presupuestos.
  3. Lee cada referencia seleccionada por completo antes de producir el artefacto afectado; carga 2–3 como máximo, nunca precargues el paquete.
  4. Para un sistema LLM/agente, añade siempre la capa agéntica — cambia la topología, la puerta de evaluación y el modelo de seguridad.

Trabajo principal (elige uno)

Intención del usuarioLeerContribución
"Diseñar/arquitecturar/especificar el sistema" desde cero, o revisar un diseño en busca de brechas — la entrada predeterminadasystem-designPuerta de requisitos, diseño C4/arc42 nivelado, compensaciones, cálculos aproximados
"Dividir esto", "¿debería ser un microservicio?", definir módulos/contextos delimitados, corregir acoplamientodecompositionContextos delimitados, llamada monolito/modular/micro con un desintegrador nombrado, lectura de acoplamiento cuantificada
"Diseñar la API", "definir el contrato", especificar endpoints/eventos, versionar/desaprobar una interfazcontractsElección REST/gRPC/GraphQL, esqueleto OpenAPI/AsyncAPI, plan de versionado + desaprobación, lista de verificación de revisión
Diseñar el flujo de datos, elegir un modelo de consistencia, decidir CQRS/ES, seleccionar un esquema de identificadoresdata-architectureDecisión de consistencia por flujo, puntuación CQRS/ES, llamada outbox/dual-write, selección de almacén
Establecer objetivos de rendimiento/latencia/confiabilidad, un SLO, un plan de escalado/capacidad/coste, una revisión Well-Architectednfr-budgetsTabla de presupuesto de rendimiento, SLO + presupuesto de errores, disparadores de escalado, autoauditoría WA, estrategia de resiliencia
Modelar amenazas, decidir el modelo de autenticación/autorización, aislamiento de inquilinos, una postura de privacidad/gobernanza de datossecurity-architectureRegistro STRIDE, decisión auth/authz, postura de confianza cero, declaración de clasificación de datos
Migrar/re-plataformizar, extraer un servicio, desaprobar una API, modernizar un sistema heredadomigrationElección de 7 Rs / Strangler Fig, orden de extracción, puerta de corte de comparación de lecturas, cronograma de desaprobación
"Escribir un ADR", registrar/gobernar una decisión, verificar código contra una decisión anterior, auditar un registro ADRadr-and-governanceADR (plantilla de peso adecuado), regla de ciclo de vida/inmutabilidad, detección de deriva, funciones de idoneidad nombradas

Superposición de superficie (añadir como máximo una superficie base)

Elige la única superficie base que se ajuste al tipo de sistema. La superposición agéntica es aditiva: cuando el sistema es también un sistema LLM/agente, apila surface-agentic encima de la superficie base — no la reemplaza (según la invariante a continuación, cambia la topología, la puerta de evaluación y el modelo de seguridad).

Tipo de sistemaLeerRedefine
Aplicación web multiinquilino / SaaS (predeterminado)surface-web-saasAislamiento de inquilinos (silo/pool/bridge), 3 capas + BFF por cliente, resolución de inquilinos OIDC
Cliente móvil nativo (iOS/Android)surface-mobilePatrón de cliente (MVVM/TCA/Clean/RIBs), offline/sincronización + regla de conflicto, SSOT/UDF
Sistema Agéntico / LLMsurface-agenticDiseño de arnés, flujo-de-trabajo-vs-agente, economía multiagente, topología RAG, niveles de memoria, evaluación-como-puerta, seguridad de agentes
Plataforma de datos / analítica / MLsurface-data-intensiveLímite operacional/analítico, batch-vs-stream, propiedad mesh-vs-centralizada
Herramienta interna / plataforma de desarrollador (IDP)surface-internal-platformPuente de Topologías de Equipo, umbral plataforma-como-producto, puerta "no construyas una plataforma aún"

Handoff

Cuando se espera trabajo de construcción descendente, lee handoff y emite el acompañante handoff.yaml; omítelo para una solicitud independiente que nada descendente leerá.

Invariantes universales

  • Puerta de requisitos antes de la solución. No propongas, delinees ni recomiendes un diseño hasta que los requisitos funcionales y los NFRs estén capturados y cualquier contradicción (p. ej., "aislamiento total de red" vs. "ingesta pública en tiempo real") esté expuesta y resuelta. Haz una pregunta a la vez para las entradas faltantes; marca las incógnitas como TBD; nunca inventes un número que el solicitante no haya dado o aprobado.
  • No sobre-arquitecturar. Por defecto, un monolito modular y el artefacto más ligero suficiente — un solo ADR a menudo supera a un arc42 completo, una biblioteca compartida a menudo supera a un equipo de plataforma. Añade complejidad (una división de servicios, event sourcing, un equipo de plataforma) solo cuando un desintegrador nombrado lo justifique, no porque sea la opción "moderna". Aplicar una arquitectura de etapa madura a un MVP es el modo de fallo que hay que evitar.
  • Pesar el análisis según la reversibilidad. Trata cada decisión como una puerta de un solo sentido (irreversible: almacén de datos, forma de API pública, límite de organización/equipo) o de dos sentidos. Las puertas de un solo sentido merecen un análisis más profundo y un ADR; las puertas de dos sentidos merecen una decisión rápida. Nombra opciones explícitas y declara "elegiría X si {disparador}".
  • Cada recomendación es una elección concreta + lo que NO construir + una compensación declarada. Limita cada pasada a 3–5 decisiones; más se lee como un volcado de documentos, no como un conjunto de decisiones.
  • Las listas de verificación exhaustivas usan una tabla uniforme + un recuento de auto-auditoría, nunca una narrativa. Para cualquier tarea de "cubrir N elementos" (pilares Well-Architected, STRIDE por elemento, la lista de verificación de API), llena una fila por elemento y cuenta las filas cubiertas contra el total antes de darla por terminada — una sola pasada narrativa invariablemente omite filas y deja de citar hallazgos mucho antes de la cobertura total.
  • Distinguir hechos, decisiones, suposiciones y propuestas. Preserva las decisiones ascendentes y las restricciones del usuario, o marca el conflicto explícitamente; prefiere la evidencia del repositorio y los artefactos sobre los valores predeterminados genéricos.

Flujo de trabajo central

  1. Inspecciona la solicitud, la evidencia, las restricciones y los artefactos existentes (PRD, registro ADR, documento de diseño).
  2. Puerta de requisitos: funcionales + NFR + restricciones capturadas, contradicciones expuestas.
  3. Selecciona la ruta más pequeña y suficiente: un trabajo principal, como máximo una superposición de superficie.
  4. Registra las suposiciones materiales y las entradas no resueltas con propietarios.
  5. Produce el artefacto solicitado, fundamentado en el marco que la referencia nombra; limita a 3–5 decisiones por pasada, cada una con su compensación.
  6. Valida contra la solicitud, las restricciones y los criterios de aceptación; declara la confianza.
  7. Emite un handoff.yaml compacto cuando se espera trabajo de construcción descendente.

Contrato de artefacto

Cada referencia define su propio artefacto. Cada artefacto de arquitectura debe registrar: la decisión tomada y las opciones consideradas; la compensación aceptada; hechos/decisiones/suposiciones distinguidos; y el lente de reversibilidad aplicado a cualquier llamada difícil de revertir. Una pasada de arquitectura completa produce hasta cinco artefactos descendentes — un documento de arquitectura de solución (assets/solution-architecture-doc.md, con forma arc42), contratos de API/eventos, presupuestos NFR (assets/nfr-budget-worksheet.md), ADRs (assets/adr-template.md), y un modelo de amenazas STRIDE (assets/threat-model-register.md) — además de los lienzos DDD (assets/bounded-context-canvas.md, assets/aggregate-design-canvas.md) y assets/arc42-skeleton.md donde el trabajo lo requiera. Provee el acompañante handoff.yaml legible por máquina siempre que se espere trabajo descendente; consulta handoff.

Finalización y handoff

Antes de finalizar:

  • Confirma que cada artefacto solicitado existe y que sus criterios de aceptación son verificables.
  • Confirma que cada artefacto de lista de verificación exhaustiva es una tabla con un recuento de auto-auditoría, no una narrativa.
  • Registra decisiones, suposiciones, riesgos y preguntas no resueltas con propietarios nombrados.
  • Distingue la validación realizada de la validación pendiente; declara la confianza honestamente.
  • Cuando se espera trabajo de construcción descendente, emite el acompañante handoff.yaml con rutas de artefactos, restricciones, decisiones, riesgos y la siguiente habilidad recomendada — sin duplicar el artefacto completo. Nunca invoques silenciosamente una habilidad de construcción; nómbrala en recommended_next.

Recursos

Carga solo lo que requiera la ruta seleccionada; nunca precargues.

Skills relacionados