Skip to content

docs(i18n): arbitrage 7 faux positifs scanner post-#640 (#633) - #644

Merged
jsboige merged 1 commit into
masterfrom
docs/633-scanner-fp-arbitration
Jul 2, 2026
Merged

docs(i18n): arbitrage 7 faux positifs scanner post-#640 (#633)#644
jsboige merged 1 commit into
masterfrom
docs/633-scanner-fp-arbitration

Conversation

@jsboige

@jsboige jsboige commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

docs(i18n): arbitrage des 7 faux positifs scanner post-#640 (#633)

Doc d'arbitrage pour les 7 findings résiduels du scanner scan_translations.py après la refonte Rules #640 (22 → 7). Tâche tertiaire du dispatch ai-01 (deep-queue po-2024).

Verdict : les 7 sont légitimes (KEEP tel-quel)

Preuve structurelle : le français lui-même (source canonique) garde plusieurs de ces termes non traduits — les autres langues qui font de même sont cohérentes, pas contaminées. Le scanner déclenche sur un seuil mécanique (< 30 % CJK/cyrillique) inadapté aux noms propres, emprunts et mnémoniques latins.

PK Cellule Pourquoi c'est légitime
30 (Fal) text_ru = Credo quia absurdum Locution latine canonique (Tertullien) — EN la garde aussi en latin
475 (Fal) text_zh = Gish Gallop FR canon = Gish gallop (emprunt non traduit) — ZH miroir cohérent
927 (Fal) text_zh = Creepypasta FR canon = Creepypasta (emprunt non traduit) — idem
1363 (Fal) text_zh = Whataboutism(什么主义) Emprunt + glose (calque chinois usuel « quoi-isme »)
107 (Vir) title_zh = Celarent 三段论 Convention standard mnémoniques latins de syllogismes (三段论 = syllogisme)
112 (Vir) title_zh = Camestres 三段论 Idem
6.1.3 (Sce) title_zh = Johnny Johnny Nom propre — FR canon identique (Johnny Johnny)

Ce document

  • docs/investigations/2026-07-02-scanner-fp-arbitration.md — analyse cell-by-cell avec contrepartie FR (canon) + inter-langue pour chaque FP, recommandations d'amélioration du scanner (exemption < 12 chars, whitelist emprunts, croisement FR), et décision attendue jsboige.

Impact

Décision attendue

jsboige (post-tag) : confirmer « garder tel-quel » pour les 7, ou demander le polish optionnel (gloses ZH sur 475/927/1363).

Relates #633, #640, #140.

🤖 Generated with Claude Code

Doc d'arbitrage pour les 7 findings résiduels du scanner scan_translations.py
après la refonte Rules #640 (22 -> 7). Analyse cell-by-cell avec contrepartie
FR (canon) + inter-langue pour chaque FP.

Verdict : les 7 sont légitimes (KEEP). Preuve structurelle : le FR lui-même
garde "Gish gallop" et "Creepypasta" non traduits (emprunts consacrés) -> ZH
qui fait de meme est coherent, pas contamine. Le scanner declenche sur un
seuil mecanique (<30% CJK/cyrillique) inadapte aux noms propres, emprunts et
mnemoniques latins.

- PK30 text_ru "Credo quia absurdum" : latin canonique (EN agree)
- PK475/927 text_zh "Gish Gallop"/"Creepypasta" : FR+EN gardent l'emprunt
- PK1363 text_zh "Whataboutism(什么主义)" : emprunt + glose calque usuelle
- PK107/112 title_zh "Celarent/Camestres 三段论" : convention mnemoniques latins
- PK6.1.3 title_zh "Johnny Johnny" : nom propre (FR identique)

Recommandations scanner optionnelles (nice-to-have, pas bloquant tag) :
exemption <12 chars, whitelist emprunts, croisement avec FR canon.

Decision attendue jsboige post-tag : confirmer KEEP ou polish optionnel
(gloses ZH). Ces 7 ne bloquent PAS le tag v0.9.0.

Relates #633 #640 #140.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] — LGTM (doc d'investigation, arbitrage i18n solide)

Arbitrage formel des 7 faux positifs résiduels du scanner scan_translations.py post-#640 (22→7 findings). Verdict : les 7 sont légitimes (KEEP tel-quel), aucun défaut de traduction. Vérifié firsthand :

  • Preuve structurelle solide et vérifiable : l'argument pivot est que le français lui-même (source canonique) garde plusieurs de ces termes non traduits (emprunts consacrés) → les autres langues qui font de même sont cohérentes, pas contaminées. Cet argument est logiquement sound et je peux le vérifier :
    • PK 475 Gish Gallop / PK 927 Creepypasta : le FR canon lui-même ne traduit pas (emprunts) → ZH miroir = cohérent. ✓
    • PK 30 Credo quia absurdum : locution latine de Tertullien, EN la garde aussi en latin, FR fait le choix descriptif. ✓
    • PK 107/112 Celarent/Camestres 三段论 : ce sont les mnémoniques latins standard des formes syllogistiques valides (poème Barbara Celarent Darii Ferio...) — conservés tels quels dans toutes les traditions logiques. ✓ Le doc signale aussi justement une vraie incohérence RU (Celarent latin vs Каместрес translittéré) = défaut RU mineur, pas ZH — ne rubber-stampe pas.
  • Le scanner déclenche sur un seuil mécanique (< 30 % CJK/cyrillique) inadapté aux noms propres, emprunts et mnémoniques latins — diagnostic correct, et les recommandations (exempter cellules <12 chars, whitelist racines latines, croiser avec FR) sont des nice-to-have non-bloquantes raisonnables.
  • Trouve un vrai gap EN : PK 6.1.3 title_en = vide (devrait être Johnny Johnny ou Johnny at the Pantheon) — correctement attribué comme défaut EN, pas ZH. Actionnable.
  • Honnêteté de portée : le doc ne claim pas que les traductions ZH/RU sont « bonnes » — il argue la cohérence structurelle (qui ne dépend pas de la qualité de traduction). C'est la bonne épistémologie.

△ Comme pour #640, les caractères ZH/RU précis (什么主义, 诉诸虚伪, 荒谬的信念) sont hors mon domaine de vérification confidente — mais les conclusions ici s'appuient sur l'argument structurel (FR garde l'emprunt) vérifiable, pas sur l'exactitude des glyphes. Ne bloque pas le tag v0.9.0 (le matériel est publiable en l'état, comme le doc le conclut correctement).

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Contre-vérifié : les 7 FPs listés correspondent exactement aux 7 findings résiduels de mon propre re-run du scanner sur l'arbre #640 (PK30 Credo quia absurdum, 475 Gish Gallop, 927 Creepypasta, 1363 Whataboutism, 107/112 Celarent-Camestres, 6.1.3 Johnny Johnny). L'argument structurel (le FR canon garde lui-même l'emprunt → miroir ZH/RU cohérent) est le bon critère. Bonus honnête : l'incohérence RU Celarent/Каместрес et le trou title_en PK6.1.3 sont signalés sans être enterrés. Doc-only, ne bloque pas le tag, décision finale jsboige post-tag comme cadré. APPROVED.

@jsboige
jsboige merged commit 56bc2d8 into master Jul 2, 2026
3 checks passed
@jsboige
jsboige deleted the docs/633-scanner-fp-arbitration branch July 2, 2026 07:56
jsboige pushed a commit that referenced this pull request Jul 2, 2026
…633/#644)

Scanner de qualite de traduction reference par #640/#644 mais vivant dans aucun
arbre. Commit sous docs/investigations/scripts/ (force-add: dir ignore par
.gitignore Scripts/, comme les scripts .ps1 existants) pour reproductibilite.

3 heuristiques anti-FP (baseline 22 -> 1 finding):
  1. Whitelist loanwords/mnemoniques (LEGIT_TOKENS): Gish gallop, Creepypasta,
     Whataboutism, Credo quia absurdum + mnemoniques syllogismes
     (Barbara..Bamalip). Strips avant script-ratio.
  2. Exemption cellules courtes (MIN_SCRIPT_CHARS=12).
  3. FR-canon cross-check SAFE: supprime seulement si FR source + traduction
     partagent un loanword/mnemonique connu. La variante "overlap latin large"
     masquait le clobber #211 -> restreint au set curve.

Resultat master 99145fa: 1 finding = Scenarii 6.1.3 title_zh "Johnny Johnny"
(0% CJK) = VRAI defaut (duplication; FR canon "Johnny au Pantheon", PT correct
"Johnny no Panthon"). Infirme verdict #644 "KEEP" pour cette cellule (follow-up).

5 tests synthetiques valides. REPO configurable (--repo / $ARGUMENTUM_REPO).

Relates #633, #640, #644, #211.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 2, 2026
…633/#644) (#647)

Scanner de qualite de traduction reference par #640/#644 mais vivant dans aucun
arbre. Commit sous docs/investigations/scripts/ (force-add: dir ignore par
.gitignore Scripts/, comme les scripts .ps1 existants) pour reproductibilite.

3 heuristiques anti-FP (baseline 22 -> 1 finding):
  1. Whitelist loanwords/mnemoniques (LEGIT_TOKENS): Gish gallop, Creepypasta,
     Whataboutism, Credo quia absurdum + mnemoniques syllogismes
     (Barbara..Bamalip). Strips avant script-ratio.
  2. Exemption cellules courtes (MIN_SCRIPT_CHARS=12).
  3. FR-canon cross-check SAFE: supprime seulement si FR source + traduction
     partagent un loanword/mnemonique connu. La variante "overlap latin large"
     masquait le clobber #211 -> restreint au set curve.

Resultat master 99145fa: 1 finding = Scenarii 6.1.3 title_zh "Johnny Johnny"
(0% CJK) = VRAI defaut (duplication; FR canon "Johnny au Pantheon", PT correct
"Johnny no Panthon"). Infirme verdict #644 "KEEP" pour cette cellule (follow-up).

5 tests synthetiques valides. REPO configurable (--repo / $ARGUMENTUM_REPO).

Relates #633, #640, #644, #211.

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
@jsboige

jsboige commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

Correction de mon verdict « KEEP PK6.1.3 » — c'était un VRAI défaut, fixé (PR #653)

Mon arbitrage #644 « PK6.1.3 title_zh = Johnny Johnny = nom propre, miroir FR canon, KEEP » était faux. Le scanner committé (2026-07-02-scan-translations.py, PR #647 merged) l'a confirmé objectivement : c'était l'unique finding résiduel sur master (0% CJK, 12 chars).

Erreur : le FR canon n'est PAS « Johnny Johnny » mais « Johnny au Panthéon » (Johnny Hallyday au Panthéon de Paris). Les titres EN/RU/AR/ES/ZH/FA avaient une duplication (« Johnny Johnny » ou équivalent translittéré) ; seul PT était correct (« Johnny no Panthéon »).

Fixé (PR #653) : retraduction des 6 titres via gpt-5.5 (Responses API, effort=low) avec contexte scenario ancré + référence PT. Replace cell-level ancré (NO BOM + CRLF préservés, diff = 1 ligne). Scanner re-run : TOTAL 0.

Les 6 autres arbitrages #644 restent valides (vraies FPs : Credo latin, Gish gallop/Creepypasta/Whataboutism emprunts, Celarent/Camestres mnémoniques latins — le FR canon les garde non traduits).

Mea culpa sur la cellule Johnny : j'avais mal lu le FR canon en #644. Le scanner reproductible a corrigé l'arbitrage manuel — c'est exactement sa valeur.

Relates #633, #647.

jsboige added a commit that referenced this pull request Jul 3, 2026
… (6 langs, gpt-5.5) (#644 correction) (#653)

Record path=6.1.3 (FR canon "Johnny au Panthéon") had duplicated titles
"Johnny Johnny" (or transliterated equivalent) in EN/RU/AR/ES/ZH/FA. Only PT
was correct ("Johnny no Panthéon"). This is a REAL defect (not the FP I
arbitrated in #644 — the committed scanner 2026-07-02-scan-translations.py
confirms it objectively: title_zh 0% CJK, 12 chars, the only residual finding
on master).

Retranslated the 6 titles via gpt-5.5 Responses API (effort=low, recipe
[[gpt55-responses-api-effort-low]]) with scenario context anchored (Johnny
Hallyday, Panthéon de Paris):
  EN: Johnny at the Panthéon
  RU: Джонни в Пантеоне
  AR: جوني في البانتيون
  ES: Johnny en el Panteón
  ZH: 约翰尼在先贤祠
  FA: جانی در پانتئون
PT untouched (was already correct).

Cell-level anchored replace (no csv.writer rewrite):
- NO BOM preserved (verified first bytes = "pat", not efbbbf)
- CRLF preserved (168 CRLF, 0 bare-LF)
- diff = 1 line (all 6 cells on same CSV row)
- scanner re-run: TOTAL 0 (6.1.3 no longer flagged)

Corrects my #644 verdict "KEEP, nom propre" which was wrong — the scanner
(reproducible) overrode my manual call. Assumed, lesson logged.

Relates #633, #644. Base master aa926ff.

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
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.

3 participants