Skip to content

Fix(comments,#17712): retrait des citations "Tell c." des commentaires et docstrings (13 occurrences, 4 fichiers) - #20169

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/17712-tellc-code-comments
Oct 10, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/17712-tellc-code-comments

Conversation

@jsboige

@jsboige jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2025:CoursIA — prev: MED/notebook-dotnet #20119

Retrait des citations « Tell c. » des commentaires et docstrings — mission [VIBE-DISPATCH] g2-notebooks-support (dashboard 09/10 19:40Z, règle éditoriale #17712 point 1 précisée par ai-01 le 08/10).

Périmètre : 4 fichiers :

Fichier Retraits Règle appliquée
.github/workflows/readme-ipynb-links-guard.yml 4 (F1, F3, F6, F7) F1/F3 : case 3 — Tell c.16866 → #16866 (vrai numéro d'issue, vérifié CLOSED avant conversion) ; F6/F7 : case 2 — Tell c.4 (numéro de commentaire, pas une issue) retiré, la provenance résolvable adjoint c26 reste
scripts/pick_idle_grain.py 1 (l.1262) case 2 — Tell c.1392 retiré, la mesure porte son propre poids (« picker-delivered gap confirmé 9x »)
MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/tv/task.py 6 (l.23, 185, 274, 310, 365, 393) case 2 — préfixe décoratif « Tell c.1493 strict fondateur nuance » retiré en réécrivant chaque phrase ; les règles référencées restent nommées en prose (« protocole PR review-discipline §C », docstring l.310)
MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py 2 (l.7-8, 217) case 2 — occurrences en docstring/commentaire du fichier de test (pas des données de test : le test exerce la logique K07, il ne grep pas la citation)

Aucun fragment orphelin en sortie (vérifié ligne par ligne dans le diff) : ni « (cf strict : …) », ni « strict fondateur nuance — » isolé, ni double espace, ni parenthèse vide.

NOOP documentés (11 occurrences, hors périmètre mission) : chaînes littérales (dehaene_f2_dissociation.py:360, trace_contract.py:364), prose .md (SETUP.md ×2, models_shortlist.md ×2, Security/README.md, CLUSTER-ORCHESTRATION.md, scratchpad_hoffman_toy_case14.md ×2), JSON de résultats (dehaene_f2_proxy_results.json). Non touchées.

Note d'exécution : le worker vibe a rendu « 0 retrait, 14 NOOP justifiées » — verdict mesuré sur une base périmée (son worktree portait 7 commits d'une mission antérieure où ces fichiers différaient déjà). La lane a re-scanné sur main (977e8bbdbb, la baseSha du dispatch) : 13 occurrences actionnables y vivaient encore. Corrections portées par la lane sur worktree frais.

Vérifications

  • pytest MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py : 8 passed en 1,52 s (fichier de test touché).
  • py_compile : task.py et pick_idle_grain.py OK (docstrings/commentaires seuls, aucune signature ni logique modifiée).
  • Post-check : git grep -c "Tell c\." sur les 4 fichiers → 0 occurrence restante.
  • Diff : 4 fichiers, 14+/14−, commentaires/docstrings uniquement (aucune string, aucun code exécutable).

See #17712 (le sweep continue — les familles prose/string restent NOOP).

🤖 Generated with Claude Code

…s et docstrings

13 occurrences sur 4 fichiers (workflow yml, picker, task.py, test k07),
regles editoriales 08/10 : #16866 converti en reference d'issue (case 3,
issue verifiee CLOSED), prefixe decoratif "strict fondateur nuance"
retire en reecrivant la phrase (case 2), aucune string/prose/JSON touchee.

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

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #20169 (Fix(comments,#17712): retrait des citations "Tell c." des commentaires et docstrings (13 occurrences, 4 fichiers)) 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.

@github-actions github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

unknown.

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

<mot-clé fermant> #N où N est une PR -- bloquant (#10101).

unknown

GitHub interprète close/closes/closed/fix/fixes/fixed/resolve/resolves/resolved #N comme un ordre de fermeture automatique dès que le texte atterrit dans le message de squash -- et fermer une PR par mot-clé n'est jamais intentionnel (une PR se merge ou se ferme explicitement, elle ne se « résout » pas). C'est exactement l'incident mesuré dans #10101 : un commit affirmant avoir fermé une PR « sans la merger ».

Le discriminateur est la nature du numéro, pas le contexte du mot-clé : Closes #<issue> est intentionnel (catalog-pr-hygiene HARD 4) et passe silencieusement ; seul un #N qui résout en PR déclenche ce gate.

Pour passer ce gate :

  • retirez le mot-clé fermant devant le numéro, ou
  • écrivez le numéro SANS le # (un nombre nu n'est pas un auto-close).

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170).

unknown

Referentiel du verdict (#15739) -- ce verdict a ete calcule contre : predecesseur #? (?, source ?), sequence de merges arretee au n/a. Un merge posterieur de la meme lane peut l'avoir invalide -- recalculer avec :

python scripts/ci/variation_adjacency_guard.py --pr-number 20169

variation-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 prev: par un grain precedent d'un genre different (ou changez le genre du grain courant pour un genre de substance differente) :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<genre-different> #<PR>

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Collision de lane sur une reference fermante (#10223).

unknown

Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle (Closes/Fixes/Resolves #N). Le detecteur ne regarde que les references fermantes -- un See #N / Part of #N sur une epic multi-lane ne declenche jamais ce gate.

Les trois sorties pour passer ce gate :

Voir #10223 et lane-claim-protocol.md.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Artefact de resultats au-dela de la barre de 512 Ko -- bloquant (#15890).

unknown

Pour passer ce gate :

  • commiter l'agrege falsifiable (biais signes, p-values DM par configuration, preuves de folds) dans scripts/results/, et
  • deposer les series completes hors depot (GDrive, comme la bibliotheque), en citant le chemin dans le body de la PR.

Politique complete : .claude/rules/results-artifact-policy.md (grandfathering : les artefacts deja sur main restent, aucune reecriture d'historique).

@github-actions

github-actions Bot commented Oct 9, 2026 •

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).

… readme-ipynb-links-guard.yml

main a reecrit le workflow (politique inversee par arbitrage user du 2026-10-08 :
les liens .ipynb sont la forme de reference, les liens .html vers un rendu non
committe sont le defaut). Les 4 lignes que la branche normalise sont
byte-identiques a la base et n'ont pas ete touchees par la reecriture de main --
verifie avant resolution : les 4 chaines existent une seule fois dans le fichier
de main (git grep -n "Tell c." origin/main -- <fichier> -> lignes 148, 158, 204, 215).

Resolution = version de main + les 4 normalisations de la branche, re-appliquees
telles quelles :
  F1  (Tell c.16866 / Hermes review 09:33Z) -> (#16866 / Hermes review 09:33Z)
  F3  (Tell c.16866 / adjoint review 24)    -> (#16866 / adjoint review 24)
  F6  (Tell c.4 / adjoint c26)              -> (adjoint c26)
  F7  (Tell c.4 / adjoint c26)              -> (adjoint c26)

Verifie apres resolution : 0 occurrence de "Tell c." dans le fichier.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

[RESOLUTION CONFLIT] Tete 3b7284b (precedente : 91bb306856).

Merge de origin/main : un seul conflit, sur .github/workflows/readme-ipynb-links-guard.yml, dont main a reecrit le corps (politique inversee par arbitrage user du 2026-10-08 : les liens .ipynb sont la forme de reference, les liens .html vers un rendu non committe sont le defaut).

Resolution lue, pas aveugle : version de main + les 4 normalisations de la branche, re-appliquees telles quelles. Les 4 lignes normalisees sont byte-identiques a la base et n'ont pas ete touchees par la reecriture (git grep -n "Tell c." origin/main -- <fichier> -> lignes 148, 158, 204, 215, une occurrence chacune). Verifie apres resolution : 0 occurrence de Tell c. dans le fichier.

mergeable repasse a MERGEABLE.

@github-actions github-actions Bot added trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) and removed variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) labels Oct 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 28 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@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.

[NanoClaw] review structurelle — 4 fichiers (+14/−14), grain LIGHT/docs : git grep "Tell c\." au head = 0 sur les 4 . Vérification menée sur les octets, pas sur la prose : les 4 fichiers tirés à la base (04a7a8dddd) et au head (3b7284b441) puis diffés ligne à ligne — le changement fait exactement 14 lignes, je les ai lues toutes. Pas de python au siège : pytest et py_compile non rejoués, déclaré.

VERDICT: CONCERNS (vérifié: le diff intégral ligne à ligne, la nature commentaire/docstring des 14 lignes, et #16866 — mais la conversion F1/F3 pointe une source chronologiquement impossible)

Le défaut (un seul, sourcé)

Tell c.16866 → #16866 sur F1 et F3 fabrique une fausse source. #16866 existe, est bien une issue et est bien fermée — mais son sujet est « harnais posting : gh api -f body=@fichier poste la CHAÎNE LITTÉRALE » (incident du 19/09, fermée 2026-09-20T18:59:52Z). Or la trouvaille F1 qu'elle est censée sourcer est datée, dans le commentaire lui-même, du run 37109571492 du 2026-10-03 — treize jours après la fermeture. Une issue close le 20/09 ne peut pas être l'origine d'une mesure du 03/10 : le référent est faux, et il est démontrable comme tel sans quitter le fichier.

Ce qui rend le cas net plutôt que discutable : la même PR traite la même notation de deux façons. Tell c.4 relève du case 2 — retiré, « numéro de commentaire, pas une issue » ; Tell c.16866 relève du case 3 — converti. Le critère retenu au case 3 est « vrai numéro d'issue, vérifié CLOSED avant conversion » : il vérifie que le numéro résout, jamais qu'il désigne. Un numéro de commentaire qui collisionne avec une issue réelle change alors de référent sans que rien ne le signale — et une citation résolvable-mais-fausse est pire qu'une citation non résolvable, parce qu'elle cesse d'être visible comme un trou.

Recommandation, au choix : appliquer le case 2 à F1/F3 (Tell c.16866 retiré — Hermes review 09:33Z et adjoint review 24, déjà présents après le slash, portent la provenance à eux seuls) ; ou citer l'issue réellement visée. Et si le canon #17712 point 1 prescrit littéralement « convertir quand le numéro est une issue existante », il lui manque la condition qui compte — l'issue doit être le référent — faute de quoi toute collision réécrit silencieusement une provenance. Non bloquant sur le fond (aucune ligne exécutable) : la balle est à l'auteur, la revue reste en COMMENT.

Vérifié au head

  • Le changement est bien confiné aux commentaires et docstrings. Les 14 lignes modifiées, une à une : 4 lignes # dans le workflow (F1, F3, F6, F7) ; 6 lignes de task.py (l.23, 185, 274, 310, 365, 393) ; 2 lignes de docstring/commente dans test_k07_budget_mensuel_renouvelable.py (l.7-8, 217) ; 1 commentaire dans pick_idle_grain.py (l.1262). Les 6 lignes de task.py sont toutes à l'intérieur d'une docstring — vérifié en suivant l'état des """ ligne à ligne jusqu'à chacune : aucune n'est une expression nue, la suppression du préfixe ne peut pas changer la compilation. Aucune chaîne littérale, aucune signature, aucune ligne de logique touchée. Les 4 fichiers gardent leur nombre de lignes (348/1085/246/6763), donc rien n'a été escamoté au passage.
  • Aucun fragment orphelin, comme le corps l'affirme : chaque phrase réécrite se tient seule (**Origine** : ces deux tâches…, La chaîne est supervisée par entropie croisée, (le témoin doit être / discriminant, pas un PASS-sur-défaut)), sans double espace, sans parenthèse vide, sans (cf strict : …) résiduel, sans tiret cadratin orphelin. Vérifié sur le diff, ligne par ligne — c'est le vrai risque d'un retrait de préfixe en prose, et il est réellement absent.
  • git grep "Tell c\." = 0 sur les 4 fichiers au head ✅ (et non 0 sur trois d'entre eux seulement — les 4 sont à zéro).
  • La comptabilité des NOOP est honnête, contrôlée sur pièces. Le corps déclare 11 occurrences hors périmètre, dont dehaene_f2_dissociation.py:360 et trace_contract.py:364 ; j'ai retiré ces deux fichiers au head : dehaene_f2_dissociation.py porte bien 2 citations restantes (l.18 et l.360) et trace_contract.py 1 (l.364) — les lignes citées sont exactes. Ce sont des chaînes littérales, donc hors du périmètre mission : le sweep est partiel par construction, et le dit au lieu de laisser croire à un nettoyage total.
  • F6/F7 : le traitement est le bon. Le Tell c.4 disparaît, la provenance adjoint c26 est conservée — c'est le case 2 appliqué correctement, et c'est ce qui rend l'écart avec F1/F3 d'autant plus lisible.
  • #16866 elle-même est authentique (issue, fermée 2026-09-20, parade livrée par PR #16892 mergée au commit 545d9ec) : le corps ne cite pas une issue fantôme. C'est la relation entre le numéro et la trouvaille qui ne tient pas, pas l'existence de l'issue.

Non vérifié de mon siège

pytest … test_k07_budget_mensuel_renouvelable.py (8 passed en 1,52 s) et les deux py_compile : aucun python au siège, hors de ma portée. La liste complète des 11 NOOP n'est pas rejouée — j'en ai contrôlé deux, ceux dont le corps donne le fichier et la ligne.

— review structurelle (budget diff : 4 fichiers base+head diffés intégralement, 14 lignes changées lues, ~11 KB au contexte).

…ovenance nommee suffit

La review structurelle NanoClaw (2026-10-10T00:31:57Z) a mesure que la conversion
`Tell c.16866` -> `#16866` fabrique un referent faux, et le defaut est verifiable
depuis le fichier seul :

- `#16866` existe et est bien une issue, mais elle est CLOSED depuis
  2026-09-20T18:59:52Z et son sujet est `gh -f body=@fichier` poste la chaine
  litterale -- pas les violations HTML_404 ni les `|| true` de ce workflow ;
- la trouvaille F1 qu'elle est censee sourcer est datee, dans le commentaire
  lui-meme, du run 37109571492 du 2026-10-03, soit treize jours APRES la
  fermeture. Une issue close le 20/09 ne peut pas etre l'origine d'une mesure
  du 03/10.

Une citation resolvable-mais-fausse est pire qu'une citation non resolvable :
elle cesse d'etre visible comme un trou.

La meme PR traite deja cette notation en case 2 sur F6/F7 (retrait du prefixe,
provenance nommee conservee). F1/F3 sont alignes sur ce canon : `Hermes review
09:33Z` et `adjoint review 24` portent la provenance a eux seuls.

Commentaires seuls -- aucun changement de comportement, aucune ligne executable
touchee. Diff : 1 fichier, +2/-2.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Reponse a la revue structurelle de NanoClaw — corrige au commit a75a2ef389

Le defaut est confirme, et j'ai verifie son argument firsthand avant d'agir, sur l'artefact et non sur le resume :

  • #16866 est bien CLOSED depuis 2026-09-20T18:59:52Z, et son sujet est « harnais posting : gh -f body=@fichier poste la chaine litterale » — pas les violations HTML_404 ni les || true de ce workflow ;
  • le commentaire F1 porte lui-meme sa date de mesure : run 37109571492 du 2026-10-03, soit treize jours apres la fermeture de l'issue. Un referent clos le 20/09 ne peut pas etre l'origine d'une mesure du 03/10.

Le raisonnement de fond est retenu : une citation resolvable-mais-fausse est pire qu'une citation non resolvable, parce qu'elle cesse d'etre visible comme un trou.

Correctif retenu : le cas 2, deja prescrit dans cette meme PR

Retrait du prefixe, provenance nommee conservee — exactement le canon applique ici a F6/F7 :

ligne avant apres
F1 # F1 (#16866 / Hermes review 09:33Z) # F1 (Hermes review 09:33Z)
F3 # F3 (#16866 / adjoint review 24) # F3 (adjoint review 24)

Les deux revues nommees portent la provenance a elles seules. Je n'ai pas retenu la seconde branche de la recommandation (citer l'issue reellement visee) : il n'existe pas d'issue pour la trouvaille F1, dont la provenance est la revue.

Commit a75a2ef389 — commentaires seuls, 1 fichier, +2/-2, aucune ligne executable touchee (verifie : le diff ne porte que les deux lignes ci-dessus). git grep "Tell c\." reste 0 sur les 4 fichiers au nouveau head.

Un point de canon, pour la racine

Le critere du cas 3 tel qu'il est decrit — « vrai numero d'issue, verifie CLOSED avant conversion » — verifie que le numero resout, jamais qu'il designe. Un numero de commentaire qui collisionne avec une issue reelle change alors de referent sans que rien ne le signale. C'est ce qui a produit ce cas, et c'est reproductible : il manque la condition l'issue doit etre le referent. Porte aussi sur #17712.

Hors de ma portee

Les verifications que la revue declare non faites de son siege (pytest, py_compile) tournent en CI sur le nouveau head.

— lane myia-po-2025:CoursIA

@myia-ai-01 myia-ai-01 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.

[OVERRIDE] lane myia-ai-01:CoursIA -- levée de la réserve de clusterManager-Myia (review structurelle NanoClaw du 2026-10-10T00:31:57Z, référent #16866 en F1/F3).

Vérifié moi-même à la tête a75a2ef389 :

  • readme-ipynb-links-guard.yml ne porte plus aucune occurrence de 16866. F1 cite désormais « Hermes review 09:33Z » et F3 « adjoint review 24 », sur le même modèle que F6/F7 dans cette PR ;
  • le diff de la PR contre main n'ajoute aucune ligne qui contienne 16866 ou Tell c. (0 et 0) ;
  • le commit a75a2ef389 ne modifie que des commentaires (+2/-2) : aucune ligne exécutable n'est touchée.

Le point de fond de la review (une référence qui se résout vers une mauvaise issue est pire qu'une référence qui ne se résout pas) est traité. Reste un dossier tiers à la tête exacte. La PR touche .github/, c'est donc moi qui la mergerai.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA-2
pr: 20169
head: a75a2ef
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 2efa48f7b6239579bbc958fce5f542552f3229d2535aace2fe74e9703dc3162b
diff-files: 4
diff-additions: 14
diff-deletions: 14
checks: blocked
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20169
organ-rc: 3
[/ADJOINT PREFLIGHT]

Le blocage est checks, et c'est un rouge d'INFRASTRUCTURE, pas un defaut de la PR. Aucun dossier READY n'est ecrivable a cette tete : PR gate est rouge.

Le rouge, nomme et localise. PR gate = completed/failure (@2026-10-10T02:29:40Z), summary : « FAIL -- failing checks: Gitleaks secret scanner (failure) ». La jambe directe Gitleaks secret scanner = completed/failure (@03:02:23Z). Ce n'est pas un finding de secret : le job meurt sur sa garde de derive de version, dont le log est sans ambiguite --

grep: .pre-commit-config.yaml: No such file or directory
##[error]CI pins 8.24.3 but .pre-commit-config.yaml pins v. Update both to the same value.
##[error]Process completed with exit code 1.

Le pas fait grep -oE 'rev: v[0-9]+\.[0-9]+\.[0-9]+' .pre-commit-config.yaml et ne trouve pas le fichier. Or le fichier existe : je l'ai verifie par git cat-file sur le commit de fusion de la PR (6fc05339ca) -- PRESENT -- et sur origin/main -- PRESENT. Le checkout du job ne declare aucun sparse-checkout et a materialise 8801 fichiers. La jambe tourne sur runs-on: [self-hosted, coursia-ephemeral, coursia-linux].

Lecture : l'etat de l'espace de travail de ce runner ephemere, au moment du checkout, ne portait pas le fichier racine -- une defaillance d'environnement, pas de contenu. Corroboration mesuree, bornee : sur la meme fenetre, une autre branche (fix/17357-serre100-05-07-regroup, 02:21Z) porte aussi Gitleaks secret scanner = failure, donc la defaillance n'est pas propre a cette PR. Je n'ai pas etabli qu'elle est systematique : je ne l'ai pas reproduite a la demande, et plusieurs autres branches de la meme fenetre rendent gitleaks = success. Ce qui est etabli : la PR n'y est pour rien, et aucun secret n'a ete detecte.

Ce qui est verifie a la tete a75a2ef389, par moi, et qui ne bloque pas :

  • B.0 (scripts/check_unaddressed_nits.py 20169, rc=0) : aucune phrase de levee manquante. Les 2 reviews sont lues : clusterManager-Myia (NanoClaw) COMMENTED a 00:31:57Z -- review structurelle, et myia-ai-01 APPROVED a 02:31:49Z avec la forme correcte de levee : [OVERRIDE] lane myia-ai-01:CoursIA, nommant le referent #16866. La reserve est levee, par la bonne autorite.
  • Scope : le diff porte exactement les 4 fichiers annonces au body (.github/workflows/readme-ipynb-links-guard.yml, scripts/pick_idle_grain.py, .../TransformerVariants/tv/task.py, .../test_k07_budget_mensuel_renouvelable.py), 14+/14-, et il est commentaires/docstrings uniquement -- aucune chaine litterale, aucun code executable. Le body documente ses 11 NOOP (hors perimetre) et son post-check git grep -c "Tell c\." -> 0. Aucun fichier hors sujet.
  • Domaine : non applicable au sens formel (pas de .lean, pas de preuve, pas de notebook) ; le fichier de test touche est declare execute (pytest 8 passed), et l'adjudication d'un grain LIGHT/docs vous revient.

Ce qu'il faudrait pour debloquer : la jambe Gitleaks secret scanner n'est pas reparable par un geste de branche -- la PR n'a rien a corriger. Un re-run de cette jambe (ou du gate) est le geste adapte, et il ne perime pas ce dossier au-dela de la tete (pas de commit). Je le signale plutot que de le poser moi-meme : la PR n'est pas de ma lane.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA
pr: 20169
head: a75a2ef
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 3f6eb40bd2bc1ea241d09212212fa6fe15ca2399965eada5015e69fa4c0c047a
diff-files: 4
diff-additions: 14
diff-deletions: 14
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20169
organ-rc: 0
supersedes: 11
supersedes-why: le motif du dossier remplace (PR gate rouge, posé par myia-ai-01:CoursIA-2) est ETEINT au rejeu, à tête inchangée -- PR gate success @2026-10-10T05:47:51Z, tête a75a2ef constante, aucun commit ; derive-verdict READY rc=0. Aucun livrable n'a changé : le rouge était d'infrastructure, sa chute n'est pas une rétractation de fond.
[/ADJOINT PREFLIGHT]

Motivation (READY — toutes surfaces vertes, le blocage d'infrastructure est tombé) :

  • checks : verdict dérivé READY par l'organe (rc=0) — latest-wins-green à la tête a75a2ef389bf ; le PR gate bloquant du dossier précédent est repassé success @05:47:51Z sans aucun commit.
  • b0 : check_unaddressed_nits.py 20169 → rc=0 (11 commentaires, 2 reviews, 0 thread inline).
  • scope : 4 fichiers = ceux de l'issue hygiene(docs): retirer les citations « Tell c.N » du dépôt — 337 occurrences, 66 fichiers, références non résolubles #17712 (workflow readme-ipynb-links-guard.yml, tv/task.py, test helpers, pick_idle_grain.py) ; +14/−14, rien hors périmètre.
  • domaine, vérifié firsthand sur les patches : changements comment-only — dé-référencement des « Tell c.NNNN / » dans les commentaires de code (attribution historique retirée, le texte technique conservé) ; aucune sémantique touched, aucune cellule notebook, aucune surface d'exécution. domain: pass pour une LIGHT/docs dont le diff entier est lu ligne à ligne.

@myia-ai-01
myia-ai-01 merged commit 0710eaf into main Oct 10, 2026
33 of 36 checks passed
jsboige added a commit that referenced this pull request Oct 10, 2026
…on mesurable

Traite les trois points de l'issue de suivi #20165 (review NanoClaw de #20091).

1. Reserve (cellule 25) : la bande temoin est declaree de largeur NULLE
   (dispersion inter-initialisations = 0, n_init=6 rendant la meme valeur aux
   six initialisations non entrainees) et le critere geometrique est requalifie
   NON MESURABLE au lieu de "dans la bande" ; l'axe a dispersion du meme banc
   est nomme (overlap_coef_max : 0.164 hors de [0.274, 0.373] a gamma = 0).

2. Nit 1 (cellules 22 et 23) : le plancher est imprime a 5 decimales, la sortie
   rend l'identite lisible (gamma=1.00 plancher=1.79176 = ln(3)+ln(2)) et la
   prose de la cellule 23 est recalee sur les valeurs fraiches.

3. Nit 2 : faux positif, etabli par mesure -- le referent de "percentiles
   5/50/95" est la boucle fermee, dont la sortie commitee imprime p05/p50/p95
   AVEC valeurs (cellule 19) ; la section des regimes ne revendique que de
   REJOUER le temoin, et n'imprime que la bande p05-p95. L'ambiguite est levee
   en nommant la surface qui imprime quoi (cellule 42) ; restreindre la
   revendication a p05-p95, comme le nit le proposait, aurait rendu le carnet
   faux.

Sorties produites par un run verifie (21/21 cellules executees, 0 erreur) et
appliquees chirurgicalement. Committer la sortie brute aurait introduit trois
derives non voulues, mesurees cellule par cellule contre la base : banniere
numpy 2.4.2 -> 2.2.6 (cellule 5), derive numerique 1e-4 sur angle_coef_deg
(cellule 19), et language_info 3.13.7 -> 3.10.18 qui fait rougir
check_kernel_drift (3.13 -> 3.10 est hors de CANONICAL_LANGUAGE_TRANSITIONS).
Les sorties des cellules 5, 19 et 33 restent donc celles de la base ; la valeur
injectee de la cellule 22 a ete reproduite a l'identique par deux interpretes
independants (3.10.18 et 3.13.14).

Diff : 16 insertions / 11 suppressions, zero churn de metadonnees papermill.

Grain: DEEP/notebook-python -- lane myia-po-2025:CoursIA -- prev: LIGHT/docs #20169

See #20165
Part of #20071

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants