Expediente 6/0: el árbitro que no se ponía de acuerdo consigo mismo

El vocabulario estaba escrito en seis sitios. Ninguno vigilaba a los otros — y el que debía arbitrar se contradecía a sí mismo, cinco veces, en sus propias páginas

Jesús Pérez
Seis vocabularios vivos, ninguno dueño. Siete conceptos con dos traducciones distintas, cinco de ellos dentro del mismo fichero. Un gate que miraba 10 ficheros de 110 y al que no llamaba ninguna receta de CI. Y cuando llegó un agente con la ontología entera cargada a resolverlo, escribió un séptimo vocabulario y archivó mal un término aplicando una regla que él mismo acababa de redactar. No fue descuido: fue que nada podía contradecirle.
Expediente 6/0: el árbitro que no se ponía de acuerdo consigo mismo

🕵️ Mostrar expediente completo → 📋 Protocolo de sesión →

Expediente · Depto. de Homicidios de Código

El vocabulario del proyecto estaba escrito en seis sitios. Ninguno era dueño; ninguno vigilaba a los otros. El glosario —el documento cuyo único trabajo es fijar las palabras— usaba las dos formas del mismo concepto en el mismo fichero, cinco veces. Y cuando llegó un investigador con la ontología entera cargada a resolverlo, escribió un séptimo vocabulario y archivó mal un término aplicando una regla que él mismo acababa de redactar. No fue descuido. Fue que nada podía contradecirle.

Caso Nº 6/0Clasificación: ANTI-PAP · VOCABULARIO SIN TESTIGOEstado: RESUELTO
Mostrar glosario
PAP
Los principios, reglas y patrones de arquitectura del proyecto. Un anti-PAP es un enfoque que va frontalmente contra ellos.
testigo
Acta firmada de que una comprobación se ejecutó y qué devolvió. Demuestra estructura, nunca veracidad. Un testigo registra; no rechaza. Solo se vuelve barrera cuando un punto de control se niega a continuar sin él.
declarado dos veces
El patógeno de la serie. Una misma verdad escrita en dos sitios, que deben coincidir a mano, sin que nada compruebe que coinciden. Los expedientes 404-PAP y 69/58 son la misma enfermedad en otros órganos.
falso amigo
Una traducción que parece correcta y desplaza el significado. «Librería» es una tienda; la palabra es «biblioteca». Es peligrosa precisamente porque no chirría.

Protocolo para declarar, versionar y verificar esto → ontoref.dev

El doble balance — lo que costó, y lo que dejó

Las cifras de la izquierda son el crimen. Las de la derecha son lo que el crimen dejó, y hay una que no es una métrica de ingeniería: los cuatro sospechosos descartados son cuatro modelos del problema que sólo se pudieron descartar mirándolos de frente. El tercero —«el cognado es seguro»— y el cuarto —«choca con un directorio, luego es intraducible»— no los sacó ningún validador. Los sacó una persona leyendo la palabra «compuerta» y diciendo: eso pierde el concepto.

Lo que costó el crimen

  • Vocabularios vivos, ninguno dueño de los otros 6
  • …de ellos, muerto: un .ftl que nadie lee 1
  • Conceptos con dos renderizaciones distintas 7
  • …de ellos, incoherentes DENTRO del mismo fichero 5
  • Ficheros ES que el gate anterior miraba 10 de 110
  • Familias de contenido ES nunca escaneadas 6
  • Recetas de CI que llamaban al gate 0
  • Páginas sirviendo inglés a un lector español 4 · durante meses
  • Falsos amigos en un post publicado 1 («librería»)
  • Conceptos ya fusionados en una sola palabra 2 · «gate» y «door» → «puerta»
  • Páginas generadas que ninguna ruta servía 1

Lo que el caso dejó

  • Registro de conceptos con eje idioma 45 conceptos · 71 reglas
  • Contratos cruzados sobre la unión 7
  • Cobertura del gate 10 → 110 ficheros
  • Divergencias medidas, tras la cura 7 → 0
  • Falsos positivos del gate 43 de 52 → 0
  • Superficies × idiomas declaradas 4 × 1, y añadir un idioma rompe el build
  • El spine, gobernado por su propio protocolo por primera vez

El punto de abandono — lo que no sale en la tabla

Hubo un momento, con el contrato nuevo recién congelado, en que el gate dio 52 hallazgos y 43 eran falsos. Marcaba «puerta» dieciocho veces en textos que hablaban de las cuatro puertas del embudo. Marcaba «cada build system usa DAGs» exigiendo «compilar». Ahí estaba el punto de abandono, y tenía dos salidas cómodas: debilitar la regla hasta que la herramienta se callara, o editar prosa correcta para apaciguarla. Las dos matan la política. La tercera salida es la única honesta, y es la que da nombre a la mitad del ADR: el gate declara lo que no puede comprobar. Una forma rechazada para un concepto puede ser la forma correcta de otro. Un préstamo dentro de un compuesto no es un anglicismo suelto. Una cita literal no se traduce. Nada de eso lo puede establecer una expresión regular — así que la política lo dice en los datos, y calla. Un gate que grita al lobo es un gate que la gente aprende a saltarse. Y un gate saltado es el tick verde sobre ficheros sin leer, que es el fallo con el que empezó todo esto.

Los sospechosos — las pistas falsas

El Anglicismo“«Es una lista de palabras a purgar.» No explica por qué `commit` se queda. Si el criterio fuera «suena a inglés», `commit` sería el primero en caer — y traducirlo deja al lector sin camino de vuelta a la herramienta. La lista no sabía distinguir una palabra de un nombre.”descartado
La Superficie“«Basta con tipar por superficie: un README no se escribe como una charla.» Correcto, y no suficiente. Se añadió el eje y el término seguía teniendo UN solo veredicto. «Commiteé» hablando está vivo; escrito es jerga. Eso lo arregla — y no arregla que nadie supiera por qué `gate` se quedaba.”descartado — cierto pero corto
El Cognado“«Si se parece al original, tradúcelo: es un cognado.» «Librería» se parece al original y es una TIENDA. «Compuerta» se parece y viene de la ELECTRÓNICA. Las lenguas evolucionan sus cognados por su cuenta, y el desplazamiento es invisible precisamente porque la palabra sigue pareciéndose. Este sospechoso no chirría: por eso es peligroso.”descartado — y no chirría
El Identificador“«Se queda porque choca con un directorio.» Ésta es la que mató al investigador. La colisión con `reflection/` la resuelve el blanqueo de spans de código — no una clase léxica. Pero la nota del fichero decía «colisiona con el directorio reflection/», y el investigador la leyó como «es intraducible». Archivó `reflection` —que tiene cognado fiel— junto a `gate` —que no tiene ninguno—. El mismo día. En el mismo fichero. Aplicando bien la regla a `schema` dos líneas más abajo.”CULPABLE

El arma — anglicisms.ncl — donde la política vivía en un comentario

# anglicisms.ncl — la lista de la que salió todo

{ en = "gate",       es = "puerta",  severity = 'Warning, prose_safe = false,
  note = "colisiona con gate.ncl / el término 'Gate" },
{ en = "reflection", es = "reflexión", severity = 'Warning, prose_safe = false,
  note = "colisiona con el directorio reflection/" },

# Y arriba del fichero, en un COMENTARIO:
#   Terms kept by technical convention (NOT denied):
#   commit, exit, NCL, ADR, DAG, JSONL, Ed25519...

El arma no es la lista. Es que la lista no podía estar equivocada, porque no había nada contra lo que comprobarla.

El giro — rendering.ncl — el veredicto y la razón, separados

# rendering.ncl — el veredicto y la RAZÓN, separados

'Keep + 'Identifier          # traducirlo rompe la REFERENCIA (commit, ADR, NCL)
'Keep + 'NoFaithfulRendering # traducirlo rompe el CONCEPTO   (gate)
'Render + 'FaithfulRendering # el español lo carga entero     (reflexión, esquema)

# Y el contrato que nadie había escrito:
RenderingsAreInjective   # dos conceptos NO pueden rendirse a la misma palabra
  → "es::puerta ← gate; es::puerta ← door"   exit 1

Lo encontró una persona leyendo. Ningún validador lo habría visto. Ahora uno sí.

El veredicto

La serie pregunta: ¿con ontoref no hubiera sido así? La respuesta, otra vez, es NO — y es la tercera vez que lo es, por la misma causa. El mecanismo existía: contratos, testigos, puertas. Todo construido, aceptado, funcionando. Y nunca apuntado a esta superficie. Es literalmente la frase del expediente del espejo: no basta con tener el mecanismo, hay que apuntarlo a la superficie que duele. Pero este caso añade algo que los anteriores no tenían, y es la razón de publicarlo. El patógeno se reprodujo EN VIVO, durante la investigación, ejecutado por un agente con la ontología entera cargada. Construyó un séptimo vocabulario paralelo a los seis que ya existían, sin verlos. Y archivó mal reflection aplicando mal una regla que él mismo acababa de escribir — mientras la aplicaba BIEN a schema, el mismo día, en el mismo fichero. No fue un descuido: fue que nada podía contradecirle. No había ningún sitio contra el que comprobar la clasificación, así que la comprobó contra su propio razonamiento. Que es exactamente el pecado que el protocolo dice combatir. Un vocabulario sin testigo no produce un error. Produce un árbitro que se convence a sí mismo — y luego convence a todo el que lo consulta.

El vocabulario vivía en seis sitiosUn registro de conceptos, y los contratos corren sobre la unión de los dos que quedan. Leer medio registro es creerse media política.
«No se traduce» no decía por quéDos razones, incompatibles: 'Identifier (rompe la referencia) y 'NoFaithfulRendering (rompe el concepto). Un 'Keep justificado por «hay palabra fiel» queda rechazado por contrato.
Un cognado se daba por seguro'FalseFriend y 'Displaces son clases propias, y cada rechazo lleva escrito lo que cuesta — o alguien lo revierte de buena fe dentro de seis meses.
La traducción inventaba ambigüedadInyectividad por idioma: dos conceptos no pueden rendirse a la misma palabra. Dispara hoy sobre los datos reales.
Un idioma podía añadirse a mediaslanguages se declara una vez, y añadir uno rompe el build hasta que los 45 conceptos respondan por él. Un idioma a medias es un sitio sirviendo el equivocado.
El gate afirmaba lo que no podía saberLa política declara sus propios límites: gateable, gate_source, <!-- lang:xx -->. La regla se sigue emitiendo para la persona — que tiene el contexto que le falta a la regex — pero ninguna superficie falla por ella.
El gate no leía la superficie donde estaba el malmode = 'I18nKeys: exporta el fichero bilingüe y recorre solo el idioma destino. El spine queda gobernado por el protocolo que envía.
Nadie llamaba al gatejust ci-lexicon. Heredado de ADR-070: existir no es participar.

La jurisprudencia — qué exige hoy la lección

  • El vocabulario tiene UNA política, y toda superficie la consulta — nunca seis copiasadr:071/registry-is-the-single-policy
  • La puerta declara lo que no puede comprobar, en vez de afirmarloadr:071/the-gate-declares-what-it-cannot-check
  • Un idioma declarado se responde en todas las superficies, o no hay altaadr:071/a-language-is-answered-everywhere
  • El testigo del vocabulario corre en la cadena, con su caso negativotest:.ontoref/reflection/tests/test_es_vocab_gate.nu

El script de usar y tirar con el que se midió la incoherencia inicial es hoy menos fiable que la puerta que lo sustituyó: sigue dando un falso positivo que la puerta no da. Ésa es, en una línea, la diferencia entre medir una vez y declarar para siempre.

Glosario

¿Te ha resultado útil? Valóralo
¿Tienes algo que aportar? Cuéntame qué opinas, qué sugieres, o si seguimos explorando este tema.
· lecturas

Usamos cookies para que este sitio funcione, entender el uso del servicio y apoyar acciones de marketing. Política de cookies para más información.