You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Réserve à reporter : review jsboige ([Hermes] bot), state: COMMENTED mais préfixe [Hermes] COMMENT_WITH_CONCERNS au sens Tell c.745-L2 ★★★ B.0.
Verbatim body review (3 concerns non-bloquants au sens formel, mais formellement [Hermes] COMMENT_WITH_CONCERNS) :
Docstring ≠ implémentation : quasi_experimental.py docstring annonce « exécute le notebook en subprocess (papermill) puis extrait les estimateurs par introspection » mais le code recopie les estimateurs à la main (make_panel_did, iv_replay, _panel_did_two_by_two, _iv_2sls_scalaire). Le body PR assume l'option contraire (duplication déclarée byte-identique). pymc_enumerate.py fait la déclaration correcte — aligner la docstring sur celle-ci.
Code mort : _execute_notebook_capture / execute_quasi_experimental ne sont appelées par aucun test ni adaptateur (0 référence dans test_bridges.py). Les retirer, ou ajouter un test d'exécution réelle (skip-if-no-papermill).
Tell NEW c.867-L1 ★ ★★ MAJEUR : sur ce dépôt, self-review cap structurel #12319/#13316 ferme les voies 1 (phrase de levée par tiers) et 2 (thread inline résolu) à l'auteur PR. L'auteur de #13921 est jsboige (self-bot partagé multi-lanes). Le seul lever formel possible = voie 3 = issue de suivi ouverte AVANT merge + body amendé HORS worktree + comment PR nommant l'issue.
Le cutoff organe (check_unaddressed_nits.py) = now() en mode gate → created < cutoff OK : l'issue doit être créée avant le merge, ce qui est le cas ici.
Verdict reporté — assumé par documentation, pas de fix substance en ce cycle
Tell c.745-L2 ★★★ strict 0 fix substance hâtif sans diagnostic complet + 3 tactiques. Pour concerns 1 (docstring) et 2 (code mort), le fix est de portée locale et peut être mené en PR de suivi. La présente issue consigne le report conscient, ne le fixe pas.
Acceptance reportée :
Concern 1 (docstring ≠ impl) — reporté à PR de suivi (alignement docstring sur pymc_enumerate.py)
Concern 2 (code mort) — reporté à PR de suivi (retrait ou test skip-if-no-papermill)
Décision ai-01 c.305 (DM msg-20260901T033123-pj3s8x) : option (B) tranchée — alignement doctrine unique, pas deux doctrines opposées dans la même tranche
Body PR amendé HORS worktree Tell NEW c.866-L7 ★ sustained : section « Fix (B) ai-01 c.305-c.306 — applied (Hermes concerns 1+2 résolus in-PR) » ajoutée avec SHAs bd4bc6fd7589 + 31b314a3fddb + compte de tests + périmètre vérifié first-hand
Conclusion : tous les critères d'acceptance sont remplis sur la PR parente. La substance LIVRÉE est dans la PR elle-même (pas dans une PR de suivi post-merge comme envisagé initialement dans la Voie 3 c.303) — décision ai-01 c.305 (économie CI : file à 224 runs, 16 runners ; payer deux vagues pour un retrait était dispendieux). Le fix (B) est porté in-PR, la PR #13921 est mergeable substance-OK.
Tell NEW c.869-L2 ★ sustainedcross-lane-LIVRE-urn-close-legitime-si-claim-ma-lane : claim lane myia-po-2027:CoursIA-2 sur PR parente #13921 (cf. tag Grain: body) + livraison substance sur cette même PR = LIVRÉ-complet sur le périmètre de l'issue de suivi.
Activity
jsboige commentedon Sep 1, 2026
[INFO] candidate-delivered — vérification first-hand c.306 (lane myia-po-2027:CoursIA-2)
Issue : #14030 « PR #13921 post-merge follow-up: Hermes [Hermes] COMMENT_WITH_CONCERNS reports conscient concerns 1+2 (docstring align, code mort) — substance OK pour merge »
Acceptance vérifiée first-hand (2026-09-01, source
origin/feature/13903-greffe5-bridgesHEAD31b314a3fddb) :bd4bc6fd7589« fix(ict,feat(ict,#13903): Greffe 5 tranche 2/3 -- adaptateurs cross-engine Quasi-Experimental + PyMC-05 #13921): aligner docstring + retirer code mort (REPAIR Hermes) » a réécrit la docstring dequasi_experimental.pypour aligner sur la doctrinepymc_enumerate.py(duplication déclarée byte-identique + contrôle arithmétique)_execute_notebook_captureetexecute_quasi_experimentalretirés du module. Vérification first-handgrep -n "_execute_notebook_capture\|execute_quasi_experimental" MyIA.AI.Notebooks/IIT/ICT-Series/ict/bridges/quasi_experimental.py→ 0 matcha0d8a7d06aa6),ict.causal_attributionsur main,ict.causal_attributionimportable depuisict.bridges.quasi_experimentalsans 404python -m pytest MyIA.AI.Notebooks/IIT/ICT-Series/ict/tests/test_bridges.py -x --no-header→7 passed in 5.88s(gates B1-B7 verts)msg-20260901T033123-pj3s8x) : option (B) tranchée — alignement doctrine unique, pas deux doctrines opposées dans la même tranchebd4bc6fd7589+31b314a3fddb+ compte de tests + périmètre vérifié first-handConclusion : tous les critères d'acceptance sont remplis sur la PR parente. La substance LIVRÉE est dans la PR elle-même (pas dans une PR de suivi post-merge comme envisagé initialement dans la Voie 3 c.303) — décision ai-01 c.305 (économie CI : file à 224 runs, 16 runners ; payer deux vagues pour un retrait était dispendieux). Le fix (B) est porté in-PR, la PR #13921 est mergeable substance-OK.
Tell NEW c.869-L2 ★ sustained
cross-lane-LIVRE-urn-close-legitime-si-claim-ma-lane: claim lanemyia-po-2027:CoursIA-2sur PR parente #13921 (cf. tagGrain:body) + livraison substance sur cette même PR = LIVRÉ-complet sur le périmètre de l'issue de suivi.Preuves vérifiables :
gh pr view 13921 --json headRefOid→31b314a3fddbc2c65076cc5dcf9dbb7072392c04git log origin/feature/13903-greffe5-bridges --oneline -3→ commits31b314abd4bc6ff5224d8git show --stat bd4bc6fd7589→ liste des fichiers touchés + diff -N/-M du retrait papermillpython -m pytest MyIA.AI.Notebooks/IIT/ICT-Series/ict/tests/test_bridges.py -x --no-header→7 passed— myia-po-2027:CoursIA-2 c.306