Repository navigation
[organe] PRs fermees sans merge dont la branche porte encore du contenu -- angle mort de toutes les surfaces (cas fondateur #20374, Dynamics/) #22166
Description
Constat (mesuré le 23/10)
Le mainteneur a signalé que GameTheory/Dynamics/ ne contient qu'un carnet, alors que la série mère continue de grossir. La cause n'est pas un choix de conception.
#20374, qui descendait les dix carnets du palier 06 dans Dynamics/ selon une note acceptée le 11/10, a été fermée sans merge le 12/10 à 10:20:14Z :
- la lane avait poussé une tête identique à sa base (
reset --hardvers la tête de la PR de base) ; - GitHub a fermé la PR, qui n'avait plus de diff ;
- le vrai commit est arrivé une seconde plus tard, mais une PR fermée ne se rouvre pas d'elle-même.
Pendant onze jours, rien ne l'a vu :
- la lane a lu un « cache GitHub obsolète » ;
- un dossier
READYa été écrit avecdiff-files: 0; - l'audit du 18/10 a constaté la fermeture, et la PR suivante a adapté la navigation à l'état cassé.
Trace : #20374 c.6361704939. Reprise : #20316 c.6361705505.
Pourquoi aucun organe ne l'a vu. merge_ready, le tapis, les dossiers de prévalidation et B.0 ne lisent que des PRs ouvertes. Une PR fermée sans merge sort de toutes les surfaces au moment même où son contenu devient orphelin. La branche, elle, survit (feature/20316-dynamics-t3 existe encore, en 0d6b2d08e8).
Ce que l'organe doit faire
Un lecteur scripts/ci/list_closed_unmerged_prs.py qui énumère les PRs fermées sans merge sur une fenêtre (14 jours par défaut) et classe chacune selon les cas suivants :
| Verdict | Condition |
|---|---|
ACCIDENTAL_EMPTY_CLOSE |
événement closed dans les 60 s d'un head_ref_force_pushed du même acteur, et branche distante encore présente avec des commits dont le contenu n'est pas sur main |
ORPHANED_CONTENT |
fermée sans merge, aucun commentaire de fermeture qui nomme une raison ou un successeur, branche présente avec du contenu absent de main |
SUPERSEDED |
un commentaire ou le body nomme une PR successeure mergée ou ouverte |
INTEGRATED |
contenu de la branche présent sur main (identité de contenu, robuste au squash : les quatre ancres de git-workflow.md §Orphan-branch scan) |
UNKNOWN |
API illisible ; ce n'est jamais un vert |
Contrôles exigés dans la PR :
- positif : refactor(gametheory,#20316): T3 -- descente des 10 carnets 06 dans Dynamics/ (escalier complet, P1/P2) #20374 doit sortir en
ACCIDENTAL_EMPTY_CLOSE; - négatif : une PR fermée volontairement avec un commentaire de raison doit sortir en
SUPERSEDEDouINTEGRATED.
Hors périmètre
Rouvrir ou recréer quoi que ce soit : l'organe lit et nomme, la décision reste au coordinateur. Il ne doit pas non plus devenir un gate CI bloquant.
Le câblage (sortie consommée par le cycle /coordinate, ou commentaire marker-guardé) fait partie de l'acceptance. Un organe que rien n'appelle n'est pas livré.
Critères d'acceptance
- Le lecteur existe, avec ses tests (dicts injectés et un contrôle sur le cas réel refactor(gametheory,#20316): T3 -- descente des 10 carnets 06 dans Dynamics/ (escalier complet, P1/P2) #20374).
- Il est appelé par au moins un endroit : skill
coordinatePhase 2, ou workflow planifié qui poste un commentaire marker-guardé. - Le premier run réel est rapporté dans la PR : compte par verdict sur 14 jours, et liste des
ACCIDENTAL_EMPTY_CLOSEet desORPHANED_CONTENT.
PRs fermees sans merge -- 14 j (depuis 2026-10-12T12:12:46.085790+00:00)
| Verdict | Compte |
|---|---|
ACCIDENTAL_EMPTY_CLOSE |
0 |
ORPHANED_CONTENT |
34 |
SUPERSEDED |
51 |
INTEGRATED |
9 |
UNKNOWN |
11 |
ORPHANED_CONTENT (34)
- Feat(genai,#15604): devoilement progressif sequence du code (critere 5a) #22561
feat/livecoding-code-reveal-15604(basemain, fermee 2026-10-25T18:31:34Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Feat(genai,#15604): devoilement progressif sequence du code (critere 5a) #22561 - Fix(notebooks,#13410): PT-12 -- une seule lecture pour la figure lambda #22494
fix/13410-pt12-lecture-unique(basemain, fermee 2026-10-25T12:04:18Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(notebooks,#13410): PT-12 -- une seule lecture pour la figure lambda #22494 - Fix(tests,#19341): le test Sona exige le byline « Sona Team », pas un nom de personne #22463
fix/19341-sona-test-udeneev(basemain, fermee 2026-10-25T08:27:55Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(tests,#19341): le test Sona exige le byline « Sona Team », pas un nom de personne #22463 - Fix(harness): restaurer les marqueurs DWELL/prevalidation epingles par les tests (post-#21808) #22397
fix/harness-dwell-rule-pins(basemain, fermee 2026-10-24T19:00:41Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(harness): restaurer les marqueurs DWELL/prevalidation epingles par les tests (post-#21808) #22397 - Add(analyse,#22206): Test 6 -- l'inegalite triangulaire de Ruzsa mesuree dans ANALYSE-04 #22384
feature/22206-triangle-witness(basemain, fermee 2026-10-24T17:45:18Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Add(analyse,#22206): Test 6 -- l'inegalite triangulaire de Ruzsa mesuree dans ANALYSE-04 #22384 - Fix(ci,#22339): test_prevalidation_order_rule -- la mesure fondatrice se lit dans le detail #22340
fix/22339-prevalidation-rule-measure(basemain, fermee 2026-10-24T18:41:32Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(ci,#22339): test_prevalidation_order_rule -- la mesure fondatrice se lit dans le detail #22340 - Fix(twin-registry,#22334): 5 collisions d'ordinal levees, 6 attestations vides retirees #22338
fix/22334-twin-registry(basemain, fermee 2026-10-24T18:41:29Z) -- 6 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(twin-registry,#22334): 5 collisions d'ordinal levees, 6 attestations vides retirees #22338 - Fix(ci,#22279): l'épingle DWELL suit le récit dans le doc de détail + câblage CI #22282
fix/22279-dwell-test-recit(basemain, fermee 2026-10-24T18:41:35Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(ci,#22279): l'épingle DWELL suit le récit dans le doc de détail + câblage CI #22282 - Fix(notebook,#17040): consolider deux paires de lectures consecutives (Texte/17) #22189
fix/17040-consolidate-split-readings-texte(basemain, fermee 2026-10-23T20:44:17Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(notebook,#17040): consolider deux paires de lectures consecutives (Texte/17) #22189 - Chore(submodule,#18767): bump Argumentum gitlink c5fb8237 -> 5cb4a759 (master HEAD, 3 commits #458) #22184
chore/18767-bump-argumentum(basemain, fermee 2026-10-23T12:17:39Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Chore(submodule,#18767): bump Argumentum gitlink c5fb8237 -> 5cb4a759 (master HEAD, 3 commits #458) #22184 - Fix(notebook,#21192): dominance stricte et faible nommees, IESDS ne predit plus une issue non demontree #22146
fix/21192-dominance-iesds(basemain, fermee 2026-10-23T10:03:54Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(notebook,#21192): dominance stricte et faible nommees, IESDS ne predit plus une issue non demontree #22146 - Fix(notebooks,#13410): fusionner 8 paires de lectures scindees (GenAI, 3 carnets) #22124
fix/13410-split-readings-genai(basemain, fermee 2026-10-24T03:06:57Z) -- 3 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(notebooks,#13410): fusionner 8 paires de lectures scindees (GenAI, 3 carnets) #22124 - Add(gametheory,#22045): 02d annexe epistemique -- connaissance commune et Aumann par enumeration #22101
feature/22045-gt02d-epistemique(basemain, fermee 2026-10-23T09:48:18Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Add(gametheory,#22045): 02d annexe epistemique -- connaissance commune et Aumann par enumeration #22101 - Fix(ci,#20174): le job Quarto ne laisse plus le work dir du slot persistant sale #22076
fix/20174-quarto-worktree-restore(basemain, fermee 2026-10-26T10:43:37Z) -- 5 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(ci,#20174): le job Quarto ne laisse plus le work dir du slot persistant sale #22076 - Fix(audio,#22056): collision d'identifiant 04-17 dans GenAI/Audio -- MIR classique renumerote en 04-18 #22058
fix/22056-audio-04-17-collision(basemain, fermee 2026-10-25T20:02:07Z) -- 5 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(audio,#22056): collision d'identifiant 04-17 dans GenAI/Audio -- MIR classique renumerote en 04-18 #22058 - fix(iit,#22040): ICT-48 Exercice 2 — periodicite du fond, contre controle negatif de densite egale #22051
feature/22040-ict48-exercice2(basemain, fermee 2026-10-24T10:06:51Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- fix(iit,#22040): ICT-48 Exercice 2 — periodicite du fond, contre controle negatif de densite egale #22051 - Add(search,#21752): carnet App-34 — 15-puzzle, heuristiques admissibles mesurées #22049
feature/app34-15puzzle-astar(basemain, fermee 2026-10-22T17:42:18Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Add(search,#21752): carnet App-34 — 15-puzzle, heuristiques admissibles mesurées #22049 - Fix(ci,#20185): le trou d'exclusion par cycle-watermark est nomme dans le docstring #21760
fix/20185-cycle-watermark-doc(basemain, fermee 2026-10-24T00:07:44Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(ci,#20185): le trou d'exclusion par cycle-watermark est nomme dans le docstring #21760 - Add(gametheory,#21736): carnet 14b Jeux répétés -- tournoi d'Axelrod et fragilité de la coopération #21738
feature/gt-14b-repeated-games-axelrod(basemain, fermee 2026-10-21T08:34:12Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Add(gametheory,#21736): carnet 14b Jeux répétés -- tournoi d'Axelrod et fragilité de la coopération #21738 - fix(genai,#21690): 3D-05 selection GPU portable — plus d'indice durci #21700
fix/21690-3d05-gpu-portability(basemain, fermee 2026-10-21T00:30:51Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- fix(genai,#21690): 3D-05 selection GPU portable — plus d'indice durci #21700 - feat(ci,#20185): classe 2 user-remark -- la forme tranche sous login partage #21561
feature/20185-user-remark-class(basemain, fermee 2026-10-21T05:58:38Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- feat(ci,#20185): classe 2 user-remark -- la forme tranche sous login partage #21561 - fix(notebook,#21533): onset-W affiche ses 4 graines depuis les artefacts #21555
fix/21533-ict25-seeds(basefeature/5105-ict25-restruct, fermee 2026-10-22T07:37:26Z) -- 3 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- fix(notebook,#21533): onset-W affiche ses 4 graines depuis les artefacts #21555 - docs(readme,#18911): GenAI/Audio -- cibles .ipynb -> .html (relais grain stranded 08/10) #21528
fix/18911-readme-genai-audio(basemain, fermee 2026-10-20T06:57:43Z) -- 6 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- docs(readme,#18911): GenAI/Audio -- cibles .ipynb -> .html (relais grain stranded 08/10) #21528 - docs(readme,#18911): FallacyDetection — cibles .ipynb -> .html (relais grain stranded 08/10) #21402
wt/mistral-rdlink-genai-fallacydetection(basemain, fermee 2026-10-19T09:38:45Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- docs(readme,#18911): FallacyDetection — cibles .ipynb -> .html (relais grain stranded 08/10) #21402 - Fix(#21058): Tweety archive DOI Baroni/Giacomin/Guida + exemption _archive/ (validateur + hook) #21339
fix/21058-tweety-archive-doi(basemain, fermee 2026-10-24T08:24:00Z) -- 4 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(#21058): Tweety archive DOI Baroni/Giacomin/Guida + exemption _archive/ (validateur + hook) #21339 - Chore(docs,#9535): purge du script one-shot add_p3_bandeaux.py (item 1, résiduel racine) #21293
chore/9535-item1-purge-add-p3(basemain, fermee 2026-10-20T11:26:02Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Chore(docs,#9535): purge du script one-shot add_p3_bandeaux.py (item 1, résiduel racine) #21293 - feat(genai,#21275): moteurs vectoriels mesurés — FAISS et pgvector à côté de Qdrant (05c) #21287
feature/21275-moteurs-vectoriels(basemain, fermee 2026-10-22T07:29:59Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- feat(genai,#21275): moteurs vectoriels mesurés — FAISS et pgvector à côté de Qdrant (05c) #21287 - Add(gametheory,#21221): GameTheory-19b-Bilevel-PPO-Python — co-design bilevel morphologie-controle par Stackelberg PPO (organe 1/2, notebook) #21234
feature/21221-gametheory-19b-bilevel-ppo(basemain, fermee 2026-10-18T07:01:43Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Add(gametheory,#21221): GameTheory-19b-Bilevel-PPO-Python — co-design bilevel morphologie-controle par Stackelberg PPO (organe 1/2, notebook) #21234 - Fix(planners,#21189): generate_plan_tot implementation reelle ToT (defaut 1/3) #21230
fix/21189-planners10-tot(basemain, fermee 2026-10-20T05:20:43Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(planners,#21189): generate_plan_tot implementation reelle ToT (defaut 1/3) #21230 - Fix(search,#21193): Search-03 Greedy complet + IDA* iterations→max_frontier_size #21224
fix/21193-search03-defects(basemain, fermee 2026-10-18T06:51:55Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Fix(search,#21193): Search-03 Greedy complet + IDA* iterations→max_frontier_size #21224 - fix(genai,#20740): re-ancrer les lectures de 01-3-Basic-Image-Operations sur ses sorties #20942
fix/20740-genai-01-3-lectures(basemain, fermee 2026-10-17T11:36:51Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- fix(genai,#20740): re-ancrer les lectures de 01-3-Basic-Image-Operations sur ses sorties #20942 - fix(iit,#20886): corrige bug BUT.issubset(F) + Y = taux_but (Greffe5 R1/R2/R3) #20896
feature/20886-ict-greffe5-but(basemain, fermee 2026-10-21T00:52:47Z) -- 1 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- fix(iit,#20886): corrige bug BUT.issubset(F) + Y = taux_but (Greffe5 R1/R2/R3) #20896 - Add(lean,#18706): pli 5d Expansion — le pas inductif de l'optimalité (subst, costW_subst) #20643
feature/compression-lean-expansion(basemain, fermee 2026-10-25T11:59:50Z) -- 2 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Add(lean,#18706): pli 5d Expansion — le pas inductif de l'optimalité (subst, costW_subst) #20643 - Feat(harness,#19578): agents de slides reecrits pour Slidev -- organes natifs render_deck + call_agent #20182
feature/c362-marp-to-slidev(basemain, fermee 2026-10-18T15:55:08Z) -- 3 fichier(s) absent(s)/divergent(s) de main, aucune raison de fermeture nommee -- Feat(harness,#19578): agents de slides reecrits pour Slidev -- organes natifs render_deck + call_agent #20182
UNKNOWN = 11 : API illisible ou contenu non verifiable. Ce n'est pas un vert, c'est une mesure manquante.
Activity
myia-ai-01 commentedon Oct 23, 2026
[CLAIMED] lane myia-ai-01:CoursIA-2 — lecteur list_closed_unmerged_prs.py + tests + cablage, pose au dispatch par ai-01 -- paths: scripts/ci/list_closed_unmerged_prs.py, scripts/ci/tests/test_list_closed_unmerged_prs.py, .github/workflows/closed-unmerged-sweep.yml
jsboige commentedon Oct 23, 2026
[DELIVERED] lane myia-ai-01:CoursIA-2 -- PR #22172 : organe scripts/ci/list_closed_unmerged_prs.py (5 verdicts), 30 tests dont controle positif sur le cas reel #20374, cablage daily advisory closed-unmerged-pr-scan.yml, premier run reel rapporte dans le body de la PR (1 ACCIDENTAL, 12 ORPHANED, 23 SUPERSEDED, 1 INTEGRATED, 0 UNKNOWN).
Fix(ci,#22166): arret de pagination sur updated_at, pas d'acteur = pa…
jsboige commentedon Oct 23, 2026
[ADJOINT VERIFIED] Triage des douze PR fermées sans merge — lane myia-po-2025:CoursIA-2
Lecture des corps, commentaires, reviews et diffs, puis comparaison du contenu avec main ou le successeur nommé. Cette passe ne rouvre aucune PR et ne décide aucun abandon.
RECUPERERdésigne un apport absent, pas une recommandation de cherry-pick intégral.efa49fea14)2b269ec8ec) possède déjà les définitions correctes de dominance faible/stricte et la garde IESDS 1×1. Les témoins discriminantsjeu_egal/jeu_faible, ainsi que le témoin IESDS Matching Pennies de #22146, ne sont pas repris. La review de report sur #21212 est une proposition, pas une intégration.c25c7ccee7)115d2e7abc, ouverte au relevé) reste canonique. Le banc B6=203 et ses mesures 1 760 900 / 53 962 / 41 209 ne sont pas repris ; la lane prévoit une reprise après son merge (c6363880745).28ea8288db)9e5bab115c, ouverte au relevé) reste canonique. Le banc 15-puzzle de 61 865 états de distance ≤14 et les apports CAP/mesures déposés en c6347277537 ne sont pas intégrés.1f2fb6561b)77f30f5d8a). Pas sur main au relevé ; ne pas recréer le carnet séparé 14b rejeté.5a33eba15a)fd757abd11, ouverte au relevé) reprend le fix GPU portable. La réexécution dans les deux modes et sa prose chiffrée ne sont pas reprises ; elles sont seulement proposées en c6304958379. Ne pas recopier des timings sans réexécution.b3a7f21284)50ea4f8bb3). Les mécanismes REMARK_WINDOW/REMARK_ASK ont été refusés explicitement (c6309188263). Le trou cycle-watermark est repris dans #21760 (111a2c12, ouverte au relevé).e4265517f2)173a3d02af) n'est pas complète : celluled5a899c2, l'agrégation par graine, l'exclusion du fichier superseded et la dispersion ont disparu. Le helper du successeur charge toujoursict25_onset-W_120steps.jsonindépendamment du paramètre seeds ; ce fichier contient uniquement[42], un run. Les autres JSON sont présents, mais non affichés par cette cellule. Commit ciblé récupérable :1fabafe7199. Ne pas réintroduire la base empilée de 88 fichiers.3fb7cb2e81).ipynb→.htmlsont abandonnées conformément à l'arbitrage #18911 c6076029168. Ne pas les récupérer : les liens source restent GitHub, Quarto réécrit au rendu.65021ca9a6)add_p3_bandeaux.pyque #21151, mergée7444631ba6. Effet des bandeaux préservé dans les slides ; rien à récupérer.58a78b3bd9)cd0300c091, mergée) remplace justement le carnet Qdrant in-process par un vrai serveur HNSW. Ne pas récupérer le carnet ancien. DansGenAI/RAG-et-Memoire-Semantique/README.md, restent absents les entrées d'arbre 05b/05c, la FAQ renvoyant vers 05c, son entrée de pied de page/index et sa mention dans le parcours. Comparaison parent confirmée contre maine6f99c6b4; restaurer seulement ces liens, sans écraser les ajouts récents 08/10.88efc3235a)6f57459b49)int(any(...))et Y=|F_B|. La proportion encore présente dans la tête fermée était le défaut, pas un apport perdu.Bilan : 6 RECUPERER (dont 3 reprises étroites/partielles), 3 INTEGRE (dont 1 seulement en branche ouverte), 3 DELIBERE. Aucune fermeture accidentelle démontrée dans ce lot ; plusieurs fermetures volontaires ont toutefois laissé du contenu absent du successeur.
Priorités proposées au coordinateur : (1) affichage multi-graines #21555 → #20560 ; (2) témoins #22146 → #21212 ; (3) navigation README #21287 ; (4) reprises bornées #22101/#22049/#21700 avec les lanes porteuses. La décision de rouvrir/recréer reste au coordinateur.
Portée : triage source-à-source, pas validation d'exécution ni QA visuel. Les quatre dernières PR ont été vérifiées par un sous-agent tiers, base fraîche
e6f99c6b44e380570d78f06fb763b723b82d819b; recoupements parent sur les cas #22146, #21555, #21528 et le README #21287. Les mesures historiques des autres carnets sont rapportées, pas recalculées. Aucun contenu suivi n'a été modifié.Add(ci,#22166): organe list_closed_unmerged_prs -- PRs fermees sans m…
jsboige commentedon Oct 25, 2026
[CLOSURE PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
issue: 22166
verdict: KEEP
acceptance:
residue: waiver: livrerie complete mais issue conservee ouverte, cible de rapport du scan quotidien closed-unmerged-pr-scan.yml (--post-to 22166), la fermeture casserait le rapport live
open-prs: 0
comments-reviewed: 3
[/CLOSURE PREFLIGHT]