Repository navigation
Description
Part of #22291
Constat
scripts/notebook_tools/check_link_label_agreement.py ne voit pas le cas du reclass : un libelle qui nomme une famille differente de celle de sa cible.
Le predicat de l'organe (lignes 99-116) fait :
prefix, tnum, tlet = tid # famille + ordinal tires de la CIBLE
for lnum, llet in labels_in_text(label, prefix): # identifiants de MEME famille cherches dans le libelleLa famille de recherche est celle de la cible. Si le libelle dit GameTheory-6c et que la cible est Dynamics-01-..., la recherche porte sur Dynamics-NN : elle ne trouve rien, et le desaccord n'est jamais signale.
Mesure sur origin/main (31/10, 6d9b9936)
python scripts/notebook_tools/check_link_label_agreement.py --json
-> scanned: ..., findings: 4, unreadable: 0
Les 4 findings sont tous de la meme famille que leur cible (3 sur ANALYSE-06 vs ANALYSE-06b, 1 sur ICT-15/ICT-15j). Zero dans Dynamics/.
Or le defaut y est massif et visible par le lecteur : docs/curriculum/recherche.md ligne 66 (regenere le 31/10 02:23) affiche
| 35 | [GameTheory-6c (C#) : Jeux Repetes et Theoreme Folk](../../MyIA.AI.Notebooks/GameTheory/Dynamics/Dynamics-01-Jeux-Repetes-Folk-Theorem-CSharp.ipynb) | BETA | Oui |
Le libelle est le H1 du carnet (le generateur prend extract_title), la cible est le chemin : les deux se contredisent. C'est exactement le defaut decrit dans #22291, et il est invisible pour l'organe.
Etat mesure des H1 dans MyIA.AI.Notebooks/GameTheory/Dynamics/ (10 carnets sur 11 portent encore l'ordinal GameTheory) :
| carnet | H1 porte |
|---|---|
Dynamics-01-...-CSharp.ipynb |
# GameTheory-6c : Jeux Repetes et Theoreme Folk (Folk Theorem) |
Dynamics-02-... |
# GameTheory-6b — Jeux repetes en Lean ... |
Dynamics-03-... |
# GameTheory-06d : Sympathie contre Engagement ... |
Dynamics-04-... |
# GameTheory-06e : Transparence des programmes ... |
Dynamics-04b-... |
# GameTheory-06k — FairBot par le theoreme de Lob ... |
Dynamics-05-... |
# GameTheory-06f — Agents a budget explicite ... |
Dynamics-06-... |
# GameTheory-06j — Preuves bornees ... |
Dynamics-07-... |
# GameTheory-06g — Equilibres de jeux-programmes ... |
Dynamics-08-... |
# GameTheory-06h — Programmes transparents ... |
Dynamics-09-... |
# Dynamics 09 — Biens publics non-lineaires ... (seul deja aligne) |
Le contenu de ces H1 est porte par la PR #20442 (ouverte, autre lane) : cette issue ne porte que le trou de l'organe, pas le correctif de contenu.
Deux remedies possibles (a arbitrer)
- Comparer l'ordinal du libelle a celui de la cible, quelle que soit la famille. Le predicat devient « le libelle nomme-t-il un identifiant
famille-NNqui ne correspond pas a l'ordinal de la cible ? ». Inattendu : la forme « basename sans extension » et les gloses hors crochets restent hors predicat, donc l'elargissement est mechanic. - Ajouter une seconde passe « reclass » : comparer le prefixe de famille du libelle a celui de la cible, et signaler quand ils diffèrent et que les deux appartiennent a l'univers des familles de notebooks du depot. Plus etroit, mais plus proche du cas mesure.
Le choix demande un controle negatif explicite (voir acceptance), sinon l'elargissement produit un rouge de masse.
Acceptance
- Un libelle de famille differente de la cible et d'ordinal different est signale (controle positif :
GameTheory-6c->Dynamics-01-...). - Un libelle de famille differente et d'ordinal correct n'est pas signale (controle negatif obligatoire : sans lui, l'elargissement rouge sur tout le monde).
- Un libelle de famille identique et d'ordinal different reste signale comme aujourd'hui (non-regression des 4 findings actuels).
- Le cas
ANALYSE-06vsANALYSE-06b(famille identique, suffixe de noyau) reste signale. -
--self-testde l'organe mis a jour et vert ;rcinchangé surorigin/mainhors des nouveaux cas attendus. - Le correctif de contenu (les 10 H1) reste porte par Fix(gametheory,#20381): materialiser l'ordre 01->08 dans les barres de nav Dynamics #20442 : cette issue ne doit pas creer de doublon de ce travail.
Portee
- Un seul fichier :
scripts/notebook_tools/check_link_label_agreement.py(+ son test). - Aucun artefact genere n'est touche :
docs/curriculum/recherche.md,COURSE_CATALOG.generated.*et les blocsCATALOG-STATUSrestent byte-identiques amain(regeneration par l'automatisation seule).
Trouve et mesure par lane myia-po-2028:CoursIA-2 le 31/10, en poussant le residu de #22291 mesure sur main (commentaire 6540820436).
Activity
jsboige commentedon Oct 31, 2026
[CLAIMED] lane myia-po-2028:CoursIA-2 -- paths: scripts/notebook_tools/check_link_label_agreement.py
Trou de predicat mesure sur
origin/mainle 31/10 (4 findings, 0 dansDynamics/). Le predicat cherche les identifiants de la famille de la cible dans le libelle : un reclass (libelleGameTheory-6c, cibleDynamics-01-...) sort du predicat par construction.Perimetre : le seul fichier de l organe (+ son test). Le correctif de contenu des 10 H1 reste porte par #20442 -- pas de doublon. Aucun artefact genere touche.
Suite au cycle courant (tranche RLPT-00e de #23384) : la reprise depend du prochain tour.
myia-ai-01 commentedon Nov 6, 2026
[CLAIMED] lane myia-po-2024:CoursIA -- rendre le reclass visible au predicat de famille (10 H1 GameTheory dans Dynamics/) (pose au dispatch par le coordinateur myia-ai-01:CoursIA, cycle c2779)
jsboige commentedon Nov 6, 2026
[CLAIMED] lane myia-po-2024:CoursIA -- paths: scripts/notebook_tools/check_link_label_agreement.py -- reprise du claim po-2028 perime ; reclass signale seulement quand l'ordinal differe, controle negatif famille differente ordinal correct ; contenu H1 hors perimetre (#20442)
🤖 Generated with Claude Code
jsboige commentedon Nov 6, 2026
[DELIVERED] lane myia-po-2024:CoursIA -- PR #24949 -- paths: scripts/notebook_tools/check_link_label_agreement.py, scripts/notebook_tools/tests/test_check_link_label_agreement.py -- reclass detecte pour les identifiants entiers d'une famille parente de la cible avec ordinal different ; liens freres resolus contre le chemin source ; temoin reel Dynamics-03 couvert ; 15 controles internes et 14 tests verts ; scan 2802 fichiers / 23 desaccords / 0 illisible, corrections de contenu hors perimetre
🤖 Generated with Claude Code
jsboige commentedon Nov 6, 2026
[DELIVERED] lane myia-po-2024:CoursIA -- PR #24964 -- paths: scripts/notebook_tools/check_link_label_agreement.py, scripts/notebook_tools/tests/test_check_link_label_agreement.py -- predicat reclass : les libelles de famille differente sont desormais lus, sous deux bornes (famille presente dans le corpus, identifiant en tete du libelle). Mesure : 169 findings en lecture libre, 84 avec les bornes, 1 avant. Self-test 10/10, 17 tests verts. Aucun contenu corrige : les 10 H1 Dynamics restent #20442, aucun artefact genere touche.
Fix(guard,#23684): rendre le reclass visible au predicat de famille (#…