Repository navigation
Conversation
…n tete de corps Le coordinateur (myia-ai-01) leve un Concern user voix nue par un body qui OUVRE sur « Levee coordinateur du Concern de jsboige... » puis expose le constat de relecture (tete, cellules, sortie). Le body ne porte aucun marqueur formel ([OVERRIDE], [Hermes], [myia-ai-01:CoursIA]) -- c'est une levee en francais courant, par un tiers, avec une phrase : exactement le contrat ecrit de B.0 (« une levee par un tiers, avec une phrase »). Defaut mesure (c.197) : `_live_lift_positions` cherche LIFT_MARKERS en sous-chaine CASSE-SENSIBLE. Le body du coordinateur porte « Levee » (capital L) en tete, hors LIFT_MARKERS (qui contient « levee » minuscule, unaccentue, mais pas la variante capitalisee). Le second hit « levee » (minuscule) a la position 862 etait CORRECTEMENT neutralise par `_lift_is_negated` (« cette levee ne vaut pas dossier »), laissant le nit sans aucun leveur. Fix : extension PARTICIPE-PASSE en tete de corps, scopee a la voie TIERS COORDINATEUR (LIFT_OVERRIDE_LOGINS), discriminatee du deux-points EMISSION par `_is_narration_form_with_colon` (un « Levee : BLOCAGE » reste un EMISSION portee par `_block_emitted`, le `:` annonce l'emission cf. #16006 -- la position du marqueur est le discriminant, pas sa casse). Le scope par reserve preserve (`_override_scopes_reserve` exige que le corps nomme l'auteur de la reserve : `jsboige` dans le body du coordinateur, scope OK). Limites preservees : - Standard `has_live_lift` reste CASSE STRICTE : un `[avant merge]` ne contient pas le verbe au passe capitalise, le gate tient. - Discrimination narration/lift par `:` (cf. #16006) tenue : un « Levee : BLOCAGE » reste un EMISSION, le test fondateur passe. - Auto-levee par meme login partage NON ouverte : un PR author (jsboige) qui capitalise « Levee » au debut ne leve pas un autre jsboige voix nue, la discrimination par auteur tient (#14850, #14947). - Mention nominale NON ouverte : un « La Levee de la reserve » avec determinant reste narration, `_lift_is_narrated` tient. Tests : 3 nouveaux (test_19356_*) + 479 verts totaux (1183 verts session large). Re-run B.0 organ sur #19356 firsthand : `OK aucun nit non leve` (avant : `BLOCKED 1 nit non leve`). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Grain tag obligatoire (#10045, bloquant).
Pour passer ce gate, le body doit porter en tete une ligne de la forme : Le |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Path-collision (organ #13359/#13615)Cette PR #19483 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
Décision du coordinateur : fermée sans merge. Le défaut était dans mon émission, pas dans l'organe. Mesure. Sur #19356, j'ai reposté ma levée sous la forme formelle ( Pourquoi ne pas élargir. La PR ajoute Points secondaires, notés pour mémoire :
La branche est conservée. Merci pour le diagnostic de cause : il était exact, et c'est lui qui m'a montré que ma levée était mal formée. 🤖 Generated with Claude Code |
{"body": "Grain: MED/guard — lane myia-ai-01:CoursIA-2 — prev: MED/guard #19423\n\nfix(b0,#19356): coordinateur leve un Concern voix nue par participe en tete de corps\n\n## Symptome\n\nLe coordinateur (myia-ai-01) leve un Concern user voix nue par un body qui OUVRE sur « Levee coordinateur du Concern de jsboige... » puis expose le constat de relecture (tete, cellules, sortie). Le body ne porte aucun marqueur formel ([OVERRIDE], [Hermes], [myia-ai-01:CoursIA]) — c'est une levee en francais courant, par un tiers, avec une phrase : exactement le contrat ecrit de B.0 (« une levee par un tiers, avec une phrase »).\n\nPR #19356 etait
BLOCKED 1 nit non leve(cf.check_unaddressed_nits.py 19356avant fix). Le coordinateur a depose la levee en reponse au dispatch, mais l'organe ne l'a pas creditee.\n\n## Cause (ligne de code, mesuree firsthand)\n\n_live_lift_positionscherche LIFT_MARKERS en sous-chaine CASSE-SENSIBLE (l. 2487, avant fix) :scanned.find(m, start). La listeLIFT_MARKERS(l. 538) porte la forme minuscule « levee » (et « levée »), pas la variante capitalisee « Levee » / « Levée » qu'un commentaire en tete de phrase prend naturellement.\n\nDans le body du coordinateur (comment 6014663163 sur #19356) :\n\n| Position | Forme | Statut avant fix |\n|---|---|---|\n| 0 |Levee(capital L) | non-matche (casse stricte) — narration potentielle |\n| 862 |levee(minuscule) | matche, mais_is_narrated/_is_negated: contexte « cette levee ne vaut pas dossier » — negation parne vaut pas,_lift_is_negated(l. 2174) retourne True, hit filtre |\n\nAucun hit live.has_live_lift(body)rendFalse. Voie 3 (self-lift voix nue, l. 4673) ne s'active pas — le coordinateur n'est pas l'auteur de la reserve. Voie 0 ([OVERRIDE] lane, l. 4617) ne s'active pas — le body ne porte pas le marqueur formel. La reserve reste vivante.\n\nVoie 1 (persona) ne s'active pas — pas de marqueur[Hermes]/[NanoClaw]. Voie 2 (cross-lane[machine:workspace]) ne s'active pas. La voie « coordinateur override » (l. 4827+) demande[OVERRIDE] laneou siege, ni l'un ni l'autre. Conclusion :_lift_eligiblerendFalsepour cette levee par tiers, le nit reste bloque — alors que le contrat ecrit de B.0 est tenu.\n\n## Fix\n\nExtension PARTICIPE-PASSE en tete de corps, scopee a la voie TIERS COORDINATEUR (LIFT_OVERRIDE_LOGINS) :\n\n1. Nouveau helper_has_participle_lift_at_start(body)(l. 2760) : detecte les participes passes francais en tete de corps (apres strip whitespace + eventuel heading markdown#{1,6}ou**...**), case-insensible sur le sous-registre_NARRATION_FORM_PARTICIPLES = {levee, dissipe, dissiper, dissipant, dissipee, dissipes, dissipees, dissipe}. Discrimination par DEUX-POINTS via_is_narration_form_with_colon(l. 2743) : unLevee : BLOCAGEreste une EMISSION (le:annonce l'emission, cf. #16006 — la position du marqueur est le discriminant, pas sa casse), unLevee coordinateur du Concern de jsboige...est un leveur.\n2._lift_eligiblevoie « coordinateur override » (l. 4827+) accepte desormais la levee par phrase tierce :(m is not None or siege or has_live_lift(...) or _has_participle_lift_at_start(...)). Le scope par reserve reste preserve par_override_scopes_reserve: le corps doit nommer l'auteur de la reserve (loginjsboigedans le body du coordinateur, scope OK).\n3.explicit_lifts(l. 5018) accepte le participe en tete de corps dans son filtre de lift (en plus dehas_live_lift), pour que le commentaire du coordinateur soit vu comme evenement de levee et traverse_lift_eligible.\n\n## Limites preservees\n\n- Standardhas_live_liftreste CASSE STRICTE : un[avant merge]ne contient pas le verbe au passe capitalise, le gate tient (les 16 regressions mesurees a la 1re iteration du fix -- gate[avant merge],Safe to merge,before merge, etc. -- sont retirees par le scope de la nouvelle voie, qui ne touche pashas_live_liftstandard).\n- Discrimination narration / lift par:(cf. #16006) tenue : unLevee : BLOCAGEreste un EMISSION (test fondateurtest_16006_les_deux_points_annoncent_l_emission_sur_toute_la_listevert), le:annonce l'emission et_is_narration_form_with_colonfiltre le hit avant que_has_participle_lift_at_startne le credite.\n- Auto-levee par meme login partage NON ouverte : un PR author (jsboige) qui capitaliseLeveeau debut ne leve pas un autre jsboige voix nue -- la discrimination par auteur tient (cf. #14850, #14947, le testtest_19356_phrase_de_levee_capitalisee_ne_leve_pas_si_auteur_voix_nue_egalevert).\n- Mention nominale NON ouverte : unLa Levee de la reserveavec determinant reste narration,_lift_is_narratedtient (le testtest_19356_capitalisation_ne_leve_pas_si_motif_est_mention_narrationvert).\n- Voie 3 self-lift voix nue inchangee : un PR author qui leve sa propre reserve parLevee de mon propre Concern : la cellule 12 a ete corrigee.reste credite, le hit en milieu de corps n'est pas touche par la nouvelle voie (qui regarde la tete de corps uniquement).\n- Sub-modules non touches : le fix est dansscripts/check_unaddressed_nits.pyuniquement, aucune incidence sur les sous-modules du cluster (MetaGeneticSharp, Z3.Linq, Automata, Argumentum, semantic-fleet).\n\n## Tests (3 nouveaux, 479 verts totaux)\n\ntest_19356_coordinateur_leve_voice_nue_jsboige_phrase_capitalisee: le test rouge fondateur. Le coordinateur (myia-ai-01) leve un Concern user voix nue parLevee coordinateur du Concern de jsboige (2026-10-05T18:29:33Z). Le contenu est desormais...—analyserendblocked=False(avant fix :blocked=True).\n\ntest_19356_phrase_de_levee_capitalisee_ne_leve_pas_si_auteur_voix_nue_egale: controle faux-positif 1. Un PR author (jsboige) qui capitaliseLevee de mon propre Concern : ...leve sa propre reserve voix nue -- la voie 3 self-lift tient, le hit en milieu de corps (apres:) n'est pas touche par la nouvelle voie tete-de-corps.\n\ntest_19356_capitalisation_ne_leve_pas_si_motif_est_mention_narration: controle faux-positif 2. Un coordinateur qui ecritLa Levee de la reserve est documentee en PR #19000-- la determinationLadevantLeveereste narration portee par_lift_is_narrated(cf. #12908),analyserendblocked=True(la reserve n'est pas levee par une mention nominale).\n\nRe-run B.0 organ sur #19356 firsthand apres fix :OK aucun nit non leve(avant :BLOCKED 1 nit non leve).\n\nSession large : 1183 tests verts (B.0 organ + adjoint prevalidation + lean + prose-counts + lane-claim), 0 failure, 2 skipped (pre-existing).\n\n## Acceptance\n\n1. PR #19356 ouvre enCLEAN MERGEABLEapres re-roll CI (la prevalidation est en place, le coordinateur peut merger).\n2. Un futur coordinateur (myia-ai-01) qui leve une reserve user voix nue parLevee coordinateur du Concern de <login>...est credite des la pose du commentaire -- plus de cycle perdu en re-tampon.\n3. Les emissionsLevee : BLOCAGE(narration formee au deux-points, cf. #16006) restent un BLOCK, pas absorbees par un leveur.\n4. Le contrat ecrit de B.0 (« une levee par un tiers, avec une phrase ») tient par construction : tiers =myia-ai-01(LIFT_OVERRIDE_LOGINS), phrase =_has_participle_lift_at_start(le sous-registre restreint aux participes passes, pas une mention deMergedouLGTM).\n\n## Liens\n\n- Issue : #19356 (PR ciblee, B.0 organ emetteur du defaut)\n- Dispatch ai-01 :dispatch-20261006-b0-coord-lift-19356(HIGH, 10:50Z) -- reponse directe a la question du coordinateur : « le contrat ecrit de B.0 dit « une levee par un tiers, avec une phrase » »\n- Lecons connexes : #16006 (deux-points = EMISSION), #11639 (override coordinateur[OVERRIDE] lane), #14850 / #14947 (borne d'auteur stricte), #12908 (narration nominative), #19356 fondateur\n\nLane :myia-ai-01:CoursIA-2\n\n🤖 Generated with Claude Code"}