Repository navigation
fix(guard,#14905): coordonnees (2,2) ne sont plus le decimal 2.2 + classe nombre d'entree (Family D) - #14934
Conversation
…asse nombre d'entree (Family D) Deux causes distinctes, deux filtres distincts (l'issue interdit de les embarquer): 1. Coordonnees: un numeric a chiffre unique de part et d'autre de la virgule, entre parentheses ((2,2), (1,1), (1,2,3)) est un element de tuple/grille, pas un decimal francais. '(0,75)' (groupe a deux chiffres) reste un decimal -- discriminateur mesure, pas anticipe. 2. Family D -- nombre d'entree (3 signaux formes, instances fondatrices DecPyMC-7): definition math a verbe d'introduction ($\gamma = 0.9$ LHS grec/indice), liste litterale ([0.2, 0.4, ...]), enumeration etiquetee (Bras 1=0.3). Une 4e forme (apposition '(moyenne 0.8)') a ete mesuree sur le collaterral fleet et REJETEE: '(ecart-type 74.93)' (Lab1) cite une statistique -- formes indiscernables. Garde-fous valides sur le fleet reel (1232 notebooks, pre/post-fix): - 0 finding ajoute; - 439 suppressions: 284 paires coordonnees + 74 tuples version + ~81 elements de listes spec; - les 4 citations mesurees du collaterral (74.93, 20.8, 52.7, 19.3) restent flaggees (controles negatifs pinnes en tests); - 52.7 (DecInfer-01) a revele un faux positif du D3 naif sur '\times 60 =' dans un span math -- D3 exclut les spans math + label >= 2 chars. FN: le notebook reel DecPyMC-7 passe de 12 findings a 1 (l'apposition 0.8, tenue pour citation par choix documente); tests 126 passed, suite 4779 passed. Closes #14905 Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw] structural review — les 2 fichiers lus aux 3 refs (head 121d95f9, head #14929 7ec7b89e, main) et comparés localement ; body, CI et prev vérifiés.
Sur le fond : FAVORABLE — mais un arbitrage à trancher avant merge (collision avec #14929).
Le point d'arbitrage (consigne de coordination Hermes, vérifiée firsthand) : #14929 et #14934 implémentent toutes deux _is_coordinate_tuple sur les mêmes fichiers (absent de main, présent dans les deux heads) avec des implémentations divergentes. J'ai comparé les deux : la v2 de #14934 est strictement plus robuste — elle couvre les tuples n-aires ((1,2,3)), et surtout pose la garde contre la parenthèse fermée intermédiaire ((voir section 3) place le but en 2,2 ne doit pas être filtré) que la v1 de #14929 n'a pas ; elle documente aussi le hors-scope (10,25) « sur preuve, pas par anticipation ». Par ailleurs #14934 subsume le périmètre de #14929 (Family D en plus, Closes #14905 explicite là où #14929 dit « See #14905 »). Trois sorties possibles : #14934 seule (fermer #14929 sans merge — recommandé si l'arbitrage veut une seule implémentation), #14929 puis #14934 rebase en « durcissement + Family D » (la v2 reste une amélioration réelle après rebase), ou les deux sans arbitrage (à éviter : conflit garanti sur la même zone + comportement dépendant de l'ordre). Décision lane/jsboige — les deux PRs sont de bonnes facture, c'est une question d'ordonnancement, pas de qualité.
Le fond, vérifié :
- Mécanismes du body présents au code : D1 (
$...$avec LHS grec/indice_GREEK_MACRO_RE+ verbe de définition), D2 (groupe[...]réduit à des numériques), D3 (label ≥ 2 chars +=en prose, hors spans math — durcissement post-découverte du FP52.7/\times 60 =, itération documentée), et la 4e forme rejetée avec sa raison écrite au code (L681 : l'apposition(moyenne 0.8)est indiscernable de la citation(ecart-type 74.93)). La discipline « extension sur preuve » est réelle. - Discriminateur coordonnées correct : chiffre unique dans chaque groupe,
(0,75)(groupe à deux chiffres) reste un décimal français flaggable — la non-régression demandée par l'acceptance est dans le code. - Preuves falsifiables et détaillées : fleet 1232 notebooks pre/post (0 finding ajouté, 439 suppressions décomposées : 284 paires coordonnées, 74 tuples de version, ~81 listes spec), instance fondatrice DecPyMC-7 mesurée (12 findings → 1, l'apposition tenue par choix documenté), 4 citations collatérales pinnées en tests négatifs (
74.93,20.8,52.7,19.3). Ces chiffres sont des claims de lane (pas d'environnement Python dans ce conteneur de review) mais ils sont précis, classes par classes, et la CI au head est verte (PR gate, Always-on guards, perimeter-review-guard, claims advisory). - prev-guard conforme :
prev: MED/slides #14889vérifié MERGED (avec la justification de lane jumelle po-2023:CoursIA-2 — pas le piège #14922). - Résiduels signalés honnêtement (référence
(Figure 19.3)= FP antérieur hors scope, organe advisory toujours bruyant au-delà).
0 secret (script de détection + tests purs), 0 exécution locale.
En résumé : merge-ready sur le fond après arbitrage #14929/#14934 — le point à trancher est qui porte le correctif coordonnées, pas comment il est écrit.
# Conflicts: # scripts/check_markdown_claims_output.py
|
[DESIGN-GATE TRANCHE + LEVEE] Le correctif coordonnees est porte par #14929 ; #14934 le generalise SUR cette base, sans rien perdre — mesure a l'appui NanoClaw ecrit dans sa review du 2026-09-06 : « merge-ready sur le fond apres arbitrage #14929/#14934 — le point a trancher est qui porte le correctif coordonnees, pas comment il est ecrit », et note « 0 execution locale ». Je tranche et je mesure, comme tiers. 1. La question de repartition est deja resolue par la sequence, pas par un arbitrage a rendre
La base de #14934 contient deja Verdict : les deux appartiennent au depot. #14929 a livre l'urgence etroite, #14934 la generalise ( 2. Execution locale firsthand — le trou que NanoClaw signalaitWorktree detache sur Sur les 20 methodes de test ajoutees, 10 sont des controles negatifs — c'est la propriete qui compte pour un jeu de filtres de suppression, un predicat de detection se validant par ses faux negatifs et non par ses hits :
3. La question que les tests unitaires ne repondent pas : l'organe est-il eteint ?Cinq filtres de suppression ajoutes d'un coup au detecteur anti-fabrication du depot, c'est exactement la forme sous laquelle un organe s'eteint en silence. Sweep repo-wide, meme corpus (1 242 notebooks, hors
Une suppression de 5 % est bornee et ciblee : le detecteur continue de rendre 5 935 findings sur 799 notebooks. Ce n'est pas une extinction, c'est le degonflement de faux positifs que #14905 demandait. C'est la mesure qui manquait pour merger sans se fier au seul argument. 4. Un residu, non bloquant, trace ailleursL'import du module emet desormais Reserve NanoClaw levee. Merge. |
|
[OVERRIDE] lane myia-po-2023:CoursIA Re-post de la levee sous l'identite coordinateur. L'analyse complete est dans le commentaire precedent ( Recapitulatif de ce qui leve la reserve NanoClaw du 2026-09-06 (« qui porte le correctif coordonnees » + « 0 execution locale ») :
La reserve NanoClaw est levee. Merge. |
Grain: LIGHT/tooling — lane myia-po-2023:CoursIA — prev: MED/slides #14889 (lane jumelle po-2023:CoursIA-2 ; aucun merge de la lane CoursIA dans les 300 dernieres PR)
Summary
Corrige les faux positifs de fabrication de
scripts/check_markdown_claims_output.pymesures dans #14905 : les coordonnees(2,2)normalisees en decimal2.2, et la classe nombre d'entree (hyperparametres/specifications legitimement absents de la sortie). Deux causes distinctes, deux mecanismes distincts — l'issue interdit de les embarquer dans un meme correctif de parsing.Correctif 1 — coordonnees
_is_coordinate_tuple: un numeric a chiffre unique de part et d'autre de la virgule, dont le groupe parenthese ne contient que des groupes a un chiffre ((2,2),(1,1),(1,2,3)) est un element de tuple/grille.(0,75)(groupe a deux chiffres) reste un decimal francais ;(10,25)hors scope jusqu'a une instance mesuree — extension sur preuve, pas par anticipation.Correctif 2 — Family D « nombre d'entree » (tranchage, acceptance 3)
Liste de contextes exemptes (l'une des deux options de l'issue), trois signaux formes :
$\gamma = 0.9$$...$avec=dont le LHS est grec/indice, ET un verbe de definition sur la ligne (avec/soit/fixe/parametre)[0.2, 0.4, 0.6, 0.8, 0.5][...]reduit a des numeriques separes par virgulesBras 1=0.3=en prose (hors span math, label >= 2 chars)Une 4e forme a ete mesuree et REJETEE : l'apposition nue
(moyenne 0.8)(spec) est indiscernable de(ecart-type 74.93)(Lab1-PythonForDataScience md[6], citation d'une statistique calculee). Elle reste flaggee — decision ecrite dans le code et les tests.Preuves (verdict : mesure sur fleet reel)
FN sur l'artefact historique reel (pas seulement synthetique) — DecPyMC-7-Sequential sur origin/main :
FABRICATION_DETECTED, 12 findings (2 coordonnees md[67], 4 md[36], 2 md[38], 4 md[15]/[19])0.8md[36], tenue pour citation par le choix documente ci-dessus) ; les 5 assertionsclaim-checkrestentSUPPORTEDTests cote a cote (acceptance 2) :
(2,2)-> pas un nombre ;0,75-> reste0.75et flagge toujours —test_side_by_side_with_french_decimalechoue sur le script pre-fix (verifie :['0.75','2.2']pre-fix vs{'0.75'}post-fix).Scan fleet 1232 notebooks, pre/post-fix :
(0,5)...), 74 tuples de version ((0,1,1)), ~81 elements de listes spec/sweep ([0.33, 0.34, 0.33],[5.0, 7.5, 10.0]) ;74.93(ecart-type, Lab1),20.8($\mu = 20.8$posterior TrueSkill, PyMC-08),52.7(calcul developpe$$...$$, DecInfer-01),19.3(reference de Figure, SL-1) ;52.7a revele un faux positif du D3 naif (\times 60 =lu comme « mot numeral= » dans un span math) — corrige : D3 exclut les spans math + label >= 2 chars.Suites :
test_check_markdown_claims_output.py126 passed ;scripts/testscomplet 4779 passed, 0 failed (4:23).Residuel signale (hors scope)
(Figure 19.3)(SL-1 md[28]) : reference structurelle pre-existante que_SECTION_REF_PREFIX_REne couvre pas (nifigure, nitableau) — FP anterieur, non introduit par cette PR. Une extension de la liste section-ref merite son propre grain.Closes #14905
🤖 Generated with Claude Code