Modelith: Construyendo sistemas con modelos de dominio en lenguaje claro

Modelith: Construyendo sistemas con modelos de dominio en lenguaje claro

Jul 04, 2026 domain-modeling ai-development developer-tools yaml claude-code software-architecture vibe-coding

Talking to Your Code: How Modelith Brings Domain Models to Life


Convertir tu Código en Conversación: Así Funciona Modelith con los Modelos de Dominio

Vamos a ser sinceros: la mayoría de los proyectos empiezan con buena intención. Alguien dibuja el modelo de dominio en una pizarra, todos asienten con la cabeza, y luego... el modelo muere silenciosamente en una página de Confluence que nadie actualiza.

El problema no es el concepto de modelado de dominio en sí. Es que los modelos de dominio típicamente:

  • Se escriben una vez y se olvidan
  • Se mantienen separados del código
  • Solo son legibles en herramientas específicas
  • Son difíciles de validar automáticamente

Modelith toma un enfoque diferente. En lugar de tratar tu modelo de dominio como un entregable que produces y archivas, lo trata como un artefacto vivo que coexiste con tu código, que se crea a través de conversación, y que se valida automáticamente en CI.

¿Qué Exactamente Es un Modelo de Dominio?

Antes de avanzar, pongámonos de acuerdo. Un modelo de dominio es el mapa conceptual de tu sistema: los sustantivos (entidades), sus relaciones, y las reglas que las gobiernan. No es un esquema de base de datos ni una especificación de API. Es la expresión canónica, en lenguaje llano, de lo que tu sistema es.

Piénsalo como el vocabulario que comparte todo tu equipo. Cuando todos leen del mismo modelo, las conversaciones se vuelven más afiladas, la incorporación de nuevos miembros es más rápida, y agregar nuevos servicios o features se convierte en menos excavación arqueológica a través de código legacy.

El Flujo de Modelith: Describe, Redacta, Valida, Renderiza

Aquí es donde la cosa se pone interesante. Con Modelith, no escribes YAML directamente. Ni siquiera piensas en YAML. Describes tus conceptos de dominio en lenguaje natural a un agente de IA (específicamente, un skill de Claude Code), y el agente redacta el YAML subyacente por ti.

El flujo se ve algo así:

  1. Describe — Hablas sobre tu dominio en inglés sencillo. "Tenemos clientes que pueden hacer pedidos, y los pedidos contienen múltiples productos, pero los clientes solo pueden tener tres pedidos activos a la vez."

  2. Redacta — El plugin de Claude Code traduce tu descripción a un archivo modelith.yaml, validando sobre la marcha.

  3. Valida — Ejecuta modelith lint para verificar completitud y consistencia. Esto se convierte en tu gate de CI.

  4. Renderiza — Ejecuta modelith render para generar Markdown con diagramas de Mermaid. Haz commit de esto junto al YAML.

El Markdown renderizado es legible para humanos sin necesidad de ninguna herramienta. El YAML es la fuente de verdad legible por máquina. Y CI asegura que nunca se desvíen: piensa en esto como una verificación de código generado, pero para tu modelo de dominio.

Por Qué Este Enfoque Funciona

El lenguaje simple baja la barrera

No todos en tu equipo se sienten cómodos leyendo JSON Schema o diagramas UML. Pero todos pueden leer inglés llano. Al hacer del lenguaje natural el punto de entrada, Modelith democratiza el modelado de dominio. Tu product manager puede contribuir. Tu QA puede revisarlo. Tu dev junior puede entender realmente el panorama completo.

La IA maneja las partes tediosas

Escribir YAML a mano es propenso a errores y, francamente, tedioso. Dejar que un agente de IA maneje la traducción de tu descripción a YAML válido significa que quitas esa carga cognitiva de tu plato mientras mantienes la precisión.

La validación en CI previene la desviación

Esta es la funcionalidad estrella para equipos. Tu modelo de dominio se convierte en ciudadano de primera clase en tu flujo de desarrollo. Cada PR que cambia el dominio se valida automáticamente. Si alguien actualiza el YAML pero olvida regenerar los docs, CI lo detecta.

El modelo se mantiene cerca del código

Cuando tu modelo de dominio vive en el mismo repositorio que tu código, se mantiene relevante. Se revisa en los pull requests. Se actualiza cuando los features cambian. No se convierte en documentación obsoleta en algún otro sistema que nadie recuerda consultar.

Empezando

Modelith está diseñado para ser accesible. No necesitas entender todo el schema desde el principio. Empieza pequeño:

  • Instala el plugin de Claude Code
  • Describe algunos conceptos core de tu dominio
  • Deja que la IA redacte el YAML
  • Ejecuta modelith lint para ver qué falta
  • Itera

El proyecto incluye ejemplos trabajados (su ejemplo de estacionamiento es un buen punto de partida) que te guían construyendo un modelo real desde cero.

El Panorama Completo

Modelith representa una tendencia más amplia en desarrollo asistido por IA: usar el lenguaje natural como capa de interfaz mientras se mantienen artefactos legibles por máquina debajo. Escribes lo que quieres decir; las herramientas aseguran consistencia y validación.

Para equipos que construyen sistemas complejos — especialmente en dominios donde el vocabulario importa (fintech, healthcare, logística, cualquier cosa con reglas de negocio significativas) — este enfoque podría ser transformador. Un modelo de dominio compartido, validado y vivo significa menos malentendidos, incorporación más rápida, y sistemas mejor diseñados.

La herramienta aún está evolucionando, pero la idea central es sólida. Tu modelo de dominio no debería ser una ocurrencia tardía ni un vestigio del kickoff del proyecto. Debería ser un documento vivo que evoluciona con tu código, authored a través de conversación, y validado automáticamente.

Si has batallado para mantener los modelos de dominio relevantes en tus proyectos, Modelith vale la pena explorar. A veces las mejores herramientas no son las más poderosas — son las que hacen que el comportamiento correcto sea el camino de menor resistencia.

Echa un vistazo a modelith.sh para empezar.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR DE DA ZH-HANS EN