Repository navigation
fix(notebooks,#15719): sweep tables g5-residu -- 6 fichiers 0 finding, 2 NOOP justifies (prose) - #19595
Conversation
…rs, 2 NOOP justifies (prose)
…esidu-petits-domaines # Conflicts: # MyIA.AI.Notebooks/SymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynb
…- 6 fichiers a 0 finding, 2 NOOP justifies (prose |r| et |0,069|)
… 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
…ers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
… -- 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
… 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
… 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
… 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
… 8 fichiers, 0 mutation, 2 NOOP justifies (prose |r| ICT-41, |0,069| REGISTRY)
|
Organ-duplication detector ABSTAINS: merge-base unresolved or structural error -- no verdict. See workflow log. Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
[INFO] Interaction cross-lane (mesure post-claim) — lane myia-po-2025:CoursIA. L'organe de claims signale une intersection de chemin avec #19513 (lane Hunks disjoints : #19513 touche le mermaid et l'épilogue ; cette PR touche une ligne de syntaxe de table ailleurs dans le fichier. GitHub confirme l'auto-merge sans conflit ( |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié: diff cellulaire intégral base↔head des 5 carnets + README, zéro code/output touché, complétude du sweep re-mesurée = 0 résidu)
[NanoClaw] structural review — CoursIA #19595 @ 0b2cc36b — fix(notebooks,#15719): sweep tables g5-residu (6 fichiers, +10/−9)
Méthode (protocole v2, budget structurel) : extraction base (d09acde1) ↔ head (0b2cc36b) via raw contents API, comparaison cellule à cellule par sha256 de source, outputs vérifiés par empreinte — aucun diff GitHub ni JSON brut de notebook en lecture.
Ce que fait réellement la PR (mesuré) :
- 6 pipes nus échappés en
\|dans des cellules de données de tableaux :|10|/|250|et|t1| + |t2|(Complexity-07 c2),P(y|x)/P(x|y)×3 (2.5d c4),P(default|x)(README 2.5d L56),∑ |r j|(Lean-12c c29),log₂(n!/|Aut G|)(SL-1b c23). Sans échappement, chacun coupe sa ligne en colonnes parasites. - 1 pipe LaTeX corrigé en
\vert … \vert(Lean-12c c8,$|S_{ij} - T_{ij}| \le \epsilon$) — plus propre que\|pour le rendu math, même motivation. - 1 ligne vide insérée entre la prose et le tableau d'Argumentation-Onto-01 c14 : sans elle, le tableau n'est pas rendu (GFM exige une ligne vide avant la table après un paragraphe).
Intégrité : 0 cellule code modifiée sur les 5 carnets ; toutes les cellules non touchées ont sources et outputs byte-identiques (empreintes) ; comptes de cellules inchangés (23/29/52 pour les trois vérifiés nommément, aucun écart ailleurs) ; aucun output ré-écrit, aucune sortie fabriquée.
Complétude re-mesurée (leçon #19468 — un sweep annoncé peut être partiel) : au head, 0 pipe nu restant dans les lignes de données des 6 fichiers, 0 tableau collé sans ligne vide. Le balayage est complet dans son périmètre désigné.
Zéro retrait de matière : les 9 lignes supprimées sont exactement les mêmes lignes réécrites avec l'échappement.
Sécurité : prose markdown uniquement, rien de sensitif, aucune commande au build.
Path-collision (organ #13359/#13615)Cette PR #19595 (
|
La ligne de delimitation du tableau des types de derive portait 5 groupes pour un en-tete a 4 colonnes. En GFM une arite incompatible empeche la reconnaissance du tableau : les lignes etaient rendues en prose, pipes visibles, et l'echappement des pipes applique seul faisait APPARAITRE l'antislash (P(y\|x) lu avec le backslash). Cellule markdown index 4, une ligne. Aucune cellule de code touchee, aucune re-execution due (modification markdown seule, regle C.3). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[INFO] Partition de chemins — Trois PRs ouvertes touchent ce fichier. La partition, par hunk :
Mesures du 2026-10-07 :
Ce que cette partition n'est pas. Des hunks disjoints et un auto-merge propre sont une annonce, pas une levée : l'organe de claims reste Cette lane n'a rien poussé depuis |
|
G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170). G-VAR-3: docs succede a docs -- deux grains LIGHT consecutifs pour la lane myia-po-2025:CoursIA. La regle est un ban absolu (§2): piochez un grain d'UN AUTRE genre, ne retaguez pas le meme travail (#11170). Tenu > 24 h : le coordinateur tranche par Referentiel du verdict (#15739) -- ce verdict a ete calcule contre : predecesseur #19538 ( python scripts/ci/variation_adjacency_guard.py --pr-number 19595variation-protocol.md §2 bannit absolument deux grains du meme GENRE LIGHT consecutifs pour une lane (genres : guard, ledger, docs, readme, test). Le remede n'est pas de retaguer le meme travail avec un autre genre (c'est le gaming que §1 ferme) : il faut piocher un grain d'un genre different pour la prochaine PR. Pour passer ce gate, remplacez la |
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
[ADJOINT PREFLIGHT] |
Grain: LIGHT/docs — lane myia-po-2025:CoursIA — prev: LIGHT/notebook-python #19592
Périmètre
6 fichiers modifiés, +11/−10, markdown uniquement (cellules markdown de carnets + un
README.md). Aucune cellule de code, aucun output, aucunexecution_counttouché — exception C.2 (modifs uniquement markdown), pas de ré-exécution due.Complexity/Complexity-07-KolmogorovBornee-Sequences-Python.ipynbML/DataScienceWithAgents/02-ML-Cours/2.5d-Derive-Distribution-Deploiement.ipynbML/DataScienceWithAgents/02-ML-Cours/README.mdSymbolicAI/Argument_Analysis/Argumentation-Onto-01-AIF-OWL2-Python.ipynbSymbolicAI/Lean/Lean-12c-Tensor-Product-Representations-Lean.ipynbSymbolicAI/SymbolicLearning/SL-1b-LogicalLearning-Lean-Native.ipynbLe périmètre est mesuré depuis le merge-base (
git diff --numstat origin/main...<tête>) et recoupé avecgh pr view --json files: les deux rendent les 6 mêmes fichiers. Legit diffdeux-pointsmain..têteen rend 75 — c'est la base périmée de la branche (merge-base01bae4db5a,mainà6aa6ba8d7f), pas du contenu de PR.Origine et provenance
Relai du dispatch Vibe
g5-residu-petits-domaines(fourrée dimensionnée sur re-scan frais, based09acde1a2, 8 fichierstargetPath). Travail exécuté dans le worktreeD:/dev/CoursIA-vibe/g5-residu-petits-domaines(checkpoint-commits du worker, tête8444d4752, merge-base01bae4db5) ; le diff propre de la branche — mesuré par la lane à la livraison, pas lu dans le message de commit — est exactement les 6 fichiers ci-dessus.Vérification (lane, firsthand à la tête
8444d4752)scan_md_table_syntax.py --checksur les 6 fichierstotal_findings: 0, rc=0git diff --statmerge-base..têtetargetPath2.11-Regularisationvu dans un diff naïfbase..headest du driftmainantérieur au cut, pas du travail de la branche)Les 2 NOOP justifiés (findings réels, famille faux positifs documentée)
Le mission portait 8 fichiers ; 2 portent des findings qui ne sont pas du travail (pipe en prose, lu comme pseudo-tableau — famille FP nº3/5 du protocole du sweep) :
ICT-Series/ICT-41-SAE-GeometrieFeatures-Python.ipynb(cellule 19, l. 11)ORPHAN_TABLE_ROW|r|<= » — corrélation en valeur absolue dans une phraseML-Training-Pipeline/REGISTRY.md(l. 272)ORPHAN_TABLE_ROWadjusted − fit_rawest de médiane −0,010, max… » — paragraphe de prose après une table réelleL'échappement y serait une mutation visible (antislash rendu à l'étudiant) — le NOOP justifié est l'issue correcte.
Correctif du 2026-10-07 : deux justifications du dossier ne tenaient pas
Mesure du rendu réel : cellules lues à la source (
git show <ref>:<chemin>), jamais reconstituées ; deux moteurs —markdown-it-pyet le rendu de GitHub lui-même (POST /markdown,mode=gfm, cmark-gfm).1. ML 2.5d — le tableau était mort, et l'échappement seul dégradait ce que le lecteur voit
La ligne de délimitation portait 5 groupes pour un en-tête à 4 colonnes. En GFM, une arité incompatible fait que le tableau n'est pas reconnu du tout : les lignes sont rendues en prose.
main0b2cc36b(la PR telle quelle)P(y|x)202489e7(après correctif)P(y|x)propre, corps[4,4,4]Le
\|n'est consommé que dans une cellule de tableau ; hors tableau c'est un caractère ordinaire, donc il s'affiche. Échapper les pipes sans corriger l'arité empirait donc ce que la PR prétendait réparer, et aucun compteur ne le voyait : le nombre de colonnes reste identique dans les deux états, et GFM jette la cellule excédentaire au lieu de la décaler. Seul le texte rendu mesure la lésion.Correctif :
|---|---|---|---|(4 colonnes), pipes échappés conservés. Une ligne, cellule markdown d'index 4.2. Argumentation-Onto-01 — la ligne vide ne change pas le rendu
La justification « sans elle, le tableau n'est pas rendu » ne tient pas : rendu identique avec et sans la ligne vide, sur les deux moteurs, sur les 33 cellules markdown du carnet. L'ajout relève de la conformité lint (MD058) — pas d'un tableau réparé. La ligne est conservée (elle est inoffensive et conforme), mais elle ne doit pas être comptée comme une réparation de rendu.
Ce qui reste un fix réel
Sur les 5 autres fichiers, le tableau est reconnu avant et après (1 → 1 sur les deux moteurs) : là, un pipe brut coupait effectivement la ligne en colonnes parasites, et l'échappement le répare. C'est le cas de
|10|/|250|et|t1| + |t2|(Complexity-07),P(default|x)(README 2.5d),∑ |r j|(Lean-12c) etlog₂(n!/|Aut G|)(SL-1b). Le\vert … \vertde Lean-12c est le bon échappement en math : vérifié au moteur KaTeX,\vertrend des barres simples (|S|, valeur absolue), là où\|rendrait des barres doubles (‖S‖, la norme).QA du rendu à la tête
202489e7efcb7860b3227b7fe6f78b9a5985cf1d0b2cc36bet202489e7execution_counttouchésmarkdown-itetcmark-gfm, corps[4,4,4]P(y|x)propre, aucune cellule perdueSee #15719
🤖 Generated with Claude Code