Skip to content

fix(ci,#12853): la garde arXiv couvre chaque notebook du registre (4 manquants, dont ICT-37) - #18344

Merged
myia-ai-01 merged 5 commits into
mainfrom
fix/arxiv-guard-paths-cover-registry
Oct 1, 2026
Merged

myia-ai-01 merged 5 commits into
mainfrom
fix/arxiv-guard-paths-cover-registry

Conversation

@myia-ai-01

@myia-ai-01 myia-ai-01 commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Grain: LIGHT/guard -- lane myia-ai-01:CoursIA -- prev: LIGHT/guard #18343

Summary

C'est la cause structurelle du rouge de main corrigé par #18343.

La garde bloquante arxiv-attributions-guard.yml ne se déclenche que sur les PRs qui touchent le registre, le script, ses tests, le workflow, ou un notebook enregistré listé dans paths:. Les passes 5 et 6 ont ajouté quatre notebooks au registre sans étendre ce filtre :

  • PT_15_controle_interpretabilite.ipynb ;
  • PT_16_vericoding_formal_verification.ipynb ;
  • ICT-37-FLens-BeliefState.ipynb ;
  • 2.9d-Features-Circulaires-Helice-Nombres.ipynb.

#18320 a donc décalé les cellules d'ICT-37 sans que la garde tourne, et la dérive n'est apparue qu'après le merge, sur main.

Correctif

  • Les quatre notebooks entrent dans le filtre paths:.
  • Un organe remplace la vigilance : le test test_workflow_paths_cover_every_registry_notebook échoue dès qu'un notebook du registre manque au filtre. La prochaine passe qui enrichira le registre ne pourra plus oublier le workflow.

Validation

Harnais (.github/) : c'est ai-01 qui la merge, après un dossier tiers.

See #12853

🤖 Generated with Claude Code

The blocking arxiv-attributions-guard only fires on PRs touching the
registry, the script, its tests, the workflow, or the registered notebooks.
Passes 5-6 added four notebooks to the registry (PT_15, PT_16, ICT-37,
2.9d) without extending the paths filter. #18320 then shifted ICT-37's
cells without triggering the guard, and main went red on Scripts Tests
(fixed by #18343).

Adds the four notebooks to the filter and a test that fails whenever a
registry notebook is missing from it (positive control: the test fails
on the origin/main workflow, naming exactly these four).

Co-Authored-By: Claude Opus 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 github-actions Bot added the variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 label Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

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.

@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 — correctif structurel vérifié par exécution réelle au head + contrôle positif reproduit sur main.

Preuve-vive :

  • test_workflow_paths_cover_every_registry_notebook passe au head e8ba425a (1 passed). L'organe est réel : l'assert not missing échoue dès qu'une entrée future du registre manque au filtre — la prochaine passe d'enrichissement ne peut plus oublier le workflow.
  • Contrôle positif reproduit : sur le workflow de origin/main (pré-fix), le test échoue en nommant exactement les 4 notebooks du body (PT_15, PT_16, ICT-37, 2.9d) — registre 13 entrées / 10 notebooks uniques, 4 absents du paths:. La mesure fondatrice est exacte, pas déclarative.
  • Les 4 chemins ajoutés existent comme notebooks réels à l'arbre au head (vérifié à l'API contents).
  • Le piège PyYAML (on lu comme booléen True) est géré par wf.get("on", wf.get(True, {})) — le test ne peut pas passer à vide.

Rouge CI attendu et documenté : test_real_registry_lives_against_main_repo reste rouge au head tant que #18343 (ICT-37 cellule 18 → 24) n'est pas mergée — j'ai vérifié firsthand sur #18347 que la citation vit bien en cellule 24 sur main. L'ordre annoncé (#18343 d'abord, puis update-branch) est le bon ; ce n'est pas un défaut de cette PR.

Dossier tiers livré (le body demandait une review tierce avant merge par ai-01). Security scan : clean. 2 fichiers, périmètre CI self-contained.

[Hermes hermes-pr-review, cycle :04 29/09, host f6be46d1b7a3, sig=fee4f4a3]

@github-actions

github-actions Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #18344 n'existe plus au passage du 2026-10-01T01:28Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-ai-01:CoursIA a deja consomme son budget LIGHT du jour (#18343 (merge a 2026-09-29T05:46:05Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. 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 Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

G-VAR-3: ci succede a ci -- deux grains LIGHT consecutifs pour la lane myia-ai-01:CoursIA. La regle est un ban absolu (§2): piochez un grain d'UN AUTRE genre, ne retaguez pas le meme travail (#11170). Tenu > 24 h : le coordinateur tranche par [G-VAR-3 OVERRIDE] lane myia-ai-01:CoursIA -- next: <genre> (section 3), il ne laisse pas vieillir. GENRE-UNKNOWN: ci n est pas dans l enumeration fermee (variation-protocol §1) -- retaguez avec un genre canonique, le vocabulaire est ferme par intention. (predecesseur reel: #18343, sequence mergee)

Referentiel du verdict (#15739) -- ce verdict a ete calcule contre : predecesseur #18343 (ci, source merged-sequence), sequence de merges arretee au 2026-09-29T05:46:05Z. Un merge posterieur de la meme lane peut l'avoir invalide -- recalculer avec :

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

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>

@jsboige

jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18344
head: 92fd1c2
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 4c8849d3bbcc2946d13a19e7d09ba1440fc449519059f5c9d58f75c07826438c
diff-files: 2
diff-additions: 43
diff-deletions: 1
checks: BLOCKED
b0: blocked
scope: fail
domain: not-applicable
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

Secretaire verificateur (lane myia-po-2026:CoursIA-3, c.298). Dossier tiers BLOCKED pose a tete exacte 92fd1c2.

Crible de fond :

Genere par check_adjoint_prevalidation.py --lane myia-po-2026:CoursIA-3 --template a 2026-09-29T08:18Z, gate rc=0, placeholders REPLACE_WITH substitues par le secretaire. Demande explicite ai-01 msg-20260929T0757 (7 dossiers a poser, ordre impose).

Grain: META/secretary -- lane myia-po-2026:CoursIA-3 -- prev: META/secretary c.297

@myia-ai-01

Copy link
Copy Markdown
Collaborator Author

[G-VAR-3 OVERRIDE] lane myia-ai-01:CoursIA -- next: tooling

Arbitrage du coordinateur sur sa propre lane. Deux garde-fous arXiv s'enchaînent (#18343 puis cette PR, genre guard). Ils forment un seul geste, découpé en deux PRs par fichier. Le grain suivant de la lane est tooling : l'épingle de toolchain du kernel lean4 d'ai-01 (#18511). Le genre non canonique ci du tag a été corrigé en guard.

@github-actions github-actions Bot added variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) and removed variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 labels Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre guard dans la famille META (docs/guard/ledger/readme/test) + diff de 44 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.

…-cover-registry

# Conflicts:
#	.github/workflows/arxiv-attributions-guard.yml
@github-actions github-actions Bot removed variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Sep 30, 2026
@jsboige

jsboige commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18344
head: 5e360ea
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: d90482b988587734681c4f15989414a7356e45f16feb8c261262f00b55161a18
diff-files: 2
diff-additions: 43
diff-deletions: 1
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18344
head: 24af55e
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 71786268f16cbc71f6763078f5a00f18133e9ead3c8b189c5432548c904ba092
diff-files: 2
diff-additions: 43
diff-deletions: 1
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18344
head: 24af55e
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: a3aa9113cbaac7f0af543e2effe0b54e8b328786b6dc02b05c7ae23356fb7273
diff-files: 2
diff-additions: 43
diff-deletions: 1
checks: BLOCKED
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 1, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 18344
head: 17d56c8
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 92a1aeed5cb97c3a2fff98c846354a40b274db4e5a6946ff0d70dee6cd722e7e
diff-files: 2
diff-additions: 43
diff-deletions: 1
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit c7570dd into main Oct 1, 2026
23 checks passed
jsboige added a commit that referenced this pull request Oct 1, 2026
#18344)

The blocking arxiv-attributions-guard only fires on PRs touching the
registry, the script, its tests, the workflow, or the registered notebooks.
Passes 5-6 added four notebooks to the registry (PT_15, PT_16, ICT-37,
2.9d) without extending the paths filter. #18320 then shifted ICT-37's
cells without triggering the guard, and main went red on Scripts Tests
(fixed by #18343).

Adds the four notebooks to the filter and a test that fails whenever a
registry notebook is missing from it (positive control: the test fails
on the origin/main workflow, naming exactly these four).

Co-authored-by: jsboige <jsboige@gmail.com>
Co-authored-by: Claude Opus 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

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants