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 escenarios límite, y escribir el glosario y las decisiones en el momento en que cristalizan. (Simplemente leer GLOSSARY.md para vocabulario no es esta habilidad: es un hábito de una línea que cualquier habilidad puede hacer. Esta habilidad es para cuando estás cambiando el modelo, no solo consumiéndolo).
Estructura de archivos
La mayoría de los repositorios tienen un solo contexto:
/
├── GLOSSARY.md
├── docs/
│ └── adr/
│ ├── 0001-ordenes-basadas-en-eventos.md
│ └── 0002-postgres-para-el-modelo-de-escritura.md
└── src/
Si existe un GLOSSARY-MAP.md en la raíz, el repositorio tiene múltiples contextos. El mapa señala dónde vive 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 perezosa: 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
Desafiar contra 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 querer decir Y. ¿Cuál es?"
Refinar lenguaje difuso
Cuando el usuario use términos vagos o sobrecargados, propón un término canónico preciso. "Dices 'cuenta': ¿te refieres al Cliente o al Usuario? Son cosas diferentes."
Discutir escenarios concretos
Cuando se estén discutiendo relaciones del dominio, ponlas a prueba con escenarios específicos. Inventa escenarios que exploren casos límite y obliguen al usuario a ser preciso sobre los límites entre conceptos.
Referencia cruzada con el código
Cuando el usuario indique cómo funciona algo, verifica si el código está de acuerdo. Si encuentras una contradicción, sácala a la luz: "Tu código cancela Órdenes enteras, pero acabas de decir que la cancelación parcial es posible. ¿Cuál es la correcta?"
Actualizar GLOSSARY.md en línea
Cuando se resuelva un término, actualiza GLOSSARY.md en ese mismo momento. No los acumules: captúralos a medida que ocurren. Usa el formato en GLOSSARY-FORMAT.md.
GLOSSARY.md debe estar completamente desprovisto de detalles de implementación. No trates GLOSSARY.md como una especificación, una libreta de apuntes o un repositorio de decisiones de implementación. Es un glosario y nada más.
Ofrecer ADR con moderación
Solo ofrece crear una ADR cuando se cumplan las tres condiciones:
- Difícil de revertir: el coste de cambiar de opinión más tarde es significativo
- Sorprendente sin contexto: un lector futuro se preguntará "¿por qué lo hicieron así?"
- Resultado de un compromiso 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.