Repository navigation
chore(notebooks,#15429): split T5 ML/Probas — normalisation source str->list - #15445
Conversation
…str->list sur les notebooks ML/Probas See #15429 (T5/T8). Contenu identique cellule par cellule : 17 conversions str->list verifiees par script (source joinee == source str d'origine, zero drift outputs/execution_count/metadata). Reprise du contenu de chore/14209-normalize-residue a1e83ff sur origin/main frais. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
G-VAR-2 light cap reached (advisory, non bloquant). |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Path-collision (organ #13359/#13615)Cette PR #15445 (
|
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] — couverture #15445 (tranche T5 du split #15429 — famille ML/Probas, 0 review cluster sur le SHA)
Vérifications :
- Diff : 17 adds
"source": [/ 17 dels"source": "— table du body exacte (Lab3×5, Lab5×5, Lab6×5, Infer-16×2), 0 string-source ajoutée. - Golden-Set CI 8/8 PASS au head — cohérent avec une transformation de forme uniquement.
- Sécurité : 0 match.
…}\n ; précédent #14642 le préservait). Non-bloquant, fix trivial au moment de la clôture du split.
Verdict : neutre et sain — même point d'hygiène familial.
…OF drift #15429) Le writer de normalisation source str->list a perdu la newline finale des notebooks modifies (fin `}` au lieu de `}\n` comme sur main). Restauration d'un octet par fichier : les blobs redeviennent suffixe-identiques a main, contain JSON/nbformat inchange. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
…lization The split converted notebook `source` fields to the list form, moving the blob SHAs of the registered twin pair Probas-16 Sparse-Gaussian-Process without a re-audit. Canonical rebaseline via check_twin_parity.py --update (after the EOF newline repair), per the twin-parity gate contract (#8057). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ge la collision d'ordinal (See #15429) Suite au diagnostic firsthand d'ai-01 sur #15446 : le rouge du garde n'etait pas la normalisation str->list mais une COLLISION D'ORDINAL. La tete portait, dans chaque repertoire, deux fichiers au meme prefixe 0010 (celui de cette PR et le 0010-2026-09-08-myia-po-2024-CoursIA-2.yaml deja sur main), et le 0011 venu de main (#15449, T8) attestait l'etat PRE-normalisation sous un ordinal superieur a celui que cette PR avait alloue. L'outil lit la derniere attestation : il voyait e0cc5d3 la ou l'arbre porte 41aacfc. Geste applique, conformement a la prescription d'ai-01 (on RETIRE l'entree dupliquee et on re-atteste au-dessus, pas de renumeration en cascade) : - git rm des deux 0010-2026-09-10-myia-po-2023-CoursIA.yaml (collision d'ordinal) - le 0011 de main (T8) est conserve tel quel, byte-identique : sha256 386e2daac1a0 (gametheory) et 00f600db8795 (sudoku) verifies contre origin/main - --update --pair alloue 0012-2026-09-11 dans les deux repertoires Verification: - garde --check : les 2 paires passent. DRIFT=3 residuel = Probas-16, SW-2, SW-7, collisions PRE-existantes sur main introduites par a1ae006 (T5, #15445) et couvertes par la PR #15576 ouverte -- hors champ de cette PR. - integrite registre : 45 passes ; le seul echec ne liste que ces 3 paires de main, aucune des deux de cette PR. - diff net vs origin/main = +2 fichiers d'attestation + 2 lignes known_differences (le 0011 restaure etant byte-identique a celui de main). - notebooks non touches : leur contenu est bon, la neutralite semantique de la conversion source str->list est verifiee (SHA canonique identique base vs head). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…tion source str->list (#15446) * chore(notebooks,#14209): tranche T7 du split -- normalisation source str->list sur GameTheory/Sudoku/RL/QC See #15429 (T7/T8). Contenu identique cellule par cellule : 10 conversions str->list verifiees par script (source joinee == source str d'origine, zero drift outputs/execution_count/metadata). Reprise du contenu de chore/14209-normalize-residue a1e83ff sur origin/main frais. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(notebooks,#14209): restore final newline on split tranche T7 (EOF drift #15429) Le writer de normalisation source str->list a perdu la newline finale des notebooks modifies (fin `}` au lieu de `}\n` comme sur main). Restauration d'un octet par fichier : les blobs redeviennent suffixe-identiques a main, contain JSON/nbformat inchange. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(twin-parity,#15429): rebaseline T7 twin pairs after source normalization The split converted notebook sources to the list form, moving the blob SHAs of 2 registered twin pairs (GameTheory-10 ForwardInduction-SPE, Sudoku-14 BDD) without a re-audit. Canonical rebaseline via check_twin_parity.py --update (after the EOF newline repair), per the twin-parity gate contract (#8057). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(ci,#15446): attestation twin parity des 2 paires T7 + renumeration du journal d'audit local (See #15429) Le garde Twin parity audit (#8057) rougissait sur 2 paires du champ de cette PR : GameTheory-10 ForwardInduction-SPE et Sudoku-14 BDD. Re-audit firsthand AVANT attestation (le garde exige d'attester la parite, pas de la reparer). Mesure sur les 4 jumeaux : le SHA canonique du carnet -- toutes les listes-de-chaines jointes, metadata de niveau carnet exclue -- est IDENTIQUE base (origin/main) vs head, et les champs `text` des sorties sont inchanges. L'empreinte de forme montre la seule difference : source_str passe a 0 et source_list gagne exactement les cellules correspondantes (GameTheory-10 Python 2->0 / 35->37 ; Sudoku-14 C# 2->0 / 42->44). Aucun contenu pedagogique touche. Le content_sha du registre (_content_sha hache la forme brute du JSON, donc un re-encodage str->list le deplace autant qu'une edition de prose) bougeait sans divergence : d'ou attestation via --update. Collision d'index propre a la branche : les deux repertoires portaient DEUX fichiers au prefixe 0010 (un po-2024 09-08 herite de main, un po-2023 09-10 local). L'index zero-padde NNNN est la cle de tri de _load_audits_from_files (#14911/#15345), donc renumeration 0011->0012 puis 0010->0011, en preservant l'ordre du journal. Verification : le contenu de chaque fichier renomme est byte-identique a sa source (sha256 : 7b6e04a864f1 et 386e2daac1a0 sur gametheory, 0208891eec5d et 00f600db8795 sur sudoku). Note de lecture : git apparie 0010 -> 0013 dans l'affichage du diff (les YAML d'attestation sont quasi identiques, l'heuristique de renommage est arbitraire ici). Le contenu de l'arbre est le seul verdict et il est verifie : ordre final du repertoire = 0009, 0010 (po-2024 09-08), 0011, 0012, 0013. - 2 entrees d'audit 2026-09-11 (myia-po-2023:CoursIA), forme file-per-audit #14911 - ligne explicative en tete de known_differences de chaque paire - per-pair vs origin/main : INTRO=0 (etait 2), OK=154/157, PRE=3 inchange (Probas-16, SW-2, SW-7 : DRIFT pre-existants sur main, hors champ de cette PR) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(ci,#15446): attestation twin parity T7 a l'ordinal 0012 — corrige la collision d'ordinal (See #15429) Suite au diagnostic firsthand d'ai-01 sur #15446 : le rouge du garde n'etait pas la normalisation str->list mais une COLLISION D'ORDINAL. La tete portait, dans chaque repertoire, deux fichiers au meme prefixe 0010 (celui de cette PR et le 0010-2026-09-08-myia-po-2024-CoursIA-2.yaml deja sur main), et le 0011 venu de main (#15449, T8) attestait l'etat PRE-normalisation sous un ordinal superieur a celui que cette PR avait alloue. L'outil lit la derniere attestation : il voyait e0cc5d3 la ou l'arbre porte 41aacfc. Geste applique, conformement a la prescription d'ai-01 (on RETIRE l'entree dupliquee et on re-atteste au-dessus, pas de renumeration en cascade) : - git rm des deux 0010-2026-09-10-myia-po-2023-CoursIA.yaml (collision d'ordinal) - le 0011 de main (T8) est conserve tel quel, byte-identique : sha256 386e2daac1a0 (gametheory) et 00f600db8795 (sudoku) verifies contre origin/main - --update --pair alloue 0012-2026-09-11 dans les deux repertoires Verification: - garde --check : les 2 paires passent. DRIFT=3 residuel = Probas-16, SW-2, SW-7, collisions PRE-existantes sur main introduites par a1ae006 (T5, #15445) et couvertes par la PR #15576 ouverte -- hors champ de cette PR. - integrite registre : 45 passes ; le seul echec ne liste que ces 3 paires de main, aucune des deux de cette PR. - diff net vs origin/main = +2 fichiers d'attestation + 2 lignes known_differences (le 0011 restaure etant byte-identique a celui de main). - notebooks non touches : leur contenu est bon, la neutralite semantique de la conversion source str->list est verifiee (SHA canonique identique base vs head). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: jsboige <jsboige@gmail.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
… SW-7) -- attestation T8 restauree au rang latest (#15970) La normalisation source str->list (#15444/#15445, merge 2026-09-11) etait correctement attestee par #15449 (T8), mais le journal file-per-audit porte une inversion d'ordre : par paire, l'entree du 09-10 a shas POST-tranche est suivie d'une entree a shas PRE-tranche ecrite en dernier dans la meme PR ; _latest_audit lit audits[-1], donc la garde comparait HEAD post-tranche a une baseline pre-tranche -> 3 DRIFT fantomes sur main. Le renumber #15576 (#15345) a preserve l'ordre relatif, l'inversion a survecu. Zero edition de notebook : texte rendu identique verifie programmatiquement sur les 3 fichiers modifies par la tranche (Infer-16 C# 32 cellules, SW-2b 43, SW-7b 48 -- comparaison normalisee join-liste vs str, aucune divergence, outputs/ids/ordre intacts). Rebaseline d'attestation par script : 3 entrees audit 2026-09-13 (shas HEAD, egaux aux entrees T8 enterrees 0009/0006/0007) + narrations known_differences. --update en DERNIERE operation (cf #8957). Verifications : check_twin_parity --check -> 157/157 OK DRIFT=0 ; test_twin_registry_integrity -> 46 passed. See #15429 See #15345 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: LIGHT/notebook-python — lane myia-po-2023:CoursIA — prev: LIGHT/notebook-python #15444
Summary
See #15429 — tranche T5/T8 du split de #15146 : les familles ML DataScienceWithAgents + Probas/Infer, soit les notebooks
Lab3-CV-Screening,Lab5-Viz-ML,Lab6-First-Agent(Track1-LangChain) etInfer-16-Sparse-Gaussian-Process.Méthode
Branche
chore/14209-split-T5-ml-probasdepuisorigin/mainfrais (76d7a5b), worktree isolé, reprise à l'identique du contenu du résidu (chore/14209-normalize-residuea1e83ff).Preuve de neutralité sémantique
"".join(nouvelle source) == source str d'originepour chaque cellule.source(outputs, execution_count, metadata cellule ET notebook, id, ordre des cellules).nbformat.validate: les quatre passent.Reste du split (#15429)
T7 (GameTheory + Sudoku + RL + QC research/projects), T2 (Search, à sous-splitter T2a/T2b), T8 (attestations twin). Vérification finale « 0 cellule string » et
Closes #14209: portés par la dernière tranche.🤖 Generated with Claude Code