OMEGA — référence

OMEGA

Une architecture cognitive qui apprend à jouer au pendu français — non pour gagner, mais pour faire émerger ses décisions d'un cerveau artificiel plutôt que d'un dictionnaire.
Version v0.07 · build phase47 · declare NEO + mode Trexquant (§17) Instantané 01/06/2026 Ancêtre audité v0.06 (~32–40 k lignes, palier ~78 %) Doctrine cap §43 · R66 · cognition>oracle
En clair — de quoi parle ce document

OMEGA est un petit « cerveau » logiciel qui joue au pendu. Sa particularité : il a le droit de regarder les lettres déjà découvertes, jamais le mot caché. Il doit donc deviner comme un humain — en reconnaissant des mots vus, en « sonorisant » ce qu'il lit, en s'appuyant sur la forme des mots. Ce document explique comment il est bâti, ce qu'il sait faire (≈ 90 % de victoires sans tricher), ce qu'il ne sait pas encore faire, et comment s'en servir. Le bouton « En clair » en haut à gauche masque les tableaux techniques ; « Complet » montre tout.

Statut : mesuré effet quantifié, source datée design choix d'architecture acté hypothèse non encore tranché exclu hors chaîne (triche grise / béquille)
nom UI = nom du bouton/panneau dans l'interface. Chaque interrupteur (toggle) cité est accompagné de son nom UI ou du panneau où il se trouve. Les fonctions internes (codes F***) n'ont pas de bouton : elles sont signalées comme telles.

0Méthodes & conventions

0.1 — Statut des affirmations

Chaque fait porteur est étiqueté. La valeur scientifique du projet tient à cette séparation stricte :

  • mesuré résultat empirique reproductible (run headless apparié, graines fixées), source datée.
  • design choix d'architecture acté, non rediscuté dans cette version.
  • hypothèse interprétation ou conjecture non encore tranchée par la mesure.
  • exclu volontairement hors de la chaîne de décision (triche grise ou béquille).

0.2 — Trois métriques, à ne pas confondre

MétriqueDéfinitionRôle
Victoires (winrate)Fraction de parties gagnées.Métrique finale — mais pas le juge de paix du projet.
CouvertureFraction des positions correctement révélées avant la fin.Plus fine, moins bruitée (une partie peut être perdue avec une couverture élevée).
OS_dissDissonance entre cercle direct et cercle miroir (RSA, 1−cosine).Métrique structurelle prioritaire : l'objectif est l'auto-régulation.

0.3 — Protocole de mesure

  • Comparaisons seedées et appariées (mêmes mots, mêmes graines) ; conditions A/B/C/D.
  • N typique : 150–2000 parties ; 8 graines appariées pour les deltas fins (statistique z).
  • Parties chaînées, jamais reset entre jeux : l'apprentissage est inter-jeux (principe L04). Mesurer avec reset invalide tout mécanisme cumulatif mesuré (la mesure « 30 jeux × resets » avait faussé l'évaluation de F177).
  • Inertie OFF : un toggle est proprement débranchable si, éteint, la sortie est byte-identique à la baseline.

0.4 — Avertissement de reproductibilité

Corrigé en phase46 (Fix#1) : le picker de mots et les helpers de banc passent désormais par omegaRand() seedé → mesures headless déterministes (répétables bit-à-bit). Il ne subsiste que le fallback intentionnel vers Math.random() quand aucune graine n'est posée (jeu interactif libre). Les chiffres « robustes » proviennent des protocoles headless appariés seedés.

0.5 — Note de version (à lire une fois)

Deux lignées coexistent. v0.06 « OMEGA-Ω » (~32–40 k lignes, palier ~78 %) est l'ancêtre audité ; v0.07 (refondation, build courant phase47 ; socle phase45 ≈ 9 574 lignes) est le système décrit ici. Les bugs numérotés B1/B3 et la corrélation r=−0,153 viennent de v0.06 et ont motivé la refondation ; ils sont signalés comme hérités là où ils apparaissent.

1Objet & cadre

OMEGA-Ω est une architecture cognitive jouant au pendu sur un substrat d'informatique hyperdimensionnelle (HDC). L'objectif n'est pas de maximiser les victoires mais de faire émerger la décision (le choix d'une lettre) à partir de mécanismes inspirés du cerveau.

design Distinction de catégorie (réf. interne F169) : un solveur maximise les victoires par tous les moyens (n-grammes, dictionnaire complet) ; une architecture cognitive jouant au pendu démontre l'apprentissage sous contraintes pauvres. OMEGA relève de la seconde. Selon F169, 30–40 % de victoires sans lexique seraient déjà un bon résultat (limite cognitive humaine sur la prédiction de mots).

Principe directeur — cognition > oracle La décision doit dériver du perçu et de l'appris, jamais d'une consultation de la réponse cachée. Un système qui gagnerait à 100 % par lookup dans le dictionnaire serait un échec au regard de l'ambition.

2Présentation & performance

Application web autonome (un seul fichier HTML) embarquant le moteur cognitif, le dictionnaire français et le tableau de bord de mesure. La refonte v0.07 a été motivée par la séparation des substrats ortho/phon : leur contamination croisée faisait dégénérer les voies — une reproduction involontaire d'erreurs de dyslexie de surface (Plaut & Shallice 1993).

En clair — l'idée en trois traits

Deux voies de lecture (l'écrit et le son) reliées par un concept commun ; deux boucles par voie (une qui perçoit-décide, une « miroir » qui corrige-apprend, comme le sommeil consolide le jour) ; et un arbitre (OS) qui dose entre l'écrit et le son et empêche toute source de « tricher » en imposant la réponse.

2.1 — Performance : chiffres sourcés

Le taux dépend de la difficulté, de la configuration et de l'horizon. Toujours citer le régime.

RégimeVictoiresErr. moy.Couv.Statut / source
Baseline fréquence pure~22–23 %~5,5mesuré declare e2e 31/05, 150+150
Cheat-free début v7 (pendu durci)~2,6 %~45–50 %mesuré Blueprint v7 §1.3, 02/05, 200 jeux chaînés
Cheat-free — config de référence (cognition)~90 %~2,5mesuré MESURE_FIX 31/05, headless apparié, A1/A2 OFF (89,5±2,6 / 90,6±2,9)
Cheat-free + declare NEO (R + Assemblé + Cohorte)97,5 / 98,8 %mesuré NEO 03/06 (§17), 4 gr. × 120, K=1 / K=3
+ declare (confiance 0,85)~97,7 %~1,7mesuré idem 31/05
Recall — mots déjà vus95,3 %1,33mesuré declare e2e, banc 400
Mot jamais vu (décodage assemblé propre)54,7 %4,45mesuré idem
Config complète avec A2 exclu~95 %mesuré REPRISE_MASTER — triche grise
Cohort-oracle (lexique complet = plafond A2)98,7 % / 100 %~1,1mesuré declare e2e 31/05 (vus / nouveaux)
Lecture — la thèse d'intégration (1) La fréquence pure donne ~22–23 % ; la config de référence cheat-free atteint ~90 % sur la même tâche durcie : c'est l'intégration des modules, pas une route unique, qui produit la performance. (2) On part de ~2,6 % (début v7) : le gain vient du travail entre le 02/05 et le 31/05. (3) Le cheat-free (90 %, +declare NEO 97,5–98,8 %) s'approche à quelques points du plafond oracle (98,7 %) sans lire le dictionnaire — c'est le résultat central. (4) Le 95 % de la config complète repose sur A2 (lookup lexical) : performance, pas cognition.
Note de régime — in-lexique vs hors-lexique. Les chiffres ci-dessus (97–98 %) sont en régime in-lexique (mot du dico, longueur connue, budget 6) : OMEGA y est au niveau des meilleurs solveurs lexicaux. Hors-lexique (mots retirés du dico, façon Trexquant — mesurable par le bouton 🎯 Trexquant, §8) : 70,7 % via la cascade phon→ortho (le concept, le mot étant entenduw.p légitime), 22 % en ortho seul. Repères Trexquant (lettre-seule, sans son) : ~50 % baseline, ~65-68 % bons solveurs. Lecture honnête : excellent in-lexique ; bon hors-lexique via le concept phon→ortho (au-dessus des bons solveurs, mais en entendant le mot) ; faible en ortho pur — la généralisation sous-lexicale OOV reste le point faible (couche morpho à venir).

2.2 — Principes fondateurs (L01–L04)

  • L01 — double Möbius design : deux cercles antagonistes (direct = perception→décision ; miroir = résultat→correction) reliés par l'OS.
  • L02 — invariance fonctionnelle : concepts émergents au-dessus du substrat ; les 12 cellules-concept de M3_d sont apprises (Hebbian), non pré-câblées.
  • L03 — OS gouverneur dialectique : maintient la tension entre les deux cercles sans en laisser un dominer (construction propre au projet ; voisins : GAN, RL adversarial).
  • L04 — apprentissage inter-jeux : miroir et carte son↔lettre persistent entre parties ; pas de remise à zéro.

2.3 — Cascade d'apprentissage à 4 niveaux (F139)

  1. Brique phonétique (pré-câblée) : 14 traits articulatoires × 26 lettres + composante ortho HRR (0,85 / 0,15).
  2. Émergence d'un proto-langage : 5 sous-cerveaux de M1_d produisent du vocabulaire.
  3. Carte son↔lettre (phonGraphMap[26][SDIM]) : apprise en jouant (observation + consolidation).
  4. Pendu : banc d'essai ; décision = comparaison de l'état interne à la carte (et/ou softmax M5_d).

3La tâche : le pendu (spécification)

  • Mots : longueur ≥ 7 lettres ; lexique 88 939 mots (Lexique 4, sous-ensemble ≥ 7, majusculé/désaccentué).
  • Départ : 0 lettre révélée (pendu « durci »).
  • Budget : 6 erreurs.
  • Information légitime : lettres révélées, longueur, lettres essayées, connaissance acquise par expérience.
  • Information illégitime : le mot caché — directement, ou par énumération du dictionnaire jusqu'au seul mot compatible.

Le pendu est choisi pour sa pauvreté en contexte : le joueur doit générer activement des hypothèses (comme « sonner » un mot inconnu). Banc d'essai exigeant et révélateur.

4Architecture

Deux colonnes parallèles, un pont conceptuel, un module d'arbitrage.

  • Voie orthographique (M*_d) : lettres révélées → trait → motif spatial → concept → candidats lexicaux → décision.
  • Voie phonologique (M*_phon) : conversion en phonèmes SAMPA (distingue é/è/an/on…), seconde route de lecture (Coltheart 2001).
  • Hub M_S (concept partagé) : carrefour amodal, auto-encodage cross-modal (Rogers 2004 ; Patterson 2007) — entrer par une modalité, reconstruire les autres.
  • OS — module d'arbitrage (L03) : combine ortho + phon via w(r) = −r/(1+r) (r = force phon ÷ force ortho), tranche la lettre, dilue tout signal pré-imposant une réponse. Publie OS_diss, OS_lect, OS_mod, OS_speed.
Note honnête sur w(r) design : la forme −r/(1+r) est un dosage choisi (monotone, borné) ; sa justification théorique précise n'est pas documentée dans les sources consultées — à traiter comme un paramètre de design, pas un résultat dérivé. mesuré L'apprentissage de θ=(α,β) (🧬 Train θ, panneau STATISTICS) converge vers α≈1,13, β≈0,65–0,72.

4.1 — Couches structurantes

  • Pipeline 0 (priors statistiques) : en v0.06, trois modules M_E (mémoire épisodique), M_A (priors lettres + reward shaping), M_P (pattern matching). mesuré Absents du build v0.07 mais absorbés : priors → constante LETTER_FREQ ; pattern → A2/computeLex4LetterScores ; épisodique ≈ la partie. v0.07 a consolidé, pas perdu.
  • Canaux typés : ~32 canaux (CONCEPT, VECTOR, EVENT, SCALAR) relient les modules ; certains liens inter-voies sont dormants.
  • Substrats indépendants : ortho 26D (identité), phon 26D one-hot + 14D traits, hub HRR cross-modal — aucune chaîne de dérivation entre substrats (correctif clé v0.07).
  • Boucle Möbius (P1/P2) design : circuit fermé conçu (P1 direct, P2 miroir, P1→P2→P1). Recevoir le mot en P2 est conforme au design (simulation, Hesslow 2002), l'OS gérant l'anti-triche. En pratique P2 et les modules miroir étendus sont débranchés (voir §12).

Schéma — deux voies, deux boucles, un arbitre

                       ┌────────────────────────────┐
                       │    OS — module d'arbitrage  │
                       │   combine ortho + phon      │
                       │   w(r) = -r / (1 + r)       │
                       └────────┬──────────┬─────────┘
                 décision ortho │          │ décision phon
        ──────────────────────  │          │  ──────────────────────
            VOIE ORTHO (M*_d)    │          │     VOIE PHON (M*_phon)

        ascendante↑  miroir↓                ascendante↑  miroir↓
        M5_d  ──►  M5_m  (reward)           M5_phon ─► M5_phon_m (reward)
         ▲           │                       ▲          │
        M4_d ◄┄ croisement p ┄┄┄┄┄┄┄┄┄┄┄┄┄ M4_phon ─► M4_phon_m   effectif
         ▲      (M4_PHON_USE_P)              ▲          ┆
        M3_d ◄─ écrit ─ M3_m (a-Hebb)        M3_phon ┄► M3_phon_m   observationnel
         ▲     (conceptCells)                ▲
        M2_d  ──►  M2_m                      M2_phon      M2_phon_m  absent
         ▲           │                       ▲
        M1_d ◄─ ≈0,1 ─ M1_m (letScore)       M1_phon      M1_phon_m  absent

  Miroir ortho = complet (5 étages) · miroir phon = tronqué (M5→M4 ; M3 obs ; M2/M1 absents).

5Modules M1–M5, boucles, constantes

5.1 — Les cinq étages

ÉtageVoie ortho (M*_d)Voie phon (M*_phon)Rôle
M1proto-langage, 5 sous-cerveaux (LDIM=512)substrat articulatoire (40D)perception brute + proto-vocabulaire
M216 zones dimensionnelles, filtrage « chapeau mexicain »résonance (40D)mise en forme spatiale
M312 cellules-concept apprises (SDIM=1024)concept (1024D)représentation conceptuelle (hub M_S)
M4candidats lexicaux top-10 (70 % sémantique + 30 % fréquence-lettre)candidats SAMPAmots/sons plausibles
M5décision softmax, température adaptative (26)décision (26)vote par lettre

Précisions : les 16 zones de M2 sont dimensionnelles (compartiments du vecteur), non positionnelles. La température de M5 règle l'exploration (écart net → choix tranché ; écart faible → exploration).

5.2 — Deux boucles par voie

  • Ascendante (M1→M5) : perçoit et décide ; ne lit le mot qu'aux positions révélées (cap §43) ; jamais d'accès aux lettres cachées.
  • Descendante (miroir, M5→M1) : reçoit le résultat, ajuste les poids ; enseigne, ne décide pas.

Câblage du miroir. Ortho complet : M5_m (reward) → M4_m (letterPenalty) → M3_m (anti-Hebbian, écrit conceptCells) → M2_m (zonePenalty) → M1_m (letterScore). M3 partage ses poids (seul étage où le miroir écrit) ; M4/M2/M1 ont un état séparé réinjecté ; M1_m.letterScore peut co-décider M5 avec poids M5_D_M1_M_WEIGHT = 0,1 (F198), mais c'est désormais gardé par le toggle M5_D_M1_M_ENABLED = défaut OFF (décision 17/06, AUDIT_OMEGA §1.4.2 : M1_m ne gagne pas ses 0,1) → en baseline M1_m n'influence PAS la décision ; l'assert ne fige que le poids (0,1) si on le réactive. Périmés : « 0,0 baseline » ET « 0,1 sans toggle ». Phon tronqué : M5_phon→M4_phon effectif (lu par M4_phon ascendant), M3_phon_m observationnel, M2_phon_m/M1_phon_m construits + appelés mais sans consommateur (dormants — pas « jamais construits » ; cf. AUDIT_OMEGA §1.4/D1).

5.3 — Constantes principales

ModuleConstantesValeur
M1_dsous-cerveaux ; phases ; dim5 ; [0,103,207,311,415] ; LDIM=512
M2_dzones ; grille ; EMA ; σ_exc/σ_inh/poids16 ; 4×4 ; 0,05 ; 1,5 / 4,0 / 0,5
M3_dcellules ; α_Hebb ; α_decay ; seuil ; dim12 ; 0,008 ; 0,001 ; 0,005 ; SDIM=1024
M4_dpoids cosine/freq ; top-K0,7 / 0,3 ; 10
M5_dT_min/T_max ; facteur gap ; poids M1_m0,05 / 0,5 ; 20,0 ; 0,1 (F198)
M5_mreward HIT/MISS/WIN/LOSE+1,0 / −0,5 / +2,0 / −1,0
M3_mtaux anti-Hebbian0,004 (½ du Hebbian direct)

Le rapport α_Hebb/α_decay = 8 est une dette identifiée (norme non bornée, §12).

6Référence des interrupteurs (47)

47 flags au total (phase45) : 31 exposés comme boutons-bascule, plus des contrôles en panneaux dédiés (dictée, pont bind) et des flags JS de socle. Phase46 ajoute 6 bascules NEO + 4 paramètres → 37 toggles ; phase47 ajoute le mode M_TREXQUANT_MODE38 toggles (§17). MAJ 06/26 : +3 bascules cheat-free bleu (M_NEO_PHON_COHORT son board-dérivé · M_NEO_PHON_COHORT_JOINTE · M_NEO_OS_ARB arbitrage OS) → 41 toggles ; M_DECLARE_DUAL adopté (préset). Code couleur UI 4 catégories : vert config optimale · bleu cheat-free optionnel · orange lit le SON de currentWord (mot entendu) · rouge triche grise (A1/A2/A3). Détail des 3 nouveaux : §17.1. Défaut = état au chargement. « préset ✔ » = allumé par la config de référence (§8).

Noms UI vérifiés sur le build phase45. La colonne « Nom UI » donne le libellé exact du bouton et son panneau. 31 bascules sont des boutons (panneaux Toggles · Phase A + B2 et Débranchable · triche grise) ; les contrôles dictée/bind vivent dans des panneaux dédiés ; le reste est en flags JS de socle. Au démarrage, toutes les bascules sont OFF sauf M4_PHON_USE_P (« φ · Croisement p ») = ON. La mention « préset ✔ » marque celles que la config de référence (§8) allume. Build phase46/47 : 6 bascules NEO + le mode 🎯 Trexquant ajoutés (38 toggles au total) — voir §17.
Code (toggle)Nom UI · panneauDéfaut (boot)StatutRôle / effet mesuré
L01_A1_M2_ORTHO« A1 · Orthography » · Débranchable·triche griseOFFexcluPerception orthographique (M2) : lit les lettres révélées (épellation). Socle ortho legacy. Participe au chemin de fréquence brute.
L01_A2_M4_LEX4« A2 · Lexique 4 » · Débranchable·triche griseOFFtriche griseFiltre dictionnaire + score lettre par fréquence du cohort. « Le levier qui connaît le français ». Plafond ~95–98,7 % mais lookup lexical (voir §7). Autorisé seulement pour déclarer.
L01_A3_M5M_WORDLEX4« A3 · Word Lex4 » · Débranchable·triche griseOFFexcluRéinjecte le mot entier (Lex4) dans la correction descendante (M5_m). Béquille-oracle.
L01_A4_M4M_DECOMP« A4 · Decomp » · Toggles·Phase A+B2OFF · préset ✔actifDécomposition descendante (M4_m) : convertit le signal-mot en pénalités par lettre.
L01_A5_M2M_POSITIONAL« A5 · Positional » · TogglesOFF · préset ✔actifCorrection positionnelle descendante (M2_m) : pondère quelles positions comptent.
L01_A6_OS_CONCEPT_ARBITRAGE« A6 · OS Arbitrage » · TogglesOFF · préset ✔actifL'OS arbitre entre signaux conceptuels des voies pour trancher la lettre.
L01_B2_MOBIUS« B2 · Möbius » · TogglesOFFà mesurerCouplage croisé ortho↔phon (torsion de Möbius). Effet pur non validé (R66).
M_VOIE_PHON« φ · Voie Phon » · TogglesOFF · préset ✔actifVoie phonologique : convertit le mot en sons (SAMPA), raisonne en parallèle de l'ortho (double voie, Coltheart).
M_OS_V07« φ · OS v07 » · TogglesOFF · préset ✔actifLaisse l'OS v07 combiner ortho+phon et piloter la décision. OFF : la phon tourne en observation seule.
M4_PHON_USE_P« φ · Croisement p » · TogglesON · préset ✔actifCroisement : M4_phon mélange un prior de la phonétique réelle (champ p/SAMPA, du cohort). Seul toggle ON au boot.
M_SUBSTRAT_ORTHO_PURE« φ · Substrat pur » · TogglesOFF · préset ✔actifSubstrat orthographique pur (anti-contamination). OFF = identique au socle legacy.
M_PHON_FEEDBACK« φ · Feedback ↓ » · TogglesOFF · préset ✔actifRetour descendant phon (Phase 3.6 B) : pénalité M4 effective, M3 observationnel.
M_WORD_DECLARE« 🎯 Declare mot » · TogglesOFFmesuréDéclare le mot quand motif + ratés ne laissent qu'UN candidat (cheat-free). Champ CONF : 1.0 = 100 % sûr ; ~0,70 = sweet spot.
M_IG_SELECT« 🧠 InfoGain » · TogglesOFFà mesurerFavorise la lettre la plus discriminante (entropie, Lindley 1956). Champ W = poids. IG pur sur-explore.
M_IG_PSUCCESS« IG x P(succes) » · TogglesOFFà mesurerRequiert InfoGain ON. Pondère le gain d'info par P(présence) — évite de cramer une vie sur une lettre rare (J/Y).
M_BPC_M3D« bPC M3_d » · TogglesOFF · préset ✔actifAuto-encodeur compétitif du concept (encodeur W depuis M1, décodeur tied, reconstruction). Sortie découplée du scoring-lettre. Winrate non régressé (99,25 %).
M_BPC_READOUT_COUPLE« Couplage readout » · TogglesOFF · préset ✔actifInjecte le score-lettre appris du concept (R, par récompense). +2 à +3 pts en config dépouillée ; nuit en config pleine (A2 redondant). Requiert bPC M3_d.
M_PHON_READOUT_COUPLE« Couplage readout φ » · TogglesOFF · préset ✔actifPendant phon (R_phon), parité avec le couplage ortho. Requiert la voie phon.
M_PHON_CONCEPT_BIND« Concept lié φ (étape 2) » · TogglesOFF · préset ✔mesuré : nulLe readout phon lit un concept lié (positions liées par permutation) vs mélange : ≈ mélange (z ≈ −0,95). Buffer séparé, M_S intact.
M_BPC_DECLARE« 🎯 Declare BPC » · TogglesOFFmesuréDéclare un mot quand le concept M3_d le pointe (cheat-free via M1_d). +5,42 pts moyen multi-seed ; 97,25 % vs 94,31 % long horizon. Requiert bPC M3_d.
M_DECLARE_DUAL« 🦴 Declare DUAL (cheat-free) » · Toggles vert/présetOFF · préset ✔adopté 06/26Déclare via le board-buffer (coups publics), jamais currentWord. Cohort board, fusion freq × ortho-bigramme × phon-g2p (modèle de mot naïf-Bayes, pas le croisement per-lettre). ADOPTÉ dans la config cheat-free (§17.5) : +1,8 → 99,8 % (mot entendu) / +2,5 → 97,3 % (sans currentWord), 4 graines, jamais en-dessous ; reconnaissance in-lexique (neutre OOV). (Ancienne mesure cognition : +5 pts 93,7→98,7 %.)
M_LEARN_FROM_COGNITION« 🧠 Apprendre depuis la cognition » · TogglesOFFmesuréAnti-béquille : quand un declare force une lettre, les apprenants apprennent de la lettre cognitive (pré-override). Restaure ~2× le signal θ (0,010→0,021).
M_OS_LEARNING« θ · Apprentissage » · TogglesOFF · préset ✔actifInterrupteur maître : autorise l'OS à apprendre θ=(α,β). Active les boutons 🧬 Train θ / 📈 Sweep β.
M_OS_LEARNING_GUARD_1_BOUNDED« θ · Garde 1 borné » · TogglesOFF · préset ✔designContraint θ à une famille paramétrique bornée.
M_OS_LEARNING_GUARD_2_ANALYTIC_AUDIT« θ · Garde 2 audit » · TogglesOFF · préset ✔designAlerte si θ appris s'éloigne de θ analytique (lecture seule).
M_OS_LEARNING_GUARD_3_MDL_REGUL« θ · Garde 3 MDL » · TogglesOFF · préset ✔designRégularisation de parcimonie (Occam/MDL).
M_OS_LEARNING_GUARD_4_COHERENCE« θ · Garde 4 cohérence » · TogglesOFF · préset ✔designRefuse une MAJ qui monte le winrate mais baisse la cohérence interne.
M_OS_LEARNING_ONLINE« θ · Apprentissage EN LIGNE (SPSA) » · TogglesOFFà mesurerSPSA en ligne, par partie, sans rejeu. Lit W/c/η, respecte les 4 gardes. Séparé du batch Train θ.
M_EMERGENT_DECLARE« 🦴 Declare émergent · recall » · TogglesOFFmesuréReconnaît un mot déjà joué (bind du board révélé vs banc). 95,3 % vus / 1,33 err. 100 % cheat-free.
M_EMERGENT_ASSEMBLED« 🧬 Declare émergent · phon→ortho » · TogglesOFFexclu au penduDécodage assemblé : sur position sonore, force le graphe si conf>0,75. 54,7 % mot nouveau (généralisation). Variante raccourci = oracle (§9).
M_EMERGENT_G2P_ONLINE« 🔤 g2p appris en jouant (online) » · TogglesOFFmesuréTable phonème→graphe (EM) apprise des seuls mots joués, post-partie. Doctrinalement propre. Plafond batch vers ~900 parties.
M_DICTEE_LEXICAL« Dictée d'un mot aléatoire » · panneau Route sublexicaleOFForacleMode dictée lexicale (lookup, ~92 % connus / 0 % nouveaux = signature mémoire). Pas un bouton-bascule.
M_DICTEE_SUBLEXICAL« Dictée sublexicale d'un mot » · panneau Route sublexicaleOFFà mesurerDictée sublexicale (EM, cognition apprise). Bouton dédié.
M_PHON_BINDpanneau Pont bind · « Mesurer (bind vs mélange) »OFFà mesurerLiaison HRR phon. Contrôle de mesure (1024-D), pas un bouton-bascule.
M_PHON_BINDCONDpanneau Pont bindOFFà mesurerLiaison phon conditionnée (revealed-aware).
M_PHON_READOUT_ABpanneau Pont bind / readoutOFFà mesurerComparaison readout phon A/B.
M_S_ENABLEDJS-seul (socle)ONsocle actifHub transmodal M_S — l'une des sources du winrate.
M5_D_PHONGRAPH_ENABLEDJS-seul (socle)ONsocle actifphonGraphMap co-décideur en M5 — source du winrate.
F75_DAMASIO_ENABLEDJS-seul (socle)ONsocle actifMarqueur somatique (biais reward, Damasio).
E_DEDOUBLE_ENABLEDJS-seul (socle)ONsocle actifService E dédoublé (observation/consolidation).
M4_M_CONTEXTUAL_ENABLEDJS-seul (socle)ONsocle actifPénalité lettre contextuelle (miroir).
M4_M_HOMEO_V2_ENABLEDJS-seul (socle)ONsocle actifHoméostasie v2 de letterPenalty.
M4_M_OS_MOD_ENABLEDJS-seul (socle)ONsocle actifModulation OS de la pénalité lettre.
OS_GAP_RELATIVE_ENABLEDJS-seul (socle)ONsocle actifGap relatif pour la température M5.
OS_SLEEP_DECAY_ENABLEDJS-seul (socle)ONsocle actifDecay au « sommeil ».
M_S_DUAL_ENABLEDJS-seulOFFà mesurerHub dual ortho/phon. Fort couplage.
M5_D_POSITION_AWARE_ENABLEDJS-seulOFFà mesurerDécision sensible à la position.
PUBSUB_ENABLEDJS-seulOFFà mesurerBus pub/sub inter-modules (R39 indépendance).
SLEEP_REPLAY_ENABLEDJS-seulOFFà mesurerRejeu au sommeil.
M_HRR_CROSSMODAL_ENABLEDJS-seulOFFà mesurerHRR cross-modal.
M_BPC_CROSSMODAL_ENABLEDJS-seulOFFà mesurerbPC cross-modal.
COUCHE_A_ADAPTIVE_ENABLEDJS-seulOFFà mesurerCouche A adaptative.
COUCHE_BC_SEPARATION_ENABLEDJS-seulOFFà mesurerSéparation couches B/C. Fort couplage.

Note. Au démarrage, seul M4_PHON_USE_P (« φ · Croisement p ») est ON ; la config de référence (§8) allume ensuite les bascules « préset ✔ ». Les bascules très couplées (M_VOIE_PHON, M_OS_V07, M_BPC_M3D) touchent de nombreux points du code — leur effet n'est pas local.

7Dossier Lexique 4 — l'interrupteur A2

En clair — pourquoi A2 est interdit

A2 laisserait OMEGA consulter le dictionnaire entier pour deviner. Il gagnerait plus (~95–99 %), mais ce ne serait plus deviner : ce serait chercher la réponse. Tout l'intérêt du projet étant de penser sans dictionnaire, A2 est banni du choix des lettres — toléré uniquement pour annoncer un mot.

7.1 — Ce qu'est A2

L01_A2_M4_LEX4 (L01 ENH.) opère dans M4_ortho. À partir du cohort (mots du dictionnaire compatibles avec le motif + exclusions), il note chaque lettre par sa fréquence parmi les candidats et injecte ce score dans le scoring-lettre — l'estimateur P(lettre ∈ mot | board), pondéré fréquence. Modèle de référence : le cohort model (Marslen-Wilson & Welsh 1978).

7.2 — Statistiques

MesureValeurSource
Plafond cohort-oracle, mots vus98,7 % / 1,11 errdeclare e2e 31/05
Plafond cohort-oracle, mots nouveaux100 % / 1,14 erridem
Corrélation Cobweb ↔ A2-présence0,845 (vs IG 0,610)REPRISE_MASTER 25/05
Effet d'A2 sur le couplage bPCrend le couplage −1 à −1,2 pt (redondant)REPRISE_MASTER 27/05

7.3 — Pourquoi A2 est exclu du scoring

A2 atteint ~98,7 % (vus) / 100 % (nouveaux) parce qu'il a tout le lexique : un mot « nouveau » ne l'est jamais pour lui (son cohort contient toujours le vrai mot et converge dessus). C'est le raccourci-oracle qu'OMEGA refuse. Sa redondance est mesurée (absorbe Cobweb, corr 0,845 ; rend le couplage bPC contre-productif). Il porte le 95 % de la config complète sans cognition.

7.4 — Ce qui est autorisé à la place

A2 reste utilisable uniquement pour DECLARE (proposer un mot, en « professeur »), jamais comme moteur de scoring-lettre. L'équivalent cheat-free est M_DECLARE_DUAL (cohort du board, pas du dictionnaire complet) : +5 pts en config cognition, sans lire le dictionnaire au-delà du compatible-board.

8Mode d'emploi

8.1 — Lancer

  1. Ouvrir OMEGA_v0_07_phase47…html dans n'importe quel navigateur : application monolithique autonome (code + lexique inlinés). Aucun serveur, aucune dépendance.
  2. Freeze de secours OMEGA_v0_07_base.html : état stable pour rollback — ne pas le toucher.
  3. Règle d'or : la console du navigateur est en lecture seule. Toute action passe par un bouton/toggle UI — jamais une commande qui modifierait l'état (reproductibilité).

8.2 — Les panneaux de l'interface

PanneauBoutons / champsUsage
PENDU · Partie▶ Start · +1 Tick · ▶▶ Auto · AbortJouer : mot aléatoire, un coup à la fois (observer), partie complète, interrompre.
État Modules (Cercle Direct / Cercle Miroir)vecteurs, normes internesDiagnostic de la santé des représentations (substrat, dissonance D↔M).
Toggles · Phase A + B2les 28 bascules de configuration (§6)Composer la configuration cognitive (A4…θ, voie phon, bPC, declare…).
Débranchable · triche griseA1 · Orthography · A2 · Lexique 4 · A3 · Word Lex4Les béquilles lexicales, isolées. OFF en config de référence.
Performance Live + bPC santé📊 Mesure (Mesurer A/B) · 🔬 Drivers · 🧬 Train θ · 📈 Sweep β · 🌊 θ online JSON · 🧹 Reset · Exporter JSONProtocole seedé A/B + export ; paramètres OS ; santé des 12 cellules-concept.
Bench (panneau perf)▶ Bench R1 · Bench tick réel · 🎯 Trexquant (hors-lexique)Mode Trexquant — deux formes. (a) Jouable : la bascule 🎯 Mode Trexquant (groupe NEO) retire le mot tiré du len_index à chaque Nouvelle partie (cohorte/recall aveugles) → on regarde OMEGA résoudre du vrai hors-lexique ; lexique restauré au tour suivant. (b) Bench : le bouton 🎯 Trexquant joue 80 mots hors-lexique (warmup 300) et logue 2 winrates — phon→ortho cascade (avec son) vs ortho seul. Tous deux self-contained (restaurent le lexique).
Route sublexicale · cognition appriseDictée d'un mot aléatoire · Dictée sublexicale d'un motMode dictée séparé (la version lexicale est triche grise).
Pont bind · mesure (1024-D)Mesurer (bind vs mélange)Compare concept lié vs mélangé (z), buffer séparé — n'affecte pas la baseline.
Développeur / monitoringSmoke load · Smoke runtime (100 ticks) · Bench · Dump 14 canaux · Dump inventaire global · initOmegaGlobals()Non-régression, débit, inspection des canaux/état.

8.3 — Configuration de référence (cognition cheat-free) — MAJ 14/06/2026

Preset optimal re-mesuré sur le code courant, à activer dans L01 ENHANCEMENTS + Declare NEO :

ON (cognition) : A4, A5, A6, M_VOIE_PHON, M_OS_V07, M4_PHON_USE_P,
      M_SUBSTRAT_ORTHO_PURE, M_PHON_FEEDBACK, M_BPC_M3D,
      M_BPC_READOUT_COUPLE, M_PHON_READOUT_COUPLE, M_PHON_CONCEPT_BIND,
      M_OS_LEARNING (+ ses 4 gardes)   [M_OS_LEARNING_ONLINE OFF : mesuré sans gain + dérive]
ON (declare NEO) : M_DECLARE_NEO, M_NEO_RECALL, M_NEO_ASSEMBLED,
      M_NEO_COHORT, M_NEO_G2P_EXP (pén 0,5), M_DECLARE_DUAL (adopté 06/26)   (muette/trigger OFF ; NEO_CONF 0,75, RECALL_MARGIN 0,20)
OPTION cheat-free SANS currentWord (bleu) : + M_NEO_PHON_COHORT + M_NEO_PHON_COHORT_JOINTE → ~97,3 % (vs 97,5 % « mot entendu »)
OFF : A1, A2, A3                                (triche grise / béquille)
À MESURER : L01_B2_MOBIUS, M_IG_SELECT, M_IG_PSUCCESS ; M_NEO_OS_ARB (alternative propre à DUAL, ≈ mais ne bat pas)

Win rate mesuré (in-lexique, graine 12345, 120 mots, warmup 150) : cognition seule (base) 91,46 % (K=1) / 93,75 % (K=3) → +NEO (R+A+Cohorte) : 97,50 % (K=1) / 98,82 % (K=3) (4 graines × 120, harnais déterministe ; cf. notes NEO + §17). Cheat-free, niveau declare manuel.

⚠️ NEO était absent de l'ancien preset (31/05) : sans le déclareur NEO on plafonne à ~91-92 %. Le système NEO (recall + assemblé + cohorte) est ce qui amène la cognition cheat-free au niveau oracle. Aucun preset « 1 clic » dans l'UI : activer les bascules manuellement (panneaux L01 + Declare NEO). Repère couleur UI (4 catégories, MAJ 06/26) : bordure gauche verte = config optimale cheat-free (à activer, dont DUAL adopté) · bleue = option cheat-free non-défaut (son board-dérivé, jointe, arbitrage OS) · orange = lit le SON de currentWord (« mot entendu » : assemblé NEO si cohorte OFF, + assemblé émergent) · rouge = triche grise dico (A1/A2/A3, ne pas activer). L'assemblé NEO bascule orangevert dès que le bleu « son board-dérivé » est ON (il ne lit plus le son du mot).
🧪 g2p révélé + pénalité (adopté 14/06) : la table phon→graphe (voie NEO assemblée) n'apprend désormais que des positions révélées du mot joué — l'expérience gagnée en partie — au lieu du mot complet en fin de partie (learnExp vs learn), avec une pénalité bornée (0,5) sur les lettres fausses essayées. Falsification mesurée : ancien g2p 98,9 % · révélé-seul sans pénalité 98,3 % · révélé-seul + pénalité 0,5 = 98,9 % (= ancien). L'ancien ne trichait pas de façon mesurable, mais le nouveau est doctrinalement plus propre (n'absorbe pas l'orthographe entière) sans coût → adopté dans la config de référence.
Configuration optimale cheat-free — recette exacte à activer

L'application démarre tous interrupteurs OFF (≈ 2,6 % si on lance tel quel) : il faut activer la config ci-dessous. A1 · A2 · A3 restent ÉTEINTS — c'est précisément ce qui rend le jeu cheat-free : aucun lookup dans le dictionnaire pour choisir une lettre.

  • Cognition : A4 · A5 · A6 · φ Voie Phon · φ OS v07 · φ Croisement p · φ Substrat pur · φ Feedback ↓ · bPC M3_d · Couplage readout · Couplage readout φ · θ Apprentissage + ses 4 gardes.
  • Déclaration cheat-free : 🦴 Declare DUAL · 🧩 Declare NEO (maître) · 🔁 recall · 🧬 assemblé · 🎯 cohorte · 🧪 g2p révélé (pén 0,5).
  • Cheat-free intégral (sans currentWord) : 🔊 son board-dérivé (0,5) · 🔗 jointe son×ortho (0,3) — le son vient du consensus de la cohorte board, plus aucune lecture du son du mot caché.

Résultat mesuré (in-lexique K=1, 4 graines, harnais déterministe) : ≈ 97,3 % cheat-free intégral (ne lit jamais currentWord). Repères : ≈ 97,5 % si l'assemblé lit le son du mot (prémisse « mot entendu », légitime en dictée), jusqu'à 99,8 % avec DUAL ; plafond oracle (lookup lexical, exclu par doctrine) 98,7 %. Les options 🔇 muette · 🎚️ trigger · 🧭 arbitrage OS sont mesurées neutres (ne changent pas le résultat) — à laisser au choix.

8.4 — Procédure de mesure (réplicable)

  1. Appliquer le preset, fixer la graine.
  2. +1 Tick pour comprendre un coup ; Auto pour une partie ; ne pas conclure de performance depuis l'interactif.
  3. Mesure : protocole seedé, parties chaînées (jamais reset entre jeux — L04), N ≥ 150 (≥ 2000 pour la dérive longue), 8 graines pour les deltas fins.
  4. Lire couverture et OS_diss autant que les victoires.
  5. Vérifier l'inertie OFF d'un nouveau toggle (sortie byte-identique) avant de juger son apport.
  6. Exporter le JSON ; comparer A/B avec z.
Pièges. L'histogramme A→Z des lettres n'est pas un oracle de mesure valide ; protocole ≠ interactif ; un proxy de winrate cognitif bon-marché est contaminé par les victoires-declare précoces.

8.5 — Discipline de travail

  • Éditions sur extraction jetable (/tmp/_c.js) ; le build sauvegardé n'est jamais touché tant qu'une brique n'est pas validée.
  • Save = ZIP, sur ordre explicite seulement ; une seule à la fois.
  • OFF inerte : toute brique ajoutée laisse la baseline byte-identique éteinte.
  • Vérifier la doctrine déjà accumulée avant d'investiguer (on a perdu du temps à redécouvrir des constats documentés).

9Cadre anti-triche

Critère unique Pour obtenir une information, faut-il consulter la réponse cachée ? Oui → oracle (interdit dans le scoring). Non (board + expérience) → légitime.
  • Légitime : lettres révélées, longueur, lettres essayées, tout ce qui s'apprend en jouant (banc de mots vus, tables son↔lettre).
  • Triche grise : énumérer le dictionnaire complet pour isoler le mot (A2, cohort lexical complet). Toléré seulement pour déclarer.
Leçon 79 (01/06) — le vrai mécanisme anti-triche

mesuré Voie phon + bPC M3_d + émergent + g2p, SEULS = <60 %. Couplé à « phon scramblée → taux inchangé », cela prouve qu'aucune route isolée ne pilote la décision. Le winrate (~90 %) est émergent de l'architecture entière (M4_d natif + hub M_S + M_P + readouts + OS + cascade miroir + M1_m co-décideur) — modèle hub-and-spoke / Triangle.

L'anti-triche n'interdit pas l'information : il tient par le cloisonnement des boucles — la montante décide (sur le révélé seul), la descendante apprend (le « professeur » a le droit de voir le mot, façon wake-sleep) — plus la dilution par l'OS, qui neutralise tout signal voulant pré-piloter.

9.1 — Le cas const ph = G.wp.get(currentWord)

Lit la phonologie du mot-cible = lookup clé→réponse. Son statut dépend de deux facteurs : (1) régime — au pendu (board-only) le mot n'est pas « entendu » → triche dure ; en dictée le mot est l'entrée → légitime ; (2) destination — confiné à P2/apprentissage fin-de-partie/dictée → toléré ; redescendu dans M4_d/M5_d → triche dure. Test « phon brouillée → taux inchangé » : actuellement oracle latent non exploité. Règle : ne jamais câbler dans le scoring du pendu ; pour une voie phon cheat-free, dériver ph du cohort (au prix des ~78 %).

9.2 — Procédure d'audit de triche (réutilisable)

Pour tester si une source X est exploitée par le scoring : brouiller/neutraliser X et mesurer Δ(taux). Si Δ ≈ 0, X n'est pas exploité (oracle latent toléré) ; si Δ < 0 significatif, X tire la décision (à couper si X est un oracle). Juger une brique dans le système complet (ablation), jamais en override isolé.

10Régimes de fonctionnement

Chaque mécanisme domine dans le régime qui lui fournit son entrée.

  • Contexte pauvre (pendu, mot isolé) : la forme prime → phon→ortho et recall dominent. Levier des derniers points = recall (reconnaître), pas la grammaire.
  • Contexte riche (texte suivi) : la grammaire domine (~92 %) ; le résidu (finales muettes) se lève par la catégorie grammaticale (POS) — sur le -ent muet, l'incertitude chute de 0,93 à 0,019 bit (−98 %, mesure type AQUA).
  • Dictée (mot entendu) : la phonologie est une entrée légitime ; phonèmes + grammaire dépassent la forme seule.

Conséquence : au pendu mono-mot, 100 % sur un mot jamais vu est impossible cheat-free — c'est la définition même de cognition vs oracle.

11Résultats : réussite & échec

11.1 — Réussite

  • Thèse d'intégration confirmée mesuré : fréquence pure ~22–23 % → config de référence cheat-free ~90 % sur la même tâche durcie. Aucune route isolée ne porte ce score (briques < ensemble ; phon brouillée → taux inchangé).
  • Recall (mots vus) : 95,3 % / 1,33 err, à ~3 pts de l'oracle (98,7 %) — la reconnaissance VSA approche la couverture lexicale complète sans lire le dictionnaire.
  • Généralisation (mots nouveaux) : 54,7 % / 4,45 err par décodage assemblé phon→ortho, sans aucune reconnaissance — honnête, comme un humain devant un mot inconnu.
  • Effet du fix d'apprentissage (M_LEARN_FROM_COGNITION, 8 graines) : cible erronée phon 20 %→0 % ; cascade miroir MISS-frac 71 %→80 % du niveau sain (z=14,6).

11.2 — Échec

  • Profil des défaites (dyslexie phon) mesuré : sur 100 défaites, 96 % comportent une paire phonétiquement proche. Distance 0 (homophones I/Y) 5,8 % ; distance 1 (voisée/sourde P/B, T/D, K/G, F/V, S/Z) 58,3 % ; distance 2 29,2 % ; distance 3+ 6,7 %. Cause : les paires voisée/sourde partagent 13/14 traits → vecteurs quasi-identiques.
  • Plafond miroir structurel : l'apport de la cascade est bridé par (1−winRate) ; à ~97 % l'amountFactor tombe à ~26 % (design F178, pas un bug).
  • Qualité pondérée plafonnée ~0,80 (max 0,84 OFF / 0,88 ON) vs cible 0,90.
  • phonGraph inerte : ‖Δ‖ ≈ 0 (apprentissage par signe → moyenne nulle ; cos ≥ 0,997 vs substrat).

11.3 — Bilan honnête

La cognition cheat-free atteint ~90 % et s'approche de l'oracle sur le vu, mais : (a) elle plafonne sous l'oracle sur le nouveau (attendu) ; (b) les défaites résiduelles sont dominées par la confusion phon voisée/sourde non résolue ; (c) les cellules-concept M3_d (forme) sont faiblement connectées au hub (M3_d.output=0 sous bPC) — mais son readout-récompense cLetterScore est un contributeur cheat-free mesuré +3,4 (§12 ; AUDIT_OMEGA §3.1) : « M3_d faiblement connecté » ne vaut que pour les cellules/hub, pas le readout.

12État & limites

Hiérarchisé par impact × effort, chaque point formulé comme expérience falsifiable. Aucun ne dégrade la baseline (tout est éteint/découplé, byte-identique au repos).

PointImpactEffortExpérience falsifiable
Cellules M3_d faiblement connectéesle readout, lui, compte (héritée v0.06 : corr game↔winrate ≈ −0,15 ; v0.07 : 7-9 cellules/12, 1 concept plural, projection M2→M3 = permutation, pas vraie compression HRR ; cellules = code de forme)Faible*FaibleFAIT (17/06) : A/B M_BPC_READOUT_COUPLE → le readout cLetterScore compte = +3,4 cheat-free (8 graines, jamais sous ; AUDIT_OMEGA §3.1). Restent faibles = les cellules (forme/hub) ; débugger les internes = optionnel (le readout porte déjà la valeur).
Dyslexie phon (96 % des défaites, paires voisée/sourde)ÉlevéMoyenActiver M_PHON_CORRECTION (α=0,10 / β=0,05) à grande échelle ; mesurer la baisse des défaites dist≤2.
Voie phon tronquée (M2_phon_m/M1_phon_m absents)ÉlevéÉlevéConstruire les miroirs manquants (codage prédictif) ; mesurer l'apport phon.
B1 — M3_d.output non normalisé (héritée v0.06 : norme ~1,76, sature M_S ~1,46 ; inerte tant que bPC met output=0)MoyenFaibleB1 reste inerte (output=0 sous bPC) ; la reconnexion qui l'aurait activé est falsifiée (mur de capacité 12 cellules — la familiarité vit dans le banc). Sans urgence.
Hebbian non borné (α_Hebb/α_decay = 8)MoyenFaibleBorner ; mesurer la stabilité de la norme sur 2000 parties.
B3 — score k/essais faux sur défaite (héritée v0.06)MoyenFaibleCorriger la formule ; revérifier les scores de parties perdues.
LDIM→SDIM bijective (gain d'info nul, R42-#9)MoyenMoyenRandom projection (Achlioptas 2003) vs retrait ; mesurer le gain d'info.
Reproductibilité (Math.random non seedé) corrigé phase46TransversalrésoluFix#1 : picker + banc → omegaRand() (headless déterministe). Reste seul le fallback intentionnel si non seedé.
Biais de centre (grille Mexican-hat M2)FaibleMoyenSymétriser/normaliser la grille.
P2/Möbius débranché (nom PIPELINE2_MVP trompeur)FaibleÉlevéBrancher P2 progressivement ; vérifier l'inertie OFF puis l'apport.
M3_d — réorienté, PAS mort (maj 17/06/2026). Le « chantier clos » antérieur était winrate-centré et faux (cf. doctrine §0 + AUDIT_OMEGA §3/§3.1). Le concept (12 cellules) = un latent de forme dont la contribution réelle est le readout-récompense cLetterScore (couplé 0,20) : mesuré +3,4 pts de winrate en cheat-free (sans A2 ; A/B 8 graines, jamais sous zéro ; reproduit le « +2 à +3 dépouillé »). Il n'est redondant/nuisible qu'AVEC A2 (oracle lexical exclu par doctrine) — d'où l'ancien « contribution plate », mesuré en config pleine. Reste falsifié (périmètre borné) : loger le banc épisodique dans M3_d / chemin concept→M4 (−1,3 à −2,0, M3D_reconnexion_banc_FALSIFIE) et la familiarité (AUC 0,64 K=12 → vit dans le banc ; épisodique et concept séparés à dessein). Les cellules codent la forme (réutilisable côté dictée — signal de stade précoce, §0).

Ordre recommandé : (1) purger Math.random hors-seed fait (phase46 · Fix#1) ; (2) PHON_TO_LETTERS codée-main → table L2 apprise fait — voie assemblée NEO/émergente, L2 apprise board-dérivé (§17) ; (3) loger le banc recall dans M3_d falsifié — mesuré net-négatif (concept→M4 contamine, −1,3 à −2,0) ; sonde capacité : porter la familiarité exige K≈N cellules (= le banc), 12 cellules AUC 0,64 vs banc 0,98 → la familiarité vit dans le banc, M3_d reste le petit latent sémantique (§17) ; (4) borner Hebbian + corriger la projection bijective à faire.

13Questions de recherche ouvertes

Hypothèse exploratoire : la cognition réglée librement convergerait vers des constantes comparables à un modèle de référence (cadre transdisciplinaire cosmologique). Statut : analogie exploratoire, aucun lien causal établi ; une coïncidence numérique n'est pas une preuve.
  • θ → (α=1, β=1) ? L'OS, en apprenant seul (🧬 Train θ), retombe-t-il sur le dosage analytique ?
  • Rapport des voies r ≈ 5,35 ? Le rapport signal_phon / signal_ortho (≥ 1000 parties) approche-t-il 5,353 ?
  • Fraction de canaux dormants ≈ 0,079 ?
  • Asymétrie ortho/phon : intrinsèque ou apprise ? Une init symétrique diverge-t-elle spontanément ?

Pour devenir scientifique, chaque correspondance devrait s'accompagner d'un mécanisme qui prédit la constante depuis le dispositif cognitif — à défaut, le résultat reste une analogie.

14Références

Statut : structurant/actif · présent mais inactif · non implémenté.

Lecture à deux voies & dyslexies — Coltheart et al. (2001) DRC (structurant) ; Plaut & Shallice (1993) ; Castles & Coltheart (1993), Adlard & Hazan (1998) confusions voisée/sourde (validées : 96 % des défaites).

Triangle & hub-and-spoke — Seidenberg & McClelland (1989), Plaut et al. (1996), Harm & Seidenberg (2004) ; Rogers et al. (2004), Patterson (2007), Lambon Ralph et al. (2017). Structurant (M_S).

Boucles, prédiction, miroir — Hinton et al. (1995) wake-sleep ; Bogacz (2025) codage prédictif ; Hesslow (2002) simulation (P2) ; Hong & Friston (2021) DMN/TPN.

Apprentissage / plasticité — Hebb (1949) ; DeSieno (1988) ; Bardes, Ponce & LeCun (2022) VICReg ; Turrigiano (1998, 2008), Zenke (2013) ; Moraitis et al. (2021) SoftHebb.

Décision / information — Lindley (1956) InfoGain ; Fisher (1987) Cobweb ; Sutton & Barto (1998) ; Friston (2025) Active Inference (inactif) ; Dehaene (1998)/Baars (1988) GNW (inactif).

Cohort / lecture en contexte — Marslen-Wilson & Welsh (1978) cohort model (base d'A2) ; Hale (2001), Levy (2008), Smith & Levy (2013) surprisal ; Jacobs & al. (1991) Mixture-of-Experts.

Représentation vectorielle — Plate (1995) HRR (SDIM=1024) ; Rachkovskij & Kleyko (2022) ; Achlioptas (2003) random projection (non implémenté) ; Schmidhuber (2003) OOPS (inactif).

Similarité — Kriegeskorte (2008) RSA (mesure de dissonance interne 1−cosine).

15Glossaire

TermeDéfinition
Ortho / phonForme écrite / sonore d'un mot.
SAMPANotation des phonèmes (distingue é/è/an/on…).
Concept / hub M_SReprésentation amodale reliant les voies (entrer par une, reconstruire les autres).
bPCAuto-encodeur prédictif du concept (M_BPC_M3D).
Boucle ascendante / descendante (miroir)Perception-décision / correction-apprentissage.
P1 / P2Cercle direct / miroir (double Möbius). P2 actuellement débranché.
OSModule d'arbitrage (dose ortho/phon, dilue, mesure la dissonance).
CohortMots du dictionnaire compatibles avec le board.
CouvertureFraction des positions correctement révélées.
DeclareOverride : annoncer un mot/une lettre.
RecallReconnaissance d'un mot déjà joué.
Cheat-freeNe consulte jamais la réponse cachée.
Triche griseInjection de la fréquence/orthographe du dictionnaire dans le score-lettre (A1/A2).
Oracle / lookup clé→réponseLecture de la réponse cachée (wp.get(currentWord)).
HDC / HRRInformatique hyperdimensionnelle / Holographic Reduced Representations.
Cap §43 / R66Ne lire que le révélé / aucune activation par défaut sans validation empirique.

16Annexes

16.1 — Table d'ablation (effets mesurés)

Toggle / fix (nom UI)Effet mesuréN / grainesConfigSource
M_BPC_READOUT_COUPLE Couplage readout+1,8 à +4,2 pts (croissant)2000, 3 gr.dépouilléeREPRISE_MASTER 27/05
idem en config complète−1 à −1,2 pt (redondant A2)complèteidem
M_DECLARE_DUAL+5 ptscognitionDECLARE 31/05
M_EMERGENT_DECLARE (recall)95,3 % vus / 54,7 % nouveauxbanc 400, 150+150DECLARE e2e 31/05
M_LEARN_FROM_COGNITIONcible phon 20 %→0 % ; MISS-frac →80 % (z=14,6)8 gr.référenceMESURE_FIX 31/05
M_PHON_CONCEPT_BIND≈ mélange (z ≈ −0,95)référenceaudit étape 2
M_BPC_DECLARE 🎯 Declare BPC97,25 % cumul vs 94,31 %long horizonconfig RemMANIFEST / phase36
A2 (cohort-oracle) exclu98,7 % vus / 100 % nouveauxoracleDECLARE 31/05
M_DECLARE_NEO (R+Assemblé+Cohorte) cheat-free97,50 % (K=1) / 98,82 % (K=3)4 gr. × 120cognition forteNEO 03/06 (§17)
M_NEO_MUTE + trigger (gap 0,005)neutre : Δ +0,00 (K=1) / +0,14 (K=3)4 gr. × 120+ R+A+CNEO 03/06 (§17)

16.2 — Référence rapide des constantes

5 sous-cerveaux M1_d, phases [0,103,207,311,415], LDIM=512 · 16 zones M2 (4×4), EMA 0,05, σ 1,5/4,0 · 12 cellules M3_d, α_Hebb 0,008, α_decay 0,001, seuil 0,005, SDIM=1024 · M4_d 70/30, top-10 · M5_d T 0,05–0,5, gap×20, poids M1_m 0,1 (F198) · reward +1/−0,5/+2/−1 · anti-Hebbian 0,004.

17Declare NEO (phase 46)

Nouveau declare émergent et croisé ajouté en additif sur phase45 : recall (adressée) + assemblé (phon→ortho) + cohorte (filtre board) + muette (par le son, croisée) + trigger. OFF-inerte (baseline byte-identique), aucun des 5 declares existants modifié, bPC M3_d autorisé mais NEO n'est pas M_BPC_DECLARE. Build courant OMEGA_v0_07_phase47_trexquant_mode.html (moteur = phase46).

17.1 — Les bascules NEO (UI)

MAJ 06/26 : 3 bascules cheat-free bleu ajoutées (son board-dérivé · jointe · arbitrage OS) + M_DECLARE_DUAL adopté dans la config de référence (§8.3, §17.5). Code couleur UI : vert config optimale · bleu cheat-free optionnel · orange lit le SON de currentWord (mot entendu) · rouge triche grise (A1/A2/A3).

Nom UIDéfautRôle
M_DECLARE_NEO_ENABLED 🧩 Declare NEO · maîtreOFFMaître ; toutes les voies NEO inertes tant qu'il est OFF.
M_NEO_RECALL_ENABLED 🔁 NEO · recallON*Adressée : recall VSA depuis le board révélé + banc des mots vécus. 100 % sur vocab répété, inerte sur mot neuf.
M_NEO_ASSEMBLED_ENABLED 🧬 NEO · assembléON*phon→ortho masqué : décode les positions sonores via L2[phonème]. w.p légitime, align masqué (graphème caché → UNI). Généralise au mot neuf.
M_NEO_COHORT_ENABLED 🎯 NEO · cohorteOFFFiltre board-derived : n'autorise une lettre que si ≥1 mot compatible avec le motif révélé la porte. Élague les ratés.
M_NEO_PHON_COHORT_ENABLED 🔊 NEO · son board-dérivé bleuOFFAjout 06/26. Le SON décodé (assemblé+muette) vient du consensus phonémique de la cohorte board-compatible (mots de même longueur matchant le révélé), au lieu de wp.get(currentWord) → supprime toute lecture du son du mot caché = cheat-free intégral, sans currentWord. Garde de pureté M_NEO_PHON_COHORT_PURITY (0,5) contre l'override confiant-mais-faux. Mesuré (§17.5) : parité vrai-son in-lexique, coût OOV ~7 pts. Quand ON, l'assemblé passe orange→vert (ne lit plus le son du mot).
M_NEO_PHON_COHORT_JOINTE 🔗 NEO · jointe son×ortho bleuOFFAjout 06/26. Remplace l'argmax du son board-dérivé par la JOINTE Σ_φ Pcoh(φ\|p)·CR[φ\|voisins révélés] (table _neoCRS apprise descendant) — « croiser = jointe », mémoire §6. Mesuré in-lexique K=1, 4 graines : +2,2 pts vs argmax, jamais en-dessous (repro indépendante : +2,5). Seuil propre M_NEO_PHON_COHORT_JOINTE_CONF 0,30. Nécessite le son board-dérivé ON.
M_NEO_OS_ARB 🧭 NEO · arbitrage OS (2 voies DRC) bleuOFFAjout 06/26. Remplace la cascade either/or des voies par un mélange convexe OS — sublexicale (jointe) ⟷ lexicale (cohorte pondérée fréquence) — via M_OS_v07_step réutilisé (μ=r^α/(β+r^α), forcé α=β=1 neutre, découplé du θ de lecture). Vraie DRC interactive. Mesuré sans currentWord, 4 graines : +2,0 vs base, jamais en-dessous, ≈ DUAL (dans le bruit) mais plus propre et ~2× plus rapide. Non adopté (alternative) — §17.5.
M_NEO_G2P_EXP_ENABLED 🧪 NEO · g2p révélé + pénalitéOFFApprend la table phon→graphe (voie assemblée) des positions révélées seules + pénalité bornée (M_NEO_G2P_EXP_PEN 0,5) sur lettres fausses, au lieu du mot complet (learnExp vs learn). Cheat-free strict ; mesuré = niveau de l'ancien g2p (98,9 %).
M_NEO_MUTE_ENABLED 🔇 NEO · muetteOFFPar le son : positions muettes prédites par phonogramme croisé (jointe) phonème-tête × offset × voisins révélés.
M_NEO_TRIGGER_ENABLED 🎚️ NEO · triggerOFF(B) : la muette n'override que si la cognition est incertaine (M5_d.output.gap < 0,005).

* sous-flags actifs uniquement si le maître est ON. Paramètres numériques (NEO_CONF 0,75 · MUTE_CONF 0,85 · TRIGGER_GAP 0,005 · RECALL_MARGIN 0,20) aux défauts mesurés, pas encore pilotables en UI ; M_NEO_G2P_EXP_PEN (0,5) est pilotable (champ « pén » du toggle g2p révélé).

17.2 — Cheat-free (vérifié ligne par ligne)

VoieAccès currentWordStatut
Recall_emrg_bind(currentWord, revealedMask) ; .charAt(p) comparé seulement si revealedMask[p]révélé seul
Assembléwp.get(currentWord) (entrée légitime) + align(…, revealedMask) masquépas de fuite
Cohortemotif révélé + lexique par longueur ; exclut lettres essayées-absentesboard-derived
Muettephonème-tête (align masqué) ; voisins charAt(p±1) seulement si revealedMask[p±1]révélé seul
Compteurs diag.currentWord.indexOf(proposed) sous typeof _neoDbg !== 'undefined'inerte (build)
Apprentissagemot complet (voisins, alignement) dans endCurrentGamedescendant

Seul accès au mot caché « complet » : w.p (prononciation) = entrée légitime (prémisse proto-langage, M4_PHON_USE_P) ; l'align masqué bloque toute fuite de graphème non révélé. A1/A2/A3 restent triche grise OFF.

17.3 — Croiser ≠ multiplier

La muette croise son et ortho — elle ne les additionne pas (dual log f + wO·ortho + wP·phon) ni ne les multiplie. Croiser = jointe P(lettre | phonème-tête, offset, voisins révélés) avec backoff.

  • Resonator networks (Frady 2020) : « ne pas multiplier aveuglément » (décoder un produit lié = recherche combinatoire dure).
  • bind = code retrievable par mot (rôle du recall : 0 cellule morte, ×6 généralisation, 100 % retrievable). Ce n'est pas le moteur de lettres : en dictionnaire global, bind = 19 % vs EM 64 % (spec figée, mur de capacité).
Mesuré · modèle (board 50 %, mots neufs, top-1 position) : ortho seul 26,8 % · phon-tête 21,2 % · croisé jointe 51,6 %. Le croisement ~double chaque marginale.

17.4 — Résultats mesuré

Harnais headless déterministe (reseed avant init → bpcW ; _omega_OSL_reset ; M_OS_v07.α/β=1), config cognition forte cheat-free, 4 graines × 120, Δ apparié + z.

ConditionK=1K=3
base (cognition seule)91,46 % ±0,8693,75 % ±0,46
R + Assemblé + Cohorte97,50 % ±0,5998,82 % ±0,38
+ Muette 0,85 (sans trigger)Δ −0,63 (z=−1,0)Δ −0,28 (z=−1,1)
+ Muette + trigger gap 0,005Δ +0,00 (z=0,0)Δ +0,14 (z=0,8)

Levier de winrate = Recall + Assemblé + Cohorte (niveau declare manuel, cheat-free). Le trigger fait passer la muette de −0,6/−0,8 à ≈ 0 : elle ne drague plus.

Contributions brique par brique (Δ vs base) : recall +1,76 (K=3 ; 100 % sur vécu, inerte sur mot neuf) · assemblé +5,28 (K=1) / +3,43 (K=3) · cohorte +0,50 (K=1) / +0,17 (K=3 ; hit 96,7→98,3 %).

17.5 — MAJ 06/26 — cohorte sans currentWord, DUAL adopté, arbitrage OS mesuré

Détail complet + reproductions : AUDIT_OMEGA.md §1.1–§1.6. Synthèse :

Honnêteté du régime (orange). Le 97,5 % cheat-free repose sur M_NEO_ASSEMBLED lisant wp.get(currentWord) = le son du mot (prémisse « mot entendu »). C'est légitime en dictée, mais au pendu c'est lire une propriété de la réponse → marqué orange en UI. Repères sans cette prémisse : OOV phon→ortho ~70,7 %, ortho pur OOV ~22 %.

Cohorte board-dérivée + jointe (cheat-free intégral, sans currentWord). M_NEO_PHON_COHORT dérive le son du consensus de la cohorte board (plus aucun wp.get(currentWord)). Coût mesuré : ~0 in-lexique, ~7 pts OOV (garde de pureté 0,5). La jointe son×ortho (_neoCRS, croiser = jointe) bat l'argmax de +2,2 pts à chaque graine (K=1, 4 graines).

declare cheat-free (in-lexique K=1, 4 gr.)winrateerrcoups
cohorte-jointe seule (sans currentWord)94,8 %2,138,18
+ DUAL (adopté) — cohorte mot, freq×ortho×phon97,3 %1,807,88
+ ARBITRAGE OS (alternative, non adoptée)96,8 %1,897,95

DUAL adopté (§8.3) : declare niveau-mot (modèle de mot naïf-Bayes, pas le croisement per-lettre que §6/§3.1 régissent → pas d'entorse), cheat-free (board + longueur, jamais currentWord), +1,8 → 99,8 % mot-entendu / +2,5 → 97,3 % sans currentWord, stable. Caveat : reconnaissance in-lexique → neutre OOV. Arbitrage OS : seul mécanisme *principié* qui bat la base (+2,0, vraie DRC interactive via M_OS_v07_step), mais ne bat pas DUAL → gardé OFF-inerte comme alternative propre.

Directionnalité (garde-fou). La voie phon de la cognition est ortho→phon (sonorise les lettres révélées — lecture), l'arbitre OS a un θ réglé lecture ; le declare est phon→ortho (épellation, force pendu). Coexistence DRC bidirectionnelle ; mais l'arbitrage OS au niveau declare doit forcer son propre α=β=1 (fait) pour ne pas hériter du θ de lecture — sinon conflit de sens des voies.

Falsifiés (ne pas refaire, R66) : morpho distance-de-fin (−1,0) · morpho backoff dense (+0,3 bruit) · croisement cross-modal au concept M3_d (−3,0, mur de capacité) · jointe-mot (−2,3) · fréquence croisée au phonème (−4,3). Le résidu cheat-free vit dans l'ambiguïté cohorte, pas dans la table phon→lettre ni le concept.

17.6 — Réserves hypothèse / à faire

  • Muette neutre avec trigger, pas un levier : résidu muet irréductible, déjà couvert par la cognition. Vivante et inoffensive.
  • Trigger : SPSA sur le gap = plat (winrate constant → pas de gradient ; effet sous le quantum de mesure). Un reward dense par-décision (avantage [muette∈mot] − [cognition∈mot]) serait nécessaire pour l'apprendre en ligne.
  • Paramètres numériques NEO pas encore pilotables en UI (seuls les 6 toggles le sont).
  • Puissance 4 graines × 120 ; R66 suggère ≥ 200 × 4 pour resserrer (directions stables).

17.7 — MAJ 06/2026 — OOV honnête, voie n-gram, et le « C » cognitif mesuré

⛔ Rétractation OOV + le vrai levier (détail : AUDIT_OMEGA §1.6.1–§1.12 · config : docs/CONFIG_TOGGLES.md)

(a) Fuite cohorte. Le « ~97 % hors-lexique » antérieur était une fuite (cache _neoWBL non invalidé : le mot « retiré » restait dans la cohorte). Corrigé. Vrai OOV ≈ 33 % (généralisation sublexicale pure) ; cognition seule ≈ 11 %. La cognition ne généralise pas en sous-lexical ; le levier OOV est l'agrégation de la structure du lexique.

(b) Voie n-gram (nouveaux toggles). M_NEO_LETTER_NGRAM (n-gram positionnel pré-calculé, cheat-free) ≈ 57-66 % OOV ; M_NEO_OS_ARB_NGRAM le branche comme voie sublexicale de l'arbitrage OS (bascule auto : in-lex ~97 % / OOV ~60 %, config unique) ; M_NEO_NGRAM_GAP (plus proche voisin révélé d=1..4) ajoute +2 pts OOV (~63-65 %, bande SOTA) = 1er gain cognitif > substrat. Tous OFF par défaut (R66).

(c) Le « C » appris — falsifié comme franchissement. Le C léger (maxent/GATE/POE) et le C lourd (transformer, hook M_NEO_C_HEAVY OFF-inerte) ont été construits et mesurés : le lourd converge vers le n-gram gap-aware sans le battre (winrate à config optimale : parité, OOV Δ ≈ −1,3 ; entraîné sur de vraies parties = recul par couverture lexicale). Le n-gram gap-aware (gratuit, interprétable) reste le plafond pratique — « cognition > oracle = léger/interprétable » confirmé. Design d'un futur organe (hub d'arbitrage appris) : docs/COGNITION_DESIGN.md.

OMEGA-Ω — rapport de référence & mode d'emploi. Consolidation de trois itérations (vulgarisation 01/06, audit boucles 01/06, rapport v0.07) par Claude (Anthropic), direction Rem. Instantané au 03/06/2026 — addendum 14/06/2026 : application dérivée = dictée diagnostique (dys), voir dictee/ ; addendum 18/06/2026 : levier grammaire + correcteur dys + grammaire à double voie (Lexique 4 cgram), §18 ; déploiement = lexique embarqué compressé (gzip+base64, navigateur ≥ 2023), build phase47 (declare NEO + mode Trexquant ajoutés — §17). Convention mesuré/design/hypothèse/exclu. Chaque interrupteur cité porte son nom UI. Doctrine : cap §43 strict · R66 (mesure avant activation) · cognition > oracle.

Noms UI, libellés de boutons, panneaux et défauts au boot vérifiés sur le build phase45 (tooltips inclus) ; les 6 toggles NEO vérifiés sur phase46 (§17). Restent indicatifs (depuis docs/mémoire, non re-vérifiés ligne-à-ligne) : le mapping des F-codes internes et le détail des constantes. Les chiffres mesurés sont datés et sourcés.

18Dictée diagnostique (application dys)

Objectif. Application dérivée ciblant les troubles de l'écrit (dys), bâtie sur la double route phon↔ortho du moteur. Le moteur diagnostique le type de chaque faute d'orthographe et oriente l'entraînement. Détails & mesures reproductibles dans dictee/ (JOURNAL, README — qui inclut l'audit fermé + le M3_d falsifié —, CORRECTEUR, GRAMMAIRE_DOUBLE_VOIE).

Cadre = dictée de PHRASES. Mesuré : sur des mots isolés, 84 % des mots ont des homophones (surtout flexionnels) → indécidables au son seul. La phrase fournit le contexte : le mot cible étant connu, homophones et accords deviennent des erreurs gradablessans M3_d (l'expérience « M3_d désambiguïse les homophones » a été falsifiée au design : M3_d encode l'ortho/le son, aucune entrée sens/contexte ; cf. dictee/README.md § « Falsifié M3_d »).

Familles d'erreurs (typologie dysorthographique : phonologique · lexicale-surface · sémantique/morpho), multi-étiquette :

  • accent (é/è/ê) · voisée/sourde (p·b, t·d, k·g, f·v, s·z) · inversion · lettre muette · lettre en trop
  • homophone (graphie homophone fausse) · accord (homophone flexionnel tranché par le contexte) · surface (graphie « plausible mais fausse » détectée par un normaliseur phonétique : leson→leçon, bato→bateau)
  • omission / mot en trop (alignement Levenshtein des mots cible vs élève)

Remédiation. Profil d'erreurs persistant (par famille) ; la sélection des phrases cible en priorité la famille la plus ratée (« on travaille : accord »). On ne se contente pas de diagnostiquer : on oriente l'entraînement.

UI. Panneau additif OFF-inerte (IIFE — n'altère pas le moteur pendu ; baseline intacte, doctrine R66) : bouton ✍️ Dictée diag (bas-droite) → choix de difficulté, dictée vocale (synthèse fr-FR), saisie de la phrase, feedback par mot coloré par famille + correction révélée, profil + réinitialisation.

Données. Lexique 4 (New et al. 2026, lexique.org, CC BY-SA 4.0) : 30 phrases graduées (dictee/sentences.json) + index homophones plein (43 580 groupes). Mesuré (synthétique, 30 phrases) : rappel 100 % sur accent/accord/homophone/omission, surface 17/17.

18.1 Levier grammaire — l'accord en contexte

Le contexte de la phrase rend les accords gradables. Le levier (dans diag_sentence.py) couvre : accord sujet-verbe (gouverneur via mots-outils, mesuré 94 %), sujet à distance (skip_pp saute le groupe prépositionnel : « le ver de la terre creuse »), participe passé (être → accord sujet ; avoir → invariable sauf COD antéposé « la pomme qu'il a cueillie »), genre du GN (déterminant genré + route lexicale du nom-tête), et la désambiguïsation des homographes nom/verbe par le contexte (« le lit » vs « elle lit », 5/5). Le diagnostic situe aussi un stade développemental (Ferreiro/Berliocchi : phonologique → alphabétique → lexical → morphosyntaxique, 4/4).

18.2 Correcteur dys (débouché applicatif)

Le même levier, retourné sans corrigé (le correcteur ne connaît pas la cible → il infère l'intention), donne un correcteur d'homophones grammaticaux : a/à, son/sont, on/ont, leur/leurs, -é/-er, peu/peux/peut, ce/se, et/est. 0 faux positif sur batterie (propriété cardinale visée : ne jamais « corriger » du texte juste) — mais requalifié (06/2026) : mesuré sur 16 342 vraies phrases correctes (UD French), le FP réel était 6,0 %, ramené à ~2,5 % par 5 lots de durcissement FP-safe (stoplists invariables/adverbes, genre capitalisé/non-nom-tête, sujet pluriel à distance, participes irréguliers, noms-homographes via cgram) ; garde permanente dictee/fp_stress_test.py. Le domaine dys (phrases courtes) est plus bas, pas 0. Détection : 22/24 en corpus, 12/15 en held-out (vocabulaire neuf → les règles généralisent). Angle unique : il corrige + situe le stade (remédiation dys), ce qu'aucun correcteur grand public ne fait. UI : bouton 🩹 Correcteur — colle ton texte, fautes soulignées, clic = applique la correction, stade affiché, police lisible. Honnêteté : l'accord en genre dans le correcteur a été tenté puis écarté (mesuré FP-insûr : presque toutes les formes adjectivales sont aussi des noms dans Lexique4 → il faut un POS/tagger ; la route lexicale du genre reste, sûre, dans le diagnostic).

18.3 Lexique 4 → cgram & grammaire à double voie

build_cgram.py extrait de Lexique 4 : 12 415 formes verbales (couverture du correcteur), 53 050 noms à genre non ambigu (route lexicale du genre), un sous-ensemble haute-fréquence embarqué dans l'app (bloc <script id="vdc-lex">) et les paires adjectivales. La grammaire suit alors l'architecture signature d'OMEGA (GRAMMAIRE_DOUBLE_VOIE.md) : double route (lexicale cgram × sublexicale règles, croisées en jointe §3) et double boucle (montante = décider ; descendante = apprendre depuis les cibles connues — descending_probe.py apprend le lexique de genre depuis l'usage : 100 % de précision, FP=0, mais data-bound : sa valeur vient du volume = vraies copies corrigées).

Pendu de phrases — falsifié comme levier (maj 18/06/2026). Tester l'accord dans le pendu : le partage de lettres révèle les terminaisons « gratis » → la métrique « erreurs » ne peut pas le récompenser, et sur le moteur (mots ≥7) le gain en DECLARE est marginal. La valeur de la cognition-phrase est dans la déclaration et le régime mot-court — c'est-à-dire le correcteur, pas le pendu. Banc & mesures : evo/PHRASE_HANGMAN_PROBE.md.

18.4 Aide-frappe, boucle d'apprentissage & déploiement maj 24/06/2026

Aide-frappe (complétion). Le correcteur est aussi une aide à la frappe temps réel : pour le mot sous le curseur, il propose une complétion (mots plus longs du même préfixe, triés par fréquence et accentués : recev→recevoir, télé→téléphone) en plus de la correction. Les accents sont restaurés via le lexique du speller (OMEGA_LEX4 est déaccentué — le pendu joue sans accents) : solution embarquée, hors-ligne. Hors périmètre de parité : une complétion est une suggestion d'UI, pas un flag FP=0 (l'invariant flags ⊆ Python n'est pas concerné).

Boucle d'apprentissage. Un profil dys unifié (DysProfile) agrège les familles d'erreurs des deux surfaces d'écriture (dictée = taux supervisé, cible connue ; correcteur = comptage en rédaction). Il pilote une sélection de mots adaptative dans la dictée — tirage pondéré sur plusieurs faiblesses (et non plus la seule famille la plus ratée), avec un seuil de variété (≈ 45 % de tirages libres + anti-répétition, jamais 3× la même famille de suite) pour ne pas démotiver — et affiche une courbe de progrès par famille. Le pendu reste hors boucle : deviner des lettres (sur un mot déaccentué) n'exerce pas l'écriture — erreur de catégorie assumée.

Trois moteurs & déploiement. Le même correcteur tourne en parité vérifiée sur trois moteurs (référence Python correcteur_probe.py ↔ app ↔ extension navigateur dys-core.js ; invariant flags ⊆ Python, FP=0, testé en CI). L'app monolithe (pendu + dictée + correcteur, tout inclus) est installable et hors-ligne (PWA). Feuille de route & état : DICTEE_ROADMAP.md ; chronologie : dictee/JOURNAL.md ; UI : boutons 🩹 Correcteur et ✍️ Dictée diag dans l'app.

Limites (honnêtes). Validation encore synthétique + held-out — pas de copies d'élèves réelles (validation terrain orthophonistes / corpus FR en ligne fetch_gec_corpus.py = à faire ; elles valident et nourrissent la boucle descendante). Couverture verbale du correcteur via liste blanche + cgram (homographes : croiser au contexte). Accord en genre du correcteur = en attente d'un POS/tagger. Normaliseur « surface » approximatif.