Diseño (canon)
El diseño se realiza cuando una sesión posterior puede leer por qué (una decisión, canon/decisions/D-n.md) y qué debe cumplirse (reglas, canon/rules/<dominio>/BR-n.md) sin preguntar a nadie. Un diseño que solo existe en esta conversación se pierde.
1. Elegir el modo
| Modo | Lectura | Enfoque |
|---|---|---|
architecture | references/mode-architecture.md, references/architecture-patterns.md | capas, límites, C4, migración |
api | references/mode-api.md, references/api-design.md | endpoints / comandos, errores, autenticación, paginación |
database | references/mode-database.md, references/database-design.md | esquema, índices, migraciones, patrones de acceso |
system | references/mode-system.md, references/system-design.md | SLA, modos de fallo, capacidad |
module | references/mode-module.md | responsabilidad, profundidad (prueba de eliminación), puntos de extensión, categorías de dependencias |
Lee solo los archivos del modo que necesites. Referencias transversales (references/cross-cutting/: autorización, manejo de errores, idempotencia, identidad de sesión) cuando el diseño las toque.
2. Antes de diseñar
canon context <ruta|dominio|C-n>: todo el dominio actual, sus reglas, las decisiones aceptadas y los cambios abiertos. El diseño no debe contradecir una regla activa o una decisión aceptada; si tiene que hacerlo, dilo y cámbialos en el mismo cambio.canon search <tema>: decisiones y notas anteriores sobre la misma cuestión. Amplía o reemplaza (--supersedes D-n), nunca rehagas en silencio.- Observa cómo 1–3 productos o bibliotecas maduros resuelven el mismo problema antes de inventar uno.
- Lee el código existente que estás cambiando (símbolos, llamantes) antes de proponer una estructura.
3. Diseñar
- Enmarca el problema antes de enumerar opciones: ¿qué preguntas debe responder este diseño, qué escenarios debe servir? Al evaluar un diseño existente, una lista de sus defectos es entrada, no el marco: un plan construido solo a partir de la lista de defectos es un parche, no un diseño.
- Proporciona al menos dos opciones reales con sus compensaciones y una recomendación. Real significa diseños diferentes, no un mismo diseño hecho más o menos (