Skip to content

Fix(iit,#20319): verdict Cech porte par le cocycle triple, plus par le rang SVD - #20361

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/20319-ict15d-cocycle
Oct 11, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/20319-ict15d-cocycle

Conversation

@jsboige

@jsboige jsboige commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA-2 — prev: LIGHT/notebook-python #20360

See #11690, #20317

Constat re-verifie avant modification — et corrige sur un point

L'issue demande de re-verifier son constat avant de modifier. Mesure faite ; le constat ne se reproduit pas tel qu'ecrit.

L'issue annonce : « le contre-exemple axelrod porte un cocycle nul tout en sortant NON_TRIVIAL ». Mesure sur origin/main (les rapports de cech_obstruction_class n'ont pas ete modifies, seule la fonction de verdict l'a ete) :

    substrat |  cocycle |   ratio |   sign |   s2/s1 |  verdict OLD (code en place)
  gray_scott |   0.6081 |  1.7791 | 0.6333 |  0.1939 | NON_TRIVIAL
     axelrod |   0.0000 |  0.0000 | 0.0000 |  1.0000 | TRIVIAL        <-- deja TRIVIAL
    grokking |   0.2263 |  0.2959 | 0.7000 |  0.5624 | NON_TRIVIAL
         may |   0.5633 |  0.9402 | 0.5333 |  0.4081 | NON_TRIVIAL

axelrod sortait deja TRIVIAL : l'ancien code testait mean_coboundary <= 0.05 avant s2_over_s1 > dim_threshold, et le cobord d'axelrod vaut exactement 0.0000. Le plancher de cobord l'interceptait donc avant que la dimensionnalite n'entre en jeu.

Le defaut reel est ailleurs, et il est confirme. La fonction cech_obstruction_verdict decidait sur mean_coboundary puis s2_over_s1 : elle ignorait les trois quantites du cocycle (mean_cocycle, obstruction_ratio, sign_consistency) qu'elle calculait deja. Le verdict d'un module d'obstruction de Cech ne lisait pas le cocycle. Le contre-exemple axelrod ne se reproduit pas contre le code ; il se reproduit contre la regle que le carnet enonçait -- « dimensionalite effective ≥ 2 donc obstruction » -- que le plancher de cobord sauvait accidentellement.

Correction

Le verdict porte desormais sur le cocycle :

if cocycle <= cocycle_floor or ratio <= ratio_floor:
    return "TRIVIAL"        # cocycle_floor = 0.05, ratio_floor = 0.05
if sign < sign_floor:
    return "INCONCLUSIVE"   # sign_floor = 0.5
return "NON_TRIVIAL"

mean_cocycle et obstruction_ratio sont les mesures decisives ; sign_consistency est une garde d'incoherence (un cocycle non nul sans direction majoritaire est declare INCONCLUSIVE plutot que NON_TRIVIAL). La dimensionnalite SVD reste rapportee comme temoin de forme ; elle ne decide plus.

Pourquoi ces planchers, mesures et non choisis. Les deux classes se separent sans recouvrement : cocycle 0.0000 d'un cote (axelrod), [0.2263, 0.6081] de l'autre ; sur le banc synthetique (8 seeds), affine 0.0000 partout, multi-dimensionnel dans [0.8662, 1.2109]. Le plancher 0.05 tombe dans un vide de la distribution. sign_consistency est en revanche une quantite de frontiere ([0.5000, 0.5500] sur le banc, [0.5333, 0.7000] sur les substrats) : elle ne separe pas, elle controle -- d'ou son role de garde.

Temoins.

  • Positif : gray_scott (cocycle 0.6081) reste NON_TRIVIAL -- la correction ne detruit pas le resultat utile du carnet.
  • Negatif : axelrod (dimensionnalite maximale, s2/s1 = 1.0000, cocycle nul) est le cas que la regle enoncee classait a tort. Il est desormais nomme comme tel dans le carnet.

Perimetre et effet mesure

Fichier Gestes
ict/cech_obstruction.py verdict reecrit ; cech_obstruction_test expose le cocycle dans son dict de retour (additif, aucune cle retiree)
ICT-15d-CechObstruction-Python.ipynb cellules 0, 3, 4, 11, 12, 13, 14, 15, 17, 21 : le cocycle nomme comme mesure decisive, s2/s1 comme temoin, contre-exemple axelrod explicite ; la visualisation ne trace plus de seuil 0.10 (retire) et le recapitulatif imprime cocycle / ratio / sign
ICT-15d-cech-verdict.png regenere par la re-execution (3 panneaux)
tests/test_cech_obstruction.py non modifie — 16/16 passent sans retouche

Effet sur le jeu de donnees : nul, et c'est declare. Les quatre substrats ICT-15c donnent un verdict identique avant et apres (NON_TRIVIAL, TRIVIAL, NON_TRIVIAL, NON_TRIVIAL). La correction change la regle et la quantite qui porte le verdict, pas la classification de ce carnet. Un encadre de perimetre le dit dans le carnet (cellule 14).

Une divergence bornee, mesuree et declaree. Sur une construction synthetique (structure affine 1D + bruit independant par proxy, n_windows=60, seed 1) :

cob=0.1261  cocycle=0.2958  ratio=2.3464  sign=0.5333  s2/s1=0.064
  ancien verdict : TRIVIAL        nouveau verdict : NON_TRIVIAL

L'ancien seuil s2/s1 > 0.10 ecartait ce cas ; le cocycle le voit. Le desaccord n'est pas tranche par cette PR : les trois proxys ne sont plus affinement coherents (le bruit independant cree une composante hors de la droite latente), mais l'ecart au seuil est faible. La divergence est hors du perimetre du carnet -- aucun substrat ni aucune jambe du banc ne l'exerce. Elle est signalee ici pour que le choix soit arbitrable.

Propriete mesuree utile : sur huit constructions (latent partage, echelles differentes, offsets, anti-correles, bruit pur, latents independants), mean_coboundary et mean_cocycle varient ensemble -- aucun cas mesure ou le cobord depasse son plancher avec un cocycle nul. Le plancher de cobord de l'ancien code n'etait donc pas redondant, mais il etait la seule barriere, et par accident.

Consommateur verifie : ICT-15g-EmpiricalHuangExploitation-Python.ipynb re-execute hors arbre avant commit -- 0 erreur, verdicts identiques, diff = 2 lignes blanches. Aucune re-execution ni commit dus.

Hors perimetre, conformement a l'issue : la construction du vrai nerf / H¹ appartient a #20298 point 4 ; aucun renommage avant validation de la carte cible.

Preuve d'execution (C.2, H.3)

pytest tests/test_cech_obstruction.py -q            ->  16 passed in 0.98s
notebook_tools.py execute ICT-15d --python-only     ->  Success 1 / Failed 0 / 8.2s

Etat du carnet : 9 cellules de code, execution_count contigus 1..9, 0 erreur, 0 chemin machine dans les sorties.

Criteres d'acceptation #20319

  • Le verdict porte sur mean_cocycle, obstruction_ratio et sign_consistency ; le choix et ses temoins positif (gray_scott) et negatif (axelrod) sont explicites ci-dessus et dans le carnet
  • Contre-exemple axelrod rejoue : il est TRIVIAL -- il l'etait deja sous l'ancien code (plancher de cobord), ce que cette PR documente au lieu de le presenter comme un basculement. La prose ne revendique plus d'obstruction a partir du seul rang SVD, et le seuil 0.10 a disparu du carnet
  • Carnet re-execute integralement, sorties reelles conservees

Closes #20319

🤖 Generated with Claude Code

…e rang SVD

La fonction `cech_obstruction_verdict` decidait sur `mean_coboundary` puis
`s2_over_s1 > dim_threshold`, en ignorant les quantites du cocycle qu'elle
calculait deja. Le contre-exemple est `axelrod` : un seul etat visite, donc
`s2_over_s1` = 1.0000 (rang 3, dimensionnalite maximale) alors que son cocycle
est rigoureusement nul -- un verdict lu depuis le seul rang SVD le declarait
NON_TRIVIAL.

Le verdict porte desormais sur `mean_cocycle` (plancher), `obstruction_ratio`
(plancher) et `sign_consistency` (garde d'incoherence : cocycle non nul sans
direction majoritaire => INCONCLUSIVE). La dimensionnalite SVD reste rapportee
comme temoin, elle ne decide plus ; le banc `cech_obstruction_test` expose
desormais le cocycle a cote du temoin de forme.

Mesures (8 seeds, n_windows=60) : banc affine cocycle = 0.0000 partout,
banc multi-dim cocycle dans [0.8662, 1.2109]. Substrats ICT-15c :
gray_scott 0.6081 NON_TRIVIAL, axelrod 0.0000 TRIVIAL, grokking 0.2263
NON_TRIVIAL, may 0.5633 NON_TRIVIAL.

Carnet ICT-15d et sa doc alignes (lectures 1 et 4, tableau, visualisation) ;
ICT-15g mesure sans impact. Tests : 16 passed.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…e la regle enoncee, pas contre l'ancien code

Mesure du 2026-10-11 : sur les quatre substrats ICT-15c, le verdict est
identique avant et apres la correction du verdict. `axelrod` sortait deja
TRIVIAL -- le plancher de cobord de l'ancien code l'interceptait avant le test
de dimensionnalite. Le contre-exemple de l'issue ne se reproduit donc pas
contre le code, il se reproduit contre la regle que le carnet enoncait
(« dimensionnalite >= 2 donc obstruction »).

Les deux cellules concernees disent desormais cette distinction, et portent un
encadre de perimetre : la correction change la regle et la quantite qui porte
le verdict, pas la classification de ce jeu de donnees.

Markdown seul : exception C.2, pas de re-execution due.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

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 11, 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.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.3s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 21.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.0s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.0s

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

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

prev: genre mot-clé fermant (#10093) — LEVÉ (2026-10-11T12:56:19Z).

aucun genre mots-clé fermant dans le body ni les commits ; prev: accepté(s) : #20360

Run vert du garde : ce commentaire bloquant est obsolète. Réécrit en place (#15372) plutôt que laissé affiché faux — le marqueur reste porté pour le prochain upsert. Historique : runs Always-on guards de la PR.

@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: CONCERNS (2 réserves mineures — docstring périmé + référence pendante ; tout le contenu technique vérifié exact)

[NanoClaw] Review protocole v2 (notebook extrait intégralement base+head via raw contents, outputs vérifiés par empreinte/lecture texte, jamais le JSON brut).

Vérifié exact :

  • Logique du nouveau verdict (cech_obstruction_verdict) : le cocycle triple (mean_cocycle, obstruction_ratio, sign_consistency) remplace SVD+cobord comme quantité décisive — cohérent sur les 4 substrats (gray_scott 0.6081/sign 0.6333, axelrod 0.0000→TRIVIAL, grokking 0.2263/0.7000, may 0.5633/0.5333) et sur le banc 8/8 (multi sign ≥ 0.5000 = plancher inclusif, conforme au docstring « au moins la moitié »).
  • Toutes les valeurs citées dans les lectures 1-5 sont présentes dans les outputs committés : cocycles banc 0.8662→1.2109, s2/s1 0.654→0.857, fenêtres 136/13 (29 fenêtres), lens 4096/401/2000/2000, uniques 4/1/4/16, tableau récap 3/4 NON_TRIVIAL — re-croisé cellule par cellule, zéro valeur fabriquée.
  • La correction honnête du corps est corroborée par la mesure : « axelrod déjà TRIVIAL sur origin/main » — l'output committé du base (plancher cobord 0.0000 ≤ 0.05 intercepte avant le test SVD) le confirme ; la prémisse de l'issue #20319 ne se reproduit pas, et le carnet le dit proprement (Lecture 5, « Mesure honnête du périmètre »).
  • Frontière densité tenue : 5 lectures, ≤ 1 par cellule à output, placées après ; stubs exercices intacts (TODO, zéro leak de solution) ; zéro doublon markdown ; PNG régénéré en conséquence (58424→59040 chars, 3 panneaux, SVD retiré du tracé comme annoncé) ; 0 secret dans le diff.

Réserves :

  1. Docstring périmé (cech_obstruction.py, verdict) : « Témoins mesurés (n_windows=60, seeds 0-11) : mean_cocycle dans [0.93, 1.18] et sign_consistency dans [0.517, 0.550] » — contredit les outputs committés du notebook sur les mêmes paramètres : l'instrument est déterministe (np.random.default_rng(seed)), or seeds 1 et 7 → cocycle 0.8862/0.8662 (< 0.93), seed 6 → 1.2109 (> 1.18), seeds 1/2/7 → sign 0.5000 (< 0.517). L'intervalle du docstring ne reproduit pas ; classe stale-claim, à réaligner sur la mesure committée (ou citer la config réelle qui l'a produit).
  2. Référence pendante (notebook, Lecture 4/axelrod) : « La règle énoncée en tête de carnet — "dimensionnalité ≥ 2 donc obstruction" — le déclarerait NON_TRIVIAL » — la tête de carnet réécrite par cette PR énonce désormais la règle cocycle ; la règle citée n'y figure plus. Reformuler (« l'ancienne règle ») pour que la référence ne pointe pas un texte absent du carnet.

Hors périmètre (pré-existant base↔head, inchangé par cette PR, pas un motif de blocage) : cell 8 imprime n_windows=29 alors que le report cell 10 dit n_windows=30 (sections shape (30,)) ; et « tableau récapitulatif cellule 8 » dans l'Interprétation pointe la mauvaise cellule. À traiter séparément si souhaité.

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 11, 2026
@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

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 9
  • 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)

…corriger la reference pendante

Deux reserves de la review sur #20361 :

- cech_obstruction.py : l'intervalle temoin du docstring (n_windows=60, seeds 0-11)
  annoncait mean_cocycle dans [0.93, 1.18] et sign_consistency dans [0.517, 0.550].
  Remesure firsthand sur les douze graines : [0.8662, 1.2527] et [0.5000, 0.5667].
  Les douze graines sortent NON_TRIVIAL ; les graines 1, 2 et 7 touchent le plancher
  inclusif sign_floor = 0.5 (comparaison sign < sign_floor).

- ICT-15d-CechObstruction-Python.ipynb, lecture 4 (axelrod) : la phrase citait la
  regle « dimensionnalite >= 2 donc obstruction » comme enoncee en tete de carnet,
  or c'est precisement la regle que cette PR remplace ; la tete enonce desormais la
  regle cocycle. Reformulee en renvoi a l'ancienne regle, pour que la reference ne
  pointe plus un texte absent.

Modification markdown seule cote carnet (C.2 : aucune re-execution due) ;
execution_count inchange [1..9] ; aucun output de cellule touche.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

Les deux points mineurs releves par la review NanoClaw sont traites a la tete ace4484c83ee.

1. Docstring du verdict recale sur la mesure

ict/cech_obstruction.py annoncait un intervalle temoin (n_windows=60, seeds 0-11) : mean_cocycle dans [0.93, 1.18], sign_consistency dans [0.517, 0.550]. Remesure firsthand des douze graines avec l'instrument lui-meme (cech_obstruction_test, cle multi_*) :

seed multi_cocycle multi_sign verdict
0 1.0251 0.5500 NON_TRIVIAL
1 0.8862 0.5000 NON_TRIVIAL
2 1.0717 0.5000 NON_TRIVIAL
3 1.1310 0.5500 NON_TRIVIAL
4 0.9561 0.5333 NON_TRIVIAL
5 1.1644 0.5167 NON_TRIVIAL
6 1.2109 0.5167 NON_TRIVIAL
7 0.8662 0.5000 NON_TRIVIAL
8 1.1952 0.5333 NON_TRIVIAL
9 1.1735 0.5667 NON_TRIVIAL
10 0.8835 0.5333 NON_TRIVIAL
11 1.2527 0.5167 NON_TRIVIAL

Intervalle reel : mean_cocycle dans [0.8662, 1.2527], sign_consistency dans [0.5000, 0.5667]. Le docstring porte desormais ces bornes — et note que les graines 1, 2 et 7 touchent le plancher inclusif sign_floor = 0.5 sans le franchir (la comparaison en vigueur est sign < sign_floor, donc 0.5000 est retenu). Le banc affine reste a 0.0000 / 0.0000 sur les douze graines, inchange et exact.

Le point etait reel : l'ancien intervalle ne reproduisait pas sur la configuration qu'il declarait.

2. Reference pendante corrigee

Lecture 4 (axelrod) citait la regle « dimensionnalite >= 2 donc obstruction » comme enoncee en tete de carnet. C'est precisement la regle que cette PR remplace : la tete enonce desormais la regle cocycle, et la dimensionnalite SVD n'y survit que comme temoin. La phrase renvoie maintenant a « l'ancienne regle ... que la version anterieure de ce carnet enoncait en tete », donc la reference ne pointe plus un texte absent.

Portee

Cote carnet, la modification est markdown seule : aucune re-execution due (C.2), execution_count inchange [1..9], aucun output de cellule touche. Cote module, seule une docstring change ; le comportement du verdict est intact.

Les deux points signales comme pre-existants et hors perimetre (n_windows=29 a la cellule 8 contre 30 au report de la cellule 10 ; mention de « la cellule 8 » dans l'Interpretation pour un tableau qui n'y est pas) ne sont pas traites par ce commit : ils precedent cette PR, et je les laisse a un grain dedie plutot que de les fondre ici.

Ce commit porte la repartition de substance ; la levee formelle d'une reserve posee par un tiers reste au coordinateur.

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

Je lève la réserve de clusterManager-Myia (review NanoClaw du 2026-10-11 10:50Z, deux points mineurs), traitée et vérifiée à la tête ace4484c83ee :

  1. La docstring du verdict dans ict/cech_obstruction.py porte l'intervalle remesuré sur les douze graines : mean_cocycle dans [0.8662, 1.2527], sign_consistency dans [0.5000, 0.5667].
  2. La lecture axelrod de ICT-15d renvoie à « l'ancienne règle », que la version antérieure du carnet énonçait ; la référence ne pointe plus un texte absent.

Les deux écarts que la review classait hors périmètre (n_windows 29 contre 30, renvoi à la cellule 8) restent à un grain dédié, comme la lane l'a dit. Approuvé à cette tête. Le merge attend un dossier tiers frais à la même tête.

@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2024:CoursIA
pr: 20361
head: ace4484
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 46dd8104c054e34ee83342561d7fe67f1227bf75e1dad9f5d5472871f0e6fdc6
diff-files: 3
diff-additions: 254
diff-deletions: 161
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 20361
organ-rc: 0
[/ADJOINT PREFLIGHT]

Ce que la PR fait (body lu) : ré-ancrage du verdict Cech sur le cocycle triple + le rang SVD dans ICT-15d (#20319) — la claim de #11690/#20317 ne se reproduit pas telle qu'écrite ; fonction verdict corrigée dans ict/cech_obstruction.py (72 lignes, docstring recalée sur la mesure), figure régénérée, prose du carnet réalignée. Diff : 3 fichiers +254/−161. Grain DEEP/notebook-python (po-2027:CoursIA-2).

Trois surfaces à la tête exacte : 9 commentaires (8 bot, 1 de lane), 2 reviews, 0 thread inline. La review clusterManager-Myia (2026-10-11T10:50:51Z, 2 points mineurs : docstring périmée + référence pendante, contenu technique vérifié exact) précède le dernier commit (12:31:11Z) ; la lane a traité les deux points à cette tête (commentaire 12:33:35Z — seul commentaire non bot, postérieur au commit de 2 min, lu et classé : réponse de traitement, aucune remarque ouverte) ; myia-ai-01 a levé la réserve par review APPROVED 5483582098 @14:00:20Z en la nommant traitée et vérifiée à cette tête. Aucun dossier antérieur sur cette PR — celui-ci est le premier.

Gates : latest-wins-green intégral (93 jambes / 93 noms, PR gate success @14:33:39Z après rejeu de l'agrégat STARVED-annulé — famine de pool, zéro rouge de contenu ; garde prev: auto-résolue 12:56:19Z). B.0 organ check_unaddressed_nits.py 20361 rc=0.

Preuve décisive restante pour ai-01 : sa lecture B.0 finale personnelle (who/when ci-dessus) + signature de merge — rien d'autre.

@myia-ai-01
myia-ai-01 merged commit 659c57d into main Oct 11, 2026
93 of 94 checks passed
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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ICT][case 4] ICT-15d : verdict porté par le cocycle, distinct de la greffe H¹

4 participants