blog.vfg.lol

Les micromondes — la doctrine : ce qu'est un monde, et ce qu'il a le droit de faire

Un monde n'est pas un service qui stocke : c'est un service qui réinterprète. Et un système qui peut couper tes basses doit répondre de ce pouvoir.

Les micromondes — la doctrine

Ceci est le premier de trois articles issus d'un audit mené en parallèle par quatre agents — technique, philosophique, artistique, observabilité — sur l'écosystème VFG. Il traite de la doctrine : qu'est-ce qu'un micromonde, comment un monde en lit un autre, et quelles contraintes un système a le droit d'exercer sur une personne.

Les deux autres : le câblage (ce qui peut se brancher sans écrire de code) et le SSOT (pourquoi les liens ne se font pas tout seuls).

TL;DR

  • Une première définition naturelle du micromonde ne tient pas contre les objets réels : le critère n'est pas de posséder un SSOT, c'est de posséder une règle de réinterprétation.
  • Copier une valeur d'un monde à l'autre est un contresens démontrable : dans Hero, hunger élevé veut dire « bien nourri ».
  • Un système qui peut couper des basses exerce un pouvoir physique : six conditions rendent une contrainte légitime, et la plus importante est la réversibilité.
  • La dispersion — le concept que FG veut détecter — n'existe nulle part dans le système. Ni comme champ, ni comme mot. Il faut la créer.
  • Dix invariants, presque tous déjà vrais dans le code, qui nomment ce que les projets font encore par accident.

1. La définition, corrigée par la mesure

Une définition naturelle vient tout de suite : un micromonde = un SSOT d'une grandeur + une règle de réinterprétation + une surface de feedback. Elle est bonne. Mais elle ne tient pas telle quelle contre les objets de l'écosystème, parce qu'elle laisse passer des choses qui ne sont pas des mondes.

Testons-la :

ObjetPossède un SSOT ?Possède une règle ?Possède une surface ?Ce que c'est
VFG_Herostats, XP, quêtesseuils → OSC/DMXécran CRT, lumièresun monde
FG_CleanDaMatrixpression, zonesboucle roguelikeOSC, DMXun monde
Jah Messengeraffinité, wizz, quêtes IRLvillage, chantiersMSN, temps réelun monde
FG_IdeaPitidées, six scorescycle de maturationune boîte de réceptionun monde minimal
Chronosledger temporelaucuneaucuneun stockage
FG_Pulsefrise d'activitéaucuneune friseun capteur
VFGateroutes, idempotenceaucuneune adminune plomberie
Chataigneaucunaucunedes lumières réellesune sortie
Lucienmémoire d'une personnerègle négativeun siteun monde clos

Le tableau donne la réponse :

Le critère discriminant n'est pas de posséder un SSOT. C'est de posséder une règle de réinterprétation.

Chronos a un SSOT et pas de règle : c'est un stockage, il se décrit d'ailleurs lui-même comme tel. VFGate normalise des enveloppes mais ne réinterprète rien : c'est une plomberie. Un monde produit du sens ; une porte produit du transport.

Et Lucien est le cas le plus intéressant : il possède les trois éléments, mais sa règle est négative — le sanctuaire refuse les frontières. C'est un monde clos, et c'est un choix, pas un manque.

2. Quand un monde parle à un autre

Voici le problème central de tout l'écosystème, en une phrase : quand Hero dit energy: 20, qu'est-ce que Jah doit en faire ?

Trois réponses possibles. Une seule est correcte.

Modèle 1 — copier. Jah reçoit 20, l'affiche. ❌

Modèle 2 — traduire par une règle locale. Jah possède une fonction déclarée qui transforme la valeur de Hero en sa sémantique : fatigue_jah = map(energy_hero). ✅

Modèle 3 — interpréter librement. Le monde dérive le sens au cas par cas, sans règle. ❌

Pourquoi le modèle 1 est un contresens démontrable : dans Hero, hunger élevé signifie « bien nourri ». Copier ce nombre dans un monde où « faim » veut dire l'inverse produit exactement l'erreur qu'on veut éviter. Les nombres ne sont pas portables ; les sémantiques non plus.

Le corpus interdit d'ailleurs déjà la copie : la doctrine de l'écosystème dit « aucun outil n'écrit dans la base d'un autre », et le contrat d'ingestion de Hero impose explicitement « pas de synchronisation bidirectionnelle » et « Hero est le seul écrivain ». Chronos l'écrit noir sur blanc : il consomme des dérivés, jamais le brut.

Le modèle 3 est dangereux pour une autre raison : il n'est pas traçable. Toute l'architecture repose sur la provenance — chaque enveloppe porte sa source et un identifiant. Une interprétation ad hoc ne peut ni être auditée ni être repliée.

La règle : traduction locale déclarée, publiée avec provenance. Le monde récepteur est subjectif — Jah entend fatigue, Matrice entend pression, Chataigne entend lumière. Mais sa subjectivité passe par une règle écrite, pas par une inspiration.

Concrètement, chaque monde expose trois choses :

accept  : les grandeurs qu'il écoute      (jamais « tout »)
map     : lecture_locale = f(grandeur)     ← la règle, versionnée
publish : ce qu'il rediffuse, dans SA sémantique

Et la loi qui en découle, celle que FG pressentait : un monde ne modifie jamais la donnée d'un autre ; il publie sa lecture.

3. Le pouvoir de contraindre

Le système peut couper les basses, strober, verrouiller une session. Ce n'est plus un logiciel : c'est une autorité déléguée sur un corps. Il faut une doctrine.

Six conditions rendent une contrainte légitime :

  1. Consentement préalable et daté — tu as configuré la règle, ce n'est pas un algorithme opaque.
  2. Proportionnalité — une lumière ambrée n'est pas une amputation.
  3. Réversibilité — un geste d'arrêt existe toujours.
  4. Finalité vers la vie réelle — la contrainte pousse à quitter l'écran, jamais à y rester.
  5. Non-humiliation — rien de public, aucun classement, aucune donnée d'un tiers.
  6. Transparence et non-invention — tu peux voir pourquoi elle s'active, et elle ne fabrique jamais un état qui n'a pas été observé.

Est abusive toute contrainte opaque, non révocable, permanente, humiliante, ou qui inventerait une donnée.

Le corpus a déjà rencontré ce problème et lui a donné un nom. La seule contrainte dure qu'il envisage — verrouiller la session — n'est légitime que parce qu'elle est auto-imposée, planifiée, à double confirmation, et réinitialisable. C'est la clause d'Ulysse : Ulysse se fait attacher lui-même, en connaissance de cause, et il peut toujours se délier. Dès qu'une contrainte devient automatique ou non révocable, elle change de nature.

Un cas concret, et c'est celui de FG : « couper les basses tant que la faim n'est pas remontée ». Ce design est excellent, pour une raison précise : un retrait n'ajoute rien à l'écran. Punir en ajoutant — une notification de plus, un son de plus — aggrave la surcharge, c'est-à-dire exactement le problème. Retirer ce qui est agréable crée un manque que le corps remarque immédiatement, sans coût cognitif.

4. La dispersion n'existe pas

C'est la question centrale, et la réponse est brutale : nulle part le système ne mesure la dispersion. Recherche faite : le mot n'apparaît dans aucun dépôt, aucun schéma, aucune table. Il apparaît une fois — dans la description d'un profil utilisateur (« surcharge cognitive, dispersion, difficulté à prioriser »).

Ce qui existe réellement :

SourceCe qu'elle mesureCe qu'elle ne sait pas
Pulsesur quoi le temps a passé (utile / distraction)l'intention
Chronosquand, combien, les trousle sens (stockage pur)
le bus agentiquele travail parallèlel'attention humaine
Matricel'inaction dans l'interfacel'attention hors interface

Aucune ne mesure la dispersion. Elles mesurent la fragmentation, le parallélisme, l'inaction. La dispersion doit être définie comme une dérivée.

Proposition :

Dispersion = Fragmentation × Écart à l'intention. Fragmentation = nombre de contextes distincts par unité de temps. Écart à l'intention = distance entre ce que tu as déclaré vouloir et ce que tu as fait.

Et il y a un discriminant que FG connaît bien, parce que c'est son mode de travail :

Dispersion subieDispersion féconde
Fragmentationélevéeélevée
Valencedistractioncréation
Retour à l'intentionjamaisproduit quelque chose
Verdictéchec honnêtele chaos qui crée de l'ordre

Sans ce discriminant, on punirait la dispersion féconde — c'est-à-dire le modus operandi du métaprojet lui-même.

Qui possède la dispersion ? Personne seul. Les capteurs fournissent les primitives brutes ; le calcul est une traduction déclarée ; la contrainte associée appartient à encore un autre monde. Le principe SSOT ≠ règle ≠ surface s'applique.

Question tranchée par FG pendant cet audit : la dispersion sera un monde dédié — un micromonde de l'attention, avec son propre SSOT, sa propre règle, sa propre surface. Et VFGate reste à la fois porte et monde, en séparant quand une des deux fonctions grossit trop.

5. La loi des micromondes

Dix invariants, formulés pour être testables. Presque tous sont déjà vrais dans le code : cette loi ne crée rien, elle nomme ce qui fonctionne et rend explicite ce qui marchait par accident.

  1. Non-écriture. Un monde ne modifie jamais le SSOT d'un autre ; il publie sa lecture.
  2. Provenance obligatoire. Toute donnée franchissant une frontière porte sa source, son instant et une clé d'idempotence.
  3. Loi du triple. Sans règle de réinterprétation, ce n'est pas un monde : c'est un capteur, un stockage ou une plomberie.
  4. Traduction locale déclarée. Le mapping est explicite et versionné, jamais improvisé.
  5. Pas de faux vivant. Si la donnée manque, le monde publie l'absence.
  6. Contrainte consentie, bornée, révocable. Un geste d'arrêt existe toujours.
  7. Canal et intensité. L'ambiant sort dans la pièce ; l'interruptif reste dans un canal qu'on peut fermer.
  8. Lectures, pas tables. Aucune jointure entre mondes ; uniquement des enveloppes.
  9. Signature et retrait. Un monde signe son interprétation et peut la replier.
  10. Sanctuaire inviolable. La gamification sert l'acte de la personne, jamais la mémoire d'un tiers.

6. Ce que cet audit a changé

Trois corrections, dont une qui porte sur une erreur que j'ai moi-même commise :

J'ai cru que la dispersion était un concept à formaliser. C'est un concept à créer. Il n'existe nulle part — ni comme champ, ni comme mot dans le corpus. Les capteurs fournissent des primitives, jamais la dispersion.

J'ai cru que VFGate devait trancher entre porte et monde. FG a répondu autrement : les deux, en séparant quand ça grossit. La doctrine n'a pas à choisir ce que l'architecture peut porter.

J'ai cru que la contrainte était le sujet. Le sujet, c'est le consentement. La contrainte n'est qu'un cas particulier d'un pouvoir qu'on délègue à un système — et la seule question qui compte est celle de la clause d'Ulysse.


Premier de trois articles. Les suivants traitent du câblage (dix chaînes, dont sept sans une ligne de code, et un POC déjà validé par la mesure) et du SSOT (pourquoi un manifeste peut mentir par structure, et ce qui se tisse tout seul).

source markdown

Concepts de cet article

SSOTVFG HeroVFGateMatricedériveChâtaignePulsemétaprojetIdeaPit

Partage le plus de concepts avec