Skip to content

[organe] accretion : lire profondeur de branche, base de lettre et max+1 sur les notebooks AJOUTES (Part of #16231) #19144

Description

@myia-ai-01

Part of #16231. Applique .claude/rules/notebook-accretion-numbering.md (§2, §3, §4), sign-off du 04/09 : aucune regle neuve, un organe pour une regle qui n'en a pas.

Ce qui se passe

La regle d'accretion se viole sur les noms ajoutes sans qu'aucun organe ne le voie. Mesures du 04/10 :

Le cliquet de #17784 ne lit que la grammaire ; check_slot_reservation.py lit les collisions, et son registre slot_reservations.json est vide.

Attendu

Sur les notebooks ajoutes ou renommes par la PR (diff contre la base, lu en --no-renames comme le garde de slot), quatre constats :

  1. DEPTH : la branche (serie + numero) porte, apres la PR, une lettre au-dela de f.
  2. NO-BASE : une lettre est posee sur un numero sans fichier de base dans la serie. Les trois defauts connus du §2 (GameTheory-03, Lean-16, Tweety-7) ne sont signales que si la PR leur ajoute une lettre.
  3. MAX-PLUS-ONE : un numero canonique neuf egal au max de la serie plus un, sans ligne Slot: dans le body qui dit s'il ouvre un palier ou quel parent a ete ecarte, et pourquoi.
  4. PENDING-TABLE : la PR ajoute un notebook ou edite le README d'une serie dont une table de renommage est publiee et non appliquee (source : entrees declared de slot_reservations.json, a remplir avec les tables de Remise d'aplomb de la nomenclature des notebooks — suffixe noyau, sans-numero, profondeur d'accretion #16231 pour Tweety et de Search(#5081): lecture de gradation de la serie — escalier, lettres greffees ICT, dette zero-pad et sous-series candidates #17802 pour Search).

Contraintes :

Controles

Pour clore

Le check-run advisory tourne sur les PRs notebook, les controles ci-dessus sont dans les tests, et la mesure de faux positifs est postee ici.

Activity

  1. myia-ai-01 commented on Oct 4, 2026

    @myia-ai-01
    CollaboratorAuthor

    [CLAIMED] lane myia-ai-01:CoursIA-2 — organe advisory d'accretion (extension de check_slot_reservation.py), pose au dispatch par ai-01 -- paths: scripts/notebook_tools/check_slot_reservation.py, scripts/notebook_tools/slot_reservations.json, scripts/notebook_tools/tests/**, scripts/ci/fast_lane_registry.py

  2. myia-ai-01 commented on Oct 4, 2026

    @myia-ai-01
    CollaboratorAuthor

    [CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/check_slot_reservation.py, scripts/notebook_tools/slot_reservations.json, scripts/tests/test_check_slot_reservation.py, scripts/ci/fast_lane_registry.py

    Correction du scope pose au dispatch : le dossier de tests de l'organe est scripts/tests/ (et non scripts/notebook_tools/tests/), qui est occupe par des PRs ouvertes d'autres lanes (#19162, #19150, #19038 -- toutes sur scripts/notebook_tools/tests/*). Le scope corrige ne croise aucune d'elles.

  3. added a commit that references this issue on Oct 4, 2026
  4. myia-ai-01 commented on Oct 4, 2026

    @myia-ai-01
    CollaboratorAuthor

    Mesure de faux positifs postee (organe livrable : PR #19166, advisory blocking=False).

    Protocole. Enumeration git-first des commits de main (--first-parent, 3000 commits) qui ajoutent un .ipynb (--diff-filter=A --no-renames), appariement au numero de PR du sujet, puis l'organe en --accretion-only --offline sur chacun, avec le corps de PR reel passe par --body-file. 3000 commits examines -> 311 ajoutent un notebook -> les 200 plus recents servis (6 commits sans numero de PR ignores et comptes).

    N
    PRs balayees 200
    PRs portant >= 1 constat 32 (16,0 %)
    constats 36
    Constat Constats Verdict apres lecture
    MAX_PLUS_ONE 28 faux positifs — 28/28 sont une extension lineaire d'une serie saine
    DEPTH 4 signal (§4)
    NO_BASE 4 signal (§2)
    PENDING_TABLE 0 mecanisme arme, table vide

    Le constat a retenir : MAX_PLUS_ONE porte 78 % des constats et 100 % de faux positifs sur ce corpus. Les 28 cas sont des series contigues qui gagnent leur numero suivant, verifie sur l'arbre et non sur le titre : ICT-01..ICT-47 sans trou (dont les ICT-40..ICT-47 cites dans l'issue), Actuariat-01..05, Complexity-01..06, TV-00..03, Geometry-01..04, Lean-34 apres Lean-33. Or §3 pose le verdict par defaut « aucune renum » et §1 dit que « lire les numeros nus dans l'ordre EST le parcours canonique » : ajouter le numero suivant est le geste sain. Le constat encode donc une exigence — la ligne Slot: — que la regle n'ecrit nulle part (grep -rn "Slot:" sur .claude/, docs/, scripts/ : 0 occurrence).

    Recommandation, a arbitrer : ne pas escalader MAX_PLUS_ONE en gate, et le resserrer avant toute montee en grade — par exemple ne le declencher que si la PR renumero te aussi dans la serie (la ou une declaration de slot a un sens), plutot que sur une extension lineaire. Les trois autres constats portent le signal utile : 8 constats justes sur 200 PRs (4 %), sans un seul faux positif mesure (GameTheory-03g/06i/06j/15g au-dela du plafond f ; Search-12a, Search-13a, Infer-08b, FT-00d sans base dans leur serie).

    Controles. Positifs : tete d'origine de #19112 (e54ace9ed) -> 2 DEPTH (Search-03g, Search-03h), tete repairee (58eac9cb52) -> 0 ; ab3e6e4fde (ICT-45) et 6a422f0214 (ICT-44) -> MAX_PLUS_ONE ; 520539d70f (GameTheory-06g) -> DEPTH ; 44f7bb55f7 (Search-12a), ad17a57836 (Search-13a) -> NO_BASE. Negatifs : 35695217e9 (jumeau -CSharp au slot de son jumeau Python) -> rien ; 34f95b718e (#18986, reclassement 42 -> 41b) -> rien.

  5. myia-ai-01 commented on Oct 4, 2026

    @myia-ai-01
    CollaboratorAuthor

    Arbitrage coordinateur sur la mesure de faux positifs (c.5984964886) : MAX-PLUS-ONE sort de l'organe.

    Le point 3 de cette issue est une erreur de ma spécification, pas un défaut de l'implémentation.

    • La règle ne l'écrit pas. notebook-accretion-numbering.md §3 fait du « numéro d'opportunité » un tell qui justifie une renumérotation, lu dans le contenu et l'historique au moment où l'on renumérote. Elle n'impose aucune justification au moment d'un ajout. La ligne Slot: que je demandais n'existe dans aucune règle (0 occurrence dans .claude/, docs/, scripts/). L'exiger serait une obligation nouvelle, donc un changement normatif soumis à sign-off, pas un organe pour une règle existante.
    • La mesure le confirme : 28 constats MAX-PLUS-ONE sur 200 PRs, 28 faux positifs. Ce sont des séries contiguës qui prennent leur numéro suivant, ce que le §1 décrit comme le parcours canonique.

    Décision : #19166 livre DEPTH, NO-BASE et PENDING-TABLE, en advisory (8 constats justes sur 200, aucun faux positif mesuré). MAX-PLUS-ONE est retiré du code et des tests, sans option dormante. Les contrôles positifs ICT-44 et ICT-45 du point 3 tombent avec lui. Le contrôle positif DEPTH (#19109) et les contrôles négatifs restent.

    Si un jour on veut détecter le numéro d'opportunité à l'ajout, ce sera une proposition de règle avec sign-off user, pas une extension de cet organe.

  6. added a commit that references this issue on Oct 4, 2026
  7. added a commit that references this issue on Oct 5, 2026
  8. added 2 commits that reference this issue on Oct 5, 2026
  9. added a commit that references this issue on Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions