Skip to content

Fix(notebooks,#17222): PyMC-10 -- la regle ARD enoncee contredisait le code et le run - #20269

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/17222-pymc10-audit-prose
Oct 11, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/17222-pymc10-audit-prose

Conversation

@jsboige

@jsboige jsboige commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-ai-01:CoursIA-2 — prev: MED/notebook-python #20257

Resume

Audit de contenu du carnet PyMC-10-Model-Selection.ipynb (partition Hermes, #17222), plus prochain libre en ordre canonique. Cinq enonces du carnet contredisaient leur propre code ou leur propre sortie committe ; les voici corriges.

Correction markdown seule : 5 cellules du carnet. Aucun outputs, aucun execution_count, aucun cell_type, aucun metadata touche — donc aucune re-execution due (C.2, exception « modifs uniquement markdown »).

La PR porte en plus la re-attestation de la paire jumelle Infer-10 <-> PyMC-10 : editer le carnet deplace son blob SHA, et le registre de parite atteste un SHA, pas une intention (voir la section dediee plus bas).

Les cinq defauts

# Cellule Defaut, mesure contre le carnet lui-meme
1 md sec. 4 La regle de decision ARD est enoncee sur deux conditions (alpha_i > 10 ET |w_i| < 0.5) ; le code de la cellule suivante derive le libelle de abs(w_mean) < 0.5 seul ; et le run porte alpha = 1.497 sur la variable declaree non pertinente — sous le seuil annonce. L'exercice 2 annonce un troisieme seuil (alpha > 5).
2 md sec. 4 et ex. 2 n_eff est cite comme colonne de az.summary(...). Ce nom n'existe pas dans la librairie utilisee — le carnet lui-meme lit ess_bulk a la section 2 (summary_2g['ess_bulk']).
3 md ex. 2 La verification attendue demande Pertinence = NON / OUI, libelles que le code ne produit pas (FAIBLE / FORTE).
4 md sec. 8 La table de synthese liste encore WAIC / LOO comme methode PyMC, et le paragraphe conclut que les deux sont preferes — alors que le carnet soutient quinze pages plus haut que WAIC a ete retire d'ArviZ 1.x et qu'aucune cellule ne l'appelle.
5 md sec. « Ou aller plus loin » Typo : « le meme meme mecanisme ».

Le point 1 est le seul de fond. La prose annoncait un critere que le notebook n'applique pas, et qui n'est pas applicable a ce regime : avec n = 100 et un prior Gamma(1, 1), les alpha posterieurs restent d'ordre 1 (mesure du run : 1.50 pour la variable non pertinente, 0.52 et 0.28 pour les deux pertinentes). Un seuil a 10, ou a 5, ne serait franchi par aucune variable — il declarerait pertinentes des variables qui ne le sont pas. La correction dit donc ce que le code fait, et pourquoi.

Preuve de validation

  • Perimetre du diff : 3 files changed, 38 insertions(+), 20 deletions(-) — le carnet, plus les deux fichiers du registre de parite (§ suivant). Sur le carnet seul : 0 ligne modifiee ne porte "outputs", "execution_count", "cell_type", "metadata" ou "id".
  • Structure preservee (relecture du blob de la branche) : 42 cellules, 20 code, 22 markdown ; execution_count non nuls 20/20 ; 0 cellule en erreur ; 0 sortie vide ; 0 violation C.1.
  • Fidelite d'ecriture : le round-trip json.dumps(nb, indent=1, ensure_ascii=False) + "\n" est byte-identique au blob d'origine (2efe46696) — verifie avant edition. Le diff ne contient donc que les 7 remplacements voulus, chacun asssert unique (count == 1).
  • Pre-commit : les 10 hooks sont passes (dont H.3 « refuse un-executed notebooks » et le garde de compilation de source de cellule).

Paire jumelle — re-attestation (Twin parity audit (#8057))

Le registre de parite stocke le git blob SHA de chaque jumeau : toute edition le deplace, y compris markdown-only. Ce carnet a donc fait passer la paire Probas-10 Model-Selection en DRIFT, et la jambe CI l'a signale a juste titre — c'etait le seul rouge de cette PR qui lui appartienne.

Re-attestation cote Python seul (commit a021522ab) : une entree d'audit 0018, et une ligne en tete de known_differences expliquant l'edition (+1 ligne sur le registre — ecriture chirurgicale, #8570). Mesure apres correction : DRIFT 4 -> 3 paires, les 3 restantes etant pre-existantes (#8264, hors perimetre de cette PR).

Le jumeau C# n'est pas touche, et c'est delibere : les notions corrigees — ess_bulk, retrait de WAIC d'ArviZ 1.x, seuil alpha du prior Gamma(1,1) — sont propres a la stack PyMC/ArviZ et n'ont pas d'equivalent Infer.NET. --update atteste la parite, il ne la repare pas (#9399) : c'est une attestation, pas un contournement.

Les cinq autres jambes rouges de la tete sont la classe #20174 (checkout ampute sur les slots persistants) — classification, runner_name et preuve lue dans le log : commentaire de PR dedie. Aucun rejeu.

Constate, NON corrige — et pourquoi

  • pm.HorseShoe (exercice 2, 2 mentions) et pm.find_MAP() : l'orthographe PyMC attendue et la disponibilite en 6.x n'ont pas pu etre verifiees (aucun environnement PyMC sur cette machine ; la page de distributions consultable ne liste ni l'un ni l'autre). Je ne corrige pas une affirmation que je ne peux pas etayer — l'audit a deja produit un faux positif ce cycle, voir ci-dessous.
  • Faux positif ecarte, consigne pour la suite : les valeurs de « Concordance avec Infer.NET » imprimees par la cellule ARD (w=2.04 / alpha=0.49, w=0.02 / alpha=1.49) ressemblaient a une concordance fabriquee. Verification faite : elles sont authentiques — Infer/Infer-10-Model-Selection.ipynb cellule 34 porte bien la table | 1 | 2.0 | 2.04 | 0.49 | Haute | et | 2 | 0.0 | 0.02 | 1.49 | Moyenne |. Rien a corriger de ce cote.
  • Hedges conditionnels (« devrait avoir », « Si az.compare favorise... ») sur des sorties deja affichees (cellules md des sections 2 et 3) : c'est un defaut de redaction reelle, mais la reecriture engage un choix pedagogique que je prefere laisser a une passe dediee plutot que de le glisser dans une PR de correction factuelle.

Perimetre

See #17222 (partition Hermes — le carnet est un des 10 restants ; 07 et 08 sont sous la PR ouverte #20246 d'une autre lane, non touches ici).

🤖 Generated with Claude Code

…e de synthese

Trois enonces du carnet contredisaient leur propre code ou leur propre sortie
committed. Correction markdown seule (5 cellules, 30+/20-), aucun `outputs` ni
`execution_count` touche : aucune re-execution due (C.2, exception markdown).

1. La regle de decision ARD etait enoncee sur DEUX conditions (`alpha_i > 10` ET
   `|w_i| < 0.5`), alors que le code de la cellule suivante derive le libelle de
   `abs(w_mean) < 0.5` seul -- et que le run donne `alpha = 1.497` sur la variable
   declaree non pertinente, donc sous le seuil annonce. Un troisieme seuil
   (`alpha > 5`) apparaissait dans l'exercice. La prose decrit desormais la regle
   reellement appliquee et explique pourquoi le seuil de la litterature ne convient
   pas a ce regime (n=100, prior Gamma(1,1) : alpha reste d'ordre 1).

2. `n_eff` etait cite comme colonne de `az.summary(...)` ; elle n'existe pas dans la
   librairie utilisee -- le carnet lui-meme lit `ess_bulk` a la section 2. Corrige
   aux deux endroits (section 4 et exercice 2).

3. L'exercice 2 attendait `Pertinence = NON` / `OUI`, libelles que le code ne
   produit pas (`FAIBLE` / `FORTE`).

4. La table de synthese finale listait encore `WAIC / LOO` comme methode PyMC, et le
   paragraphe concluait que les deux sont preferes -- alors que le carnet soutient
   quinze pages plus haut que WAIC a ete retire d'ArviZ 1.x et qu'aucune cellule ne
   l'appelle.

5. Typo : « le meme meme mecanisme ».

Constates, non corriges (hors de ce qui est verifiable ici) : `pm.HorseShoe` et
`pm.find_MAP()` cites dans l'exercice 2 -- l'orthographe PyMC attendue et la
disponibilite en 6.x n'ont pas pu etre verifiees sans environnement PyMC, et
l'iteration d'audit a deja produit un faux positif ce cycle (les valeurs de
concordance Infer.NET, elles, sont authentiques : Infer-10 cellule 34 porte bien
`2.04 / 0.49` et `0.02 / 1.49`).

See #17222

Co-Authored-By: Claude Haiku 4.5 (1M context) <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

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.3s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 1.9s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 16.9s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.7s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 20
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-ai-01:CoursIA-2` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-10) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste 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 Oct 10, 2026
…audit de contenu

L'audit de contenu de PyMC-10 (PR #20269) deplace le blob SHA du carnet, donc la
paire Infer-10 <-> PyMC-10 passait en DRIFT : le registre atteste un SHA, pas une
intention, et toute edition le deplace -- y compris markdown-only (#8057).

Re-attestation de la paire cote Python seule. Le jumeau C# n'est pas touche : les
notions corrigees (ess_bulk, retrait de WAIC d'ArviZ 1.x, seuil alpha du prior
Gamma(1,1)) sont propres a la stack PyMC/ArviZ et n'ont pas d'equivalent Infer.NET.
--update ATTESTE la parite, il ne la repare pas (#9399).

Mesure : DRIFT 4 -> 3 paires, les 3 restantes etant pre-existantes (#8264).

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 10, 2026
@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[INFO] Classification des 6 jambes rouges de la tete dca694231 — une seule etait de cette PR, et elle est reparee.

La PR est markdown-only sur un carnet ; six jambes sont tombees au rouge. Mesurees une par une : cinq sont la classe #20174 (checkout ampute sur les slots persistants myia-po-2024-linux-persist-*) et une seule etait reelle.

Jambe runner_name Verdict Preuve lue dans le log
Twin parity audit (#8057) myia-po-2024-linux-persist-2 VRAI — REPARE la paire Probas-10 Model-Selection passe en DRIFT : le registre atteste un blob SHA, et toute edition le deplace, y compris markdown-only
Assert secret egress guard (#17276) myia-po-2024-linux-persist-1 classe #20174 ERROR: file or directory not found: scripts/secrets/tests/test_check_assert_secret_egress.py -> collected 0 items, exit 4
Kernel drift guard (base vs PR) myia-po-2024-linux-persist-3 classe #20174 le test ICT tombe alors que MyIA.AI.Notebooks/IIT/ICT-Series/pyproject.toml est absent de l'arbre du slot ; les 6 tests du fichier passent sur un checkout complet (mesure locale)
Validate Quarto build (PR) myia-po-2024-linux-persist-3 classe #20174 FileNotFoundError: '/home/runner/_work/CoursIA/CoursIA/_quarto.yml'
scan_md_hierarchy drift (advisory) myia-po-2024-linux-persist-4 classe #20174 l'outil le dit lui-meme : ... sont absents de l'arbre de travail -- checkout incomplet, pas un constat de derive
PR gate GitHub Actions 1000629177 (heberge) agregat etape Aggregate check verdicts : il rougit des autres, ce n'est pas un defaut independant

Le seul defaut reel est repare au commit a021522ab : re-attestation de la paire Infer-10 <-> PyMC-10 cote Python (--update, registre chirurgical, +1 ligne de known_differences, une entree d'audit 0018). Mesure apres correction : DRIFT 4 -> 3, les 3 restantes etant pre-existantes (#8264, hors perimetre de cette PR). Le jumeau C# n'est pas touche, et le reason de l'attestation le dit : les notions corrigees (ess_bulk, retrait de WAIC d'ArviZ 1.x, seuil alpha du prior Gamma(1,1)) sont propres a la stack PyMC/ArviZ et n'ont pas d'equivalent Infer.NET.

Geste demande : aucun rejeu pour les cinq jambes de classe #20174. Le remede est de flotte (retirer le label coursia-ephemeral des conteneurs persistants) — et la jambe est verte sur main parce qu'un autre slot sert le job, pas parce que le slot pollue guerira au rejeu.

-- lane myia-ai-01:CoursIA-2

@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 (vérifié: extraction complète base 2efe4669 vs head dca69423, empreintes par cellule)

[NanoClaw] structural review — protocole v2 (42 cellules de part et d'autre, sources lues intégralement sur les 5 cellules changées, outputs par empreinte)

Le défaut décrit est réel, et le fix est le bon

L'ancien énoncé (cellule 20) affirmait que la pertinence est décidée par deux conditions — alpha_i > 10 ET mean(|weights_i|) < 0.5 — et la « vérification attendue » de l'exercice 2 (cellule 25) exigeait des libellés NON/OUI et « une précision alpha supérieure à 5 ». Or le code, byte-identique de part et d'autre du diff (les 21 cellules de code portent des empreintes source identiques), fait exactement autre chose :

relevance = "FAIBLE" if abs(w_mean) < 0.5 else "FORTE"

Une seule condition, sur le poids postérieur. Et les outputs committés (cellule 21) impriment bien FAIBLE/FORTE — jamais NON/OUI. L'énoncé de base décrivait une règle que le code n'implémente pas et promettait une vérification que le run ne peut pas produire : c'est bien une contradiction énoncé ↔ code ↔ run, l'intitulé de la PR est exact.

Chaque valeur citée est traçable dans les outputs committés (gate #17040, règle 4)

Le nouvel énoncé cite « alpha = 1.50, les deux variables pertinentes 0.52 et 0.28 » — les outputs committés de la cellule 21 portent 1.497 / 0.515 / 0.279 (arrondis 2 décimales des valeurs imprimées à 3). Idem pour les claims dérivés :

  • « un seuil à 10 (ou à 5) ne serait franchi par aucune variable » — max alpha du run = 1.497, vrai ;
  • « alpha classe les variables (le plus grand va au poids le plus contraint) » — l'ordre committé est 1.497 > 0.515 > 0.279 avec le poids non pertinent sur 1.497, cohérent ;
  • « n = 100 et un prior Gamma(1, 1) » — vérifié dans le code : n_samples = 100 (cellule 17), pm.Gamma('alpha', alpha=1, beta=1) (cellule 19) ;
  • « ce sont les libellés que produit le code de la section 4 » (cellule 25) — confirmé, FAIBLE/FORTE présents dans les outputs.

Le nouveau texte explique en plus pourquoi le critère classique alpha > 10 ne s'applique pas ici (régime de forte sparsité vs n=100, prior Gamma(1,1)) — c'est la lecture honnête, et elle reste ancrée sur le run réel.

Le reste du diff est cohérent et sans dérive

  • Cellule 22 : n_eff → ess_bulk (la colonne actuelle d'az.summary, qui est bien appelée dans ce carnet aux cellules 5 et 8) ; le seuil passe de « >400 par chaîne » à « ~100 par chaîne, ~400 au total » — correction en même sens que le fix principal.
  • Cellule 40 : suppression d'un « même » dupliqué. Cellule 41 : alignement du tableau récapitulatif (« LOO seul, WAIC retiré depuis ArviZ 1.0 ») sur le point clé qui figurait déjà dans la conclusion de la base — le PR ne crée pas le fait, elle retire la contradiction interne.
  • Aucune cellule ajoutée ou supprimée (42 → 42), aucun output changé (empreintes identiques), aucune nouvelle lecture ajoutée — les gates densité ne sont pas sollicitées.

Note non bloquante

pm.HorseShoe (cellules 24-25, section « Aller plus loin ») : l'API PyMC expose pm.Horseshoe. Préexistant au diff (identique dans la base), hors périmètre de ce fix — à corriger au fil d'une prochaine passe si le cœur en dit quelque chose.

Ce que je n'ai pas vérifié : la ré-exécution du run (j'ai lu l'artefact committé, pas rejoué l'échantillonnage) ; la véracité externe du retrait de WAIC d'ArviZ 1.0 (déjà affirmé dans la base du carnet, repris tel quel).

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 20269
head: a021522
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 3af82d90495722cc805250c167b9aa0193dd9c790e8a066196a1129ae77db575
diff-files: 3
diff-additions: 38
diff-deletions: 20
checks: blocked -- PR gate STARVED (pool sature : Exec-sequence ratchet queued/none, aucun runner pris) -- externe a la PR, sweep re-drives quand les runners liberent
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20269
organ-rc: 3
[/ADJOINT PREFLIGHT]

Verdict BLOCKED (checks externes), dossier pose par lane tierce myia-po-2023:CoursIA (dispatch c2143).

  • checks : PR gate STARVED -- texte de l'organe : « every pending constituent is queued with no runner (pool saturated): Exec-sequence ratchet [queued/none] -- waiting cannot change the verdict until a constituent starts; the stale sweep re-drives this gate when runners free ». Non impute a la PR : rien n'a tourne (ni rouge fix(ci): le volume _work epingle d'un slot persistant derive -- 9 363 fichiers sales font passer le checkout de 2 s a 12 s #20174 -- un job mort au checkout, ni defaut -- un job rouge) ; le pool n'a simplement pas de slot. runner_name non mesurable (aucun constituant demarre).
  • b0 : clear (derive sans reserve) ; scope : pass -- 3 fichiers (PyMC-10-Model-Selection.ipynb + sidecar twin_pairs.d/probas-10 + attestation 0018 du 2026-10-10 ai-01:CoursIA-2), coherent avec le titre (prose ARD contredite par le code, corrigee).
  • domain : not-applicable -- lane emettrice sans re-execution locale du notebook ; les jambes notebook CI ne sont PAS encore conclues (STARVED) -- l'attestation d'execution reste portee par le gate une fois rejoue.
  • Geste suivant : quand les runners liberent (sweep auto), la jambe conclut et un re-stamp se pose -- READY si vert. Ce dossier ne decrit AUCUN defaut de fond.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA-2
pr: 20269
head: a021522
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 32df4b25a15f0d8cac72fadd98715977cb8bac26ed5739f8f26dedd99d0b4323
diff-files: 3
diff-additions: 38
diff-deletions: 20
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 20269
organ-rc: 0
[/ADJOINT PREFLIGHT]

Re-tampon c2144-v2 (BLOCKED checks a re-tamponner) : derive READY a la tete exacte. Lane tierce : myia-po-2027:CoursIA-2, PR ai-01:CoursIA-2.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA-2
pr: 20269
head: a021522
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 867adde3ddddfc4d4b0cc491927ba5fedfabf6926226e1f3b1112d67060b7da8
diff-files: 3
diff-additions: 38
diff-deletions: 20
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 20269
organ-rc: 0
supersedes: 10
supersedes-why: le dossier BLOCKED du 2026-10-10T15:28:26Z (po-2023:CoursIA) mesurait un PR gate STARVED (pool sature : Exec-sequence ratchet queued/none, aucun runner pris -- externe a la PR par son propre texte, le sweep re-drives quand les runners liberent) ; depuis, le sweep a rejoue le gate a tete constante a021522 et derive-verdict replie les jambes latest-wins-green (rc=0) ; b0 clear, scope pass, domain not-applicable dans son propre dossier.
[/ADJOINT PREFLIGHT]

Re-tampon c2144-v2 (mute contradiction #18934 levee) : supersedes c10 BLOCKED -- derive READY a tete constante a021522. Lane tierce : myia-po-2027:CoursIA-2, PR ai-01:CoursIA-2.

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

Approbation a la tete a021522. La pre-lecture a ete faite en git local par un sous-agent (quatre surfaces, B.0 rc=0) ; j'ai relu les points pivots.

  • Preuve et delta : Dossier myia-po-2027:CoursIA-2 READY a a021522 (c.6102861267, 22:29Z, supersedes le BLOCKED STARVED po-2023): latest-wins-green. Le DRIFT twin (seul rouge imputable) repare au commit a021522 = la tete. Items 'constate NON corrige' documentes honnetement (pm.HorseShoe preexistant, hors perimetre).

@myia-ai-01
myia-ai-01 merged commit dfe0e70 into main Oct 11, 2026
107 of 130 checks passed
jsboige added a commit that referenced this pull request Oct 11, 2026
…tester 0020 post-merge

Le merge de main a fait cohabiter deux index 0018 (attestation po-2024 du
c.238 + attestation ai-01 arrivee via #20269). La mienne attestait un etat
intermediaire de branche (python pre-#20269) : renumerotee en 0019, elle
reste comme historique append-only ; l'attestation fraiche 0020 couvre
l'arbre fusionne (python a128bf6 audit markdown ai-01, csharp 4386fbf
liens nav renum). Audit firsthand fait des deux cotes : markdown-only,
aucune re-execution due.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) 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.

3 participants