SendLang: dos lenguajes pequeños para definir y automatizar el email de ciclo de vida

Fuentes: SendLang — a language layer for lifecycle email

SendLang es un proyecto que define una familia de dos lenguajes específicos de dominio pensados para gestionar el email transaccional y de ciclo de vida como código versionado, en lugar de como configuraciones ocultas dentro de un editor visual.

El primero, SendQL, es un lenguaje de consulta orientado a describir segmentos de audiencia: una sola expresión booleana que combina atributos de contacto, pertenencia a listas o segmentos, reglas de consentimiento y, de forma destacada, consultas sobre el flujo crudo de eventos del usuario (recuento, existencia, suma, media, primer y último evento), con ventanas temporales explícitas del tipo within 30d o now - 14d. El segundo, SendFlow, es un lenguaje de workflows almacenado en archivos .flow que se lee de arriba abajo y embebe SendQL en sus condiciones. Admite un disparador, varios tipos de espera (duración, fecha o condición con timeout), bifurcaciones if/else if/else, splits ponderados que deben sumar 100, exclusiones hold out y un único bucle acotado repeat up to N. Por diseño, no existen goto ni bucles no acotados, lo que garantiza que cualquier flujo termina y puede mapearse de forma reversible a un diagrama.

La apuesta central del proyecto es la compatibilidad con agentes de programación. Los lenguajes cuentan con una gramática EBNF generada a partir de los propios parsers, un verificador de tipos con diagnósticos por línea y columna, y documentación en Markdown con llms.txt y llms-full.txt apta para ser inyectada en el contexto de un agente. El flujo de trabajo propuesto es: el agente lee el archivo, lo modifica, ejecuta el checker y abre un pull request que una persona revisa antes de enviar nada a un contacto real.