Nivel 1 no produce código nuevo, ni una herramienta, ni una UI. Define el shape al que cada patrón debe responder antes de poder ser comparado, compuesto, instanciado o medido. Es la condición previa para que todo lo demás del Lighthouse Sprint deje de ser artesanal y empiece a componer.
Hoy un patrón vive como prosa: un nombre, una descripción, quizás un diagrama. Útil para leer, inútil para componer. Si no podemos preguntar "¿qué patrones aplican a este síntoma del cliente?" sin abrir cada documento, el library sigue siendo una biblioteca, no una máquina.
El schema convierte cada patrón en un objeto con campos predecibles — problem signature, inputs, outputs, dependencias, gobierno, telemetría, fit criteria. La prosa editorial sigue ahí, en el body. Pero arriba aparece una capa estructurada que el matching engine (Nivel 2) podrá leer y rankear, y que la instanciación (Nivel 3) podrá usar como scaffold.
La regla: si el schema no puede describir el patrón sin aplastarlo, gana el patrón. El schema es servidumbre del library, no al revés.
Esta es la forma propuesta. Cada campo está justificado por una pregunta operativa real: ¿cómo lo encuentro?, ¿cómo lo compongo?, ¿cómo sé si funcionó?. Lo que no responde a una de esas preguntas no entra al schema todavía.
domain.pattern-name — identificador estable, kebab-case, namespace por dominio funcional. Inmutable una vez publicado.
0.1 — semver simple. Cambios incompatibles bumpean major. La versión instanciada queda en el registro.
queue, editorial, distribution, seo, governance, workflow… — categoría funcional. Permite filtrar el library por área.
approval.before-publish, watchdog.lock-timeout. Conecta directamente con el Governance Runbook.
Una crítica justa al library actual es que mezcla niveles de abstracción.
Algunos patrones son primitivos operativos; otros son composiciones
comerciales. El schema introduce un campo layer que separa
explícitamente las tres funciones que el library cumple:
Los siguientes tres patrones están escritos desde cero como ejemplos de cómo se ve el schema poblado. No son extractos — son ilustraciones. El propósito es que la forma quede legible antes de comprometernos a migrar (o redestilar) los 14 meta-patrones existentes.
watchdog.lock-timeout · alert.repeated-contentionapproval.editorial-voice-check · watchdog.weekly-slaapproval.client-blueprint-signoff · checkpoint.stage2-to-stage3
El campo composes del schema convierte cada patrón meta o
vertical en un nodo con aristas explícitas hacia sus primitivos. Eso es
lo que permite, en el Nivel 2, que el matching engine no recomiende
patrones aislados — recomiende composiciones, con su árbol de
dependencias visible y su gobierno heredado.