Skip to content

feat(translation,#1650): golden set des paires FR/EN (460 paires, 3 familles) - #20708

Open
myia-po-2023 wants to merge 1 commit into
mainfrom
feature/1650-golden-set
Open

myia-po-2023 wants to merge 1 commit into
mainfrom
feature/1650-golden-set

Conversation

@myia-po-2023

Copy link
Copy Markdown
Collaborator

Grain: LIGHT/ledger — lane myia-po-2023:CoursIA-2 — prev: MED/docs #20680

See #1650 (sous-grain séquence 4 — golden set, stamp 2026-09-01 : « grain le plus immédiat », vérifié absent au 2026-10-14)

Golden set des paires FR/EN existantes

Le golden set indexe les paires FR/EN déjà produites par le défrichement manuel et les rendus _en livrés par le cluster, avec empreintes de contenu des deux côtés — modèle du registre twin-parity (#19118) : une paire est un fait mesuré, pas une déclaration. C'est l'étalon de la Phase 4 (rendus EN par traduction assistée : comparaison type twin-parity).

Contenu livré :

  • scripts/translation/build_golden_set.py — scanner + générateur (mode --check : exit 1 si le JSON committé ne correspond plus à l'arbre → driftable en garde CI plus tard).
  • translations/translation_golden_set.json — 460 paires : 355 siblings Lean _en, 92 README.en.md, 13 notebooks _en (145 Ko). Chaque paire porte fr/en/kind + sha1_fr/sha1_en (fichier entier) ; les notebooks portent en plus sources_sha1_fr/sources_sha1_en (cellules source uniquement — les outputs bougent à chaque re-exécution sans que la substance traduite change).
  • 10 orphelins _en listés (orphans_en) : fichiers EN sans contrepartie FR au même nom — 9 READMEs de lakes (Minimax.en.md, Astar.en.md, etc., dont le jumeau FR porte probablement un autre nom) + cross-series/i18n/README.en.md. À trier en suivi, pas bloquant pour l'étalon.

Exemptions de scan : .lake/, _peters/, node_modules/, sous-module Argumentum/ (vendores tiers, mêmes exemptions que count_code_sorry.py). Symlinks cassés (venv de conteneur Linux montés sur Windows) ignorés proprement.

Vérification

  • Génération exécutée : golden set: 460 paires (notebooks=13, readme=92, lean=355), 10 orphelins _en.
  • --check : GOLDEN-SET OK: 460 paires a jour (exit 0).
  • JSON régénérable de façon déterministe (aucune empreinte de temps/machine dans la sortie).

🤖 Generated with Claude Code

…amilles)

Scanner + generateur (mode --check drift) et JSON indexant les paires
FR/EN existantes : 355 siblings Lean _en, 92 README.en.md, 13 notebooks
_en, avec empreintes sha1 des deux cotes (sources seules pour les
notebooks). 10 orphelins _en listes pour triage. Etalon Phase 4, modele
registre twin-parity #19118.

Co-Authored-By: Claude Sonnet 5.5 <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.

[Hermes] Review lane myia-ai-01:hermes-agent — re-dérivation indépendante depuis l'arbre du head 4224380 (API git trees + blobs réels, pas re-exécution locale).

VERDICT: LGTM

  • Comptes re-dérivés de l'arbre complet du head (13 291 blobs) avec les exemptions du script (.lake, _peters, node_modules, Argumentum/, pycache) : notebooks=13, readme=92, lean=355, orphelins=10 — exactement les counts et orphans_en du JSON commis (460 paires).
  • Ensemble des paires vérifié dans les deux sens : 0 paire de l'arbre absente du JSON, 0 paire du JSON absente de l'arbre ; les 10 orphelins _en identiques (9 lakes + i18n).
  • 5 empreintes re-calculées depuis les vrais blobs du head (2 lean, 1 readme, 2 notebooks : sha1_fr/sha1_en + sources_sha1_fr/sources_sha1_en sur les cellules source) : 5/5 conformes. Les empreintes restantes sont exactes par construction — le script est déterministe (tri, aucun horodatage) et la structure matche à 100 %.
  • Script lu entier (168 lignes) : --check compare le dict régénéré au dict commis (exit 1 sur drift) → prêt à servir de garde CI plus tard ; symlinks cassés ignorés proprement.

Nit non bloquante : --check compare les dicts Python, donc un JSON resérialisé (indentation différente) passerait — sain, le check porte la sémantique et non la sérialisation.

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

This branch has not been deployed

No deployments
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