Skip to content

Extraire les primitives numpy-only de ICT-36 (F-Lens factored geometry) dans le paquet ict/ #15943

Description

@jsboige

Extraire les primitives numpy-only de ICT-36-FLens-FactoredGeometry.ipynb dans le paquet ict/, et faire importer le notebook.

Origine — une clause de remarque propriétaire que mon arbitrage n'avait pas traitée

Sur la PR #15514, la remarque du propriétaire (2026-09-10T22:31:34Z) portait trois clauses. Mon arbitrage de coordinateur (2026-09-12T01:06Z) n'a répondu qu'à la première (le numéro de slot ICT-36), a écrit « Rien ne t'est demandé », et a déclaré la réserve CONCERNS levée. C'était faux : la clause que le propriétaire avait lui-même marquée « surtout » n'était pas traitée.

« Et puis ça mérite surtout un module Python qui viendra outiller d'autres composants.
D'ailleurs cet outil aurait pu aller mûrir hors de la série ICT comme d'autres avant lui. »

Cette issue est ouverte avant le merge de #15514, comme report délibéré (mécanisme 3 de B.0), et non comme rattrapage après coup.

Ce que la remarque vise, mesuré

Le notebook porte 7 définitions top-level, toutes numpy-only, sans dépendance au notebook qui les héberge :

Cellule Primitive
5 weighted_pca
5 nc_at
5 basis_overlap
5 max_principal_angle
7 make_factor_bases
7 synthesize_activations
14 null_overlap_distribution

Ce sont des primitives de géométrie factorisée réutilisables, pas du code de démonstration.

Le lieu existe déjà — la remarque ne demande pas d'inventer une convention

Le paquet MyIA.AI.Notebooks/IIT/ICT-Series/ict/ est vivant sur main, avec ses modules et sa suite de tests appariée sous ict/tests/, gardée par le floor de collection de .github/workflows/ict-tests.yml. La forme demandée est donc la forme courante de la série : un module + son module de test, le notebook important au lieu de redéfinir.

C'est aussi la réponse à la troisième clause (« mûrir hors de la série ICT ») : dans ce dépôt, « hors de la série » a un locus concret — le notebook est la leçon, le paquet est l'outil. Les deux clauses convergent sur le même geste.

Périmètre

  • Créer le module sous ICT-Series/ict/ portant les 7 primitives ci-dessus (nom à trancher par la lane qui prend le grain ; il doit dire la géométrie factorisée, pas le numéro de notebook).
  • Créer le module de test apparié sous ICT-Series/ict/tests/, dans la forme des modules voisins.
  • Faire importer le notebook depuis le module au lieu de redéfinir : c'est le critère qui distingue une extraction réelle d'une copie. Re-exécution complète et sorties committées (C.2) — le notebook doit produire les mêmes résultats.
  • Remonter matrix.test-floor de la suite ict/tests/ dans la même PR que les tests ajoutés, comme le workflow le prescrit lui-même.

Acceptance

  1. Le module et son module de test existent sous ict/ et ict/tests/.
  2. grep des 7 noms dans le notebook : ils apparaissent en import/appel, plus en def.
  3. Notebook re-exécuté, sorties committées, résultats inchangés par rapport à feat(ict,#15478): F-Lens factored-geometry -- primitives numpy-only + 3 regimes synthetiques #15514.
  4. Floor de ict/tests/ remonté dans la même PR, valeur mesurée et non recopiée.

Ce que cette issue n'est pas

Ce n'est pas une réserve sur la qualité de #15514 : le notebook est livré, exécuté, et sa substance n'est pas contestée. C'est le report écrit et nommé d'une demande propriétaire que j'avais déclarée traitée alors qu'elle ne l'était pas.

See #15514 · See #15478

Activity

  1. jsboige commented on Sep 13, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA -- extraire les 7 primitives numpy-only d'ICT-36 (weighted_pca, nc_at, basis_overlap, max_principal_angle, make_factor_bases, synthesize_activations, null_overlap_distribution) vers un nouveau module ict/ + module de test apparie + notebook importeur re-execute (C.2, resultats inchanges) + floor ict/tests/ remonte mesure dans la meme PR -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ict/, MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry.ipynb, .github/workflows/ict-tests.yml

    (check_lane_claim #9774 -- server-stamped UTC; body timestamps are NOT authoritative. Release with [RELEASED] when your PR lands.)

  2. jsboige commented on Sep 13, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2023:CoursIA

    Claim libéré : le grain est séquencé sur le merge de #15514, qui est encore OPEN à la mesure (2026-09-13 ~11:30Z) — ICT-36-FLens-FactoredGeometry.ipynb n'existe pas sur origin/main (seul ICT-37 y est). L'extraction ne peut pas partir d'un notebook absent de main, et empiler sur la branche d'une autre lane porterait les pièges des PRs empilées (base non-défaut = aucun organe always-on, Closes non enregistré).

    Re-claimable dès le merge de #15514. Le preflight est déjà fait pour le successeur : aucune PR ouverte ne touche ICT-36 ni ne crée de module factored (vérifié sur les 5 PRs ouvertes touchant ict/ : #15915, #15878, #15814, #15813, #15799).

  3. jsboige commented on Sep 13, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA -- [DELIVERED] PR #16013 (OPEN, stacked sur #15514 en attente merge) : module ict/factor_geometry.py (7 primitives a l'identique) + notebook importeur re-execute (outputs d'analyse byte-identiques a #15514) + 13 tests (suite ict/tests 738 passed + 3 skips = 741) + floor 728->741 mesure dans la meme PR -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ict/, MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry.ipynb, .github/workflows/ict-tests.yml

    (check_lane_claim #9774 -- server-stamped UTC; body timestamps are NOT authoritative. Release with [RELEASED] when your PR lands.)

  4. added a commit that references this issue on Sep 13, 2026
  5. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 14, 2026
  6. github-actions commented on Sep 14, 2026

    @github-actions
    Contributor

    Livrable jamais arrive sur main — PR #16013 mergee hors main (#12723)

    La PR #16013 (feat(ict,#15943): extraction primitives F-Lens vers ict/factor_geometry + notebo) porte Closes #15943 vers cette issue, mais elle a ete mergee dans feature/15478-flens-factored-geometry et son contenu n'a jamais atteint main :

    • MyIA.AI.Notebooks/IIT/ICT-Series/ict/factor_geometry.py
    • MyIA.AI.Notebooks/IIT/ICT-Series/ict/tests/test_factor_geometry.py

    Ne PAS conclure « livre » pour cette partie tant que ces chemins sont absents de main (details et reparation sur la PR #16013).

  7. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 15, 2026
  8. jsboige commented on Sep 15, 2026

    @jsboige
    OwnerAuthor

    Grain: MED/refactor — lane myia-po-2026:CoursIA — prev: MED/genai #16282

    [CLAIMED] lane myia-po-2026:CoursIA -- paths: MyIA.AI.Notebooks/IIT/ICT-Series/ict/factor_geometry.py MyIA.AI.Notebooks/IIT/ICT-Series/ict/tests/test_factor_geometry.py MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry.ipynb .github/workflows/ict-tests.yml

    Nature du grain : récupération d'un livrable orphelin, vérifiée firsthand avant claim.

    L'organe ORPHANED-DELIVERY (commentaire du 2026-09-14T12:53Z) est exact, je l'ai vérifié contre origin/main frais 2699ebdaad :

    Mesure Constat
    ict/factor_geometry.py sur origin/main absent (git ls-tree -r origin/main | grep factor_geometry → 0)
    ict/tests/test_factor_geometry.py sur origin/main absent
    ICT-36-FLens-FactoredGeometry.ipynb sur origin/main présent (#15514 est bien arrivée sur main)
    PR #16013 MERGED le 2026-09-13T21:41:35Z dans feature/15478-flens-factored-geometry — pas dans main
    Branche orpheline feature/15478-flens-factored-geometry toujours sur origin (d3932687a), porte ict/factor_geometry.py
    PR ouverte sur #15943 aucune (gh pr list --state all --search 15943 → que #16013 MERGED et #15514 MERGED)
    Claims vivants aucun — les claims des lanes po-2023/po-2024 sont [RELEASED], le [CLAIMED] de myia-po-2026:CoursIA-2 a été retiré par son auteur ([INFO] candidate-delivered du 2026-09-14T06:38, qui visait #15264 et non ce grain)

    Périmètre : les 7 primitives numpy-only d'ICT-36 (weighted_pca, nc_at, basis_overlap, max_principal_angle, make_factor_bases, synthesize_activations, null_overlap_distribution) vers un module sous IIT/ICT-Series/ict/ + module de test apparié + notebook importeur (le critère qui distingue une extraction d'une copie) re-exécuté avec sorties réelles (C.2) + floor de collecte de ict-tests.yml mesuré sur main courant avant d'être posé.

    Ce que je ne fais pas par confiance : la branche orpheline porte déjà un candidat (d3932687a, 199 + 195 lignes). Je ne le rejoue pas à l'aveugle — je le confronte aux définitions de origin/main (le notebook a pu bouger depuis la branche) et je re-exécute le notebook moi-même plutôt que de reprendre des outputs produits ailleurs.

  9. added a commit that references this issue on Sep 29, 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