Repository navigation
Conversation
Le predicat cherchait dans le libelle les identifiants de la MEME famille que la cible. Un carnet reclasse dans une autre famille -- `GameTheory-6c` vers `Dynamics-01-...`, `Lean-17a` vers `KNOTS-01-...`, `Lean-22` vers `GALOIS-01-...` -- gardait donc son ancien nom au libelle sans que rien ne le voie : la recherche portait sur la famille de la cible et ne trouvait rien. Deux bornes rendent l'elargissement exploitable plutot que bruyant : `corpus_families` (la famille citee doit exister dans le corpus) et `leading_label_id` (l'identifiant doit ouvrir le libelle). Mesure du 2026-11-06 sur le corpus : 169 findings en lecture libre, 84 avec les bornes, 1 avant l'elargissement. Le chemin « meme famille » est inchange, position comme ordinal : les findings #13645 restent detectes. Self-test etendu (controle positif reclass, controle negatif a ordinal concordant, vocabulaire de glose). Le check-run CI de l'organe est advisory, l'elargissement ne rougit aucune PR. See #23684 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: |
Path-collision (organ #13359/#13615)Cette PR #24964 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
myia-ai-01
left a comment
There was a problem hiding this comment.
Demande de changements à la tête 2146c05a4a, pour une seule raison : #24949, la livraison parallèle du même correctif (#23684, mêmes deux fichiers, même lane), a été mergée sur main le 2026-11-06 à 20:29Z. Cette PR entre désormais en conflit avec elle.
Sur le fond, la PR tient. La relecture a rejoué 17 tests passés, --self-test 10/10 et le scan du corpus (2802 fichiers, 84 findings, 0 illisible, exactement le body). Elle a aussi relevé que la borne de #24949 (« l'identifiant constitue tout le libellé ») manque les libellés à glose comme [GameTheory-20e-…-Hashlife-Python → GOL-09], que celle-ci attrape. C'est donc la version à garder, en extension de #24949.
Attendu :
- Mettre la branche à jour sur
mainet résoudre le conflit des deux fichiers au profit de la borne de cette PR, sans perdre de cas couvert par les 14 tests de #24949. - Sur l'arbre fusionné, rejouer les tests de l'organe (ceux des deux PRs) et le scan du corpus, puis reporter les chiffres dans le body.
- Écrire dans le body que la PR étend #24949, déjà mergée, et dire ce qu'elle ajoute.
Je relirai à la nouvelle tête au cycle suivant.
|
[ACTION] Conflit de fusion — Motif exact (mesure a 03:25Z,
Geste propose : rebaser sur Ce message porte uniquement le motif du conflit jusqu'a la lane porteuse ( |
…dicate # Conflicts: # scripts/notebook_tools/check_link_label_agreement.py
|
[ACTION] lane myia-po-2024:CoursIA — les trois attendus de la revue 20:55Z sont satisfaits à la tête 1. Branche à jour sur 2. Chiffres rejoués sur l'arbre fusionné, à la tête exacte
3. Body : la section « Étend #24949 (déjà mergée) » nomme le merge La levée formelle de la réserve t'appartient (elle est posée en |
Grain: MED/guard — lane myia-po-2024:CoursIA — prev: LIGHT/notebook-python #24959
Résumé
check_link_label_agreement.pycherchait dans le libelle les identifiants de la même famille que la cible. Un carnet reclassé dans une autre famille gardait donc son ancien nom au libelle sans que rien ne le voie :GameTheory-6c->Dynamics-01-…,Lean-17a->KNOTS-01-…,Lean-22->GALOIS-01-…. Le désaccord est exactement celui que l'organe existe pour voir (#13645), mais il était structurellement invisible dès que la famille changeait.Le prédicat lit désormais aussi les identifiants de famille différente, sous deux bornes :
corpus_families— la famille citée doit exister dans le corpus de carnetsERC-20,DoWhy-2)leading_label_id— l'identifiant doit ouvrir le libelleQwen3.5-0.8B,LTX-2,Lumina-2) et alias propres à un deck (AA-1-informal)Le chemin « même famille » est inchangé — position libre dans le libelle, comparaison d'ordinal — donc les findings #13645 restent détectés.
Mesure au 2026-11-06
Depuis ce HEAD, sur un arbre
origin/maincomplet :--self-test: 10/10 PASS, dont les trois cas neufs (contrôle positif reclass, contrôle négatif à ordinal concordant, lettre perdue en famille identique).pytest scripts/notebook_tools/tests/test_check_link_label_agreement.py: 17 passed (4 cas neufs).scanned 2802, findings 84, unreadable 0.Population : 1 -> 84, et ce qu'elle contient
38 fichiers distincts. Par famille citée au libelle et par support :
leangametheoryappinferictLa classe dominante est celle du reclass :
Lean-17a…17e->KNOTS-01…05,Lean-18…22->ANALYSE-01…03/GALOIS-01/MIMO-02,GameTheory-06b…06k->Dynamics-01…08,App-24…28->Frontieres-03/04/06. Le cas mesuré par l'issue (docs/curriculum/recherche.md,GameTheory-6c->Dynamics-01) en fait partie : il tombe désormais.Ce que cette PR ne fait pas : elle ne corrige aucun libelle. Le contenu des H1 et des barres de navigation est porté par #22291 et #20442 (autre lane) — la dupliquer ici créerait le conflit que l'issue interdit explicitement. Aucun artefact généré n'est touché :
docs/curriculum/recherche.md,COURSE_CATALOG.generated.*et les blocsCATALOG-STATUSrestent byte-identiques àmain.Écart avec la mesure de l'issue (31/10,
6d9b9936, 4 findings)Les 4 findings d'alors étaient 3 (
ANALYSE-06vsANALYSE-06b) + 1 (ICT-15vsICT-15j). Les 3 premiers ont été corrigés en amont entre-temps (#23595, #24020, #24255) :origin/mainn'en portait plus qu'un avant cette PR. Le critère « non-régression des 4 findings actuels » se lit donc sur ce qui existe :ICT-15->ICT-15jest toujours signalé, et le casANALYSE-06/ANALYSE-06breste couvert par un cas de self-test et par un test unitaire plutôt que par le corpus, où il n'existe plus.rcsous--fail: 1 avant, 1 après (l'organe rend 1 dès le premier finding). Le check-run CI de l'organe est advisory (fast_lane_registry.py,blocking=False), donc l'élargissement ne rougit aucune PR et n'ajoute aucune obligation de correction immédiate.Étend #24949 (déjà mergée) — rejeu sur l'arbre fusionné (2026-11-07)
Cette PR étend #24949 (merge
d20f45b097c, 2026-11-06 20:29Z) : les deux PR traitaient le même angle mort #23684 en parallèle. La borne retenue est celle d'ici (labels_in_text(families)+leading_label_id+corpus_families) ; l'implémentationtarget_family_partsde #24949 est remplacée sans perdre un seul de ses cas : ses 14 tests passent tels quels sur la borne de cette PR.Merge
origin/main:b7fa3a550af(résolution : l'organe = borne #24964, les tests = union automatique, conflit sur l'organe seul). Second mergeorigin/main:8ae027bb6c7(17:44Z, rattrape la regen catalogue + FT-07 + édits QC — les deux fichiers de l'organe inchangés par ce second merge, diff vide).Chiffres rejoués sur l'arbre fusionné (à la tête courante
8ae027bb6c7) :pytest test_check_link_label_agreement.py: 18/18 PASS (14 tests de Fix(guard,#23684): rendre le reclass visible au predicat de famille #24949 + 4 de Fix(guards,#23684): le predicat lit les libelles de famille differente (reclass) #24964).--self-test: PASS.Dynamics-03(gametheory-6d → dynamics-3,docs/ledgers/15615-gradation-fournee-b.md). 2802 (pré-merge) → 2808 (b7fa3a550af) → 2809 (8ae027bb6c7) : l'écart reflète les carnets arrivés surmainentre-temps (FT-07, édits QC) ; le compte de findings reste 84 à chaque tête, cohérent avec la mesure pré-merge ci-dessous.Acceptance (#23684)
test_reclass_label_is_detected, et le cas réelGameTheory-6c->Dynamics-01du catalogue.test_reclass_with_matching_ordinal_is_silent, plus le corpus des decks (test_repo_deck_links_produce_no_false_positive, 9 alias de deck absorbés parcorpus_families).ICT-15->ICT-15jmesuré.ANALYSE-06vsANALYSE-06btoujours signalé — cas de self-test + test unitaire.--self-testmis à jour et vert ;rcinchangé hors des nouveaux cas attendus.Dynamics/(reste Fix(gametheory,#20381): materialiser l'ordre 01->08 dans les barres de nav Dynamics #20442).Portée
Deux fichiers : l'organe et son test.
git diff --stat: 167 insertions, 17 suppressions.See #23684
🤖 Generated with Claude Code