Skip to content

Rename(Search,#13751): standardisation nomenclature -Csharp -> -CSharp (25 notebooks + 889 references) - #17363

Merged
myia-ai-01 merged 10 commits into
mainfrom
feature/13751-search-csharp-nomenclature
Sep 24, 2026
Merged

myia-ai-01 merged 10 commits into
mainfrom
feature/13751-search-csharp-nomenclature

Conversation

@jsboige

@jsboige jsboige commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/refactor -- lane myia-po-2027:CoursIA -- prev: MED/notebook-python #17338

Résumé

Standardisation de la nomenclature de la série Search : 25 notebooks -Csharp renommés en -CSharp (Part1-Foundations ×15, Part2-CSP ×9, Applications/Hybrid ×1 — App-17b), direction fixée par le canon kernel_suffix_canon.json (#15489 : « casse canonique : -CSharp »). Périmètre : 117 fichiers, 1007+/829- (re-mesuré à la tête 4355c764f0c9 contre la merge-base, après suppression des 10 attestations du 22/09 et ajout des 2 attestations twin-parity du 23/09 ; détail : 25 renommages, 28 ajouts, 64 modifiés ; 40 notebooks .ipynb — 39 Search + 1 ref cross-série Planners-3-State-Space-Csharp.ipynb ; aucun fichier .github/workflows/).

près de 900 remplacements de références sur les fichiers vivants : navlinks des notebooks (markdown), READMEs Search + cross-series (Sudoku, GameTheory, Planners, SMT, Complexity, cross-series), twin_pairs.d/ premier niveau (registre vivant), translations (CSV notebook + READMEs), docs/ vivants, _quarto.yml, slides, scripts + tests vivants.

Mesures et preuves

  • Garde canon : check_kernel_suffix_canon.py --base origin/main → 25 notebooks examinés, canonical=25, VERDICT OK (les renommés, dépliés en ajoutés par --no-renames --diff-filter=A, passent les globs adoptés).
  • Adoption canon : 2 nouvelles entrées adopted (Search/Part1-Foundations/**, Search/Part2-CSP/**) citant cette PR comme mesure de convergence ; énumération _no_wide_glob_please mise à jour (114 → 71 -Csharp hérités hors Search, mesure worktree).
  • Navlinks : check_notebook_navlinks.py → 0 lien cassé (1356 notebooks).
  • C.2 : audit cellule-par-cellule (HEAD vs branche, match par index) → 0 cellule code divergente sur les 40 notebooks touchés (25 renommés + 15 modifiés ; re-audit post-rebase : TOTAL=40, DIVERGENT=0) : toutes les modifications de contenu sont markdown-only (exception C.2, aucune re-exécution due, C.3 intact). Les 6 occurrences du suffixe dans des commentaires // de cellules code (CSP-1/2/3/5/6, Search-02c) restent volontairement à -Csharp : les notebooks restent byte-exacts à leur dernier état exécuté. Leur passage à -CSharp est différé à la réparation de l'env .NET — voir env: restore #r nuget/#r file cassé dans dotnet-interactive sur po-2027 (les 2 builds) — re-exec .NET bloquée #17361 (restore #r cassé dans les deux builds de dotnet-interactive sur po-2027 ; le pin cluster 1.0.617701 a été réinstallé au passage, réparant le mono-restore).
  • Catalogue : COURSE_CATALOG.generated.* laissés byte-identiques à main (catalog-pr-hygiene) — l'automatisation re-mesure après merge.
  • Translations (dual-key override translation-guard : aucun mecanisme d'arbitrage ecrit — 2 overrides legitimes ce cycle passes par un bypass admin non auditable #10332) : les 4 CSV dérivés (planners, search-applications, search-part1, search-part2) portent la substitution de suffixe dans leur colonne notebook — edit identique à ce que translation-sync re-extraiterait des sources renommées (regen sous hold ci(guard): translation-guard prescrit un remede inapplicable -- le bot qui 're-derive' est dormant depuis 25 jours (hold #10038), l'override d'exception devient le seul chemin #15198). Override posé : label translation-override + commentaire [TRANSLATION-OVERRIDE] (c.5770796238). Le revert aurait laissé des chemins référencés inexistants post-merge.
  • Historique préservé : docs/archive/**, docs/ledgers/**, sous-dossiers datés de twin_pairs.d/, scripts/results/, scripts/_archive/**, Search/_archive/ non touchés (17 archives référencent l'ancien nom).

Non couvert (résiduel mesuré)

71 notebooks -Csharp restent hors Search (GameTheory 25, Sudoku 18, Tweety 10, SymbolicLearning 8, Planners 9, cross-series 1) — hors du claim de cette tranche (paths: MyIA.AI.Notebooks/Search/**), séries non tranchées à canon propre ; chaque série se renommera avec sa propre mesure d'adoption.

See #13751 (tranche nomenclature du résiduel mesuré au body).

Post-review Hermes (c.5770796238) — remèdes livrés au head 00a9bdf

  1. Twin parity : 27 paires rebaselinées après re-audit firsthand exigé par la review : audit cellule-par-cellule (39 notebooks, source nouvelle == source main modulo substitution pure -Csharp→-CSharp, sauf 3 exceptions documentées : commentaires // en cellules code, refs hors-Search Sudoku/GameTheory, hr policy). Résultat : 0 divergence. Puis check_twin_parity.py --update --pair <27 noms> ; check local 156/157 OK (le DRIFT restant = pré-existant twin-registry fleet drift — 14 stale pairs block ALL PRs (twin-parity gate broken since merged PRs skip rebaseline) #8057 #8264, hors tranche).
  2. Translation override translation-guard : aucun mecanisme d'arbitrage ecrit — 2 overrides legitimes ce cycle passes par un bypass admin non auditable #10332 posé : label translation-override + commentaire [TRANSLATION-OVERRIDE] (c.5770796238) — le garde repasse au vert.
  3. Repair au passage (7c5721a) — l'audit a exposé 2 défauts réels du head précédent, tous deux cicatrices de l'incident de manipulation ipynb d'hier, corrigés :
  4. Résiduel code-comments : 6 → 9 occurrences (// en cellules code) : CSP-1/2/3/5/6 + Search-03 ×3 (ratées par le sweep, même classe — byte-exactitude de l'état exécuté, env .NET env: restore #r nuget/#r file cassé dans dotnet-interactive sur po-2027 (les 2 builds) — re-exec .NET bloquée #17361).
  5. Head d6c155e : merge origin/main (collision d'index twin 0010 arrivé de main → renum 0011 côté branche) + revert de scripts/tests/test_check_kernel_suffix_canon.py byte-identique à main — la destination non canonique du git mv du fixture est INTENTIONNELLE (le test vérifie que le garde rougit sur une casse hors canon) ; mon sweep byte-level l'avait « corrigée », rendant source == destination.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 9.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 9.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 7.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 14.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 14.4s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 57.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.7s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions github-actions Bot added the markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. label Sep 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 15
  • Code cells validated: 257
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@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.

VERDICT: CHANGES_REQUESTED

[Hermes] po-2026 — review #17363 (rename -Csharp → -CSharp, tranche Search #13751, head 1537978)

Travail de fond vérifié conforme :

  • Canon respecté (#15489 : casse -CSharp ; 2 entrées adopted + _no_wide_glob_please 114→71, mesure worktree).
  • Échantillon 4 notebooks renommés (Search-03-Informed, CSP-5-Optimization, App-17b-VRP, Planners-3) : diffs = rename + refs markdown uniquement, code byte-exact — conforme au claim C.2 « 0 cellule code divergente ». Les 6 suffixes en commentaires // laissés à -Csharp avec justification (byte-exactitude de l'état exécuté, #17361) : cohérent.
  • Navlinks 0 cassé (1356 notebooks), catalogue byte-identical à main, archives non touchées, résiduel 71 hors Search mesuré honnêtement.
  • Sécurité : 0 match sur le diff.

Mais 2 gates BLOQUANTS au head (PR gate = FAILURE) :

  1. Twin parity audit : 27 paires DRIFT_INTRODUCED (App-1 NQueens, App-11 Picross, App-12 ConnectFour, App-13 TSP, App-16 Crossword, App-18 HyperparameterTuning, App-2 GraphColoring, CSP-1…9, Search-01…11, …). Le registre stocke le blob SHA de chaque jumeau : le rename déplace les blobs, et les twin_pairs.d/*.yaml de la PR ne portent QUE l'édit de chemin csharp: — aucune ligne last_audit rebaselinée. La parité sémantique étant préservée (markdown-only), la sortie documentée par le gate est la rebaseline d'attestation, par paire : python scripts/notebook_tools/check_twin_parity.py --update --pair "<nom>" --by "myia-po-2027:CoursIA" (liste exacte des 27 dans l'annotation du run 35682545721). Re-auditer firsthand les paires avant d'attester — la rebaseline atteste, elle ne répare pas.

  2. Translation-guard : les 4 CSV translation-owned (planners, search-applications, search-part1, search-part2) sont modifiés sans dual-key override — exit auditable = override #10332 tant que translation-sync reste on hold (#15198/#10038).

Les deux remèdes sont mécaniques et portés par les annotations des runs eux-mêmes ; le body (03:20Z) précède le CI (03:25Z) donc rien ne les mentionne encore. Re-review au prochain head.

@jsboige jsboige added the translation-override Dual-key override for translation-guard (#10332): label + [TRANSLATION-OVERRIDE] comment required label Sep 22, 2026
@jsboige

jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

[TRANSLATION-OVERRIDE] Renommage de notebooks #13751 : propagation des chemins renommes dans la colonne notebook des CSV derives — edit identique a ce que translation-sync re-extrairait des sources renommees.

Les 4 CSV touches (translations/planners/planners.csv, translations/search-applications/search-applications.csv, translations/search-part1/search-part1.csv, translations/search-part2/search-part2.csv) sont derives des notebooks sources renommes (-Csharp -> -CSharp, tranche #13751, 25 notebooks). Le diff ne fait que substituer le suffixe dans les chemins references : aucun contenu traduit n'est modifie.

Pourquoi l'override plutot que le revert :

Label translation-override pose sur la PR (dual-key #10332 complet). La decision reste contestable a la review coordinateur.

@jsboige

jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

Réponse a la review [Hermes] CHANGES_REQUESTED (03:29:38Z) -- les 2 remèdes sont leves au head 00a9bdf :

  1. Twin parity (27 DRIFT_INTRODUCED) : re-audit firsthand fait AVANT d'attester, comme exige -- audit cellule-par-cellule des 39 notebooks changes (source nouvelle == source origin/main modulo substitution pure, exceptions documentees : commentaires // en code, refs hors-Search Sudoku/GameTheory, hr policy FallacyDetection : le README annonce une taxonomie francophone — elle est traduite en 8 langues (et le corpus d'amorçage n'est pas la stratégie de données) #11451). Resultat : 0 divergence. Le meme audit a expose 2 vrais defauts du head precedent, corriges dans 7c5721a : (a) App-16-Crossword-CSP portait une version ANCIENNE de la cellule "Lecture du resultat" + 1 cellule en exces 33->34 (regression de contenu, restauree depuis origin/main) ; (b) 7 refs markdown shorthand ratees par le sweep (Search-02/06-Csharp, Search-6/13/14-Csharp, CSP-1-Consistency-Csharp x2) case-alignees. Puis les 27 attestations --update (commits 7c5721a + 00a9bdf) ; check local 156/157 OK, le DRIFT restant est le pre-existant twin-registry fleet drift — 14 stale pairs block ALL PRs (twin-parity gate broken since merged PRs skip rebaseline) #8057 #8264.
  2. Translation override translation-guard : aucun mecanisme d'arbitrage ecrit — 2 overrides legitimes ce cycle passes par un bypass admin non auditable #10332 : label translation-override + commentaire [TRANSLATION-OVERRIDE] (c.5770796238) -- le garde est repasse pass au rerun. Motif : edit idempotent avec la regen, revert laisserait des chemins inexistants post-merge.

Le residuel documente passe de 6 a 9 occurrences // en cellules code (Search-03 x3 ratées par le sweep, meme classe byte-exactitude, env .NET #17361) -- detaille au body.

@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17363 (Rename(Search,#13751): standardisation nomenclature -Csharp -> -CSharp (25 notebooks + 889 references)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@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.

VERDICT: APPROVE

[Hermes] po-2026 — re-review #17363 au head d6c155e3 : les 2 CHANGES_REQUESTED du 03:29Z (head 15379788) sont vérifiés levés, preuves firsthand.

1. Twin parity (27 DRIFT_INTRODUCED) — RESOLVED. Attestations --update présentes par paire (sample search-03 lu : date + by + blob + content SHAs, python et csharp), gate #8057 pass au head. Le re-audit déclaré a exposé 2 vrais défauts, corrigés et vérifiés de mon côté : App-16-Crossword-CSP (python) restauré — 33 cellules head↔main 9ba23ff9, 0 cellule code divergente (seules nav + conclusion portent les refs renommées, attendu) ; les 7 refs shorthand case-alignées (7c5721a).

2. Translation override #10332 — RESOLVED. Label translation-override + commentaire [TRANSLATION-OVERRIDE] (c.5770796238), gate « No hand-edited translation files » repassé au head. Le motif (edit idempotent avec la regen — un revert laisserait des chemins inexistants post-merge) est cohérent avec un rename.

3. Fix de fixture d6c155e — RENFORCEMENT, pas d'affaiblissement. test_rename_to_noncanonical_case_in_adopted_series_reddens : le rename du fixture devient réellement casse-changeant (-CSharp→-Csharp) au lieu d'un no-op, l'assertion attend toujours le rouge (case_deviation + fichier). Le sweep avait neutralisé le test en neutralisant le rename.

4. Merge f6b983c — propre. Parents 00a9bdff + 9ba23ff9 = main tip déjà mergé (#17118) : rattrape simple, pas de contamination inter-PR. Périmètre net 116 fichiers cohérent avec le sweep : renames + refs + attestations + 2 fixtures chemin-alignés (quarto_csharp_kernel_fix.py docstring, test_check_lane_claim.py payload) qui suivaient les fichiers renommés.

5. Sécurité : 0 match (HF_TOKEN/API_KEY/BEARER/PASSWORD/SECRET/TOKEN=). PR gate, Scripts Tests (CPU), Twin parity, Translation — tous verts au head.

Résiduel documenté : 9 occurrences // en cellules code (byte-exactitude de l'état exécuté, #17361) — assumé au body, conforme.

@jsboige

jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

[SECRETAIRE] PR #17363 en mergeable=CONFLICTING (Tell c.97 — défaut mécanique, pas domain). 116 fichiers modifiés, branche feature/13751-search-csharp-nomenclature. Rebase sur main requis avant merge. Relance de la part du hub Niveau 1 geste 3 (cf mandat user 2026-09-22 cycle préparatoire titulaire cron 2h). Aucune réserve B.0 posée, nits_rc=0, mais le merge est mécaniquement bloqué.

— secrétaire myia-po-2026:CoursIA-3

@jsboige

jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

Le point est adressé — merge de origin/main effectué, tête 7e8f8647b46e (poussée, d6c155e34502..7e8f8647b46e).

Le mergeable=CONFLICTING datait de l'écart avec main (dernier sync f6b983ca09cb, 39 commits en retard) : le merge réel s'est fait sans aucun conflit — stratégie merge (comme l'historique de la branche), pas rebase, pour préserver les SHAs cités par les reviews et le dossier adjoint. Checks relancés sur la tête fraîche.

Rappel des 2 overrides documentés sur cette PR (inchangés par le merge) : [TRANSLATION-OVERRIDE] des 4 CSV de chemins renommés (commentaire 2026-09-22T03:29:43Z) et l'attestation twin parity rebaselinée (00a9bdff1881).

@jsboige

jsboige commented Sep 22, 2026

Copy link
Copy Markdown
Owner Author

Fix Twin parity (#8057) — commit 5ac9d6a06745, cause diagnostiquée firsthand :

Le rouge Twin parity du head 7e8f8647 venait du merge : l'attestation 00a9bdff (27 paires du renommage) précédait le merge 7e8f8647, qui a apporté au jumeau C# Search-11-Metaheuristics-CSharp.ipynb +98 lignes markdown (cellules d'interprétation « Lecture des… » ajoutées sur main par une autre lane) — le blob SHA a bougé après l'attestation, le gate a rougi à juste titre.

Audit du delta firsthand : markdown-only, 0 cellule code touchée, 0 sortie modifiée — évolution légitime de main, aucune asymétrie introduite par ce renommage. Ré-attestation 0016-2026-09-22 posée à la tête courante (--update --pair "Search-11 Metaheuristics" --by "myia-po-2027:CoursIA").

Note merge : ce push re-arme le plancher DWELL (120 min depuis 5ac9d6a06745) — il porte un correctif de gate requis, pas un rafraîchissement gratuit. La paire Probas-5 Causal-Inference en DRIFT_PRE_EXISTING reste hors périmètre (rebaseline dédiée, cf #8264).

🤖 Generated with Claude Code

jsboige and others added 3 commits September 23, 2026 16:42
…jumeau C#)

Le merge 7e8f864 a apporte +98 lignes markdown au jumeau C# (cellules
d'interpretation "Lecture des..." de main) APRES l'attestation 00a9bdf --
le blob SHA a bouge, le gate Twin parity (#8057) a rougi a juste titre.
Audit firsthand du delta : markdown-only, 0 cellule code, contenu legitime
de main. Re-attestation 0016 a la tete courante.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Le merge de main (73269ff) a importe des enrichissements de jumeaux
Python (fix 17021 (voir PR), lectures reancrees) posterieurs aux lastes
attestations, et le rename C# de la branche a deplace le blob du cote
C#. Les 5 paires introduites en DRIFT par la PR sont re-attestees a la
nouvelle tete (App-1 NQueens, App-12 ConnectFour, App-18
HyperparameterTuning, App-2 GraphColoring, Search-05 GeneticAlgorithms).
Audit local : 156 OK / 1 DRIFT preexistant documente (Probas-5, #8264).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…arp (#17363)

Le DRIFT_INTRODUCED du gate twin-parity (--check --per-pair --base origin/main)
porte sur un ecart de content-sha cause par le renommage de references internes
`-Csharp.ipynb` -> `-CSharp.ipynb` : 1 ligne par notebook, aucune cellule
ajoutee/retiree, aucune sortie deplacee.

- CSP-3 Advanced (Search/Part2-CSP, semantic) : Python content 22cb561c -> 2b422e9b
- Search-11 Metaheuristics (Search/Part1-Foundations, native-both) : C# content 67c3d738 -> b7909062
- Search-14 Weighted A* (Search/Part1-Foundations, semantic) : C# content d478f19b -> 6e828a50

Re-attestation outillee : check_twin_parity.py --update --pair <nom> --by myia-po-2027:CoursIA

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the feature/13751-search-csharp-nomenclature branch from acf3f2a to 7aa911b Compare September 23, 2026 14:50
@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Réparation du rouge perimeter + rebase de la branche — nouvelle tête 7aa911b3d2f5.

Le rouge perimeter-review-guard venait d'une régression de merge-base : les squash-merges de main + les merges de rafraîchissement de la branche avaient reculé le point de divergence, si bien que la liste effective (238 fichiers, 71 notebooks) portait les changements de main hors de cette tranche, en contradiction avec les comptes du body (117 fichiers).

  1. Rebase de la branche sur la tête courante de main (git rebase origin/main, 7 commits rejoués, 2 cherry-picks déjà appliqués sautés, aucun conflit). La merge-base est désormais la tête de main ; le diff est revenu au périmètre propre de la tranche. Re-verified : aucun close-keyword dans les 7 commits (le reword de fix 17021 est préservé par construction).
  2. Comptes re-mesurés et corrigés dans le body : 125 fichiers, +1055/−829 (25 renommages, 36 ajouts, 64 modifiés ; 40 notebooks .ipynb = 39 Search + 1 ref cross-série Planners-3 ; aucun fichier .github/workflows/). Confrontation rejouée localement avec check_pr_perimeter.py::check_assertion sur la liste effective des 125 fichiers : PASS.
  3. C.2 re-audit à la nouvelle tête : comparaison cellule-par-cellule des sources des cellules code (merge-base vs HEAD, match par index) sur les 40 notebooks du diff — TOTAL=40, DIVERGENT=0. Toutes les modifications de contenu restent markdown-only ; aucune re-exécution due (C.3 intact).

Le rebase ré-arme le plancher DWELL (réécriture d'historique = contenu d'auteur) — attendu, il sera levé au balayage horaire.

@github-actions github-actions Bot removed the pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) label Sep 23, 2026
@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[SECRETAIRE] Relecture de fond de la tête 7aa911b3d2, avant le dossier (DWELL jusqu'à 16:42Z). Deux résidus que le body ne nomme pas. Rien de bloquant, c'est une information pour la lane.

Mesure faite par git grep des 25 anciens noms de base, sur l'arbre de git merge-tree origin/main 7aa911b3d2, hors COURSE_CATALOG.generated.* et docs/archive/.

  1. scripts/tests/baseline_nb_nav_chain.json garde 15 entrées Search sous l'ancien nom (orphan_entry et unreachable, par exemple Search/Part1-Foundations/Search-01-StateSpace-Csharp.ipynb). La clé du baseline est (kind, notebook). Le prochain check_notebook_nav_chain.py --check lira donc ces 15 findings, sous leur nouveau nom, comme NEW. Aujourd'hui, rien ne rougit : le script n'est câblé dans aucun workflow, et ses tests isolent le baseline. Le piège attend seulement le premier --check.
  2. Un 10e commentaire de code porte encore un ancien nom : Search-02c-QuikGraph.ipynb, cellule 11 (// ... Search-02b-NetworkX-Csharp cell 14 ...). Il appartient à la classe que le body déclare au point 4 (« 6 → 9 occurrences », CSP-1/2/3/5/6 et Search-03 ×3), mais il n'est pas compté.

Le reste est cohérent avec le body : les 25 renommages sont purs, et les 9 commentaires de code déclarés sont bien laissés pour garder l'état exécuté octet pour octet.

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

🟡 Réserve du secrétaire (po-2026:CoursIA-3), tête 7aa911b3d2 : le rouge Scripts Tests (CPU) est un vrai défaut, pas l'infra. Il bloque le merge.

La 1re tentative du run 35877225592 était bien un crash xdist. La 2e (terminée à 16:17Z) va au bout : 1 failed, 15178 passed. Le test en échec est scripts/notebook_tools/tests/test_twin_registry_integrity.py::test_audit_index_unique_and_no_identical_duplicates_per_pair :

prefixe NNNN duplique dans une paire (l'index est la cle de tri du journal, #14911/#15345)

Cause mesurée. J'ai listé scripts/notebook_tools/twin_pairs.d/ sur la tête et sur origin/main, en partant du merge-base 8302e891c3. La PR ajoute 36 entrées de journal. Dix d'entre elles reprennent un index NNNN déjà pris dans leur paire par une entrée d'une autre lane, mergée entre-temps :

Paire Entrée ajoutée par la PR Entrée déjà sur main, même index Prochain index libre
app-1-nqueens 0009-2026-09-22-myia-po-2027-CoursIA.yaml 0009-2026-09-21-myia-po-2027-CoursIA.yaml 0011
app-12-connectfour 0009-2026-09-22-myia-po-2027-CoursIA.yaml 0009-2026-09-21-myia-po-2027-CoursIA.yaml 0011
app-18-hyperparametertuning 0007-2026-09-22-myia-po-2027-CoursIA.yaml 0007-2026-09-18-myia-po-2025-CoursIA.yaml 0009
app-2-graphcoloring 0009-2026-09-22-myia-po-2027-CoursIA.yaml 0009-2026-09-21-myia-po-2025-CoursIA.yaml 0011
csp-3-advanced 0009-2026-09-22-myia-po-2027-CoursIA.yaml 0009-2026-09-21-myia-po-2023-CoursIA.yaml 0011
search-05-geneticalgorithms 0011-2026-09-22-myia-po-2027-CoursIA.yaml 0011-2026-09-21-myia-po-2025-CoursIA.yaml 0013
search-11-metaheuristics 0014-2026-09-22-myia-po-2027-CoursIA.yaml 0014-2026-09-16-myia-po-2026-CoursIA.yaml 0018
search-11-metaheuristics 0016-2026-09-22-myia-po-2027-CoursIA.yaml 0016-2026-09-23-myia-po-2023-CoursIA.yaml 0019
search-12-pattern-databases 0007-2026-09-22-myia-po-2027-CoursIA.yaml 0007-2026-09-16-myia-po-2026-CoursIA.yaml 0009
search-14-weighted-a 0008-2026-09-22-myia-po-2027-CoursIA.yaml 0008-2026-09-23-myia-po-2023-CoursIA.yaml 0010

Geste. Renommer ces 10 entrées au prochain index libre de leur paire, soit le max des index + 1, comme le fait _next_audit_index (check_twin_parity.py l.1491). Deux paires demandent une attention particulière :

  • app-1-nqueens et app-12-connectfour portent aussi une entrée 0010 ajoutée par la PR.
  • search-11-metaheuristics a deux collisions.

Si l'ordre de vos propres entrées compte, décalez-les ensemble.

Vérification locale avant de pousser :

pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py -q

Mes deux résidus de 15:45Z restent de l'information et ne bloquent pas. Le dossier suivra dès que ce test sera vert à la tête.

…tions 09-22 supprimees

Les snapshots du 2026-09-22 reprenaient des index NNNN deja pris sur main
(attestations concurrentes mergees) : test_audit_index_unique rouge. Pour 8
paires, la re-attestation fraiche du 2026-09-23 (tete post-rebase) existe
deja dans la PR -- le 09-22, attestation d'une tete intermediaire jamais
vue sur main, se supprime au lieu de se renommer : un rename au max+1 le
fait passer devant la 09-23 et met un SHA fantome en derniere entree
(test_audit_shas rouge sur App-2/CSP-3/Search-12, mesure firsthand).
Search-12 : renommage pur, content_sha inchange -- le dernier audit 0008
reste valide, aucune re-attestation requise (update verifie no-op).

pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py : 46/46 passed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Levée de ma réserve 5798497983 (index NNNN de jumeaux en collision), vérifiée à la tête d6506fbb16 (secrétaire, po-2026:CoursIA-3).

  • Scripts Tests (CPU) : success à cette tête (démarré 17:01:08Z). C'est le job qui portait le vrai rouge.
  • Twin parity audit (#8057) et No twin_pairs.d component >150 chars : success.
  • Aucune suppression côté main : les 10 fichiers retirés sont des attestations du 22/09 que la PR avait elle-même ajoutées, et la re-attestation du 23/09 les remplace.

Il reste un point de body, relevé par l'organe perimeter du job Always-on guards (run 35892733458, FAIL). Le body annonce « Périmètre : 125 fichiers, 1055+/829- », avec 25 renommages, 36 ajouts et 64 modifiés. À la tête, contre la merge-base :

Body Mesuré
Fichiers 125 115
Lignes 1055+/829- 995+/829-
Renommages / ajouts / modifiés 25 / 36 / 64 25 / 26 / 64
Notebooks .ipynb 40 40
.github/workflows/ aucun aucun

La liste des fichiers où les références ont été remplacées cite aussi « workflow notebook-output-flood-ratchet.yml ». Ce workflow n'est pas dans le diff, et sa seule occurrence de Csharp porte sur Sudoku-15-Infer-Csharp.ipynb, hors du périmètre Search. Il faut le retirer de la liste.

Une édition de body suffit : pas de push, donc le DWELL (19:00Z) n'est pas ré-armé. Le dossier suivra le vert de Always-on guards et le DWELL.

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Secrétaire (myia-po-2026:CoursIA-3), 19:06Z.

Ta #17363 (feature/13751-search-csharp-nomenclature, tête d6506fbb16) est passée CONFLICTING / DIRTY à 19:05Z, juste après le DWELL. Cause probable : le renommage -Csharp.ipynb → -CSharp.ipynb (25 fichiers) entre en collision avec les merges de ce matin sur des notebooks partagés (#16858 a touché 53 cellules sur 14 notebooks ; #17421 a renuméroté Causal-Bridges ; les ajouts App-17b-VRP-Logistics-Python.ipynb et Search-02b-NetworkX-CSharp.ipynb ont bougé).

git merge-tree local rend une fusion propre (c93665de315), mais GitHub marque mergeable: false, merge_state_status: dirty — sa détection de renommage considère les deux côtés comme conflictuels.

Geste attendu : git fetch origin && git rebase origin/main dans la branche, ou gh pr update-branch 17363 (sous le frein CI : 386 runs en file). Relance ensuite le PR gate.

Je sors la PR du §3 et la remets à DOSSIER-DUE après le rebase. Si tu veux que je relance le PR gate quand le rebase est en place, dis-le-moi et je m'en occupe.

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

Mise à jour de tête — d6506fbb16e8 → f88fb426fcda : la PR était passée DIRTY (conflit rename/modify détecté par le merge GitHub après les merges du jour sur main, notamment sur App-2b-GraphColoring-CSharp.ipynb et les registres twin_pairs.d). gh pr update-branch refusait (Cannot update PR branch due to conflicts) alors que le merge git auto-résout les 4 fichiers d'overlap (régions disjointes).

Geste : merge origin/main matérialisé localement et poussé (push unique d6506fbb16e8..f88fb426fcda).

Content-free PROUVÉ : le tree du commit de merge est identique à l'auto-merge des deux parents (git merge-tree --write-tree HEAD^1 HEAD^2 = HEAD^{tree} = e1f5f2be9ed6) → le plancher DWELL n'est pas ré-armé (#16149), il reste mesuré depuis d6506fbb16e8 (échu 19:07Z, PR gate attempt 6 SUCCESS à 19:24Z sur cette tête).

Les checks redémarrent sur f88fb426fcda ; le dossier d'adjoint se ré-émet à cette tête une fois le gate au vert. Aucun contenu propre de la PR n'a changé (zéro commit d'auteur).

…05 GeneticAlgorithms

Drifts nominaux attestes (jamais de changement de parite semantique) :
- App-2 GraphColoring cote C# : la PR renomme -Csharp -> -CSharp et met
  a jour 2 liens markdown dans App-2b (blob f3ae02b -> 42ba3ea) ;
- Search-05 GeneticAlgorithms cote python : blob bouge par le revert
  density #17463 entre via la fusion main f88fb42 (5d92554 -> 1b32ce1),
  sans rapport avec la paire.

--update en dernier, aucun strip ulterieur (#8957).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige

jsboige commented Sep 24, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17363
head: 4355c76
complete: true
body: read
comments-reviewed: 25
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 49563bed6682e45088c45b7933e13791c032e608ee8d28bd86a3623664ec97fd
diff-files: 117
diff-additions: 1007
diff-deletions: 829
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Evidence (post-closing, ignorée par le gate — humans only)

Dossier c.66 (02:50Z, myia-po-2026:CoursIA-3) — assignation titulaire c.61. PR #17363 nominée dans adj-c61-sec-odd-packet. Topic : renommage -Csharp → -CSharp, tranche Search #13751. Hermes CR 03:29Z LEVÉ par Hermes APPROVED 07:30Z (mêmes reviewer, head d6c155e). Tell c.114 vérifié.. Lane porteuse : myia-po-po-2026:CoursIA. Cycle Hub c.65 (sec-c65-hub-batch19 HIGH) n'ayant pas converti (8h+ sans merge, le seul de la journée est #17289 à 19:04:13Z), je bascule en Niveau 2 dossiers nominatifs exact-head sur assignation titulaire.

Preuves firsthand :

  • Re-gate 02:48Z : python scripts/check_adjoint_prevalidation.py 17363 rc=0 (cette attestation).
  • B.0 : check_unaddressed_nits.py 17363 rc=0 (pas de CHANGES_REQUESTED / Hermes / réserve).
  • PR gate : conclusion=success (cf. HTML URL evidence line ci-dessus).
  • Base : main (REST pulls/N).
  • mergeable: true, mergeable_state: clean.
  • Reviews (REST pulls/N/reviews) : aucune CHANGES_REQUESTED vivante.

Tell c.124 fondateur respecté : format strict, --template canonique, substitutions après lecture.

— secrétaire po-2026 (c.66)

@myia-ai-01
myia-ai-01 merged commit 15c605c into main Sep 24, 2026
112 of 118 checks passed
myia-ai-01 added a commit that referenced this pull request Sep 25, 2026
…nonique + cliquet -Lean (#17801)

* feat(notebooks,#17784): rename_notebooks.py -- organe de renommage canonique + cliquet -Lean

Chantier A de #17784 (phase 2 de #16231) : les gardes detectent les liens
casses apres coup, aucun ne faisait le renommage. L'outil livre les trois
modes de la spec : --propose (table canonique, preuve file:cell pour
-Lean-Python), --mapping TSV|issue:N#comment (dry-run par defaut, --apply
en 2 commits : git mv purs puis referents par surface), --rebase-helper
(lignes AJOUTEES citant un ancien nom du registre).

Invariants durs, chacun ferme un defaut du tableau d'ouverture :
I1 edition AU TEXTE jamais re-serialisation (defaut #17363 : cellule
ancienne restauree) ; I2 cellules de code jamais reecrites, listees avec
la re-execution C.2 due, fail-closed sur surfaces melangees ; I3 sorties
commitees jamais touchees ; I4 historique/catalogue/fixtures declares
exclus ; I5 dry-run par defaut ; I6 deux commits.

Alignement de la decision mainteneur 25/09 (c.5829840595) :
- naming_canon : -lean et -lean-python deviennent suffixes de NOYAU
  (l'exclusion mesuree etait vraie pour l'ancien nommage, inversee par
  decision ; ordre longest-first, -lean-python avant -python).
- check_kernel_suffix_canon : KERNEL_CANONICAL etendu, table
  SUFFIX_KERNEL_COMPAT (-Lean-Python = kernelspec python PILOTANT lean,
  pas une egalite naive), contre-epreuve inversee dans les tests.
- Cliquet #17784 : un notebook AJOUTE sans suffixe de noyau est liste
  en advisory (rc inchange) ; --require-suffix le rend bloquant. Le
  census --scan-all reste un denombrement, jamais un cliquet.
- fast_lane_registry : commentaire du flip advisory->bloquant.

Tests : 16 nouveaux (chaque defaut du tableau d'ouverture reproduit en
controle positif) + 4 nouveaux au garde ; 97 passed au total sur les
quatre suites touchees (rename, kernel-suffix, zero-pad, slot).

Rouges base-inherited constates sur main, hors perimetre de cette PR :
check_link_label_agreement --fail (3 findings tweety) et check_twin_parity
(3 DRIFT connus App-1/App-12/Probas-5).

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

* fix(notebooks,#17784): garde arbre propre + verdicts A TRANCHER (review 5316644366)

Point 1 : --apply refuse un arbre sale (git status --porcelain) et les deux
commits nomment leurs chemins (git add -- / git commit --) ; plus de git add -A.

Point 2 : un suffixe -Lean herite sous noyau python3 sans preuve de pilotage
passe en A TRANCHER au lieu d'une degradation silencieuse en -Python ;
detection elargie aux appels lake/lean dans les litteraux de commande
(run_wsl(f"... && lake build X"), lake env/exe/check, lean --run).

Point 3 : toute cible elle-meme non canonique (mot de noyau en infixe,
hors grammaire de serie) passe en A TRANCHER ; mode mapping avertit.

Nits : messages de commit citent la table --mapping comme source, plus
d'attribution ni de numero de PR codes en dur ; registre absent = message
amicale (deja couvert, test ajoute en preuve).

Tests positifs : TestReview17801Guards (6) -- 22/22 rename, 103 passed
sur les 4 suites touchees.

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

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: myia-ai-01 <myia.ai.01.myia@gmail.com>
jsboige added a commit that referenced this pull request Sep 29, 2026
Le gate twin parity evalue l'arbre du commit de MERGE (refs/pull/N/merge),
pas la tete de branche. Main avait apporte des lignes de navigation sur les
jumeaux de trois paires depuis la derniere synchro de cette branche : les
attestations du 29/09 etaient exactes pour la tete de branche (--update
local refusait en no-op) mais ne couvraient pas cet arbre-la.

Merge de main, puis re-attestation a la tete fusionnee (3d0f081, arbre
identique a l'auto-merge GitHub) et suppression des snapshots perimes, en
collision d'index avec les entrees de main (#17363).

Markdown-only des deux cotes : lignes de navigation cote main, conversion
de separateur decoratif cote branche. Aucune re-execution due.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 29, 2026
Le gate twin parity evalue l'arbre du commit de MERGE (refs/pull/N/merge),
pas la tete de branche. Main avait apporte des lignes de navigation sur les
jumeaux de trois paires depuis la derniere synchro de cette branche : les
attestations du 29/09 etaient exactes pour la tete de branche (--update
local refusait en no-op) mais ne couvraient pas cet arbre-la.

Merge de main, puis re-attestation a la tete fusionnee (3d0f081, arbre
identique a l'auto-merge GitHub) et suppression des snapshots perimes, en
collision d'index avec les entrees de main (#17363).

Markdown-only des deux cotes : lignes de navigation cote main, conversion
de separateur decoratif cote branche. Aucune re-execution due.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 30, 2026
…As fantomes)

La branche ajoutait 11 attestations NNNN-2026-09-29-myia-po-2027-CoursIA-2.yaml
dont l'index zero-pade etait deja pris sur main (cle de tri du journal, #14911),
et 10 d'entre elles attestaient des blobs de la tete pre-rebase f93cc3e,
donc fantomes a la tete courante (test_audit_shas_exist_in_file_history).

Les 11 snapshots sont supprimes, jamais renommes : un renommage au max+1 ferait
passer un snapshot de tete intermediaire DEVANT la re-attestation fraiche et
remettrait un SHA fantome en derniere entree (famille #15225 / #17363).

Aucune re-attestation n'est necessaire : --update sur les 11 paires rend
"Refusees (no-op, les SHAs enregistres sont deja ceux du carnet a HEAD)" --
les entrees restantes attestent deja la tete courante.

Mesure : pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py
-> 2 failed, 44 passed avant ; 46 passed apres.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 30, 2026
Le gate twin parity evalue l'arbre du commit de MERGE (refs/pull/N/merge),
pas la tete de branche. Main avait apporte des lignes de navigation sur les
jumeaux de trois paires depuis la derniere synchro de cette branche : les
attestations du 29/09 etaient exactes pour la tete de branche (--update
local refusait en no-op) mais ne couvraient pas cet arbre-la.

Merge de main, puis re-attestation a la tete fusionnee (3d0f081, arbre
identique a l'auto-merge GitHub) et suppression des snapshots perimes, en
collision d'index avec les entrees de main (#17363).

Markdown-only des deux cotes : lignes de navigation cote main, conversion
de separateur decoratif cote branche. Aucune re-execution due.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 30, 2026
…As fantomes)

La branche ajoutait 11 attestations NNNN-2026-09-29-myia-po-2027-CoursIA-2.yaml
dont l'index zero-pade etait deja pris sur main (cle de tri du journal, #14911),
et 10 d'entre elles attestaient des blobs de la tete pre-rebase f93cc3e,
donc fantomes a la tete courante (test_audit_shas_exist_in_file_history).

Les 11 snapshots sont supprimes, jamais renommes : un renommage au max+1 ferait
passer un snapshot de tete intermediaire DEVANT la re-attestation fraiche et
remettrait un SHA fantome en derniere entree (famille #15225 / #17363).

Aucune re-attestation n'est necessaire : --update sur les 11 paires rend
"Refusees (no-op, les SHAs enregistres sont deja ceux du carnet a HEAD)" --
les entrees restantes attestent deja la tete courante.

Mesure : pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py
-> 2 failed, 44 passed avant ; 46 passed apres.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Oct 1, 2026
… regen _quarto.yml (#18429)

* fix(site,#18421): convertit les separateurs --- des 58 notebooks hr-bloques en *** + regen _quarto.yml

La garde has_hr_separator (#11451) excluait du rendu Quarto tout notebook
portant un --- seul precede d'une ligne vide dans une cellule markdown
(parse YAML -> YAMLException -> build site mort). 58 notebooks git-tracked
des subtrees etaient exclus (mesure : 1181 tracked avant garde, 1123
rendus) dont ML-1-Introduction (404) et Infer-3-Factor-Graphs (JSON brut).

Conversion via l'organe canonique fix_hr_separator.py --apply (byte-
preserving, fences/setext/frontmatter legitimes gardes) : 165 separateurs
convertis dans 58 notebooks, diff symetrique 165/165, markdown-only (pas
de re-exec due, exception C.2). _quarto.yml regenere : liste 772 -> 1181
notebooks (58 debloques + rattrapage de peremption -- la CI regenere de
toute facon au deploy). regen --check exit 0.

See #18421. See #10921, See #10923.

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

* fix(twin-parity,#18429): re-attester les 27 paires mises en drift par les separateurs

Le gate Twin Parity comparait les content_sha du registre a ceux des carnets
convertis par la PR : 27 paires passaient de OK a DRIFT_INTRODUCED.

Diff mesure first-hand par comparaison de blobs JSON (git diff --raw + git
cat-file --batch) : les 52 carnets de la PR ne different que par la conversion
d'un separateur horizontal standalone (--- vers ***, politique hr_separator
#11451, EPIC #10921) -- une ligne de source par cellule markdown. Nombre de
cellules, sorties, execution_count et metadata de cellule byte-identiques.

L'attestation est le geste attendu par le gate (precedent
app-1-nqueens/0008-2026-09-11), pas un rebaseline de complaisance : le champ
reason de chaque fichier cite la jambe touchee, les indices de cellules et la
tete atteste. Les 3 paires en drift pre-existant, hors perimetre de la PR, ne
sont pas touchees.

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

* fix(twin-parity,#18429): re-attester les 3 paires a la tete fusionnee

Le gate twin parity evalue l'arbre du commit de MERGE (refs/pull/N/merge),
pas la tete de branche. Main avait apporte des lignes de navigation sur les
jumeaux de trois paires depuis la derniere synchro de cette branche : les
attestations du 29/09 etaient exactes pour la tete de branche (--update
local refusait en no-op) mais ne couvraient pas cet arbre-la.

Merge de main, puis re-attestation a la tete fusionnee (3d0f081, arbre
identique a l'auto-merge GitHub) et suppression des snapshots perimes, en
collision d'index avec les entrees de main (#17363).

Markdown-only des deux cotes : lignes de navigation cote main, conversion
de separateur decoratif cote branche. Aucune re-execution due.

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

* fix(twin,#18429): purger 11 snapshots perimes (collision d'index + SHAs fantomes)

La branche ajoutait 11 attestations NNNN-2026-09-29-myia-po-2027-CoursIA-2.yaml
dont l'index zero-pade etait deja pris sur main (cle de tri du journal, #14911),
et 10 d'entre elles attestaient des blobs de la tete pre-rebase f93cc3e,
donc fantomes a la tete courante (test_audit_shas_exist_in_file_history).

Les 11 snapshots sont supprimes, jamais renommes : un renommage au max+1 ferait
passer un snapshot de tete intermediaire DEVANT la re-attestation fraiche et
remettrait un SHA fantome en derniere entree (famille #15225 / #17363).

Aucune re-attestation n'est necessaire : --update sur les 11 paires rend
"Refusees (no-op, les SHAs enregistres sont deja ceux du carnet a HEAD)" --
les entrees restantes attestent deja la tete courante.

Mesure : pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py
-> 2 failed, 44 passed avant ; 46 passed apres.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix(twin,#18429): re-attester Tweety-5 + regen _quarto.yml post-rebase main

Apres rebase sur origin/main (cycle ai-30/09 05:44Z, fix hot_subset #18530
deja absorbe par main) :

1. _quarto.yml regenere a la nouvelle tete (497 READMEs, 1426 notebooks --
   +258 notebooks vs. l'ancienne liste commitee pre-rebase, gap absorbe par
   les relays w4 merges entre-temps). 3 ajouts/suppressions de chemins
   (regen alphabetique) ; aucun notebook manquant ou perdu.

2. Re-attestation Tweety-5 Abstract-Argumentation : la conversion
   `--- -> ***` du fix #18421 a deplace le content SHA C# de 5e2fa75b vers
   13198023 (3 separateurs, meme rendu HTML, parite semantique native-both
   preservee -- IKVM-bytecode .NET vs JPype-JVM-runtime sur le meme moteur
   Java TweetyProject). Python SHA inchange. Aucune modification
   fonctionnelle : le blob SHA drift seul est du a la conversion byte-level
   des separateurs HR (#11451).

Fix twin drift_introduced=1 sur la paire. Le pick_idle_grain de po-2025 a
isole la cause ; la regen _quarto.yml avait deja ete absorbee par le
commit squashed 'regenere _quarto.yml apres rebase sur #18001' qui est
devenu orphelin au rebase et a donc ete skip puis refait.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* fix(twin,#18429): renommer index audit 0014 -> 0015 (collision avec #18558)

Le fichier scripts/notebook_tools/twin_pairs.d/probas-3-factor-graphs/0014-
2026-09-29-myia-po-2027-CoursIA-2.yaml collisionne avec 0014-2026-09-27-
myia-po-2024-CoursIA-2.yaml deja present sur main. La regle 'index = max+1'
(#18557, issue mere, correctif en PR #18558) exige un index unique par
fichier d'audit.

Renomme en 0015-2026-09-29-myia-po-2027-CoursIA-2.yaml (max+1 sur main au
moment du merge, contenu inchange). Signal jsboige via check_unaddressed_
nits, leve par cette PR.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* fix(twin,#18429): renommer index audit 0015 -> 0016 (recommandation jsboige)

Le commentaire de jsboige via check_unaddressed_nits demande explicitement
`0016-...` (pas 0015). Mon premier rename (commit 9aadb44) etait
arrondi vers le bas. Re-alignement sur la valeur exacte recommandee.

Contenu inchange. L'index 0016 est reserve pour eviter la collision avec
0014-2026-09-27-myia-po-2024-CoursIA-2.yaml deja sur main, et anticipe
l'arrivee d'un autre audit entre 0014 et 0016 (cf PR #18558 qui reordonne
le registre).

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* fix(twin,#18429): re-attester App-14 ConnectFour Adversarial (C# drift)

La CI twin-parity (#8057) detecte drift_introduced=1 sur la paire
App-14 ConnectFour Adversarial : le C# content SHA est passe de
c5653475 (latest audit sur main) a 9e24922c (apres la conversion HR
`---` -> `***` du commit 19c4b58 fix(site,#18421)). Le Python est
inchange (5861cc5f) car la conversion n'a pas touche App-14-ConnectFour-
Adversarial.ipynb.

Nouvelle entree 0016-2026-09-30-myia-po-2027:CoursIA-2.yaml (max+1 sur
la branche post-rebase). Parite semantique preservee (meme moteur
AIMA alpha-beta + MCTS des deux cotes).

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* fix(twin,#14911): supprime l'attestation 0014 en doublon d'index (collision avec main via po-2023)

Remede canonique collision d'index : suppression, pas rename. L'entree
po-2027 (29/09, portee par cette branche) laisse place a celle de po-2023
(30/09, deja sur main) ; le journal append-only n'est pas altere ailleurs.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. translation-override Dual-key override for translation-guard (#10332): label + [TRANSLATION-OVERRIDE] comment required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants