data(virtues): complete EN/RU translation gaps - #290
Conversation
Fill missing translations in Virtues taxonomy CSV: - EN: pk 15 (Reputable journal), 61 (Representative sampling), 62 (Taking exceptions into account), 63 (Legitimate transfer), 109 (Ferio syllogism) - RU: pk 165 (Определение точек внимания), 166 (Учёт конфликта интересов), 167 (Стремление к объективности) All 223 Virtues records now have 100% EN, RU, and PT coverage. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
Review automatique — ClusterManager (myia-ai-01)
Verdict : APPROVE
Argumentum Virtues — Taxonomy.csv : Remplissage des gaps de traduction EN/RU pour 9 entrées (lignes 15, 61-63, 109, 165-167). Traductions cohérentes avec le reste du fichier, URLs Wikipédia correctes. Ajout BOM en header (mineur, standard CSV UTF-8).
RAS.
— ClusterManager (myia-ai-01) [CRON:review-pr 13:15Z]
jsboige
left a comment
There was a problem hiding this comment.
Review ai-01 — cycle 35
Verdict : 🟢 Approve avec note non-bloquante.
Convention checklist
- ✅ Diff sanity : +9/-9 lignes, 1 fichier, surgical (8 records + header)
- ✅ Format CSV : 38 colonnes préservées, dialect cohérent
- ✅ No FR regression : aucune cellule FR touchée, seuls les cells EN (5) et RU (3) ciblés sont modifiés
- ✅ Sample qualité (8/8 records reviewés) :
- pk=15 "Reputable journal" / FR "Journal réputé" — ✓ idiomatique
- pk=61 "Representative sampling" / FR "Echantillonnage représentatif" — ✓ canonique
- pk=62 "Taking exceptions into account" / FR "Prise en compte des exceptions" — ✓ littéral exact
- pk=63 "Legitimate transfer" / FR "Transfert licite" — ✓ précis
- pk=109 "Ferio syllogism" / FR "Syllogisme Ferio" — ✓ nom latin préservé
- pk=165 "Определение точек внимания" / FR "Identifier les points de vigilence" — ✓ (≈ "warning signs" EN existant — légère nuance "attention points" vs "warnings", acceptable)
- pk=166 "Учёт конфликта интересов" / FR "Prise en compte des conflits d'intérêt" — ✓ direct
- pk=167 "Стремление к объективности" / FR "Effort d'objectivité" — ✓ idiomatique
- ✅ CI verts : Build Debug + Release + GitGuardian tous SUCCESS
- ✅ Glossaire respecté : N/A pour Virtues (pas de terme glossaire critique type "baratineur")
⚠ Note non-bloquante : BOM UTF-8 réintroduit
Le diff ajoute un BOM UTF-8 () en tête du fichier :
-pk,path,depth,...
+pk,path,depth,...
Constat :
- Local
Argumentum Virtues - Taxonomy.csv(avant ce PR) : PAS de BOM (70 6b 2c=pk,) Argumentum Fallacies - Taxonomy.csv: PAS de BOMArgumentum Scenarii - Cards.csv: PAS de BOM
→ Le BOM est une regression vs convention établie (cf. CLAUDE.md global: "UTF-8 BOM ... breaks parsers. Use UTF8Encoding($false)"). Note dashboard mentionnait aussi "Bug BOM UTF-8 corrigé" pour DatasetUpdater Virtues — récurrence.
Impact technique vérifié :
- ✅ Pipeline .NET :
CsvBase.cs:29utiliseFile.ReadAllText(path)qui auto-détecte et strippe le BOM → pas d'impact runtime sur Argumentum - ⚠ Outils tiers (Python
csv.DictReader, scripts bash, upload GSheet) peuvent ne pas stripper → headerpk≠pkcasserait le mapping - ⚠ GDrive sync : risque de cycle BOM/no-BOM si pull/push alterné
Recommandation : merge ce PR (utile pour combler les 8 gaps), mais prévoir un commit suivi chore(data): strip BOM from Virtues CSV pour aligner avec les 3 autres CSVs et éviter régressions Python/GSheet futures.
🤖 Generated with Claude Code
Rebased onto master (post PR #290 merge). Standardize subfamily and subsubfamily translations across 223 Virtues records for EN, RU, PT. 75 field changes, 0 inconsistencies remaining. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Scenarii row 9 (path 1.2.4): "Olympus of Gouge" → "A suffragette" (EN drawer) - Scenarii row 9 (path 1.2.4): "Um sufrágio" → "Uma sufragista" (PT drawer_pt) - Strip UTF-8 BOM from Virtues CSV (introduced by PR #290) - Strip UTF-8 BOM from Scenarii CSV (introduced by PR #291) Olympe de Gouges is a French historical figure (suffragette), not a mountain. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ue (0 Cards/) (#619) TERTIAIRE of ai-01 deep-queue supersede (msg-...370u0q). Read-only scoping of the #202 "bulk EN translation" backlog. Reframe (stale-dispatch pattern, like #609/#618): #202's Phase-2 bulk counts (Simple_name_en 1348 empty, political_example 1373 empty) are 2-year-old and contradict the live census. Census on master 18b4d02: - Fallacies core text (desc/example/text x8 langs) = 100% (census #609). - Only 6 _en columns total. EN > FR source on the bulk-secondary ones: nom_vulgarisé (FR=3%) vs Simple_name_en (EN=4%) -> 25 translatable exemple politique (FR=3%) vs political_example_en (EN=2%) -> 10 => EN cells were curated directly in English; FR SOURCE is ~97% empty. Cannot translate content never authored. - Genuinely FR->EN translatable residue = ~35 cells total (trivial). - Scenarii baratineur leak = 0/167 (Phase-2 resolved). Virtues i18n = 100% (#218/#236/#246/#290/#295). Rules PT fixed (#306). - Real i18n gap = link_* (lane #600/#618, DONE), not text. Recommendation: close or re-scope #202. The concrete residue is (a) FR source editorial authoring (lane #191, human, not translation), (b) a ~35-cell micro-pass, (c) link_*/AIF lanes already tracked. Do NOT launch a bulk EN run — no source to translate on secondary cols, core is 100%. Memory i18n-coverage-gap-is-link-urls honored (measure FR-relatively). Scope: docs/taxonomy/202-bulk-en-scoping.md only. 0 write Cards/, 0 AssetConverter code change (pre-tag safe). Base 18b4d02. Relates to #202, #191, #609, #600, #618. Co-authored-by: Your <your.email@example.com> Co-authored-by: Claude-Code <noreply@anthropic.com>
Summary
Details
Test plan
🤖 Generated with Claude Code