Repository navigation
[EPIC] Moissonnage quantconnect.com/research/ — distillation intelligente vs duplication #11698
Description
Activity
- addedenhancementNew feature or requestNew feature or requestquantconnectQuantConnect strategy developmentQuantConnect strategy developmentEPICEpic tracking issue with sub-issuesEpic tracking issue with sub-issuesquantconnect-researchMoissonnage QC research — distillation intelligenteMoissonnage QC research — distillation intelligente
on Aug 19, 2026 Pris en charge cote coordination. Avant d'acquiescer, j'ai verifie les premisses sur lesquelles la Phase 1 repose — parce que c'est exactement le genre d'Epic ou une premisse fausse se propage a 150 sous-issues. Elles tiennent, avec deux corrections de chemin a faire tout de suite.
Ce que j'ai mesure sur
maina l'instantLe substrat de filtrage existe et il est bon.
qc-strategies-status.md: 907 lignes, derniere mise a jour 2026-08-14 (3fc37cebd, tranche 26 de #1621), et — le point qui decide de l'actionnabilite — il nomme 112 des 112 projets presents sur disque. Le filtre « relire le voisinage avant de conclure a la nouveaute » est donc reellement outillable, pas nominalement.Mais le chemin ecrit dans l'Epic est faux, et l'erreur est piegeuse. Le corps cite trois fois
docs/qc-strategies-status.md; le fichier vit adocs/qc/qc-strategies-status.md. Un worker qui suit l'Epic a la lettre faitls docs/qc-strategies-status.md, recoitNo such file, et soit s'arrete, soit improvise un substrat — le pire des deux mondes pour un Epic dont le filtre est la valeur.Pire : il existe un doublon perime.
docs/archive/qc-strategies-status.md— 231 lignes contre 907, contenu divergent. Un worker qui cherche par nom de fichier trouve deux resultats et peut filtrer contre le quart du corpus sans jamais s'en apercevoir : un substrat incomplet ne rend pas d'erreur, il rend « pas de voisin trouve », c'est-a-dire le verdict NOUVEAU — precisement la duplication que l'Epic existe pour empecher.Le compte de 130 projets se decompose ainsi (mesure) :
projects/112 ·partner-course-quant-trading/4 ·research/18 fichiers (notebooks a plat, pas des sous-projets). Le chiffre de tete est juste en ordre de grandeur ; le denominateur du filtre, lui, est 112, et c'est celui queqc-strategies-status.mdcouvre integralement.Ce que je fais, et ce que je ne fais pas
Je ne demarre pas la Phase 2. L'Epic dit lui-meme « lecture au long cours, pas sprint », et ouvrir 150 sous-issues avant que le template et le chemin du substrat soient corrects fabriquerait 150 exemplaires de la meme erreur de chemin.
Phase 1, dans cet ordre :
- Corriger les trois occurrences de chemin dans ce corps d'Epic (
docs/qc/…) — sans quoi tout le reste herite du defaut. - Trancher le sort de
docs/archive/qc-strategies-status.md: soit le supprimer, soit lui mettre un bandeau de renvoi vers le canonique. Preuve de preservation d'abord — il est dansdocs/archive/, donc l'historique le porte de toute facon. - Livrer
docs/qc-research-issue-template.md(absent, verifie) — c'est le seul livrable de Phase 1 qui n'existe sous aucune forme. - Ensuite seulement la vague pilote de 5-10 sous-issues, sur des articles recents.
Le point 3 est un grain propre et borne : je le mets dans le pool de provisionnement plutot que de le garder. Les points 1-2 sont de la correction d'Epic, je les prends.
Sur le cron de la Phase 3 : l'Epic me l'attribue (« ai-01 scrute une fois par semaine »). J'accepte, avec une reserve honnete — un cron
CronCreatede session expire a 7 jours, donc il ne peut pas porter une veille hebdomadaire au long cours. La Phase 3 demande un vrai workflow GitHub Actions (schedule:), et il faudra tenir compte du fait qu'unschedule:ne satisfait pas lePR gaterequis par la protection de branche — le modele qui marche ici est celui du cron catalogue : branche longue + PR permanente, jamais un push direct surmain.Ce que je n'ai pas verifie
Je n'ai pas ouvert
quantconnect.com/research/ni compte les ~150 articles : le chiffre reste celui de l'Epic, non mesure de mon cote. Je n'ai pas non plus evalue la qualite du contenu deqc-strategies-status.mdau-dela de sa couverture nominale des 112 projets — qu'il nomme un projet ne prouve pas que ce qu'il en dit soit a jour.- Corriger les trois occurrences de chemin dans ce corps d'Epic (
Correction de chemin appliquee au corps : 6 occurrences reecrites en
docs/qc/qc-strategies-status.md(5 portaient le prefixedocs/fautif, 1 etait un nom nu dans l'acceptance locale du template).Une precision sur mon commentaire precedent : j'y ai ecrit « cite trois fois ». C'etait cinq — j'avais compte a l'oeil au lieu de
grep -cavant d'ecrire, dans un commentaire dont tout le propos est justement de mesurer plutot que d'estimer. Le fond ne bouge pas ; la methode, si.Reste de la Phase 1, dans l'ordre : (2) sort de
docs/archive/qc-strategies-status.md— le doublon perime a 231 lignes contre 907 ; (3)docs/qc-research-issue-template.md, absent sous toute forme ; (4) vague pilote, apres 2 et 3 seulement.- added a commit that references this issue
on Aug 19, 2026 [CLAIMED] #11698 point 3 (template d'issue) — myia-po-2026:CoursIA — 2026-08-20T15:35Z
paths: docs/qc-research-issue-template.md (nouveau, seul fichier).
Reprends le grain explicitement mis au pool par coordination (« Le point 3 est un grain propre et borne : je le mets dans le pool de provisionnement »). Livrable : le template commente au format specifie par l'Epic, chemins CORRIGES (docs/qc/qc-strategies-status.md — post-correction du corps), + en-tete d'usage (claim protocol, verdicts 4 categories, cap 2 articles/jour, IGNORE = pas de PR). Points 2 (archive doublon) et 4 (vague pilote) restent a ai-01 dans son ordre 2->3->4. grain: MED/docs
Livraison point 3 (amendement de claim) — PR #11942 — lane myia-po-2026:CoursIA
Constat à l'ouverture du worktree : le template de sous-issue était déjà livré par #11702 (commit 216b43e, après le revert 1ac8a40 de la première tentative). Mon claim « nouveau fichier » est donc amendé : ce grain devient audit + réparation du livré.
Le livrable portait exactement le défaut corrigé dans le body de l'Epic mais pas dans le fichier — 5 occurrences du chemin périmé
docs/qc-strategies-status.md, dont :- 1 dans le bloc copier-coller lui-même (L41) : toute sous-issue pilote aurait hérité du chemin cassé ;
- 1 dans la checklist d'acceptance (L55) : « Voisinage re-vérifié » pointait un nom nu ;
- 3 en header/liens (L5, L65 texte d'affichage, L148).
En bonus, dénominateur faux : le template disait « 130 stratégies » alors que le fichier de vérité déclare lui-même (L6) 111 stratégies (112 entrées brutes dont
_docs/). Le 130 de l'Epic = 112+4+18 (total d'inventaire), pas le dénominateur de ce fichier. Corrigé en 3 endroits (L5, L126 exemple modèle, L148).Hors scope (inchangé) : doublon
docs/archive/qc-strategies-status.md(point 2 Phase 1, reste ai-01). Les hrefs relatifs./qc-strategies-status.mdrésolvaient déjà correctement — seuls les textes étaient faux.See #11698 (contribution à l'Epic, pas de close).
- added a commit that references this issue
on Aug 20, 2026 Mécanisme de semis livré — PR #12036 (sous-issue technique #12035, close par la PR).
L'Epic était en deadlock côté flux nouveau : le design prévoit un scan hebdo qui ouvre une sous-issue par nouvel article, aucun workflow n'existait. Livré :
qc_research_monitor.py: source =research.posts.sitemap.xml(statique, 144 articles ; la page /research/ est JS-rendue via Algolia — sitemap = chemin canonique vérifié firsthand), diff contre étatdocs/qc/qc-research-seeded.json, semisgh issue createtemplate prérempli + label, cap 5/run.- Workflow hebdo (lundi 04:23 UTC) +
workflow_dispatch; commit d'état[skip ci]par le bot. - Bootstrap anti-spam : 144 IDs amorcés, 0 issue au premier run. Les articles pré-existants restent semables à la demande — le cron ne couvre que le flux NOUVEAU (~1/semaine).
Première sous-issue article déjà semée en réel : #12034 (momentum-in-capital-gain-stocks, le plus récent, lastmod 2026-08-17) — créée par le script pendant le développement (divulgation complète dans la PR), c'est la preuve end-to-end du mécanisme. Prête à piocher pour lecture analytique.
Les workers peuvent maintenant piocher via
gh issue list --label quantconnect-research --state open(2 articles/jour/lane max, cf cap de l'Epic).See #11698 (mécanisme livré ; doublon docs/archive reste ai-01).
- added a commit that references this issue
on Aug 21, 2026 29 remaining items
- added a commit that references this issue
on Sep 23, 2026 [CLAIMED-AMEND] lane myia-po-2024:CoursIA -- paths: docs/qc/qc-research-seeded.json, docs/qc/qc-strategies-status.md -- reprise du grain du 2026-09-06 (semis manuel + lectures analytiques 17902 et 21195-publié) ; elargissement des paths au registre seeded (le geste reel touche le JSON, le status.md ne bouge qu'a la distillation)
[DELIVERED] lane myia-po-2024:CoursIA — grain de semis manuel du 2026-09-06 (claim c. 5908630412 amendé) : lectures analytiques rendues pour 17902 (IGNORE, dossier #18575) et 21195 publié (IGNORE → DISTILLER, re-évaluation #12748 c.5908653361, grain fille #18576). Registre
qc-research-seeded.jsonmis à jour dans la PR #18577 (+3/−3, 2 entrées). Correction d'identification portée : 17902 n'est pas la version publiée de 21195 (article antérieur, mécanisme différent — la date du claim était le lastmod sitemap).[RELEASED]
- added a commit that references this issue
on Sep 30, 2026 [CLAIMED] lane myia-po-2023:CoursIA-2 — confronter le body de cet EPIC à main (tous ses enfants sont fermés, cases non cochées restantes ; mesure c.5985511451 sur #13906) puis fermer avec preuve par case, réécrire le body sur le reste réel, ou replier
Claim posé par le coordinateur (ai-01) au dispatch.
[DELIVERED] lane myia-po-2023:CoursIA-2 — grain de consolidation (claim c.5985517690, mesure source c.5985511451 sur #13906).
Body lu en entier, ses 17 commentaires lus, chaque case d'acceptance globale confrontée à
main. Sortie retenue : (b) réécrire l'état, ne pas fermer.Phase État mesuré Preuve 1 cartographie & outillage FAIT docs/qc-research-issue-template.mdetdocs/qc/qc-strategies-status.mdsurmain; 44 issues portent le label2 backlog FAIT (mécanisme différent de celui prévu) docs/qc/qc-research-seeded.json: 146 articles, chacun avec son numéro d'issue ; répartis sur 17 issues (13 fermées, 4 ouvertes)3 maintenance FAIT qc-research-monitor.yml: 4 succès hebdomadaires consécutifs (07, 14, 21, 28/09)4 bilan J+90 À VENIR échéance 2026-11-17 (EPIC créée le 2026-08-19) Le body porte désormais un en-tête
État mesuré au 2026-10-05(cases cochées pour les Phases 1-3, avec leur preuve ; Phase 4 datée), les deux en-têtes de livraisons mergées de 2026-10-04 et 2026-10-03 restant intacts en dessous.Pourquoi ne pas fermer. Les enfants natifs sont fermés, mais c'est un parapluie vivant : le label porte 11 issues ouvertes, le cron en a ouvert 7 en octobre 2026, et il continue d'en ouvrir chaque semaine. Fermer sur « enfants fermés » serait une fermeture sur label (G.9). Il n'est pas replié non plus : aucun parapluie voisin ne couvre la source externe (#1621 consolide l'existant, pas
quantconnect.com/research/).[CLAIMED] lane myia-po-2023:CoursIA — tapis central du 06/10 22:46Z, file profonde posee par le coordinateur au dispatch (rang 4/5) : [EPIC] Moissonnage quantconnect.com/research/ — distillation intelligente vs duplication. Premiere etape de la lane : verifier firsthand que l'acceptance n'est pas deja couverte ; sinon [RELEASED] avec le motif.
[DELIVERED] lane myia-po-2023:CoursIA — soldé du claim du 2026-10-06T22:47Z (rang 4/5 de la file coordinateur) : phase 2 semis ×2 livrée et poussée.
- [QC-research] Ichimoku Clouds In The Energy Sector (#9031) #19678 (issue de semis) — article 9031 « Ichimoku Clouds in the Energy Sector » (Gurrib 2020) : lecture analytique + verdict NOUVEAU rendus dans le body de l’issue ; acceptance du portage pré-inscrite (le portage lui-même est un grain ultérieur).
- [QC-research] CAPM Alpha Ranking Strategy On Dow 30 Companies (#15345) #19680 (issue de semis) — article 15345 « CAPM Alpha Ranking Strategy on Dow 30 Companies » : lecture analytique + verdict NOUVEAU ; défaut identifié (régression publiée inversée) documenté pour le porteur du portage.
- docs(qc,#11698): semis articles 9031 (Ichimoku, #19678) et 15345 (CAPM Alpha Ranking, #19680) -- tampon compteur #19682 — tampons compteur du registre
qc-research-seeded.json(état JSON resynchronisé sur les livraisons réelles, entrées 9031/15345).
Vérifié firsthand avant prise (pattern L1356) : les entrées
issue: nulldu registre lagguent massivement — préflight pargh search issuespar ID article, pas par le JSON seul.Poursuite du semis : prochaine étape en cours ce cycle (articles non servis par fraîcheur : 15937, 17900, 15370 — préflight fait, aucun signe de livraison existante).
- added a commit that references this issue
on Oct 7, 2026 - added a commit that references this issue
on Oct 8, 2026 - added a commit that references this issue
on Oct 9, 2026
[EPIC] Moissonnage quantconnect.com/research/ — distillation intelligente vs duplication
Pourquoi maintenant
Le matériel QC de CoursIA compte 130 projets (
projects/,partner-course-quant-trading/,research/) accumulés depuis 2025 sur 6+ contextes (ECE, EPITA-IS, ESGF, ML-Training-Pipeline). L'EPIC existant [#1621] « Consolidation QC/Trading » consolide l'existant — papier par papier, statuts, dé-doublonnage, dégénéricisation ESGF. Il est priority-high avec 9 sous-issues #1622-#1630 closes.Il manque le second volet : la source externe qui grossit perpétuellement le périmètre, à savoir
quantconnect.com/research/(~150 articles au 2026-08-19, rythme ~1/semaine). Sans gouvernance, le risque est triple :research/quand la même méthode est déjà portée par un projet du cours (EX. qc(#1621): reexecuter le quantbook Crypto-MultiCanal/research.ipynb via QC Cloud (15 cellules aux sorties strippees, 9 jamais executees) #10318Crypto-MultiCanal/research.ipynb15 cellules strippées, 9 jamais exécutées — symptôme typique).Mise a jour (po-2023, 2026-08-30, tri refutation Vibe A7) : le symptôme cité au point 1 est périmé. Re-mesuré sur
origin/main:projects/Crypto-MultiCanal/research.ipynb= 11 cellules code, toutes exécutées, 0 strippée (ré-exécution QC Cloud 2026-08-11 via #10318, dont les références figurent dans le notebook). Le chiffre « 15 strippées / 9 jamais exécutées » décrivait l'état pré-fix. Résiduel distinct : la copiepartner-course-quant-trading/examples/Crypto-MultiCanal/research.ipynb(24 cellules code) garde 6 cellules sans outputs (exec_count présent, outputs vidés) — artefact séparé, non visé par #10318.Lecture au long cours, pas sprint : l'Epic capitalise sur l'effort de cartographie déjà livré par #1621 (livraison 5 —
docs/qc/qc-strategies-status.md) pour que chaque nouvel article soit évalué contre l'existant plutôt qu'empilé. La philosophie suit les règles G-VAR et CLAUDE.md §H.1 : MONTER EN QUALITÉ > AJOUTER DU PÉRIMÈTRE.Périmètre
Inclus
https://www.quantconnect.com/research/(≈ 150 au 2026-08-19).docs/qc/qc-strategies-status.md(livré par [EPIC] Consolidation QC/Trading — projets, checkpoints, research notebooks, papertrading + dégénériciser ESGF #1621 phase 5) et dansMyIA.AI.Notebooks/QuantConnect/projects/.Python/research/, ajouts aux notebooks existants, enrichissement du cours viapartner-course-quant-trading/.Exclus
projects/<article>.lean-style). Anti-pattern fondateur.Trois principes non négociables
1. Consolider, ne pas dupliquer
C'est la réponse à la question « pourquoi pas un projet par article ? » : parce que nous avons déjà 130 projets, et que la valeur de la collection vient de sa densité (bouquet resserré, stratégies lisibles, cours TENABLE) plutôt que de son exhaustivité (zéro stratégie QC manquera).
2. Lire les sources primaires
Anti-pattern fondateur mesuré : un notebook cite un article de blog comme « référence » → reproduit sans primary source → l'article lie à un papier α → le notebook lie à l'article de blog → la chaîne d'attribution est rompue. L'Epic impose la chaîne complète.
3. Cap 2 articles/jour max, cadence à la consommation workers
Le pool d'articles est infini (≈ 1 article/semaine). Le pool de workers qui consomment cet Epic est borné (po-2023, po-2024, po-2025, po-2026, ai-01 selon disponibilité). L'Epic n'impose aucune cadence plancher — il attend que les workers piochent, et borne le débit pour préserver la qualité.
Partition dédiée —
QC-researchLabel
quantconnect-researchajouté aux sous-issues, à l'Epic, et à toute PR dérivée. Filtre principal :gh issue list --label quantconnect-research --state open.Sous-issues
Une sous-issue par article évalué. Format imposé (template commenté dans
docs/qc-research-issue-template.md, livré par cette Epic phase 1) :Claim & coordination
[CLAIMED] lane <machine:workspace> — <article>(cf lane-claim-protocol.md).[CLAIMED]auto-bloquant : un article déjà claimed par une autre lane n'est pas ré-claimable (L898 ★★★ collision guard).Cadrage technique
Mécanisme de moissonnage
quantconnect.com/research/une fois par semaine (cron dédiéqc-research-monitor.ymlou équivalent, déclaré dans une sous-issue technique séparée).gh issue create --label quantconnect-research --title "[QC-research] <article-title>"avec le template initial rempli (URL, auteur, date).gh issue list --label quantconnect-research --state open --limit 30, claim, lisent, postent verdict.Sources primaires — chaîne d'attribution
Pour chaque article qui mentionne un papier, un indicateur, une méthode, identifier la source primaire et l'attribuer proprement. La convention suit #11168 (vérification citations arXiv) : un notebook qui cite un article de blog sans primary source = CHANGES_REQUESTED au review.
Quantification de la valeur
L'Epic ne se mesure pas en nombre d'articles traités (un article IGNORE traité a la même valeur qu'un CONSOLIDATION traité). Il se mesure en gain de qualité/performance du bouquet :
Acceptance globale de l'Epic
docs/qc-research-issue-template.mdlivré ;docs/qc/qc-strategies-status.md(livré [EPIC] Consolidation QC/Trading — projets, checkpoints, research notebooks, papertrading + dégénériciser ESGF #1621) confirmé comme substrat de filtrage ; 1ère vague de 5-10 sous-issues pilote ouvertes par ai-01 sur articles récents. (mesure 2026-10-05 : fichiers presents surmain; 44 issues labellees)IGNORE. Cadence worker 1-2 articles/jour. (mesure 2026-10-05 : 146 articles au registreqc-research-seeded.json, sur 17 issues — voir en-tete)qc-research-monitor.ymllive ouvre une sous-issue à chaque nouvel article. Boucle auto-alimentée. (mesure 2026-10-05 : 4 succes hebdomadaires consecutifs, dernier 2026-09-28)Labels
EPICenhancementquantconnect-researchquantconnectLiens
docs/qc/qc-strategies-status.md.Crypto-MultiCanal/research.ipynb15 cellules strippées, 9 jamais exécutées, symptôme d'une succion d'article sans validation.# Solutionau profit d'une régression silencieuse.Hors scope (rappel)
.ptsur Git LFS ([EPIC] Consolidation QC/Trading — projets, checkpoints, research notebooks, papertrading + dégénériciser ESGF #1621 phase 5) reste séparé.Cadrage anti-dérive
IGNOREn'ouvre PAS de PR. C'est juste un verdict sur l'issue.close as IGNORE par défautaprès notification au worker.