conventions-guard.mjs
- Evento: PreToolUse Edit/Write
- Tipo: muro: bloquea la acción con el motivo (sale con código 2)
Qué hace
Sección titulada «Qué hace»BLOQUEA código que viole las reglas ejecutables de conventions.json (/adoptar): la convención del proyecto gana.
Cómo funciona
Sección titulada «Cómo funciona»Hook PreToolUse (Edit|Write|MultiEdit): hace cumplir las CONVENCIONES ADOPTADAS del proyecto (/adoptar). Lee <raiz>/conventions.json (generado por el comando /adoptar tras analizar un proyecto existente) y bloquea (exit 2) lo que INTRODUCE un patrón prohibido por una regla. Igual que code-hygiene: solo lo nuevo cuenta (lo viejo ya estaba), y la línea con ‘senzu-allow’ escapa un caso puntual. Esquema de conventions.json: { “_sello”: “senzu:inmutable”, “rules”: [ { “files”: “\.(ts|tsx)$”, “forbid”: “\binterface\s”, “why”: “este proyecto usa ‘type’, no ‘interface’” } ] } files = regex sobre la ruta relativa (con /); forbid = regex sobre el contenido introducido; why = motivo mostrado. Sin conventions.json el hook no hace nada.