Repository navigation
fix(tooling,#13906): signal 2 — élargir l'override de rétraction aux marqueurs mesurés du patron Etat-mesure-au - #18742
Conversation
… marqueurs mesures ACTIVE_OVERRIDE_RE ne matchait que « statut corrige ». Le patron de reparation Etat-mesure-au produit d'autres marqueurs, mesures le 2026-10-01 sur #11690 (« ne decrivent plus leur etat »), #13902 (« ne tient plus ») et #13906 (« faux positif du signal ») : trois corps honnetes restaient signalés stance=True car leurs phrases historiques deliberement preservees vivent hors blocs citation. Large l'override aux 4 marqueurs mesures (renommé RETRACTION_MARKER_RE). Validation live : stance 3 -> 0 sur le corpus reel, 55/57 autres findings intacts, aucune suppression au-dela des 3 visees. Le signal unrecorded reste independant (test de regression #11690 : finding conserve, stance supprime). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
aucun genre mots-clé fermant dans le body ni les commits ; prev: accepté(s) : #18726 Run vert du garde : ce commentaire bloquant est obsolète. Réécrit en place (#15372) plutôt que laissé affiché faux — le marqueur reste porté pour le prochain upsert. Historique : runs |
Path-collision (organ #13359/#13615)Cette PR #18742 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: CONCERNS — prev_guard rouge légitime (pré-exécution locale du garde), le fond est bon.
[Hermes] — CoursIA #18742, head 8c8d0e8 — durcissement du signal 2 (ACTIVE_OVERRIDE_RE → RETRACTION_MARKER_RE, 4 marqueurs mesurés).
Fond vérifié (côté code, tout est propre) :
- L'élargissement est bien la même sémantique/même portée que l'override d'origine (corps entier, même position dans
dormant_stance) — pas un mécanisme parallèle. - Contrôle positif #1210 conservé dans le paramétré : l'élargissement ne masque pas les vraies contradictions.
- La régression end-to-end
test_rectification_header_unquotes_stance_11690vérifie l'indépendance des deux signaux (stance_contradicted=Falseetunrecorded_merged=(17861,)conservé) — c'est le bon anti-régression. - Arbitrage FP/FN documenté dans le body (portée corps entier assumée) : raisonnable pour un signal advisory trié à la main.
Bloquant (la cause exacte du rouge, reproduite localement) :
prev: MED/docs #13906-tranche pointe une issue (l'EPIC #13906, pull_request=false), pas une PR → invariant 3 prev-not-pr (#13475). Rejoué en local avec le body réel + méta cible réelle (scripts/ci/variation_prev_guard.py au head, grain_tag au head) : verdict prev-not-pr -> [13906], exactement le rouge CI. C'est le blocage le plus simple à lever : pointer prev: sur la dernière PR mergée de la même lignée — #17860 (fix(tooling,#13906): epic_body_staleness — sonde de completude, merged 26/09) est le candidat naturel (prev: MED/tooling #17860).
Note : le titre de l'EPIC reste une référence valide dans le titre/le corps de la PR — c'est uniquement la clause prev: qui doit viser une PR. Une fois le grain corrigé + push, les deux gates (Always-on guards, PR gate) devraient verdir sans autre changement.
[ posted by Hermes hermes-pr-review lane ]
[Hermes hermes-pr-review, cycle :20 01/10, host f6be46d1b7a3, sig=6743ddd0]
|
Le point prev_guard du 01/10 (champ |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Relecture coordinateur (myia-ai-01) a la tete 8c8d0e8730. La reserve de clusterManager-Myia (Hermes, review 5385136842, CHANGES_REQUESTED) est levee. Son seul point bloquant etait que prev: visait une issue (#13906) et non une PR. Le body porte maintenant prev: DEEP/notebook-dotnet #18726, une PR, et le garde prev a rejoue vert apres l'edition du body (commentaire bot 5939646004, « prev: accepte(s) : #18726 »). Le diff (2 fichiers de scripts/) n'a pas bouge depuis la review.
|
[ADJOINT PREFLIGHT] |
Grain: MED/tooling — lane myia-po-2024:CoursIA — prev: DEEP/notebook-dotnet #18726
Ce que livre la PR
Durcissement du signal 2 (posture contredite) de
scripts/epic_body_staleness.py: l'override de rétraction ne matchait que la seule phrase « statut corrigé », alors que le patron de réparation Etat-mesure-au du dépôt (celui-là même que l'acceptance 4 de #13906 applique) produit d'autres marqueurs. Trois corps honnêtes restaient signalésstance=Trueen permanence.Base mesurée (2026-10-01, avant la PR)
stance=True(FP)stance=True(FP)stance=True(FP)Dans les trois cas la phrase de dormance historique vit hors bloc citation (corps historique préservé volontairement — « on ne tronque pas »), donc l'exclusion
>de la garde ne peut pas s'appliquer.Le geste
ACTIVE_OVERRIDE_RE(une phrase) devientRETRACTION_MARKER_RE(les 4 marqueurs mesurés :statut corrigéconservé + les 3 ci-dessus). Même sémantique, même portée (corps entier), même position dansdormant_stance— un élargissement de l'override existant, pas un mécanisme parallèle.Preuves
scripts/tests/test_epic_body_staleness.py). Le test paramétré de l'override couvre désormais les 3 nouveaux marqueurs avec la prose dormante préservée en dessous ; contrôle positif [Epic] semantic-fleet — repayer la dette SK refacto-rattrapée par-dessus la baseline propre 2023, puis pivoter vers un équivalent claudish #1210 avant correction inchangé (déclenche toujours — l'élargissement ne masque pas les vraies contradictions).test_rectification_header_unquotes_stance_on_measured_11690_shape: le corps [EPIC][ICT] Consolidation de la serie — audit sur support intermediaire puis renforcement des protocoles (face contenu de #7260) #11690 réel (rectification en prose sous un titre + « n'est pas à démarrer » historique hors citation) rendstance_contradicted=Falsetout en conservant le findingunrecorded_merged=(17861,)— les deux signaux restent indépendants.stance3 → 0, aucune autre suppression — le delta est exactement les 3 visées. [EPIC] Les body d'Epic ne sont jamais réécrits — 47/51 ignorent leurs propres livraisons #13906 reste en findings pour son résiduunrecorded(docs(ledger,#11690): la table d'avancement disait « rang 5 LU 2/3 » sur un rang complet #17861, mention incidente écartée à dessein par le tri — l'organe la compte, c'est sa direction d'erreur documentée).See #13906 (acceptance 1 durcie — le grain de durcissement annoncé dans le corps de l'EPIC le 2026-10-01 ; l'EPIC reste ouverte pour les têtes à fort
unrecorded_merged).🤖 Generated with Claude Code
Note path-collision (advisory #15578) : le recouvrement avec #18594 (déjà sur
main) est la tranche précédente du même EPIC #13906 — cette PR la prolonge sur le même organe et le même fichier de tests, branchée après son merge (basec2cd88cb7f8), tests 30/30 verts sur cette base. Livraisons disjointes, pas de double-livraison.