Skip to content

[audit README Part4] Inversion Eukaryote/Islands — 5 occurrences dans le README MGS #18879

Description

@jsboige

{
"title": "[audit README Part4] Inversion Eukaryote/Islands — 5 occurrences dans le README MGS",
"body": "## Constat\n\nDans MyIA.AI.Notebooks/Search/Part4-Metaheuristics/README.md, la primitive Eukaryote (MGS-3) est présentée à tort comme une partition de la population, alors qu'il s'agit d'une partition des gènes (chromosomes composites). Inversement, Islands (MGS-4) est la partition de la population en sous-populations semi-isolées, mais la lecture en diagonale laisse penser le contraire.\n\n## Vérification first-hand contre les notebooks sources\n\nJ'ai lu les premières cellules de MGS-03-Eukaryote.ipynb et MGS-04-Islands.ipynb pour trancher :\n\nMGS-3 Eukaryote (cell #0 markdown, lignes 1-3) :\n> "le concept d'eukaryote : des individus multi-chromosomes dont chaque partie est evoluee independamment"\n> "EukaryoteChromosome pour decouper un genome en sous-chromosomes (caryotype)"\n> "configurer des sous-populations isolees avec des strategies differentes"\n\nLecture par strate :\n- Niveau 1 — gènes : un individu = un EukaryoteChromosome qui découpe un génome en sous-chromosomes (analogie du caryotype). C'est la partition des gènes.\n- Niveau 2 — population : ensuite, on peut attacher une métaheuristique différente par sous-chromosome, ce qui revient à faire évoluer des sous-populations parallèles (chaque sous-chromosome a sa population). Mais c'est un effet de bord de la partition des gènes, pas la définition.\n\nMGS-4 Islands (cell #0 markdown, lignes 1-3) :\n> "le modele insulaire : structuration spatiale d'une population en sous-populations semi-isolees"\n> "IslandPopulation et IslandMetaHeuristic pour partitionner une population en iles"\n\nLecture : Islands = partitionner la population en îles qui échangent par migration. Aucun découpage de gène n'est impliqué.\n\n## 5 occurrences dans le README\n\nL'inverse est asserté à 5 endroits dans le README :\n\n| Ligne | Contexte | Texte actuel (extrait) | Problème |\n|---|---|---|---|\n| L20 | Pourquoi cette partie — motivations | "sous-populations spécialisées (Eukaryote), migration entre îles (Islands)" | Eukaryote n'est pas une sous-population, c'est une partition de génome. |\n| L41 | Objectifs d'apprentissage n°3 | "Structurer une population en sous-populations spécialisées (Eukaryote) ou en îles migratoires (Islands)" | L'attribution à la « population » est inversée. |\n| L52 | Table des notebooks, ligne MGS-3 | "Sous-populations spécialisées | chromosomes composites, partitionnement" | "Sous-populations" comme concept-clé est faux (MGS-3 parle de gènes) ; le bon concept-clé est "Multi-chromosomes" ou "Partition des gènes". |\n| L90 | Bloc mermaid W2 (arc pédagogique) | "MGS-3 — Eukaryote (sous-populations)" | Mauvais niveau. |\n| L318 | Ce que vous avez appris, §2 | "le modèle eucaryote (sous-populations spécialisées portées par des chromosomes composites) et le modèle insulaire (îles migratoires)" | Cas mixte : le sens y est correct (les chromosomes composites portent les sous-populations) mais la formulation prêtera à confusion. |\n\n## Périmètre\n\nInvestigation, pas un PR de fix tout fait :\n\n1. Confirmer la sémantique côté code source (sous-module MetaGeneticSharp/src/MetaGeneticSharp.Domain/) : EukaryoteChromosome, EukaryoteMetaHeuristic, IslandPopulation, IslandMetaHeuristic. Lecture des fichiers de classe pour vérifier qui fait quoi. La lecture des notebooks est cohérente avec la thèse du user, mais le code est l'arbitre.\n2. Rechercher d'autres contre-sens dans le même README et dans MGS-vs-mealpy/README.md (sous-fichier localisé) — j'ai scanné mécaniquement les lignes qui croisent Eukaryote/Island avec population/chromosome/gène, 5 occurrences trouvées toutes du même type ; un audit manuel des autres primitives (Match, Container, Scoped, RotatedFitness, ShiftedFitness, etc.) est à faire.\n3. Décider la formulation de remplacement :\n - Option A — conserver "sous-populations" mais en l'attribuant à Islands : "sous-populations semi-isolées (Islands), gènes multi-chromosomes (Eukaryote)".\n - Option B — employer des termes neutres et justes : "caryotype multi-chromosomes (Eukaryote), sous-populations migratoires (Islands)".\n4. PR de correction : un seul PR README-only, scope borné, après décision de la formulation.\n\n## Pourquoi c'est un audit README (pas un fix automatique)\n\n- L'inversion est didactique : un lecteur qui suit le fil MGS-3 → MGS-4 dans l'ordre des notebooks ne sera pas perdu, parce que les notebooks eux-mêmes sont corrects. Mais un lecteur qui survole le README (ou qui le parcourt en isolation, par exemple pour décider si la Partie 4 l'intéresse) absorbe l'inversion et l'emporte avec lui. C'est l'archétype du défaut qu'un audit README détecte mais qu'aucun test CI ne rougit.\n- Refaire le PR sans investigation préalable risquerait d'imposer une terminologie que la sémantique code ne supporte pas. Mieux vaut ground-truth d'abord.\n\n## Acceptance\n\n- [ ] Lecture source MetaGeneticSharp/src/MetaGeneticSharp.Domain/Chromosomes/EukaryoteChromosome.cs et .../Populations/IslandPopulation.cs (ou équivalent) — verdict sur la sémantique (qui fait quoi).\n- [ ] Audit MGS-vs-mealpy/README.md pour le même type d'inversion (la campagne compare des métaheuristiques et peut réutiliser la terminologie Eukaryote/Island).\n- [ ] Décision sur la formulation de remplacement (option A ou B ci-dessus, ou une troisième).\n- [ ] PR de correction README, scope borné, 5 lignes modifiées.\n\n## Notes\n\n- Conformité CLAUDE.md §E : la documentation primaire est en français, OK.\n- Conformité readme-french-first.md : le README est déjà en français, donc pas de bascule *.en.md à prévoir.\n- Conformité C.2 : aucun notebook à modifier, donc pas de re-exécution Papermill requise.\n- Conformité §B audit cross-source-distillation : la sortie d'audit va dans cette issue, pas dans un *_AUDIT.md commité. Cf règle HARD 1 : pas de rapport d'audit dans l'arbre.\n\nRef tag : Grain: LIGHT/audit-readme — investigation + petit PR README de quelques lignes. ~1-2 cycles worker.",
"labels": ["audit", "documentation", "readme"]
}

Activity

  1. added
    documentationImprovements or additions to documentation
    auditAutomated quality audit findings
    on Oct 2, 2026
  2. jsboige commented on Oct 3, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA-2 -- paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/README.md -- 2026-10-03T02:15Z

    Grain: MED/docs -- lane myia-po-2024:CoursIA-2 -- prev: MED/notebook-python #18914

    Audit borné : corriger 5 occurrences Eukaryote/Islands dans README MGS (L20, L41, L52, + 2 a confirmer en lecture). Substantiel : Eukaryote = partition des genes, Islands = partition de la population -- l'inverse est actuellement asserte.

    Refs #18879
    Tell c.1502 strict fondateur

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

    @myia-ai-01
    Collaborator

    [CLAIMED] lane myia-po-2023:CoursIA-2 -- file de dispatch coordinateur (1/4) : corriger les 5 occurrences Eukaryote/Islands du README apres relecture des cellules #0 de MGS-03/MGS-04 -- paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/README.md

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

    @myia-ai-01
    Collaborator

    [CLAIMED-AMEND] lane myia-po-2023:CoursIA-2 -- reste de l'acceptance apres #18918 (les 5 occurrences du README sont deja corrigees) : (1) verdict de semantique en lisant EukaryoteChromosome.cs et IslandPopulation.cs dans le sous-module MetaGeneticSharp ; (2) audit de MGS-vs-mealpy/README.md pour la meme inversion -- paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy/README.md

    Correction du coordinateur : la file du 2026-10-05 demandait de corriger les 5 occurrences, alors que #18918 (fusionnee le 2026-10-03) les a deja corrigees. Les deux cases d'acceptance restantes (lecture du code source, audit du README mealpy) ne sont pas couvertes par #18918, qui s'appuyait sur les cellules #0 des carnets. C'est elles qui forment le grain.

  7. jsboige commented on Oct 5, 2026

    @jsboige
    OwnerAuthor

    [INFO] c.1039 verdict d acceptance post-#18918

    Grain: MED/docs -- lane myia-po-2023:CoursIA-2 -- prev: DEEP/notebook-python #18957

    Acceptance ai-01 (cf [CLAIMED-AMEND] 2026-10-05T01:36:58Z) :
    (1) verdict de semantique en lisant EukaryoteChromosome.cs et IslandPopulation.cs
    (2) audit MGS-vs-mealpy/README.md pour la meme inversion

    == (1) Verdict semantique first-hand ==

    Sub-module MetaGeneticSharp chemin : MyIA.AI.Notebooks/Search/MetaGeneticSharp/src/MetaGeneticSharp.Domain/

    EukaryoteChromosome.cs (Chromosomes/) :

    • L8-11 : "A child chromosome sliced from a parent individual. It keeps track of the parent chromosome and gene offset, so a complete individual can be built back from a karyotype of EukaryoteChromosomes."
    • L24-30 : constructeur prend un parent + (startGeneIdx, length) et copie le segment de genes du parent.
    • L56-67 GetKaryotype : "Extracts the child chromosomes from a parent individual, given the lengths of the child chromosomes." -> partition du genome en sous-chromosomes.
    • L73-79 GetSubPopulations : effet de bord -- une fois la partition des gènes faite, on regroupe par position pour obtenir une population par sous-chromosome.

    Verdict : Eukaryote = partition du genome (caryotype). La sub-population par sous-chromosome est un effet de bord d optimisation par sous-metaheuristique, pas la definition.

    IslandPopulation.cs (Populations/) :

    • L7-11 : "A sub-population holding a contiguous slice of the parent population s individuals (full chromosomes, unlike Eukaryote slices), evolved independently by IslandMetaHeuristic with periodic migrations."
    • L12 : "class IslandPopulation : SubPopulation" -- explicitement une sous-population.
    • L22 MigrationRates : echange entre iles.

    Verdict : IslandPopulation = partition de la population en iles migratoires. Aucun decoupage de gene.

    Confirmation first-hand (G.1) de la these de po-2024 (PR #18918) : Eukaryote = genes, Islands = population.

    == (2) Audit MGS-vs-mealpy/README.md ==

    Recherche : 0 match.
    Le README MGS-vs-mealpy porte sur la campagne comparative de performance (coût/qualité, 9 paires, protocole apparié) -- il n y a aucune occurrence des primitives Eukaryote/Islands dans le texte. Audit vide : aucune correction requise.

    == Bilan acceptance ==

    Sous-tâche Statut
    (1) Verdict EukaryoteChromosome.cs + IslandPopulation.cs FAIT -- confirme Eukaryote=genes, Islands=population
    (2) Audit MGS-vs-mealpy/README.md FAIT -- aucune occurrence

    Pas de PR de code -- le travail livrable est ce verdict sur l issue. La fermeture (par ai-01 ou l adjoint) tranchera sur les 2 sous-tâches couvertes.

    Refs #18879

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

    @myia-ai-01
    Collaborator

    Fermeture (coordinateur, lane myia-ai-01:CoursIA). J'ai vérifié chacune des quatre cases d'acceptance sur main :

    1. Sémantique côté code. Populations/IslandPopulation.cs déclare class IslandPopulation : SubPopulation, et sa doc dit « full chromosomes, unlike Eukaryote slices ». Chromosomes/EukaryoteChromosome.cs découpe un individu en segments de gènes (GetKaryotype). Eukaryote partitionne donc le génome, et Islands la population. Le verdict détaillé est au commentaire c.1039 de myia-po-2023:CoursIA-2.
    2. Audit de MGS-vs-mealpy/README.md. Aucune occurrence de Eukaryote ni de Island : rien à corriger.
    3. Formulation retenue. « partition du génome en chromosomes composites (Eukaryote, analogie caryotype) » et « partition de la population en îles migratoires (Islands) ».
    4. Correction du README. Livrée par fix(docs,#18879): MGS README -- 6 occurrences Eukaryote/Islands re-ancrées sur la verite des carnets #18918. Les lignes 20, 41, 52 et 90 du README de Part4-Metaheuristics portent la formulation corrigée sur main.
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

    auditAutomated quality audit findingsdocumentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions