Modelado de Dominio
Construye y refina activamente el modelo de dominio del proyecto mientras diseñas. Esta es la disciplina activa: desafiar términos, inventar casos extremos y escribir el glosario y las decisiones en el momento en que cristalizan. (Simplemente leer GLOSSARY.md para vocabulario no es este skill: eso es un hábito de una línea que cualquier skill puede hacer. Este skill es para cuando estás cambiando el modelo, no solo consumiéndolo).
Estructura de archivos
La mayoría de los repositorios tienen un único contexto:
/
├── GLOSSARY.md
├── docs/
│ └── adr/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
└── src/
Si existe un GLOSSARY-MAP.md en la raíz, el repositorio tiene múltiples contextos. El mapa indica dónde se encuentra cada uno:
/
├── GLOSSARY-MAP.md
├── docs/
│ └── adr/ ← decisiones a nivel de sistema
├── src/
│ ├── ordering/
│ │ ├── GLOSSARY.md
│ │ └── docs/adr/ ← decisiones específicas del contexto
│ └── billing/
│ ├── GLOSSARY.md
│ └── docs/adr/
Crea archivos de forma diferida: solo cuando tengas algo que escribir. Si no existe GLOSSARY.md, créalo cuando se resuelva el primer término. Si no existe docs/adr/, créalo cuando se necesite la primera ADR.
Durante la sesión
Desafía el glosario
Cuando el usuario use un término que entre en conflicto con el lenguaje existente en GLOSSARY.md, señálalo de inmediato. "Tu glosario define 'cancelación' como X, pero pareces referirte a Y. ¿Cuál es?"
Afina el lenguaje vago
Cuando el usuario use términos vagos o sobrecargados, propón un término canónico preciso. "Estás diciendo 'cuenta': ¿te refieres al Cliente o al Usuario? Son cosas diferentes."
Discute escenarios concretos
Cuando se discutan relaciones de dominio, ponlas a prueba con escenarios específicos. Inventa escenarios que exploren casos extremos y obliguen al usuario a ser preciso sobre los límites entre conceptos.
Referencia cruzada con el código
Cuando el usuario afirme cómo funciona algo, verifica si el código coincide. Si encuentras una contradicción, hazla notar: "Tu código cancela Pedidos completos, pero acabas de decir que la cancelación parcial es posible. ¿Cuál es correcta?"
Actualiza GLOSSARY.md en el momento
Cuando un término se resuelva, actualiza GLOSSARY.md inmediatamente. No los acumules: captúralos a medida que ocurren. Usa el formato en GLOSSARY-FORMAT.md.
GLOSSARY.md debe carecer por completo de detalles de implementación. No trates GLOSSARY.md como una especificación, un bloc de notas o un repositorio de decisiones de implementación. Es un glosario y nada más.
Ofrece ADRs con moderación
Solo ofrece crear una ADR cuando se cumplan las tres condiciones:
- Difícil de revertir: el costo de cambiar de opinión más adelante es significativo
- Sorprendente sin contexto: un lector futuro se preguntará "¿por qué lo hicieron así?"
- Resultado de una compensación real: existían alternativas genuinas y elegiste una por razones específicas
Si falta alguna de las tres, omite la ADR. Usa el formato en ADR-FORMAT.md.