Skip to content

docs(ci,#15202): un resserrement de cap nomme les jobs mesures et ceux qui ne l'ont pas ete - #19375

Merged
myia-ai-01 merged 1 commit into
mainfrom
docs/15202-cap-sampling-rule
Oct 6, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
docs/15202-cap-sampling-rule

Conversation

@myia-ai-01

@myia-ai-01 myia-ai-01 commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Ce que fait la PR

Elle ajoute au README de scripts/ci/docker/linux-runner/persist/ une sous-section courte. Toute PR qui abaisse une borne du parc (mémoire, CPU, budget, nombre de slots) nomme dans son body les jobs dont le pic a été mesuré sous la nouvelle valeur, et les jobs non mesurés qui tournent sur ce pool.

Grain du tapis (tête, issue #15202 créée le 08/09) — tapis.

Pourquoi

L'issue #15202 avait trois critères :

Critère État Preuve
1. Build Quarto site repasse au vert sur main tenu rendu sorti du pool auto-hébergé par #15203 ; quarto-pages-deploy.yml sur main : success le 2026-10-05 à 18:18Z ; mesure po-2023 du 25/09 sur 40 runs, aucun échec
2. Dimensionnement lisible depuis le dépôt tenu persist/ai-01/coursia-runner.service.d/10-sizing.conf tracké par #15214
3. Le prochain resserrement nomme les jobs échantillonnés et ceux qui ne l'ont pas été écrit nulle part avant cette PR cette PR

Le troisième critère porte sur une conduite future : il ne peut être tenu qu'en étant écrit là où l'opérateur qui resserre un cap le lira. Ce lieu est ce README, à côté de la table des quatre bornes.

Vérification

  • check_prose_quantitative_claims.py --diff origin/main...HEAD : aucun compteur quantitatif en prose.
  • Diff : 1 fichier, ajout seul, aucun fichier vivant ni dimensionnement modifié.

Closes #15202

Grain: LIGHT/docs — lane myia-ai-01:CoursIA — prev: LIGHT/tooling #19373

🤖 Generated with Claude Code

…x qui ne l'ont pas ete

Le cap de 1536 Mo par slot, juge ~10x le pic mesure, a fait OOM le rendu
Quarto qui ne faisait pas partie de l'echantillon. Le rendu est sorti du
pool (#15203) et le drop-in est tracke (#15214) ; restait le critere 3 de
l'issue, ecrit nulle part : toute PR qui abaisse une borne du repertoire
persist/ nomme les jobs mesures et les jobs non mesures.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

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 added variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) and removed variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) labels Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

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 (#19149 (merge a 2026-10-05T00:29:39Z)).
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 variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-genre-mismatch declared genre != genre infere depuis les chemins du diff (#10020, advisory) labels Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

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-10-05) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=2 genre=4 cap=1)
  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=2 genre=4 cap=1)
  • GENRE-MISMATCH : declared genre != genre infere depuis les chemins du diff

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 trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot added the lane-claim-absent Closing issue carries no claim at all (#10223) label Oct 5, 2026

@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

[Hermes] po-2026 — review CoursIA #19375, tête 87ab0c569ccb (myia-ai-01, docs CI, +19/-0, 1 fichier).

Vérifications exécutées firsthand :

  • Diff scope : une seule sous-section ajoutée au README scripts/ci/docker/linux-runner/persist/ (règle de discipline « resserrer un cap = nommer les jobs mesurés ET non mesurés »). 0 fichier ailleurs, security scan clean.
  • Faits cités exacts contre les sources : issue #15202 ouverte (« Build Quarto site OOM exit 137 sur pool auto-hébergé ») — Killed/exit 137 à 1145/1276 carnets y est documenté mot pour mot ; #15203 (sortie du rendu du pool) mergée 2026-09-08T14:54Z, cohérent avec « main rouge du 07 au 08/09 » ; la citation « ~10x le pic mesuré » figure telle quelle dans le corps de #15202 (dimensionnement 3072→1536 Mo sur jobs échantillonnés 38-160 MiB). Le récit de la section est fidèle à l'historique de l'incident.
  • La règle proposée est actionnable : deux listes obligatoires (mesurés / non mesurés), non-vide par omission — c'est bien la leçon de #15202 (l'échantillon ne contenait pas le job le plus lourd du dépôt).
  • CI : Always-on guards (organe tag_required) a échoué à l'ouverture 21:38:59Z (Grain absent du body initial) puis a été re-run avec succès à 22:21:20Z au même SHA après édition du body (ligne Grain: LIGHT/docs — lane myia-ai-01:CoursIA — prev: LIGHT/tooling #19373 désormais présente). Le PR gate rouge restant (21:50:59Z) est un agrégat stale antérieur au re-run, pas un échec courant — il se rafraîchira au balayage. Aucun échec réel au head.

Rien à signaler d'autre. Section utile, faits exacts, garde de périmètre verte (1 fichier, 19+/0-).

[Hermes hermes-pr-review, cycle :22 05/10, host f6be46d1b7a3, sig=401bb2d8]

@jsboige

jsboige commented Oct 6, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19375
head: 87ab0c5
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: d3ee7d5a6f2137217ec72ede5cc53fa28d4b870c12fb67a2d665edddbef32e1c
diff-files: 1
diff-additions: 19
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19375
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 2b058f0 into main Oct 6, 2026
30 of 35 checks passed
@jsboige
jsboige deleted the docs/15202-cap-sampling-rule branch October 7, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223) trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-genre-mismatch declared genre != genre infere depuis les chemins du diff (#10020, advisory) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory)

Projects

None yet

3 participants