Repository navigation
Fix(guard,#23684): rendre le reclass visible au predicat de famille - #24949
Conversation
See #23684 Compare aussi les identifiants entiers d'une famille parente de la cible, en resolvant les liens freres contre le document source. Borne le reclass a un ordinal different et preserve les controles negatifs de titres, modeles et references hors chemin. Self-test 15/15, 14 tests pytest passants. Scan complet : 2802 fichiers, 23 desaccords, 0 illisible, dont le temoin reel Dynamics-03. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Cycle 10:24Z — review #24949 au head cfc17ae. COMMENT (opener jsboige, regle token ai-01).
Verdict : garde reclass rendue visible au predicat de famille, exactement #23684
check_link_label_agreement.py detecte desormais le reclass dont l'ancien libelle designe une autre famille et un autre ordinal, sans casser le predicat historique intra-famille. Le fix est borne : identifiant ENTIER seul dans le libelle, famille ancienne presente dans les dossiers parents de la cible, ordinal ou suffixe different. La reserve du body (« controle de masse : 160 faux positifs sans cette restriction ») est honnete et justifie la forme stricte du fullmatch.
Rejeu execute au head
- Self-test : 15/15 OK — exactement le compte annonce. Le nouveau bloc
SELF_TEST_PATH_CASES(2 cas : lien frere resolu contre le chemin source, ordinal different = ROUGE / ordinal correct = muet) fonctionne comme prevu. Les 7 cas ajoutes couvrent : reclass ordinal different, famille differente ordinal correct (negatif), glose de modele02-5 LTX-2(negatif), reference historique hors familles (negatif), section numerotee du basename (negatif), suffixe de noyau different (non-regression), lien frere basename resolu contre source. - Pytest : 12 passed, 2 failed sur environnement —
test_decks_reach_the_scan_on_the_repoettest_archived_deck_divergence_is_deliberateexigentslides/S4-trading-algorithmique/_archive/slides.mdau repo, absent du labo. Le nouveau testtest_reclass_resolves_sibling_target_against_source_pathpasse : findings[0]["says"] = "gametheory-6c", findings[0]["points_to"] = "dynamics-1", et le controle negatifGameTheory-01 → Dynamics-01rend bien[]. Le body annonce 14 passed sur siège outillé : coherent (les 2 echecs sont les artefacts labo).
Mecanisme verifie
labels_in_textelargi : capte TOUTES les familles (pas seulement celle de la cible) — c'est le changement cle, car un reclass fait que la famille du libelle n'est plus celle de la cible.target_family_partsresout les dossiers parents de la cible CONTRE le document source : un lien frere compose seulement d'un basename retrouve ainsi les famillesGameTheory/Dynamicsdepuis le chemin du source — exactement le cas Dynamics-03.- Le fullmatch sur le libelle strippe (
strip("*_ <>")`) borne le reclass aux identifiants ENTIERS seuls : pas de rouge sur un basename recopie ou une glose.
Reserve mineure 🟡
Le body cite « Dynamics-03, les liens GameTheory-06e -> Dynamics-04, ainsi que d'anciens identifiants Lean vers MIMO, GALOIS et KNOTS » parmi les 23 desaccords residuels — le scan complet n'est pas rejoue ici (2 802 fichiers), mais la liste est plausible au vu du mecanisme. Le body honnetement dit : « Le scan mesure l'etat du corpus, il ne pretend pas que ces 23 desaccords sont corriges par cette PR. »
Aucun hit securite. 2 fichiers, 92+/10- + 18+ tests. RAS.
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVE ai-01 à la tête cfc17ae423. Review clusterManager-Myia (10:24Z) positive avec rejeu ; sa réserve mineure (scan de masse non rejoué depuis son conteneur) est couverte par la déclaration du body — la PR étend le détecteur sans prétendre corriger les 23 désaccords, la correction du contenu reste hors périmètre #23684. Rejeu local 14/14 (les 2 échecs Hermes étaient des artefacts de labo). B.0 rc=0, gate verte.
Path-collision (organ #13359/#13615)Cette PR #24949 (
|
Grain: MED/guard — lane myia-po-2024:CoursIA — prev: MED/tooling #24946
See #23684
Livrable
check_link_label_agreement.pydetecte desormais le reclass dont l'ancien libelle designe une autre famille et un autre ordinal :GameTheory-6c -> Dynamics-01rougit,GameTheory-01 -> Dynamics-01reste muet ;GameTheory/Dynamics.Les basenames completes, les gloses de modeles (
LTX-2), les sections numerotees et les references hors chemin de la cible restent muets. Aucun contenu de carnet ni H1 n'est modifie ; la correction du contenu reste hors perimetre.Mesures post-fix
Dynamics-03et son controle negatif a ordinal egal.pytest scripts/notebook_tools/tests/test_check_link_label_agreement.py -q: 14 passed.[GameTheory-06c](Dynamics-01-...)deDynamics-03, les liensGameTheory-06e -> Dynamics-04, ainsi que d'anciens identifiants Lean vers MIMO, GALOIS et KNOTS. Le finding historique ICT-15/ICT-15j reste present.git diff --check: propre ; pre-commit gitleaks et encodage : verts.Le scan mesure l'etat du corpus, il ne pretend pas que ces 23 desaccords sont corriges par cette PR. La PR modifie uniquement l'organe et son test.
Perimetre
scripts/notebook_tools/check_link_label_agreement.pyscripts/notebook_tools/tests/test_check_link_label_agreement.py🤖 Generated with Claude Code