Skip to content

feat(translation,#1650): complete EN coverage of Sector-Momentum -- 10 md cells + 2 rendered _en notebooks - #18966

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/1650-sector-momentum-en
Oct 3, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/1650-sector-momentum-en

Conversation

@jsboige

@jsboige jsboige commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: DEEP/research-code #18913

Achève la couverture EN du répertoire examples/Sector-Momentum/ (issue #1650, périmètre EN déclaré pour partner-course.csv — #10032) : les 10 dernières cellules markdown non traduites des deux notebooks de recherche, et le rendu T4 des deux _en.ipynb correspondants. Suite directe des pilotes existants (medical_chatbot_en, FT-05_en) — même chemin, même contrat.

Ce que la PR livre

  1. translations/partner-course-quant-trading/partner-course.csv : 10 lignes remplies (text_en + hash_en = sha256[:16] du texte stocké, convention vérifiée par rejeu sur une ligne existante avant écriture) — 5 cellules d'interprétation par notebook (deepresearch-interp-*, robustness-fr-interp-*) : lecture des sorties, statistiques VIX, scores momentum, baseline et grid search ; régimes, Sharpe réel, sensibilité par régime, walk-forward, recommandations. Diff minimal vérifié : exactement 10 lignes CSV modifiées, aucune autre ligne touchée.
  2. deep_research_optimization_en.ipynb (nouveau) : rendu T4 — 18 cellules, 12/12 markdown traduites, 0 fallback FR, 6 code verbatim, 0 orphelin, 0 non-apparié.
  3. research_robustness_en.ipynb (nouveau) : rendu T4 — 17 cellules, 11/11 markdown traduites, 0 fallback FR, 6 code verbatim, 0 orphelin, 0 non-apparié.

Traduction agent manuelle (T3 reste gated — premier --apply = mandat user #10043) : fidèle aux nombres, verdicts et emphases du source ; code spans, noms de variables et valeurs numériques inchangés ; la coquille source « LaNaN » rendue par sens (« The initial NaNs »).

Vérifications (relancées après la dernière écriture)

Portée

Quatre fichiers : le CSV, les 2 rendus _en.ipynb, et scripts/translation/tests/test_check_translation_parity.py (déclaration EXPECTED_PAIR_COUNT 2→4 — compteur EQ du hold i18n #10038, bump knowingly, cf. mise à jour ci-dessous). Aucun notebook FR source modifié, catalogue non régénéré (byte-identique à main).

Mises à jour post-livraison (têtes 0ebef65e15 puis 9feb4e8ce8)

See #1650 · See #10038

🤖 Generated with Claude Code

…0 md cells + 2 rendered _en notebooks

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 3, 2026

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 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 3, 2026
@github-actions

github-actions Bot commented Oct 3, 2026

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

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

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

github-actions Bot commented Oct 3, 2026

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 3, 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.0s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 2.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 1.7s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 18.2s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 8.3s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.5s

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

@jsboige jsboige added the translation-override Dual-key override for translation-guard (#10332): label + [TRANSLATION-OVERRIDE] comment required label Oct 3, 2026
@jsboige

jsboige commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

[TRANSLATION-OVERRIDE] remplissage EN manuel des CSV de sync (voie auditable #10332) pendant le hold translation-sync (#15198, #10038) et T3 gated (#10043) — tranche #1650

Cette PR modifie translations/** (CSV de sync) pour livrer des traductions EN via le chemin agent-manuel, qui est le chemin de production actif tant que :

Ce remplissage suit le précédent des pilotes (medical_chatbot_en, FT-05_en, #10297/#10304) : les lignes ajoutées portent text_en + hash_en (sha256[:16], convention vérifiée par rejeu), le FR source n'est modifié que par re-extraction T1 (extract_cells_to_csv.py --update), et les gardes sync/perimeter/parity passent rc=0 sur la tête (0 anomalie nouvelle vs baseline main, diff mécanique). Label translation-override posé — dual-key complet.

See #10332 · See #10042 · See #1650

…renders

The pre-existing EN rows for the two Sector-Momentum notebooks were
one-liner era stubs against full French section bodies, which tripped
the md-content-loss gate (TRUNCATED_CELL on 10 cells). Re-extracted the
CSV pivot fields (2 drifted FR rows refreshed first), then completed the
10 EN translations against current FR and re-rendered both _en notebooks
(12/12 and 11/11 md translated, full coverage). Guards: md-content-loss
0 findings on both, parity 4 pairs 0 violation, nav-chain 0 NEW, sync
rc=0, perimeter OK.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

md-content-loss TRUNCATED_CELL — cause racine traitée au commit 0ebef65.

Les 10 cellules EN « tronquées » étaient des stubs d'époque pré-existants dans partner-course.csv : des résumés EN d'une ligne face aux corps de section FR complets (la garde compare le rendu _en au sibling FR). Protocole appliqué :

  1. re-extraction T1 d'abord (leçon feat(translation,#1650): FineTuning FT-01 + FT-03 EN -- 23 cellules md + 2 rendus _en #18968) — 2 lignes FR avaient dérivé depuis l'écriture du CSV, rafraîchies avant traduction ;
  2. traduction complète des 10 cellules sur le FR courant (5 par notebook : téléchargement univers, calibration VIX, facteur momentum, backtest courant, grid search + conclusions/recommandations côté optimization ; régimes, backtest échantillon complet, sensibilité levier, walk-forward côté robustness) ;
  3. re-render des deux _en (12/12 et 11/11 md traduits, couverture pleine).

Gardes locales sur la tête 0ebef65 : detect_md_content_loss 0 findings sur les deux rendus · check_translation_parity 4 paires 0 violation · check_notebook_nav_chain 0 NEW vs baseline · sync rc=0 · perimeter OK (orphelins Crypto-MultiCanal pré-existants sur main, non touchés).

See #1650 · See #10332

jsboige added a commit that referenced this pull request Oct 3, 2026
…stats 12->30

Scripts Tests (CPU) reddened on the tranche for the two designed
counters: (1) EXPECTED_PAIR_COUNT is an EQ declaration of the pairs on
main (hold i18n #10038) — this PR adds the FT-01/FT-03 pairs, so the
declaration moves to 4; (2) the T3/T4 demo renders FT-01 from the repo
CSV, now at full coverage (30 md translated, was 12). Both updated
knowingly per the counters' own instruction. Verified locally: 5/5
passed. Sector-Momentum (#18966) and XGBoost (#18972) carry their own
bumps; merge order fixes the final total (7).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…mentum pairs

Scripts Tests reddened on the EQ declaration (hold i18n #10038): this
PR adds the deep_research_optimization_en + research_robustness_en
pairs, declaration moves to 4. The T3/T4 demo test passes unchanged on
this branch (finetuning.csv untouched here). Verified locally: 5/5
passed. Note: this push re-arms the DWELL floor — accepted trade-off,
the counter red was blocking while DWELL is a timer.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Oct 3, 2026
Scripts Tests reddens on the EQ declaration (hold i18n #10038): this
PR adds the 02-ML-XGBoost research_en pair, declaration moves to 3.
Demo test unchanged (finetuning.csv untouched on this branch). Verified
locally: 5/5 passed. Sector-Momentum (#18966, 4) and FT (#18968, 4)
carry their own bumps — merge order fixes the final total (7).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #18966 (feat(translation,#1650): complete EN coverage of Sector-Momentum -- 10 md cells + 2 rendered _en notebooks) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added pr-overlap Advisory: another open PR touches the same files (organ #13615) large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) labels Oct 3, 2026
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine.

Le label large-pr-no-review est pose par l'organe scripts/review_coverage.py porte par l'issue #11232. Aucun remede automatique : il faut obtenir une review (Hermes, ai-01, ou review humaine).

Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans reviews[] ou en commentaire de verdict -- ou que le diff passe sous le seuil. Fermer/rouvrir la PR ne suffit pas -- la mesure porte sur le diff, pas sur l'etat de la PR.

Seuil, historique et exceptions : cf. docs/reference/review-coverage-threshold.md.

@jsboige

jsboige commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

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

note: Dossier c399 sur PR #18966 (feat(translation,#1650): complete EN coverage of Sector-Momentum). Lane porteuse myia-po-2025:CoursIA (tierce). MED/notebook, 4 fichiers MyIA.AI.Notebooks/QuantConnect/partner-course-quant-trading/examples/Sector-Momentum/{deep_research_optimization_en, research_robustness_en}.ipynb + scripts/translation/tests/test_check_translation_parity.py + translations/partner-course-quant-trading/partner-course.csv, +2047/-43 = +2004 net. PR gate SUCCESS 2026-10-03T11:35:25Z (gh pr checks confirme tous les check-runs pass). B.0 clear (rc=0, 0 nit non leve, 1 commentaire non evalué non bloquant). Scope pass (4 fichiers, PAS sous .claude/, .github/, ni CLAUDE.md). domain: pass (substance = EN coverage complete des carnets Sector-Momentum deep_research_optimization + research_robustness, parity test ajoute, catalogue CSV maj). Cible READY : substance prete, B.0 clear, gate SUCCESS. MED auto-merge eligible. Eligible merge direct ou APPROVED.

@myia-ai-01
myia-ai-01 merged commit f80c558 into main Oct 3, 2026
109 of 116 checks passed
jsboige added a commit that referenced this pull request Oct 3, 2026
…UNT (4+2=6)

Conflit : scripts/translation/tests/test_check_translation_parity.py -- les deux cotes avaient bumpe la declaration (FT 2->4 sur l'ancienne main, main post-#18966 2->4). Resolution : les deux commentaires de provenance conserves, declaration re-bumpee au total reel de la branche fusionnee (6 = 4 sur main + FT-01 + FT-03). Tests : parity 35 passed, demo acceptance 4 passed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Oct 3, 2026
…Lectures, nouveau rendu _en (#18972)

* feat(translation,#1650): 02-ML-XGBoost EN complete — 6 partial cells + 7 Lectures, new render

Six pre-existing EN rows were one-liner era stubs against full French
section bodies, and the seven interpretation Lectures (benchmark,
training set, R2 baseline, iteration 2, predictions, regime skip,
calibration) had no translation at all. Re-extraction first (0 drifted
rows), then completed all 13 EN against current FR and rendered the new
research_en.ipynb (15/15 md translated, full coverage). Guards:
md-content-loss 0 findings, parity 0 violation, nav-chain 0 NEW,
sync rc=0, perimeter OK.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(translation-tests,#18972): EXPECTED_PAIR_COUNT 2->3 for XGBoost pair

Scripts Tests reddens on the EQ declaration (hold i18n #10038): this
PR adds the 02-ML-XGBoost research_en pair, declaration moves to 3.
Demo test unchanged (finetuning.csv untouched on this branch). Verified
locally: 5/5 passed. Sector-Momentum (#18966, 4) and FT (#18968, 4)
carry their own bumps — merge order fixes the final total (7).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Oct 4, 2026
…d + 2 rendus _en (#18968)

* feat(translation,#1650): FT-01+FT-03 EN complete -- 23 md cells + 2 rendered _en notebooks

finetuning.csv en fill 73->96; re-extract T1 adds 12 stale-gap FT-01 rows
(all translated); 5 refreshed SRC_DRIFT rows re-aligned in EN where prose.
Renders: FT-01_en 30/30 md, FT-03_en 23/23 md, 0 fallback, code verbatim.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(translation,#1650): complete partial EN cells, retranslate FT-03 on refreshed FR, nav baseline

- 13 EN preexistantes partielles completees : lignes Navigation manquantes
  (headers FT-01/FT-03, convention nav anterieure a l'EN), corps Exercices
  FT-01 (55c->481c FR) et FT-03, sections 3-6 FT-01 tronquees.
- FT-03 : re-extraction (15 FR rafraichis -- le CSV datait d'un run anterieur
  20 paires/OPT-1.3B, le notebook tourne Qwen3.5-0.8B 227 paires) + les 5
  Lectures dens* retraduites sur le FR rafraichi (nombres du run reel :
  1,34->0,38, 205/22 split, 0,85% trainable).
- baseline_nb_nav_chain.json regenere : orphelins _en (FT-01_en, FT-03_en)
  inscrits comme connus -- meme convention que les pilotes (FT-05_en,
  medical_chatbot_en).
- gardes locales : md-content-loss 0 finding sur les 2 rendus, nav-chain
  0 NEW, sync rc=0, perimeter 0 violation, parity 4 paires OK.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(translation-tests,#18968): EXPECTED_PAIR_COUNT 2->4 + demo FT-01 stats 12->30

Scripts Tests (CPU) reddened on the tranche for the two designed
counters: (1) EXPECTED_PAIR_COUNT is an EQ declaration of the pairs on
main (hold i18n #10038) — this PR adds the FT-01/FT-03 pairs, so the
declaration moves to 4; (2) the T3/T4 demo renders FT-01 from the repo
CSV, now at full coverage (30 md translated, was 12). Both updated
knowingly per the counters' own instruction. Verified locally: 5/5
passed. Sector-Momentum (#18966) and XGBoost (#18972) carry their own
bumps; merge order fixes the final total (7).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige
jsboige deleted the feature/1650-sector-momentum-en branch October 16, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) pr-overlap Advisory: another open PR touches the same files (organ #13615) translation-override Dual-key override for translation-guard (#10332): label + [TRANSLATION-OVERRIDE] comment required variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants