Skip to content

fix(nb-tools,#17875): enrich-quality -- libelle abs_state exact (3 etats du porteur) - #18013

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/17875-enrich-quality-anchor-id
Sep 27, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/17875-enrich-quality-anchor-id

Conversation

@jsboige

@jsboige jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner

Grain: MED/tooling -- lane myia-po-2026:CoursIA -- prev: MED/tooling #17963

Closes #17875 (volet restant : le « second defaut » de l'issue. Les acceptances 1-3 sont deja livrees par #17876 MERGEE et verifiees firsthand ; l'acceptance 4 est re-mesuree ci-dessous, avant ET apres ce patch).

Ce que cette PR corrige

Le libelle abs_state du message ANCHOR_OOR (scan_enrich_quality.py, classe f) etait binaire : une cellule de code PRESENTE a l'index absolu etait annoncee « out of notebook » — #17875, « Second defaut, dans le meme message » : « Le libelle gonfle l'alarme au-dela du fait ». Le libelle rend maintenant l'etat reel du porteur :

porteur absolu a l'index idx avant apres
cellule code existante « out of notebook » (faux) « a code cell »
cellule markdown « markdown » « markdown »
idx >= nombre de cellules « out of notebook » « out of notebook »

Sans effet sur l'identite des findings — depuis #17876, ANCHOR_OOR est identifie par son jeton evidence, pas par le message — ni sur les autres categories, ni sur regressions() (type de retour inchange, acceptance 3).

Acceptance 4 re-mesuree firsthand (cas reel #17064)

Extraction des revisions reelles (base origin/main:MyIA.AI.Notebooks/GenAI/FallacyDetection/02_fallacy_datasets_landscape.ipynb, tete pull/17064/head), organe joue depuis le worktree :

python scripts/notebook_tools/enrich_quality_ci.py --base <extrait base> --head <extrait tete>
RC=0    (apres #17876 : rc=0 ; apres ce patch : rc=0 -- re-mesure)

Le PR #17064 n'est donc plus bloque par ce check — c'etait l'objectif mesure de l'issue, deja atteint par #17876 ; ce patch n'y change rien et corrige l'honnetete du libelle.

Tests

  • Nouveau : test_oor_label_reports_the_actual_carrier_state (TestAnchors) — les 3 etats du porteur pins dans le message, dont le controle negatif : « out of notebook » ABSENT quand la cellule existe.
  • Fichiers enrich : test_scan_enrich_quality.py + test_enrich_quality_anchor_identity.py + test_enrich_quality_ci_markers.py = 55/55 pass.
  • Suite complete scripts/notebook_tools/tests/ : 6349 passed, 8 skipped, 3 xfailed (run integral, 8 h 24 -- la suite porte des tests end-to-end lourds ; les 55 enrich ci-dessus passent en 0.43 s).

Perimetre

2 fichiers, +31/-1. Le scanner et son test uniquement — la reparation des ancres du carnet FallacyDetection reste hors scope (defaut pre-existant sur main, grain separe de sa serie, cf « Consequence a ne pas confondre » dans l'issue).

🤖 Generated with Claude Code

…ats du porteur)

Une cellule de code PRESENTE a l'index absolu etait annoncee
"out of notebook" ; le libelle rend maintenant l'etat reel du
porteur (code existant / markdown / au-dela du carnet). Sans effet
sur l'identite des findings (depuis #17876, ANCHOR_OOR s'identifie
par son jeton evidence).

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

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions github-actions Bot added the lane-claim-absent Closing issue carries no claim at all (#10223) label Sep 27, 2026

@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: LGTM — [Hermes] review @ b6e1917e (31+/1−, 2 fichiers, 0 review préexistante)

Patch exécuté firsthand (module extrait au head, scan_anchors rejoué sur les 3 porteurs + contrôle négatif) :

  • cellule code existante à l'index absolu → absolute cell 3 is a code cell (« out of notebook » bien absent) ;
  • porteur markdown → is markdown (inchangé) ;
  • index au-delà du carnet → out of notebook (inchangé) ;
  • ancre correcte → silencieux (pas de faux positif introduit).

Test ajouté lu : les 3 états sont pinés dans le message, y compris le négatif "out of notebook" not in msg. Suite test_scan_enrich_quality.py rejouée au head : 37/37 pass. Périmètre exact du « second défaut » de #17875 — sans effet sur l'identité des findings (depuis #17876, ANCHOR_OOR est identifié par le jeton evidence), ni sur regressions().

CI : les 4 échecs TestActuariatManifest (690==675, 780==765, 795==780, 885==870) reproduits à l'identique sur checkout main (uv run pytest, sparse) = rouge hérité, hors périmètre de ce patch. PR gate = DWELL (minuteur). Scan secrets clean.

[Hermes hermes-pr-review, cycle :04 27/09, host f6be46d1b7a3]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #18013 (fix(nb-tools,#17875): enrich-quality -- libelle abs_state exact (3 etats du porteur)) 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.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Sep 27, 2026
@jsboige

jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18013
head: 23ea115
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: ebec6b3b92c18d8923cd347def0ecd0f013e0c7aec62d6aac6838dba10f06180
diff-files: 2
diff-additions: 31
diff-deletions: 1
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(nb-tools): le ratchet enrich-quality rapporte un ANCHOR_OOR PRE-EXISTANT comme neuf (bloque #17064)

3 participants