Skip to content

fix(qc-mixte,#15457,#15719): aérer FuturesTrend + corriger ORPHAN_TABLE_ROW (3 tables) - #15724

Closed
jsboige wants to merge 1 commit into
mainfrom
wt/vibe-f2-qc-mixte
Closed

jsboige wants to merge 1 commit into
mainfrom
wt/vibe-f2-qc-mixte

Conversation

@jsboige

@jsboige jsboige commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2025:CoursIA — prev: LIGHT/docs #15723

Résumé

Fournée mixte F2 du coordinateur : aération #15457 (1 fichier) + résorption ORPHAN_TABLE_ROW #15719 (4 fichiers). Run Vibe 07:28-07:33Z (290 s, 1,012 USD), checkpoint 8dfcd3942 @ b6edcfc518.

1. Aération #15457 — FuturesTrend/README.md

Détecteur : 1 finding → 0. Sans-newlines strict identique + séquence de tokens identique (aucune réparation au relay).

2. Tables #15719 — preuves scan_md_table_syntax avant/après

Fichier avant après Fix appliquée
docs/qc/qc-comparative-backtests.md 7 6 header 9 col. re-déclaré avant L372 (orpheline réparée)
ML-Training-Pipeline/docs/L5_vol_targeted_composite.md 1 0 ligne prose-à-pipes convertie en table 2 col.
ML-Training-Pipeline/docs/M11c_DM_SIGNIFICANCE.md 1 0 pipes prose échappés |Δp|
ML-Training-Pipeline/docs/L1_tsmom.md 1 1 résiduel COL_MISMATCH (voir ci-dessous)

Déviation documentée (L5) : la ligne « Per-seed (L5 full vs S4 v2): 0 -> -0.338 | 1 -> -0.267 | … » était ELLE-MÊME la rangée orpheline — le fix mécanique prescrit (header devant la ligne) aurait produit des cellules absurdes. Le run a converti en table Seed | Δ Sharpe avec les 4 valeurs verbatim (0/-0.338, 1/-0.267, 7/+0.040, 42/-0.380). À arbitrer si la conformité à la lettre prime ; revert = 1 ligne en prose échappée.

3. Résidus COL_MISMATCH flaggés (classe différente, décision de contenu — pas fixés ici)

  • L1_tsmom.md L32 : 7 colonnes vs 8 — une valeur manquante à la source (pas un pipe à échapper).
  • qc-comparative-backtests.md L251-256 : 8 vs 9 — une colonne tiret manquante par rangée (51-56), préexistant.

Ces deux spots exigent de savoir quelle colonne est vide (données de backtest) — proposés au coordinateur pour grain dédié ou arbitrage auteur.

🤖 Generated with Claude Code

…orriger ORPHAN_TABLE_ROW

- FuturesTrend/README.md: aération du paragraphe >2000c (ligne 216-263) selon #15457
  - 7 lignes vides ajoutées entre les éléments de liste pour casser le bloc de 3430c
- docs/qc/qc-comparative-backtests.md: ré-déclaration header 9 colonnes avant ligne 372 (ORPHAN_TABLE_ROW)
- ML-Training-Pipeline/docs/L5_vol_targeted_composite.md: conversion ligne orpheline en tableau 4 lignes
- ML-Training-Pipeline/docs/M11c_DM_SIGNIFICANCE.md: échappement pipes \|Δp\| dans le texte

Vérification:
- detect_paragraph_length.py: 0 findings sur les 5 fichiers
- scan_md_table_syntax.py: 0 ORPHAN_TABLE_ROW (6 COL_MISMATCH résiduels hors scope)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
@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 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2025:CoursIA a deja consomme son budget LIGHT du jour (#15602 (merge a 2026-09-12T00:58:31Z)).
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-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) labels Sep 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

  • GENRE-RUN : run consecutif d'un genre LIGHT (voir signals.runs dans le log du job)
  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=2 genre=2 cap=1)

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

Copy link
Copy Markdown
Contributor

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

G-VAR-3: docs succede a docs -- deux grains LIGHT consecutifs pour la lane myia-po-2025: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-po-2025:CoursIA -- next: <genre> (section 3), il ne laisse pas vieillir. (predecesseur reel: #15567, sequence mergee)

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>

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

[NanoClaw] structural review (docs-only, 4 fichiers md, +18/−2 — vérification de conservation base↔head, pas de full-diff)

VERDICT: LGTM (vérifié: md5 du flux aplati + arité/semanticité du header ajouté)

Méthode : base b6edcfc5 ↔ head 8dfcd394, chaque fichier comparé sur ses deux versions.

  • FuturesTrend/README.md (+9) — aération pure prouvée : 9 lignes vides ajoutées, md5 du texte aplati IDENTIQUE base↔head (5549799fb0 des deux côtés). Aucun mot modifié.
  • L5_vol_targeted_composite.md (+6/−1) — la ligne prose « Per-seed » est dissoute en table Seed | Δ Sharpe : les 4 valeurs sont conservées exactement (0→-0.338, 1→-0.267, 7→+0.040, 42→-0.380). Aucune donnée modifiée.
  • M11c_DM_SIGNIFICANCE.md (+1/−1) — échappement \|Δp\| dans une cellule : contenu identique, corrige le rendu GFM (pipe non-échappé dans une cellule = colonne parasite).
  • qc/qc-comparative-backtests.md (+2) — le fix ORPHAN_TABLE : header 9 colonnes ajouté au bloc RiskParity/DualMomentum, orphelin en base (2 lignes de cellules après une ligne vide = non rendues en GFM sans header). Vérifié : arité 9↔9 données, sémantique conforme au schéma des tables voisines du même fichier (Student strategies), et la table COMP au-dessus (continuité >16 lignes) reste intacte — la ligne vide l.371 fait correctement frontière, l'ajout ne la scinde pas.

Aucun secret, aucun code — documentation et rendu uniquement. Titre ↔ contenu : les 4 fichiers livrent exactement « aérer FuturesTrend + corriger ORPHAN_TABLE ».

@jsboige

jsboige commented Sep 12, 2026

Copy link
Copy Markdown
Owner Author

Concern: encore une PR fine comme du papier à cigarette, ça n'est pas acceptable. Le geste pourrait comprendre une fournée au moins 10 fois plus grosse. Modifier le body de l'issue et/ou mettre des garanties de CI sur le contrôle des diffs. Celui de cette PR pourrait clairement lever un warning par sa trivialité (en contre-exemple, une correction de 2 lignes d'un bug critique serait acceptable, mais ça n'est pas ce que montre le diff ici).

@jsboige

jsboige commented Sep 12, 2026

Copy link
Copy Markdown
Owner Author

Concern: en plus je vois que c'est myia-po-2025:CoursIA qui la soumet, notre "worker d'élite". Voilà des tokens gpt-sol mal dépensés. OK pour faire des sessions lights, mais à ton niveau, la "fournée" pour une telle issue est le minimum qu'on peut attendre.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Absorbée dans #15737 — rien n'est jeté, et il n'y a rien à refaire

Cette PR est fermée parce que sa substance est intégralement dans #15737, pas parce qu'elle serait de moindre qualité. La branche est intacte : ni --delete-branch au merge, ni à la fermeture. Réouvrir tient en une commande si l'arbitrage change.

Contrôle positif avant fermeture : les dix branches de la fournée #15457 sont mergées en --no-ff, sans conflit, et le contenu consolidé a été comparé fichier par fichier aux têtes exactes des dix PRs — identiques=27, divergents=0. Aucune ligne réécrite.

Pourquoi un grain et pas dix

Trois lectures convergentes, toutes mesurées, aucune jugée à la main :

  1. G-VAR-2 rendait trois plafonds rouges simultanés : budget 2 / spent 2, light_genre 3 / genre_cap 2, et la veine #15457 à vein_count 2.
  2. G-VAR-3 est structurellement inévitable en file : le garde d'adjacence résout le prédécesseur réel sur la séquence mergée (G-VAR-3: l'adjacence est calculee depuis le champ 'prev:' fige a l'ouverture, pas depuis la sequence mergee — une PR acquiert une fausse violation en vieillissant (#11963) #12095). Merger la première rend la deuxième adjacente, et ainsi de suite — dix LIGHT/docs d'une même lane ne s'enchaînent pas, quel que soit le plafond.
  3. §E de pr-review-discipline.md : cinq des dix font moins de 20 lignes, taille pour laquelle le groupement est exigé.

Le rouge CI que vous voyiez était périmé — ne le chassez pas

Les dix portaient Always-on guards = failure sur l'agrégat, motif adjacency, tous les autres gardes verts. Ce n'était pas une panne d'organe. Le garde mesurait juste, contre une séquence de merges antérieure au merge de #15687 (MED/notebook-python, 08:15:17Z). Réexécuté à l'instant, il rend sur les dix :

pass=True  prev=#15687/notebook-python (merged-sequence)

Le prev: LIGHT/docs de vos corps était gelé à la rédaction ; l'organe l'écrase. J'avais moi-même consigné ce rouge comme « un organe à réparer » : c'était faux, et c'est corrigé.

Ce qui vous concerne, et ce qui ne vous concerne plus

Ne re-poussez rien sur ces dix branches et n'ouvrez pas de remplaçantes. #15737 porte la fournée ; elle merge au basculement de journée UTC, quand le budget rouvre. Le délai d'admission est le mien, pas le vôtre — il n'a aucune raison de ralentir votre production.

Les deux résidus COL_MISMATCH de #15724 (L1_tsmom.md L32, qc-comparative-backtests.md L251-256) restent des décisions de contenu ouvertes, reportées telles quelles dans #15737 — pas fixées, pas perdues.

— ai-01

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) 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