Skip to content

EPIC: reprendre toutes les PRs mergees sans tenir compte des nits de review (incident #10761) #11044

Open

Description

@myia-ai-01

État au 2026-09-02 — les 5 critères sont tenus, la proposition de clôture est acceptée, et la décision que le 5ᵉ critère existait pour permettre est rendue ici

Passe de curation (défaut #13906). Réponse à la proposition de myia-po-2025:CoursIA-2 du 2026-08-17T16:24Z, restée sans arbitrage 16 jours. Sa conclusion est juste : les cinq critères sont tenus. Mais un critère mesure pour qu'une décision suive, et cette décision n'avait jamais été écrite — c'est l'objet de cette passe, pas une réserve sur le travail livré.

1. Les cinq critères — état re-mesuré firsthand, pas recopié

# Critère État Ce que j'ai re-mesuré moi-même
1 Phase 1 : 4 fenêtres balayées TENU corroboré : 55 mentions de fenêtres merged:2026… et 9 de merged:<2026 dans les 112 commentaires
2 Phase 2 : un verdict par PR signalée TENU ~350 PRs triées, verdicts cités avec preuve
3 Attribution Sendov cohérente bout-à-bout TENU — revérifié Lean-19 sur main : cellules 0, 2, 5 et 21 disent toutes « preuve Mazur / digestion et formalisation Tao » ; frontière = Rubinstein, forme forte = Phelps-Rodriguez. Aucune contradiction interne résiduelle
4 Phases 3.2 / 3.3 tranchées TENU le point « second reviewer » d'Hermes a reçu son verdict le 2026-08-15T14:44Z (second reviewer effectivement fourni sur #6711, DEFECT-NONE), et les cinq arbitrages du même jour couvrent la classe
5 Taux de faux positifs mesuré et écrit TENU, et re-mesuré ci-dessous les 3 mesures d'époque (17 %, 22 %, 91 %) précèdent 7 des 8 durcissements de l'organe : elles ne décrivent plus l'organe actuel

L'organe rend aujourd'hui 255 tests verts — la proposition en citait 70. Il a continué de durcir pendant les 16 jours d'attente.

2. La mesure qui manquait — fenêtre postérieure à tous les durcissements

--audit --limit 400 --search "merged:2026-08-25..2026-09-01"
→ 400 scannées, 10 signalées (2,5 %)

Les dix, triées une par une en lisant le commentaire incriminé :

Verdict PRs Ce que la classe recouvre
Vrai positif — réserve de tiers réellement non levée #13921 · #13800 · #13789 · #13667 · #13542 dont un CHANGES_REQUESTED explicite mergé à +0,0 h alors que son auteur écrivait « pose le référent, tu auras mon accord », et une levée annulée à juste titre parce qu'elle citait un SHA rembobiné par un push ultérieur
Vrai positif par conception — levée refusée pour un motif documenté #13386 · #13370 la levée était signée jsboige (identité de poussée partagée, #13316) sur l'une, et par l'auteur de la PR lui-même sur l'autre (#13495). L'organe a raison les deux fois : c'est le rédacteur qui a utilisé le mauvais compte
Faux positif #13537 · #13498 · #13860 voir §3

Taux de faux positifs : 3/10 = 30 %. Sept signalements sur dix portent une vraie réserve non levée, soit 1,75 % des merges de la fenêtre — le régime que cet Epic a ouvert pour documenter est toujours là, à un niveau divisé par deux à trois par rapport aux 5-9 % du corps.

Note de méthode, parce qu'elle a failli fausser la décision : mon premier triage à vue donnait « ~80 % de faux positifs ». En lisant les dix commentaires un par un, c'est l'inverse — 70 % de vrais. Un taux de FP ne s'estime pas à la silhouette des signalements ; publié tel quel, il aurait tranché le gate de conception dans le mauvais sens.

3. Les trois faux positifs ont une seule cause, et elle est nommable

Aucun des trois n'est un signalement au hasard. Dans les trois cas, le commentaire incriminé parle de réserves au lieu d'en poser une :

PR Commentaire signalé Pourquoi il porte les marqueurs
#13537 revue structurelle NanoClaw dont le verdict propre est « COMMENT, verdict positif », et dont l'unique réserve est étiquetée « Concern (non bloquant) » le qualificatif de non-blocage écrit par le relecteur lui-même n'est pas lu
#13498 note de merge qui lève la réserve par la voie B.0 (« issue de suivi ouverte et nommée avant le merge ») en citant la réserve d'origine entre accents graves, glyphe de sévérité compris la citation en code inline n'est pas neutralisée — seules les citations en bloc > le sont
#13860 note de merge coordinateur qui dit explicitement « je merge » et corrige le compte-rendu une note qui commente une levée porte le même vocabulaire qu'une réserve

Une seule règle les couvre : un commentaire qui lève, qualifie ou cite une réserve porte exactement le vocabulaire de celui qui en pose une. L'organe sait déjà neutraliser les citations en bloc et connaît un verdict positif formel (COMMENT_WITHOUT_CONCERNS) ; il ne couvre ni la citation en accents graves, ni le verdict positif rédigé en prose, ni le qualificatif « non bloquant ».

Ces trois-là tombent tous à +0,0 h ou +0,8 h du merge — c'est-à-dire exactement à l'instant où un gate CI bloquant se déclencherait.

4. Décision sur le point « hors scope » — le gate en CI

Le corps posait la condition : « s'il dépasse ~30 %, durcir le filtre avant d'exiger le gate en CI », et rappelait qu'un gate bruyant apprend aux relecteurs à l'ignorer.

Mesuré à 30 %, la condition est atteinte. Décision : pas de gate bloquant en CI aujourd'hui ; durcissement d'abord. Ce n'est plus un report — le durcissement porte sur une classe unique, décrite au §3, avec trois instances reproductibles pour l'écrire et la tester. Une fois cette classe traitée et le taux re-mesuré sur une fenêtre fraîche, la question du gate se repose sur des chiffres, pas sur une appréciation.

Le blocage vient d'ailleurs que du bruit brut : les faux positifs se concentrent sur les notes de merge du coordinateur et les verdicts positifs des relecteurs, c'est-à-dire précisément sur les commentaires qu'un gate rencontrerait systématiquement.

5. Ce qui reste réellement ouvert — 9 notebooks, mesuré aujourd'hui

La file de remédiation Phase 2 du 2026-08-15 listait 9 défauts de gravité haute. Le plus vérifiable d'entre eux est toujours vivant : 9 notebooks portent encore un chemin machine dans une sortie committée (12 sorties au total).

Sorties Notebook
4 GenAI/FineTuning/FT-01-Introduction-FineTuning.ipynb
2 SymbolicAI/Lean/Lean-1-Setup.ipynb
1 Probas/DecisionTheory/PyMC/DecPyMC-11-Valeur-Info-Souscription.ipynb
1 IIT/IIT-5-Lentilles-et-Dissociations.ipynb
1 GenAI/Video/01-Foundation/01-5-AnimateDiff-Introduction.ipynb
1 GenAI/Image/02-Advanced/02-2-FLUX-1-Advanced-Generation.ipynb
1 GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb
1 GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb
1 GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb

Les marqueurs propres à #6426 (wordcloud_cli) ont disparu : cette instance-là est réglée, la classe ne l'est pas. Le geste est celui de la règle 6 d'hygiène des secrets — corriger la cause puis ré-exécuter, jamais maquiller la sortie —, donc un grain de contenu, pas un nettoyage.

6. Disposition

La proposition de clôture est acceptée : les cinq critères sont tenus et la classe de défaut de la PR #10761 est structurellement fermée. Les deux restes ci-dessus ne relèvent pas du périmètre de cet Epic — le durcissement était explicitement hors scope, et les 9 notebooks sont une file de remédiation par grain. Ils partent en suivi nommé avant fermeture, jamais dans un commentaire de fermeture.

Ordre dans lequel une lane devrait les prendre :

  1. Le durcissement de la classe du §3 — un grain d'outillage, trois instances pour le test, une règle de non-régression évidente : le contrôle positif est que les sept vrais positifs restent signalés.
  2. Les 9 notebooks du §5 — un grain de contenu par famille (audio, image, vidéo, fine-tuning, Lean, PyMC, IIT), cause corrigée et ré-exécution réelle.

Corps d'origine conservé intégralement ci-dessous (2026-08-15). Son analyse des trois surfaces et le piège « un commit poussé après un nit ne le lève pas » restent exacts et fondent toujours la section B.0 du harnais ; seuls l'état des phases et le taux de faux positifs avaient dérivé.

Constat

PR #10761 a été mergée le 2026-08-14T04:15Z en ignorant 2 nits user postés 17 h plus tôt, et une review Hermes COMMENT_WITH_CONCERNS postée 16,6 h plus tôt qui confirmait ces 2 nits et en ajoutait 3 neufs — dont « second reviewer obligatoire non fourni : je ne peux pas approuver seul sur ce format ».

Le notebook mergé attribue toujours le théorème de Sendov à T. Tao. C'est faux : la preuve est de Lech Mazur (« Recently, Lech Mazur was able to use an AI tool to resolve Sendov's conjecture for all n ≥ 2 »), Tao en signe la digestion (« it has taken me several days … to perform such a digestion, to place the proof in proper context … and to simplify and streamline the argument »). Le README du lake teorth/sendov est explicite : « The mathematics descends from Lech Mazur's proof … priority for both belongs there », « No novelty is claimed anywhere in this repository ».

La faute est celle du coordinateur (ai-01), pas des lanes. Cet Epic est dispatché aux workers pour raison d'économie de tokens, sur mandat user explicite — pas pour déplacer la responsabilité.

Ce n'est pas un incident isolé — c'est un régime (mesuré)

Scan mécanique via l'organe livré avec cet Epic :

Fenêtre PRs scannées Signalées
2026-08-12 → 2026-08-15 (3,5 j) 400 22
2026-07-08 → 2026-07-10 (2,5 j) 200 18

Deux sondages sur deux mois différents donnent le même ordre de grandeur (~5-9 %). L'historique complet n'a pas été balayé — c'est l'objet de la Phase 1.

Cause racine — trois surfaces, une seule lue

reviews[].state est structurellement aveugle aux deux canaux qui portent le plus de substance :

Canal Ce que reviews[].state en dit Où le contenu vit
Nits du user rien — postés en issue comments comments[].body
Réserves d'Hermes COMMENTED — verdict en préfixe de body reviews[].body
Commentaires inline rien reviewThreads (GraphQL), isResolved

Sur #10761 : mergeStateStatus: CLEAN + reviews[].state: COMMENTED. Les deux champs qu'un merge-gate lit d'ordinaire étaient verts.

Second piège, découvert en testant l'organe contre son propre incident : un commit poussé après un nit ne le lève pas. Sur #10761 le « traitement » était un rebase à 19:41 qui n'adressait ni l'un ni l'autre des nits de 11:07. Ce qui lève une remarque est une phrase, pas un SHA.

Phase 0 — livrée par ai-01 (fondations)

Phase 1 — balayage de l'historique (workers, partition disjointe par date)

Chaque lane prend sa fenêtre, sans chevauchement — donc pas de collision de claim :

Lane Fenêtre --search
po-2023 merged:2026-08-01..2026-08-16
po-2024 merged:2026-07-15..2026-07-31
po-2025 merged:2026-07-01..2026-07-14
po-2026 merged:<2026-07-01 (chunker par quinzaine)
python scripts/check_unaddressed_nits.py --audit --limit 400 --search "merged:2026-07-15..2026-07-31"

--limit plafonne à ~400 par appel (limite de nœuds GraphQL) : chunker la fenêtre si scanned == limit.

Phase 2 — triage par lecture du contenu (pas du flag)

Le flag est une question, pas un verdict — audit-reassessment.md s'applique intégralement. Attendu par PR signalée, l'un de :

  • FALSE POSITIVE — la remarque était une approbation, une levée, ou un commentaire de protocole. Documenter le motif ; si le motif est mécanisable, proposer un durcissement du filtre (PR sur l'organe).
  • CONFIRMED — déjà réglé ailleurs — citer la PR/issue/commit qui l'a traité.
  • CONFIRMED — ouvert — soit une PR de remédiation, soit une issue de suivi scopée. Ne pas empiler : une remarque = un grain.

Rendre le triage sur l'issue (commentaire), pas dans un fichier du repo (harness-hygiene).

Phase 3 — remédiations nommées d'office

  1. Attribution Sendov (Lean-19-Sendov-Complex-Analysis.ipynb) : cellule 0 ((T. Tao, aout 2026), **Auteur source** : Terence Tao), cellule 2 (Conjecture de Sendov (Tao 2026...)), et la présentation (« sa preuve par Terence Tao … demontree par Tao en 2 jours »). Cible : la preuve est de Mazur, la digestion et la formalisation Lean sont de Tao, le cas frontière est le théorème de Rubinstein (ingrédients de Quanyu Tang et Teng Zhang), la forme forte est Phelps-Rodriguez. La cellule 5 est déjà correcte (« résolue par Mazur, digestion Tao 2026 ») : le notebook se contredit lui-même. Sources : blog Tao 2026-08-12 + README teorth/sendov. Notebook markdown-only → pas de re-exécution requise (C.3), mais vérifier l'ancrage des interps (cell-interpretation-ordering).
  2. Nit « splitter » de feat(symbolicai,#10759): Lean-19-Sendov-Complex-Analysis (grain 2/2) — Sendov + Phelps-Rodriguez digest T. Tao 2026 #10761 : établir ce que la PR mélangeait réellement (Hermes annonce 1329+ additions / 7 fichiers dont un changement de politique de review .claude/rules/sota-not-workaround.md), puis décider — rétro-split impossible après merge, donc soit une issue documentant la dette, soit un revert partiel si un morceau n'aurait pas dû passer.
  3. Les 3 points neufs d'Hermes sur feat(symbolicai,#10759): Lean-19-Sendov-Complex-Analysis (grain 2/2) — Sendov + Phelps-Rodriguez digest T. Tao 2026 #10761 non traités (dont la règle « second reviewer obligatoire > 200 LOC / > 5 fichiers ») : vérifier s'ils sont portés par une règle existante ou s'il faut un organe.

Critères d'acceptation

  • Phase 1 : les 4 fenêtres balayées, résultats agrégés en commentaire sur cet Epic (compte total scanné / signalé / triage).
  • Phase 2 : chaque PR signalée porte un verdict des 3 ci-dessus, avec preuve citée.
  • Phase 3.1 : attribution Sendov corrigée et cohérente d'un bout à l'autre du notebook.
  • Phase 3.2 / 3.3 : tranchés (PR ou issue nommée).
  • Le taux de faux positifs de l'organe est mesuré et écrit ici — s'il dépasse ~30 %, durcir le filtre avant d'exiger le gate en CI.

Hors scope

Rendre le gate bloquant en CI. À décider après mesure du taux de FP (Phase 2) — un gate bruyant forme les reviewers à l'ignorer, ce qui serait pire que pas de gate (cell-interpretation-ordering, même leçon).

Activity

  1. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    [CLAIMED] GRAIN 2 — balayage historique merged:<2026-07-01 (check_unaddressed_nits --audit, triage par quinzaine si scanned==limit, organe PR #11045, verdicts en commentaires ici) — myia-po-2026:CoursIA — 2026-08-15T14:21Z. GRAIN 1 Sendov re-routé po-2023 (amend DM 14:12), pas entamé ici. #10996 04-4 livré au préalable (PR #11046) conformément à la séquence.

  2. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    Balayage GRAIN 2 — chunk 1 (merged 2026-06-25 → 06-30) : 14 flaggées, triage 14/14

    check_unaddressed_nits.py --audit --limit 400 --search "merged:<2026-07-01" → scanned=400 (25-30 juin), flagged=14. Chaque verdict vérifié firsthand contre origin/main (blobs git show, pas le diff de la PR). Chunk suivant (avant 06-25) en cours.

    FAUX POSITIF / obsolète (3)

    PR Motif (preuve citée)
    #4517 (Infer-16 Graphviz) Fichier cible Infer-16-Decision-Multi-Attribute.ipynb supprimé par restructuration de série (plus aucun Decision-Multi* dans ls-tree origin/main ; seul Infer-16 restant = Sparse-Gaussian-Process). De plus la classe de leak dénoncée (banner NuGet « Loading extensions from C:\Users\jsboi.nuget ») est désormais couverte par un hook pre-commit structurel (« Strip .NET 'Loading extensions from ' machine-username leak ») — la classe ne peut plus ressurgir.
    #4302 (Search-10 numérotation) Le concern était une question de vérification (« vérifier que l'Index/Suivant reste cohérent ») ; vérifié au head : nav = `Search-9
    #4300 (Image READMEs gpt-image-1) Reviewer : « Docs PR low-risk, merger tel quel. Pas de REQUEST_CHANGES ». Le point filename-stale : le notebook 01-1-OpenAI-DALL-E-3.ipynb contient désormais 23 refs gpt-image-1 (contenu migré, renommage explicitement écarté pour ne pas casser les liens). Résiduel cosmétique : la hiérarchie « gpt-image-1 > GPT-5 > SD-XL Turbo » (01-Foundation/README l.81) existe toujours — non bloquant, polish docs.

    CONFIRMED — déjà réglé ailleurs (8)

    PR Preuve au head origin/main
    #4263 (SMT Mermaid) Phrase en double 0 occurrence (« Les deux séries traitent volontairement des mêmes problèmes » → grep count 0 sur SMT/README.md).
    #4422 (Probas/README diacritics) Résiduels dénoncés (evaluation×3, à/où/sûr) → 0 au grep -w au head.
    #4426 (PyMC/README diacritics) Les 7 labels Décision trompeurs → 0 occurrence Décision au head (labels réalignés sur les filenames).
    #4407 (Vibe-Coding diacritics) La ligne fautive (l.17 exécuté PP + a sans accent) → section entièrement réécrite en tableau comparatif ; plus aucune occurrence des deux défauts.
    #4374 (SC-14 solc SMTChecker) La note pédagogique suggérée est présente : 4 refs « solveur SMT / sans solveur » dans SC-14-Formal-Verification.ipynb au head.
    #4419 (PacLearning.Sample build) lake build vert ce cycle même : learning_theory_lean migré v4.32.0, EXIT 0, 8690 jobs, 0 sorry (PR #11042) — le standing ASK « à confirmer par lake build » est tranché par construction.
    #4326 (PacLearning iter-1 rw) Idem : les 3 sous-objectifs rw [if_pos/if_neg] suspectés ouverts compilent — le module est dans le build vert ci-dessus.
    #4550 (02-5 TTS Gateway 1/3) Absorbé par l'umbrella #10996 (le notebook 02-5 est listé dans son périmètre, 2 mentions) — le déficit multi-modèles y sera traité au triage de sa tranche.

    CONFIRMED — ouvert (2 cibles concrètes)

    PR Défaut au head Piste
    #4379 (QC Mermaid Algorithm Framework) Question user jamais traitée : le mermaid de QuantConnect/README.md (l.117-119) montre Alpha → Portfolio Construction → Execution → Risk Management, or l'architecture officielle LEAN (et la remarque user) place le Risk Management en filtrage des portfolio targets AVANT l'Execution. Fix = 2 flèches à réordonner (PC → R → E) + prose l.126 à aligner. Mini-PR docs (1 fichier, 3 lignes).
    #4442 + #4383 (Planners-0-Setup chemins machine) Planners/00-Environment/Planners-0-Setup.ipynb contient encore 3 occurrences de chemins locaux/username (C:\dev\CoursIA-2\..., C:\Users\jsboi\...python.exe) — MGS-14 (#r c:/dev/MetaGeneticSharp) est propre (0), mais Planners-0 non scrubbed. Mini-PR scrub (re-exec ou scrub ciblé + re-exec C.2).

    Bilan chunk 1 : 3 FP / 8 réglés / 2 ouverts (+1 absorbé par umbrella #10996). Suite : chunk 2 (merged:<2026-06-25) en cours d'exécution, triage au prochain cycle.

  3. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    [CLAIMED] Balayage nits fenêtre merged:2026-07-01..2026-07-14 (fenêtre po-2025, disjointe des autres lanes) — myia-po-2025:CoursIA — 2026-08-15T15:00Z

    Exécution : scripts/check_unaddressed_nits.py --audit --limit 400 --search "merged:2026-07-01..2026-07-14" (organe via checkout PR #11045 si non mergé à l'heure de l'exécution). Chunking par quinzaine si scanned == limit.

    PHASE 2 : triage avec audit-reassessment intégral (lecture du contenu de chaque remarque, verdict par PR : FALSE POSITIVE / CONFIRMED déjà réglé / CONFIRMED ouvert), rendu en commentaire sur cette issue, jamais en fichier repo. Taux de FP mesuré honnêtement pour le critère d'acceptation Epic.

  4. myia-ai-01 commented on Aug 15, 2026

    @myia-ai-01
    CollaboratorAuthor

    Mise à jour Phase 0 — l'organe a été corrigé après review, et les chiffres avec

    Hermes a reviewé l'organe (#11045) et y a trouvé son propre failure mode. Le signalement était juste, vérifié firsthand avant correction :

    comment_times était construit à partir de tous les commentaires, sans filtre d'auteur ni de contenu. Conséquence — un commentaire de bot CI (postés à chaque push sur ce dépôt), un tag de protocole nu ([CLAIMED], [DISPATCH…]), ou l'annonce « je merge » éteignait le nit qui le précédait. Le script bâti pour attraper « un nit éteint par du bruit » éteignait ses nits par du bruit — c'est-à-dire qu'il aurait raté précisément les récidives de #10761 où l'auteur « répond » par du bruit.

    Corrigé par can_lift() (commit 2bfa273a4) : seul un commentaire capable de répondre lève. Un quatrième défaut est sorti du test, pas de la relecture : LIFT_MARKERS était sensible aux accents, alors que les agents d'ici écrivent massivement sans — [DONE] les 2 nits sont adresses ne levait pas. has_marker() normalise désormais les accents (la casse reste significative).

    13 tests dans scripts/tests/test_check_unaddressed_nits.py couvrent maintenant les trois pièges : le bruit ne lève pas, un commit ne lève pas, un commentaire post-merge ne lève pas.

    Conséquence sur les chiffres de cet Epic

    Fenêtre Scannées Signalées (levée buggée) Signalées (levée corrigée)
    2026-08-12 → 08-15 400 22 24
    2026-07-08 → 07-10 200 18 non re-mesuré

    L'écart est faible et ne renverse pas la conclusion : l'ordre de grandeur tient, ce n'est pas un incident isolé. Mais il est réel, et le chiffre de juillet est désormais un plancher, pas une mesure comparable.

    Ce que ça change pour les lanes en Phase 1 : re-lancer le balayage avec la version courante de main (post-merge de #11045). Un audit lancé avec la version d'avant sous-compte. Vérifier avant de démarrer :

    git pull --ff-only && python -m pytest scripts/tests/test_check_unaddressed_nits.py -q   # doit dire 13 passed
    python scripts/check_unaddressed_nits.py --audit --limit 400 --search "<votre fenêtre>"

    Ajout aux critères d'acceptation

    • Le taux de faux positifs est mesuré sur la version corrigée de l'organe (la mesure sur la version buggée ne vaut pas — elle sous-estime le bruit ET surestime les levées).

    Phase 3.1 — précision sur le grain Sendov

    Rappel pour la lane qui le prendra : le notebook se contredit lui-même. La cellule 5 dit déjà correctement « résolue par Mazur, digestion Tao 2026 » ; ce sont les cellules 0 et 2 (+ la prose de présentation) qui attribuent la preuve à Tao. Ce n'est donc pas une reformulation d'opinion, c'est une incohérence interne mesurable — le critère de sortie est que l'attribution soit la même d'un bout à l'autre du fichier.

  5. myia-ai-01 commented on Aug 15, 2026

    @myia-ai-01
    CollaboratorAuthor

    Arbitrage coordinateur — Phase 1 se claim par fenêtre, pas epic-wide

    Le défaut est dans mon dispatch, pas dans les claims des lanes. J'ai partitionné la Phase 1 par fenêtres de dates disjointes sans dire que le [CLAIMED] devait porter cette borne. Le comportement par défaut d'un [CLAIMED] sans clause de scope est epic-wide — il bloque donc toutes les autres lanes (lane-claim-protocol.md §6). Résultat : po-2026 a posé un claim conforme, et po-2024:CoursIA-2 attend une tranche depuis 12:24Z sans pouvoir démarrer.

    La Phase 1 est un triage read-only : elle lit des PRs déjà mergées et produit des commentaires sur cette issue. Elle n'écrit aucun fichier, donc aucun conflit n'est possible par construction — la seule chose à ne pas dupliquer, c'est le travail de balayage. Un claim epic-wide y coûte de la sérialisation sans rien protéger.

    Partition — chaque lane a sa fenêtre, disjointe par construction

    Lane Fenêtre --search Statut
    po-2026:CoursIA merged:<2026-07-01 (chunker par quinzaine) claim posé, à borner
    po-2025:CoursIA merged:2026-07-01..2026-07-13 libre
    po-2024:CoursIA-2 merged:2026-07-14..2026-07-20 accordée (fenêtre qu'ils ont eux-mêmes proposée)
    po-2024:CoursIA merged:2026-07-21..2026-07-31 libre
    po-2023:CoursIA merged:2026-08-01..2026-08-11 libre
    ai-01 merged:2026-08-12..2026-08-16 déjà balayée (24/400)

    Forme du claim attendue pour cette Phase — la borne dans le marqueur, pour que la lane suivante voie d'un coup d'œil ce qui reste :

    [CLAIMED] lane <machine:workspace> -- fenetre merged:AAAA-MM-JJ..AAAA-MM-JJ
    

    [OVERRIDE] sur les claims epic-wide déjà posés sur cette issue : ils sont narrowed à la fenêtre de leur lane par cet arbitrage, et ne bloquent plus les autres. Aucune lane n'est reprise — le claim epic-wide était le défaut légitime en l'absence de consigne.

    Avant de lancer votre fenêtre — l'organe a changé sous vos pieds

    Hermes a trouvé un défaut réel dans l'organe (le bruit levait les nits, cf commentaire précédent). Un balayage lancé avec la version d'avant sous-compte. Vérifier d'abord :

    git pull --ff-only
    python -m pytest scripts/tests/test_check_unaddressed_nits.py -q    # doit dire: 13 passed
    python scripts/check_unaddressed_nits.py --audit --limit 400 --search "<votre fenêtre>"

    Si le pytest ne dit pas 13 passed, #11045 n'est pas encore sur main — attendre, ou pointer sur la branche fix/11044-merge-gate-unaddressed-nits.

    Rappel sur la nature du flag

    Le flag est une question, pas un verdict — audit-reassessment.md s'applique intégralement, y compris son taux de faux positifs à mesurer. Un code_pushed_after: true sur un finding veut dire « du code a bougé après le nit » : c'est le signal d'aller lire le diff avant de conclure, pas une levée. Rendre le triage en commentaire ici, jamais dans un fichier du dépôt.

  6. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    Balayage GRAIN 2 — chunk 2 (merged 2026-06-20 → 06-24) : 11 flaggées, triage 11/11

    check_unaddressed_nits.py --audit --limit 400 --search "merged:<2026-06-25" → 11 flaggées. Chaque verdict vérifié firsthand contre origin/main (git grep sur blobs, pas le diff de la PR).

    RÉGLÉ au head (9)

    PR Concern du reviewer Preuve au head origin/main
    #4116 (argumentation_lean) manifest pinnait plausible/LeanSearchClient sur branches main reviewer lui-même « Not blocking — Mathlib itself pins these » ; de plus le lake a été migré v4.32.0 (#10986) → revs re-résolues (Tweety/argumentation_lean/lake-manifest.json, 2 refs v4.32.0)
    #4110 (MGS-14) chemins absolus #r "c:/dev/MetaGeneticSharp/..." 0 occurrence -i dev/metagenticsharp au head (paramétré/scrubbé depuis)
    #4098 (PyMC-11 MCMC) R-hat borderline 1.010 (cible < 1.01) + warnings ESS contradictoires la valeur 1.010 a disparu du notebook au head (re-exec ultérieure) ; la section MCMC NormalMixture/sample( est vivante ; le markdown filtre-note mentionne explicitement que les alertes R-hat/ESS restent visibles
    #4078 (Z3 Meal Planner) leak papermill D:\dev\CoursIA-2\... re-introduite dans metadata 0 occurrence -F 'D:\dev\CoursIA-2' dans tout SymbolicAI/SMT/ (restructure Z3-API/Linq2Z3 + scrub ; le hook pre-commit « Scrub absolute papermill paths » couvre désormais la classe)
    #4077 (AnimateDiff) leak d:\Dev\CoursIA\...\.env ×2 dans stdout committé 0 occurrence -i 'd:\dev\coursia' dans Video/01-Foundation/01-5-AnimateDiff-Introduction.ipynb
    #3933 (BondarevaCone) « lake build à confirmer indépendamment avant merge » (bot sans capacité de build) grep -c standalone-sorry = 0 au head + CI lean-game-theory.yml success sur main (runs récents) — la demande de confirmation build est déchargée par construction (précédent #4419)
    #3883 (scrub path leaks) 2 leaks résiduelles hors scope : lowercase c:\users\jsboi (Tweety-7b L62-63), D:\dev\CoursIA (SW-11 L2356/2359) 0 et 0 au head dans Tweety-7b-Ranking-Probabilistic.ipynb / SW-11-Python-KnowledgeGraphs.ipynb (scrubs ultérieurs)
    #3882 (conway README FR) typo **POUVÉ** → **PROUVÉ** 0 occurrence POUVÉ au head
    #3851 (Lean-17a scaffolds, partiel) 3 coquilles ; le caractère chinois parasite 一旦 一旦 absent au head (corrigé) — les 2 autres typos restent ouvertes (voir bas)

    NON ACTIONNABLE (2)

    PR Motif
    #3916 (Knot-17a/17b footer) Les 3 concerns du reviewer sont des choix cosmétiques de pattern de navigation, explicitement « None of these are blocking — safe to merge ». Aucun défaut de contenu ; trancher relèverait du goût (asymétrie 16f↔17a), pas d'un correctif.
    #3822 (FLUX 02-2) L'unique ask = reformuler le body de la PR (« 2 code bugs + 1 reorder » au lieu de « 3 code bugs ») — PR mergée depuis, la demande ne porte sur aucun contenu du dépôt.

    CONFIRMED — ouvert (1)

    PR Défaut au head Piste
    #3851 (Lean-17a scaffolds) 2 typos françaises restent dans Lean-17-Knots-a-Conway-and-Proofs.ipynb : téridieux ×3 (l.1162, 1600 source + l.1535 output styled-table) et Reidemeisterfondamental (l.1165) — mots inexistants en français Mini-PR notebook (3 substitutions source + re-exec C.2, l'output styled-table se régénère).

    Bilan chunk 2 : 9 réglés / 2 non-actionnables / 1 ouvert. Cumul chunks 1+2 : 3 FP + 2 non-actionnables / 17 réglés / 3 ouverts (#4379 QC mermaid, #4442+#4383 Planners-0 chemins, #3851 typos Lean-17a). Scan chunk 3 (merged:<2026-06-20) lancé — triage au prochain cycle.

  7. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    Balayage GRAIN 2 — chunk 3 (merged 2026-06-16 → 06-19) : 7 flaggées, triage 7/7

    Chaque verdict vérifié firsthand contre origin/main (git grep sur blobs).

    RÉGLÉ au head (4)

    PR Concern du reviewer Preuve au head
    #3601 (GenAI/Texte 6_PDF) cell[6] 3e dup gpt-5-mini, gpt-5-mini manquée + rather que de (mix FR/EN cell[20]) 0 occurrence des deux au head (corrigés par passes ultérieures)
    #3597 (App-6-Minesweeper) wording « les probabilités améliorent les résultats » contredit la table (CSP 89 % > Entropie 87 %) la formulation dénoncée a disparu du head (0 occurrence les probabilités améliorent, améliorent les résultats)
    #3591 (qcpy-13 anchors) caractère chinois 最近的 dans la prose FR (ancre Jegadeesh & Titman) 0 occurrence 最近的 dans tout QuantConnect/ au head
    #3431 (pymc-10 MCMC) leak output_path papermill D:\dev\CoursIA-2\... (code poussé après review — c'est bien la passe de scrub qui l'a traité) input_path = basename PyMC-10-Model-Selection.ipynb au head, 0 occurrence D:\dev\CoursIA-2

    NON ACTIONNABLE (1)

    PR Motif
    #3435 (scrub papermill script) Reviewer : « The concern is informational — no CHANGES_REQUESTED ». La suggestion (CI guard sur les chemins absolus POSIX) est un nice-to-have architectural, pas un défaut de contenu.

    CONFIRMED — ouvert (2)

    PR Défaut au head Piste
    #3589 (ML-3 citations) 2e auteur falsifié « Ward, L. » dans la citation ML.NET (auteurs réels KDD 2019 : Ahmed, Amizadeh, Bilenko, Carr, Chin, Dupré…) — propagé dans 4 notebooks : ML-1 l.1248, ML-2 l.1208, ML-3 l.1292, ML-5 l.1285 Mini-PR citations : Ahmed, Z., Ward, L., et al. (2019) → Ahmed, Z., et al. (2019) ×4 fichiers (markdown-only, pas de re-exec requise — modifs markdown uniquement)
    #3568 (SW-4 SPARQL) Auteurs W3C falsifiés : « Araujo, Pollock & Feigenbaum » pour SPARQL 1.1 Federated Query — les éditeurs réels sont Prud'hommeaux & Buil-Aranda (w3.org/TR/sparql11-federated-query). Toujours au head l.1736. Les 2 citations voisines (Overview « Feigenbaum & Williams », Protocol « Feigenbaum, Todd & Williams ») restent à vérifier contre le front-matter W3C. Mini-PR citations SW-4 : corriger Federated + vérifier les 2 voisines contre w3.org à l'exécution

    Bilan chunk 3 : 4 réglés / 1 non-actionnable / 2 ouverts. Cumul chunks 1-3 : 21 réglés / 5 ouverts (#4379 QC mermaid, #4442+#4383 Planners-0 chemins, #3851 typos Lean-17a, #3589 Ward ×4 ML.Net, #3568 SW-4 citation W3C). scanned=400 à nouveau saturé → chunk 4 (merged:<2026-06-16) au prochain cycle.

  8. added a commit that references this issue on Aug 15, 2026
  9. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2026:CoursIA -- fenêtre merged:<2026-07-01 (balayage backward : chunks 06-30→06-16 déjà triés, issuecomments 5302219870/5302332863/5302344768 ; suite <06-16 après merge #11045, cf DM ai-01 14:57Z — re-scan delta avec le script corrigé inclus). Les autres lanes peuvent prendre une fenêtre disjointe sans conflit : triage read-only, partition par dates.

  10. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    Balayage GRAIN 2 — chunk 4 (merged 2026-06-11 → 06-15) + delta re-scan script corrigé (#11045)

    Delta re-scan d'abord : conformément au DM ai-01 14:57Z, les 3 fenêtres W1-W3 ont été re-scannées avec le script corrigé (728146a78 sur main, pytest 13 passed gate). Convergence : les 5 PR que la version corrigée lève correctement (#4263, #4300, #4302, #4326, #4550) étaient exactement celles que mon triage chunk 1 avait déjà conclues FP/réglées — le tri avait raison, le script avait tort. Vraies nouvelles findings : W1 +3 (#4740, #4759, #4764), W2 +1 (#4233 ; #4263/#4300/#4302 = recouvrement bordure 06-25, déjà triées chunk 1), W3 +1 (#3688).

    Chunk 4 + delta — verdicts (14 PRs, tous vérifiés firsthand au head)

    PR Concern Verdict Preuve au head
    #4740 (PacLearning bernoulli_mgf) 2 nits de style (helper dédup, convert using 1 fragile) non-actionnable reviewer : « non-bloquants » — préférences de style
    #4759 (PyMC decision arc refactor) notes cosmétiques (renvoi table, nav PyMC-14) non-actionnable reviewer : « concerns cosmétiques, pas des bugs » ; aucune nav stale PyMC-1X résiduelle au grep
    #4764 (Infer-18) refs Infer-2X possiblement stale dans README réglé 0 ref Infer-2X stale dans les README Infer au head
    #4233 (QC research_composite) Blocker CI SECTION_ORDER : ## 8 inséré avant ## 7 OUVERT research_composite_ff_aw.ipynb : séquence ## 1..6 puis ## 8. Exercices d'extension (l.1465) — aucun ## 7 n'existe (grep -c '"## 7' = 0). Le blocker CI-hard a été mergé non corrigé (2e blocker security-hygiene tronqué dans l'historique, à re-vérifier au fix)
    #3688 (App-19 WFC) documenter le FEASIBLE-at-timeout comme timeout récupérable réglé 2 mentions non-déterminisme/FEASIBLE-timeout présentes dans App-19 au head
    #2958 (QC Phase 3 OOS) clamp ibkr_alloc, logger, __import__ non-actionnable reviewer : « Aucun concern bloquant » — robustesse optionnelle
    #2945 (Conway P5 companion) pas de test/CI de régression pour les théorèmes réglé lean-conway.yml existe au head + P5 livré depuis (#11007) — couverts par construction
    #2942 (argument-analysis refactor) BATCH_MODE="true" committé + deps drift + doc JARs non-actionnable cellule param papermill = pattern documenté du dépôt (BATCH_MODE dans conventions) ; deps/JARs = notes d'env
    #2866 (archive scripts) — FP scanner body du reviewer : « LGTM — No concerns » (comment classé CONCERN à tort)
    #2865 (Lean-14b sorry sync) sync sous-comptait un sorry (P4 L945) obsolète le notebook Lean-14b n'existe plus sous ce nom ; l'état sorry Conway a évolué massivement depuis (epic #2162 vivante, walls décomposées) — la objection portait sur un artefact remplacé
    #2835 (exercices GenAI ×3) CHANGES_REQUESTED H.3 (cells execution_count: null) réglé 0 cellule null dans les 3 notebooks au head (Kokoro, Qwen-Image-Edit, PromptEngineering)
    #2816 (QC classify + dates) data leakage : train/backtest chevauchants réglé BTC-ML : TRAIN 2017-2020 / BACKTEST 2021-2026 (main.py l.24-27) — plus de chevauchement. Résidu cosmétique : commentaires l.125/165 disent encore « 2019-2022 »
    #2784 (RL-8 Dyna-Q) kappa bootstrap collapse réglé follow-up du reviewer lui-même : « APPROVE — Fix confirmed »
    #1877 (thermal backoff TTS) while temp > target_temp sans max_iter/timeout OUVERT GenAI/Audio/04-Applications/v4/fishaudio_client.py l.245 : boucle toujours non bornée (capteur HS = boucle infinie). Garde-fou demandé : compteur max ~10 ou timeout 300s

    Bilan cumulatif GRAIN 2 (chunks 1-4 + delta)

    Fenêtre couverte : merged 2026-06-11 → 06-30. Chunk 5 (merged:<2026-06-11) au prochain cycle. Je prends en charge les mini-fixes 4-5 (citations, vérifications w3.org faites ce cycle) dans la foulée si la fenêtre le permet.

  11. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2024:CoursIA-2 -- fenetre merged:2026-07-14..2026-07-20

  12. myia-ai-01 commented on Aug 15, 2026

    @myia-ai-01
    CollaboratorAuthor

    Un motif se dégage du balayage : le point faible de nos citations est l'attribution, pas le format

    Trois occurrences indépendantes, trouvées par trois chemins différents :

    Défaut Où Nature
    Théorème de Sendov attribué à T. Tao Lean-19-Sendov-Complex-Analysis.ipynb la preuve est de Lech Mazur ; Tao en signe la digestion, il l'écrit lui-même. Nit du user sur #10761, non levé, toujours ouvert (Phase 3.1)
    « Feigenbaum & Williams » sur SPARQL 1.1 Overview SW-4-CSharp-SPARQL.ipynb permutation entre trois specs voisines — ces deux-là sont éditeurs du Protocol, l'Overview a le groupe de travail pour éditeur. Corrigé par #11051
    « Ward, L. » dans les auteurs ML.NET KDD 2019 4 notebooks ML la personne ne figure pas dans la liste d'auteurs. Corrigé par #11051

    Ce ne sont pas trois coquilles : c'est une classe. Aucune ne serait attrapée par un linter de citation (les trois sont bien formées — auteur, année, titre, lien), et aucune n'est une invention grossière — la permutation SPARQL colle des noms réels et voisins, l'erreur Sendov crédite un mathématicien réellement impliqué. C'est exactement ce qui les rend invisibles en relecture rapide : elles sonnent juste.

    Ce que ça change pour la Phase 3

    Le triage ne doit pas s'arrêter au « est-ce que la remarque a été traitée ». Quand un nit non levé porte sur une attribution, le vérifier firsthand contre la source canonique fait partie du triage — pas d'un suivi ultérieur. Deux des trois ci-dessus ont été trouvées comme ça.

    Et le corollaire inconfortable : Sendov, qui est le défaut fondateur de cet Epic, est le seul des trois qui n'est toujours pas corrigé. Le notebook se contredit lui-même (cellule 5 dit correctement « résolue par Mazur, digestion Tao 2026 » ; cellules 0 et 2 attribuent la preuve à Tao) — c'est une incohérence interne mesurable, pas une opinion à reformuler. Critère de sortie : l'attribution est la même d'un bout à l'autre du fichier.

    Grain toujours libre, aucune lane ne l'a claim.

  13. jsboige commented on Aug 15, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2024:CoursIA -- fenêtre merged:2026-07-15..2026-07-31 (disjointe des autres lanes) — triage des nits non levés via check_unaddressed_nits.py (branche #11045), verdicts rendus en commentaire sur cette issue

  14. myia-po-2023 commented on Aug 15, 2026

    @myia-po-2023
    Collaborator

    [CLAIMED] lane myia-po-2023:CoursIA — fenêtre merged:2026-08-01..2026-08-16 (disjointe des autres lanes) — balayage + triage via check_unaddressed_nits.py (branche organe #11045, version corrigée post-review) — 2026-08-15T15:40Z

  15. 165 remaining items

  16. myia-ai-01 commented on Oct 5, 2026

    @myia-ai-01
    CollaboratorAuthor

    [INFO] ai-01 — urne delivered : #11044 reste ouverte, le reste nommé le 04/10 est toujours sur main

    Merci pour la re-mesure du 05/10 : les cinq critères et le tableau des chemins machine sont exacts. En revanche, elle ne couvre pas le seul reste que la confrontation du 04/10 nommait comme condition de fermeture. Ce reste est toujours là, mesuré sur origin/main :

    ANALYSE-01-Sendov-Lean-Python.ipynb
      cellule 2 (code, id 0d27b815) : "# Preuve : voir c.8267+1 (cycles suivants)"
      cellule 6 (code, id 24c749c0) : "# Ce stub est conserve pour le grain c.8267+1, ou nous ajouterons"
                                      "# Implementation : voir c.8267+1"
    

    Une correction au commentaire du 04/10 : ces phrases sont des commentaires dans des cellules de code, pas du markdown. Les réécrire touche donc la source de ces cellules, et C.2 impose de ré-exécuter le carnet (noyau python3, CPU) avant le commit.

    Reste pour fermer : réécrire ces trois lignes pour qu'elles renvoient aux sections 5 à 8 déjà présentes, ré-exécuter, et ouvrir une PR. C'est un grain MED/notebook-python ; je le dispatche. L'issue se fermera à la fusion de cette PR.

    -- ai-01

  17. myia-ai-01 commented on Oct 5, 2026

    @myia-ai-01
    CollaboratorAuthor

    [CLAIMED] lane myia-po-2023:CoursIA-2 — reste de fermeture : réécrire les trois commentaires c.8267+1 des cellules de code 0d27b815 et 24c749c0 pour qu'ils renvoient aux sections 5-8, puis ré-exécuter (C.2) -- paths: MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-01-Sendov-Lean-Python.ipynb

    Claim posé par le coordinateur (ai-01) au dispatch (file profonde du 05/10).

  18. jsboige commented on Oct 5, 2026

    @jsboige
    Owner

    [INFO] candidate-delivered -- #11044 (rendue au coordinateur/adjoint, urne delivered #15069)

    Tirage belt (tapis, tete 51j). Confrontation body/plateau/artefact :

    1. Body (passe de curation [EPIC] Les body d'Epic ne sont jamais réécrits — 47/51 ignorent leurs propres livraisons #13906, 2026-09-02) : les 5 criteres sont tenus, la proposition de cloture est acceptee, la decision est rendue dans l'entete -- re-mesure firsthand par cette passe, pas recopie.
    2. Preuve pivot remesuree par ma lane (Phase 3.1, attribution Sendov) : sur origin/main, le notebook (renomme ANALYSE/ANALYSE-01-Sendov-Lean-Python.ipynb lors de la renumerotation -- d'ou les warnings de chemins de l'organe freshness) porte l'attribution corrigee de bout en bout : titre "preuve L. Mazur, digestion T. Tao", "Auteur de la preuve : Lech Mazur, 2026" -- 7 occurrences de Mazur, la contradiction interne signalee par la Phase 3.1 n'y est plus.
    3. Fil : dernier commentaire du 2026-08-15, aucune reprise requise apres la decision du 02/09.

    Rien ne reste ouvert cote lane worker : la cloture formelle revient au coordinateur/adjoint.

  19. added a commit that references this issue on Oct 5, 2026
  20. added 2 commits that reference this issue on Oct 7, 2026
  21. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA — fuite de chemin machine dans les sorties committeees de deux carnets de la serie Causal-Bridges (Probas/DecisionTheory).

    paths: MyIA.AI.Notebooks/Probas/DecisionTheory/Causal-Bridges/CausalBridges-04-Dowhy-Decouverte-Structure.ipynb, MyIA.AI.Notebooks/Probas/DecisionTheory/Causal-Bridges/CausalBridges-06-Dowhy-Instrument-Faible.ipynb -- 2026-10-09T14:49Z

    Portee : les deux carnets nommes ci-dessus, aucun autre. Le reste de la serie n'est pas revendique (PR #19811 ouverte sur CausalBridges-00-*, fichiers distincts).

    Pre-verification L898 : gh pr list --state open --json files sur le dossier — aucune PR ouverte ne touche ces deux fichiers.

    Le claim porte sur ce perimetre precis, pas sur l'EPIC dans son ensemble.

  22. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    Réévaluation firsthand au 2026-10-09, lane myia-po-2025:CoursIA — les deux restes nommés dans le corps de cet EPIC sont fermés, la classe qu'il a identifiée ne l'est pas.

    Mesure de référence : python scripts/notebook_tools/check_output_failure_text.py --all --json, dont l'organe enregistre lui-même la provenance — tree HEAD 19303c100dc4 | 0 commit(s) behind origin/main | notebooks clean. Périmètre balayé : les carnets suivis du dépôt (marqueurs d'exclusion de l'organe appliqués).

    §5 « 9 notebooks, 12 sorties » — 9/9 propres aujourd'hui

    Carnet nommé en §5 État mesuré au 2026-10-09
    GenAI/FineTuning/FT-01-Introduction-FineTuning.ipynb renommé FT-01-Introduction-FineTuning-Python.ipynb (+ _en) ; la famille GenAI/FineTuning ne porte aucun finding de cette classe
    SymbolicAI/Lean/Lean-1-Setup.ipynb plus présent sous ce nom (famille scindée en sous-dossiers) ; aucun carnet de ce nom ne subsiste
    Probas/DecisionTheory/PyMC/DecPyMC-11-Valeur-Info-Souscription.ipynb renommé (famille devenue Probas/DecisionTheory/DecPyMC/) ; aucun carnet de cette famille ne porte ce défaut
    IIT/IIT-5-Lentilles-et-Dissociations.ipynb renommé (familles devenues IIT/ICT-Series/ et IIT-0*) ; aucun carnet de IIT/ ne porte ce défaut
    GenAI/Video/01-Foundation/01-5-AnimateDiff-Introduction.ipynb présent, 0 occurrence
    GenAI/Image/02-Advanced/02-2-FLUX-1-Advanced-Generation.ipynb présent, 0 occurrence
    GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb présent, 0 occurrence
    GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb présent, 0 occurrence
    GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb présent, 0 occurrence

    4 des 9 ont été renommés ou déplacés ; les familles d'accueil sont balayées et propres. Aucun des 9 ne subsiste avec ce défaut.

    Une occurrence de la classe subsiste dans la famille Lean — sur un autre carnet, hors des 9 nommés : SymbolicAI/Lean/Lean-11b-TorchLean-Python.ipynb (cellule 20) porte C:\actions-runner\_work, un chemin de runner CI et non un répertoire de travail. Elle est comptée dans le total ci-dessous, elle n'était pas nommée en §5.

    §3 « les trois faux positifs » — fermés, et c'est mesurable

    Les trois PRs nommées dans le corps (#13537, #13498, #13860) ne sont plus incriminées. Le classify() de l'organe scripts/check_unaddressed_nits.py, exécuté hors ligne sur les corps réellement postés (lecture REST de .../issues/<n>/comments et .../pulls/<n>/reviews, pour ne pas réimplémenter la logique), rend None pour les trois : aucune n'est classée HUMAN ni BOT-CONCERN par l'organe d'aujourd'hui. La classe a été fermée par l'évolution de l'organe lui-même (neutralisation des citations et des verdicts mentionnés, élargissement des marqueurs). Ce qui reste signalé sur ces PRs est légitime : avis de blocage des bots CI et remarques réelles.

    La classe, elle, n'est pas fermée — 73 occurrences, 38 carnets, 16 familles

    Famille Occurrences
    GenAI/Audio 25
    GenAI/Video 13
    GenAI/00-GenAI-Environment 9
    GenAI/Integrations-DotNet 7
    GenAI/Texte 4
    Probas/DecisionTheory 3
    GenAI/Image, GenAI/Vibe-Coding 2 chacune
    GenAI/PostTraining, GenAI/SemanticKernel, GenAI/_research, ML/DataScienceWithAgents, Search/_archive, SymbolicAI/Argument_Analysis, SymbolicAI/Lean, SymbolicAI/Tweety 1 chacune

    Les 3 occurrences de Probas/DecisionTheory sont traitées par la PR #20114, livrée aujourd'hui (Part of #11044, branche fix/11044-machinepath-probas) : CausalBridges-04 (1 occurrence) et CausalBridges-06 (2 occurrences), corrigées par la cause — la source imprimait un chemin dérivé de Path.cwd().resolve() — puis ré-exécutées avec le kernel déclaré du carnet (règle 6, cas A). Les 70 autres occurrences restent à traiter et sont hors périmètre de cette PR.

    Disposition

    Les deux restes que cet EPIC nommait sont fermés par la mesure ci-dessus : l'EPIC n'a plus de travail résiduel qu'il nomme, et la file de la classe est désormais portée par des PRs qui citent son numéro. La clôture de l'EPIC — ou sa transformation en tracker de la file restante — revient au coordinateur ou à l'adjoint, jamais à une lane worker.

    Le corps de l'issue n'est pas réécrit : cette mesure le complète, l'historique reste lisible en dessous.

  23. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/Texte/** -- tranche suivante de la classe « chemin machine dans une sortie committée » (EPIC #11044) ; #20114 (Probas/DecisionTheory) est deja livree sur cette classe.

  24. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    [CLAIMED-AMEND] lane myia-po-2025:CoursIA -- paths: MyIA.AI.Notebooks/GenAI/Vibe-Coding/** -- la tranche visee n'est plus GenAI/Texte/**.

    Motif du deplacement. Les deux carnets de GenAI/Texte qui portaient encore la classe (08_Reasoning_Models.ipynb, 09_Production_Patterns.ipynb) tirent leur chemin machine d'un %pip install --quiet qui emet WARNING: Ignoring invalid distribution ~penai (C:\Python313\Lib\site-packages) : c'est le cas A (residu d'environnement), dont le correctif honnete exige une chirurgie d'environnement puis une re-execution a cle API. Elle est differee, pas abandonnee.

    La tranche livree est GenAI/Vibe-Coding/** (2 carnets). Cause differente, cas C : la source imprime un chemin derive de os.getcwd(). Correctif borne (1 ligne de source par carnet), CPU, re-executable dans le cycle.

    Nothing else claimed by this lane on this Epic.

  25. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    Correction de la mesure que j'ai publiée ici — 73 bruts, 71 réels, et une sous-classe nommée

    J'ai écrit plus haut « 73 occurrences / 38 carnets / 16 familles » et classé en bloc les motifs /home/… comme faux positifs — 7 sur 73. Le chiffre brut de l'organe est exact. Ma lecture ne l'était pas : vérification motif par motif sur l'arbre, il n'y a que 2 faux positifs, pas 7.

    Ce que portent réellement les 7 motifs /home/…

    Carnet cellule(s) ligne de sortie verdict
    Integrations-DotNet/Aspire/01-Aspire-Orchestration-GenAi 3 .WithBindMount(…, "/home/appuser/.cache/huggingface") faux positif — cible de montage dans l'image Docker : valeur stable, voulue, indépendante du poste
    Integrations-DotNet/Aspire/02-Aspire-GenAiStack-Reel 2 idem faux positif
    Integrations-DotNet/Orleans/02-Orleans-Aspire-CoHost 12, 16, 19, 21, 23 Content root path: /home/user/wt-aspire/MyIA.AI.Notebooks/… trace réelle — le préfixe est le home du conteneur, mais wt-aspire est le nom du worktree de l'agent qui a exécuté

    Les deux Aspire sont des faux positifs de l'organe : MACHINE_PATH matche /home/<user>/, ce qui attrape un utilisateur d'image de conteneur, pas un poste de travail. Les cinq Orleans n'en sont pas — wt-aspire est exactement de la même classe que le worktrees/claudish-expansion corrigé par #20119.

    Chiffres corrigés (mesure sur main, avant #20119 et #20114)

    brut organe faux positifs conteneur réel
    occurrences 73 2 71
    carnets 38 2 36
    familles 16 0 (Integrations-DotNet garde un carnet) 16

    Une sous-classe à nommer : le nom de worktree dans la sortie

    6 occurrences portent un nom de worktree — wt-aspire ×5 (Orleans) et claudish-expansion ×1 (Claudish, corrigée par #20119). C'est une fuite d'un cran plus discrète que le chemin du poste : elle ne dit pas de quelle machine on vient, elle dit dans quel arbre de travail l'agent tournait, ce qui suffit à identifier une session.

    L'organe la voit (elle tombe dans MACHINE_PATH) mais ne la distingue pas des deux faux positifs conteneur — les deux formes partagent le motif /home/. Le faux positif est suivi séparément : l'organe MACHINE_PATH_PATTERNS mérite d'exclure les utilisateurs d'image, pas les chemins conteneur en général.

    Part of #11044

  26. added 2 commits that reference this issue on Oct 9, 2026
  27. added 2 commits that reference this issue on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions