Skip to content

El guard de paridad no ve el idioma: nueve documentos «en inglés» están en castellano - #99

Closed
beyondnetPeru wants to merge 2 commits into
developfrom
feat/translation-language-ratchet
Closed

El guard de paridad no ve el idioma: nueve documentos «en inglés» están en castellano#99
beyondnetPeru wants to merge 2 commits into
developfrom
feat/translation-language-ratchet

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

GAP-011 y GAP-017 dicen que el C4 y el Discovery Canvas no tienen versión inglesa. El fichero .md existe en ambos casos y se autodescribe «English (this document)». Su contenido está en castellano.

Por eso las dos filas seguían siendo ciertas con check-bilingual-parity en verde: ese guard compara que el par exista y que las cabeceras cuadren, y ninguna de las dos cosas ve el idioma. Un fichero copiado, reetiquetado y no traducido lo pasa siempre.

Medido, no supuesto

9 de 151 documentos emparejados están así — las filas solo nombraban dos. Entre los otros siete:

Documento Marcadores ES / EN
DECISIONS.md 128 / 1
MASTER_INDEX.md 72 / 8
docs/adrs/T-044-single-tenant-isolation-model.md 221 / 0
docs/diagrams/evolith-tracker-master-flow.md 100 / 38

Los dos primeros son canónicos de raíz.

Cómo se detecta, y lo que cuesta

Frecuencia de stopwords — las palabras función que dominan cualquier prosa y apenas se solapan entre idiomas. Es heurística, así que se aplica con margen y nunca por mayoría simple: se reporta solo si el castellano supera al inglés por .

El margen se eligió midiendo: los nueve casos reales están en 10× o más, y el documento legítimo más cercano ronda la paridad. Una mayoría simple habría marcado glosarios bilingües. Se retira el código antes de contar, porque un fichero lleno de identificadores en castellano no es un documento en castellano.

Va como trinquete, no como bloqueo

Traducir nueve documentos ahora no es realista, y dejarlos invisibles es cómo llegamos aquí. Los nueve se declaran con su motivo en untranslated-allowlist.json, así que CI pasa hoy y el décimo falla.

Cada motivo nombra la fila que lo rastrea o un bloqueo concreto. La regla, escrita en el propio fichero: «una entrada es una promesa de traducir, no un indulto; "no es prioritario" no es un motivo».

Comprobado que muerde: copiando un documento en castellano como .md, el guard se pone rojo nombrándolo, y vuelve a verde al retirarlo.

Verificación

validate-docs, check-bilingual-parity y check-gap-registry en verde; YAML del workflow validado.

🤖 Generated with Claude Code

beyondnetPeru and others added 2 commits August 1, 2026 19:48
…en ingles» estan en castellano

GAP-011 y GAP-017 dicen que el C4 y el Discovery Canvas no tienen version inglesa. El
fichero `.md` EXISTE en ambos casos y se autodescribe «English (this document)». Su
contenido esta en castellano.

Por eso las dos filas seguian siendo ciertas con `check-bilingual-parity` en verde: ese
guard compara que el par EXISTA y que las cabeceras cuadren, y ninguna de las dos cosas
ve el idioma. Un fichero copiado, reetiquetado y no traducido lo pasa siempre.

MEDIDO, no supuesto: **9 de 151** documentos emparejados estan asi, y las dos filas
solo nombraban dos. Entre los otros siete estan `DECISIONS.md` (128 marcadores de
castellano contra 1 de ingles) y `MASTER_INDEX.md`, que son canonicos de raiz.

COMO SE DETECTA, y lo que cuesta: frecuencia de stopwords —las palabras funcion que
dominan cualquier prosa y apenas se solapan entre los dos idiomas—. Es heuristica, asi
que se aplica con MARGEN y nunca por mayoria simple: se reporta solo si el castellano
supera al ingles por 2×. Se eligio midiendo — los nueve casos reales estan en 10× o
mas, y el documento legitimo mas cercano ronda la paridad; una mayoria simple habria
marcado glosarios bilingues. Se retira el codigo antes de contar, porque un fichero
lleno de identificadores en castellano no es un documento en castellano.

VA COMO TRINQUETE, no como bloqueo: los nueve se declaran con su motivo en
`untranslated-allowlist.json`, asi que CI pasa hoy; el DECIMO falla. Traducir nueve
documentos ahora no es realista y dejarlos invisibles es como llegamos aqui. Cada
motivo nombra la fila que lo rastrea o un bloqueo concreto — la regla escrita en el
propio fichero dice que «no es prioritario» no es un motivo.

Comprobado que muerde: copiando un documento en castellano como `.md` el guard se pone
rojo nombrandolo, y vuelve a verde al retirarlo.

Verificado: `validate-docs`, `check-bilingual-parity` y `check-gap-registry` en verde;
YAML del workflow validado.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@beyondnetPeru

Copy link
Copy Markdown
Contributor Author

Reemplazado por un PR rebasado sobre develop. Este quedó con mergeStateStatus: UNKNOWN porque conflictúa con develop en tracker-gaps-opportunities-tracking.md — y ese es el motivo real de que nunca disparara checks: los de pull_request corren sobre el commit de merge, y GitHub no podía calcularlo. No era un fallo de Actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant