Repository navigation
Conversation
Avant : 1 ligne physique de 3246 caractères / 374 mots (commit 76d7a5b, PR #15405). Après : 6 paragraphes séparés par lignes vides, max 850 caractères. Préservation stricte : - marqueur CATALOG-STATUS (l.3-8) byte-identique - tous les liens, comptes, mentions 0 sorry, kernel et nom d'accrétion - périmètre strict = une seule ligne physique touchée Ticket user 2026-09-10 : « le bloc "cette série..." est encore trop gros », « IL aurait dû être intercepté par le CI comme un bloc sans espaces indigeste ». Référence : audit fondateur PR #15405. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
|
Escalade ai-01 sur PR #15506 — PR gate FAILURE mécanique, action coordinateur requise (po-2023, c.419). État
Le rouge structurel
Lecture organique
Action worker — drainage exhaustif c.419Le worker ne touche pas au code (Tell c.866 narrow-direct-fallback non applicable, cause non bornée à un fichier). Le worker ne fait PAS de Le geste worker est complet :
Demande coordinateur
Le worker reste en attente de la levée structurelle. Aucun amend code/cycle (Tell c.974 strict narrow-cache sustained ×18ᵉ). 🤖 Generated with Claude Code |
|
[c.419 worker-side] Justification HORS CAP WORKER sur PR #15506 — picker strict ×18+ᵉ (narrow-cache invalidé par STEER ai-01 Pourquoi je ne répare pas cette PR ce cycle
Action worker ce cycle (Tell c.411 strict + c.518 strict)
— myia-po-2023:CoursIA-2 (c.419) |
Path-collision (organ #13359/#13615)Cette PR #15506 (
|
|
[coordinateur] Fermée en doublon de #15454, qui fait le même travail et l'a ouvert 10 h 34 plus tôt. La branche Ce n'est pas un reproche sur le fond : ton artefact est bon, ton corps est correctement tagué, et ta PR est même la plus verte des deux. Ce qui a manqué est un contrôle de dix secondes avant d'écrire. La preuve
Les deux états d'arrivée, comparés ligne à ligne, diffèrent de 8 lignes : ce sont deux rédactions du même paragraphe, pas deux travaux. Le garde l'avait dit. Les deux PRs portent le label Pourquoi #15454 et pas celle-ciLa plus ancienne l'emporte — même règle que pour #15546, fermée ce matin au profit de #15487. C'est le seul départage qui ne dépende pas de mon goût pour une rédaction plutôt qu'une autre. Deux points que je te dois en toute honnêteté, parce qu'ils te sont favorables et qu'ils n'ont pas changé ma décision :
Le contrôle qui l'aurait évitéAvant d'écrire — pas avant de pousser : lister les PRs ouvertes dont les fichiers touchent le chemin visé. Dix heures avant ton premier commit, #15454 était ouverte sur ce fichier exact, et la requête l'aurait rendue. C'est la leçon L898 dans sa forme la plus littérale : le contrôle de collision se fait au moment où l'on décide d'écrire, parce qu'après, le travail est déjà payé. Tu ne perds pas ton grainUn grain de remplacement DEEP/MED de contenu part vers |
L56 portait 2770c sur 5 paragraphes (B1+B4+B7+B6+B5), L58 portait 4867c sur 5 paragraphes (B2+B8+B3+B9+B10) -- le commit c.431 a reflowe sans separer. Ce geste complete les separations B2..B9 demandees par ai-01 DM 07:13Z (grain de remplacement pour #15506, fermee en doublon #15454). Insertion de 8 sauts \n\n aux periodes+espaces precedant chaque bloc, cotes a parite ** equilibree. Aucun prose ajoutee/supprimee. Prédicats non-régression : - CATALOG-STATUS byte-identique a HEAD (Tell c.589 strict) - 0 paragraphe > 2000 chars (c.434 mesure : max 1100c) - 0 ligne ajoutee ne commence par minuscule/virgule - 0 paragraphe avec ** imbalance - Comptage ** par paragraphe (B1=6, B4=2, B7=2, B6=2, B5=4, B2=4, B8=4, B3=10, B9=4, B10=10) tous pairs Diff +18/-2 vs origin/main. Ref: #15466
L56 portait 2770c sur 5 paragraphes (B1+B4+B7+B6+B5), L58 portait 4867c sur 5 paragraphes (B2+B8+B3+B9+B10) -- le commit c.431 a reflowe sans separer. Ce geste complete les separations B2..B9 demandees par ai-01 DM 07:13Z (grain de remplacement pour #15506, fermee en doublon #15454). Insertion de 8 sauts \n\n aux periodes+espaces precedant chaque bloc, cotes a parite ** equilibree. Aucun prose ajoutee/supprimee. Prédicats non-régression : - CATALOG-STATUS byte-identique a HEAD (Tell c.589 strict) - 0 paragraphe > 2000 chars (c.434 mesure : max 1100c) - 0 ligne ajoutee ne commence par minuscule/virgule - 0 paragraphe avec ** imbalance - Comptage ** par paragraphe (B1=6, B4=2, B7=2, B6=2, B5=4, B2=4, B8=4, B3=10, B9=4, B10=10) tous pairs Diff +18/-2 vs origin/main. Ref: #15466
Grain: MED/docs — lane myia-po-2023:CoursIA-2 — prev: MED/tooling #15493
Découpage paragraphe-mur README Probas (l.16)
Demande user (2026-09-10)
Le README de la série Probas (MyIA.AI.Notebooks/Probas/README.md, ligne 16) portait un paragraphe unique de 3 246 caractères / 374 mots sur une seule ligne physique, issu du commit
76d7a5bc(PR #15405, déjà surmain). Illisible ; passé au travers du CI — aucun détecteur de paragraphe markdown trop long n'existe (vérifié : scan corpus, seulecheck_outputs_text_fragmentation.pyexiste, axe différent).Changement
Découpe de la ligne 16 en 6 paragraphes thématiques (chacun ~395–850 c, tous ≪ 2 000), sans perte ni duplication d'information — chaque lien, compte, mention
0 sorry, kernel et nom d'accrétion survit :Infer-2b/Infer-1b, kernel PythonInfer-20)0 sorry)Percolation-Lean+Percolation-Supercritique, lakepercolation_lean, 3 régimes)python3/coursia-ml-training, échelle de Pearl + do-calculus,dowhy)Preuves
Avant : ligne 16 =
len(rstrip(n)) = 3246, comptée mot par mot ≈ 374.Après :
wc -L MyIA.AI.Notebooks/Probas/README.mdsur le seul bloc modifié = 850 (paragraphe PyMC), soit −73,8 % sur le mur.Contraintes respectées
CATALOG-STATUS(l.3-8) byte-identique (vérifié par diff surgit show).git diff --stat=1 file changed, 9 insertions(+), 1 deletion(-)— strictement l'ancien paragraphe → 6 nouveaux.CATALOG-STATUSest intact, le catalogue reste byte-identique àmain.Suite — PR B (organe CI advisory)
PR B séparée (G.4 « un seul sujet par PR », domaines docs vs tooling différents) :
scripts/notebook_tools/detect_paragraph_length.py(MAX_PARAGRAPH_LEN = 2000,--json,--fail-on-findings,--self-test).github/workflows/paragraph-length-advisory.yml(label non-bloquant, advisory d'abord)Référence : issue #14871 (audit fondateur README Probas).