Les planches d’ancrage · série II · feuille 18 / 19

Le womb

La mémoire vivante — le womb : la matrice a ses deux rives, et aucun premier mouvement

Planche 18 · Le womb
14 pièces · 7 bâties · 5 partielles · 2 absentes · 0 non établies
Planche 18 — Le womb

ouvrir la planche en plein écran → · 14 pièces · 12 traverses · 7 marges

La thèse une ligne, écrite dans la matière

Le womb est bâti aux deux bouts — une rive durable qui refuse honnêtement d'écrire et une dent taillée pour lire le cheminement sans en faire une autorité — mais aucune porte vivante ne touche cette dent, aucun geste ne déclenche la gestation, et le seul client qui enverrait la trace prend un refus 503 pour un succès.

ce que la figure ancre
La figure de l'utérus n'est décorative qu'en surface ; à trois endroits précis elle fait un travail qu'aucune autre métaphore ne ferait, et c'est là qu'il faut la juger. (1) ELLE DONNE UN SIGNE À LA DIRECTION DE LECTURE. Un classeur n'a pas de dedans : il a des cases équivalentes. Le womb, lui, pose S0 intérieur fertile = +1.0 et S9 membrane lisible = −1.0 sur un axe nommé « observer_observed » (polarity.py:129-149). C'est ce signe qui permet de traiter ind / com / civ non comme trois magasins juxtaposés mais comme TROIS PROFONDEURS D'UNE SEULE MEMBRANE — et donc d'expliquer pourquoi « civ » est le plus large accès et non le plus haut privilège (filter_scopes rend toujours `civ`, membrane_service.py:458). La figure produit une conséquence vérifiable, pas une ambiance. (2) ELLE IMPOSE QUE LA PROFONDEUR SOIT DU TEMPS, PAS DU VOLUME. `aderive_womb_depth` compte des couples DISTINCTS (event_type, jour) : cent événements du même type dans la même minute valent un. Cette règle est INDÉDUCTIBLE d'une métaphore de rangement — un tiroir ne gestationne pas — et elle ferme la porte au gonflage par émission. C'est le meilleur argument pour la figure dans tout le dossier. (3) ELLE SE FAIT ARITHMÉTIQUE DANS LA LOI MONOTONE : niveau = la plus longue suite CONTINUE depuis l'étape 0 (womb-intercross.js:38-44), donc un acquis ne recule jamais et aucun coin ne se tourne. La gestation traduite en calcul. EN REVANCHE, la figure échoue à deux endroits. Les neuf traditions (law12:74-84) n'apprennent rien à qui ne connaît pas déjà le système : c'est une liste de légitimité, lue par aucun code — elle rassure l'auteur, elle n'instruit pas le lecteur. Et le vocabulaire du placenta, du seuil de viabilité, du fruit qu'on ne cueille pas vert (livre-du-proprietaire.html:780-784) décrit magnifiquement un mécanisme dont le déclencheur n'existe pas : la figure est plus avancée que la chose. Enfin, la figure porte son propre danger, et le dépôt a dû l'écrire quatre fois dans un seul fichier : parce qu'une matrice qui « porte » et « met au monde » ressemble à une instance qui ACCORDE, il a fallu interdire explicitement que le womb accorde un rôle, une appartenance ou un droit (membrane_service.py:477-480, :533-538, :550-552, :556-558). Une parabole qui oblige à poser une interdiction quadruple est une parabole qui travaille — et qui coûte.

la même figure, ailleurs
C'est, à l'échelle d'un organe, la figure déjà vue à l'échelle de l'architecture entière : LE COFFRE ET LE COUVERCLE, où l'émission se fait ENTRE les deux (fiche l-emission-se-fait-entre-les-deux-coffre-et-couvercle). Ici le coffre est la rive durable (`womb_events`, fail-close), le couvercle est la membrane qui refuse une profondeur déclarée — et c'est exactement l'ENTRE-DEUX qui manque. Le womb redit aussi, en plus petit, le défaut de signature du dépôt : la chaîne étoile→pétale→module (4 modules qui respirent, 0 entrée de chargement), les checkpoints d'approbation qui ne quittent jamais le navigateur, le registre d'organes nourri à vide, les 429 tables vides sur 448. Toujours le même dessin : deux extrémités soignées, bâties, testées, commentées — et pas de premier mouvement entre elles. La grande architecture explique la plus petite, et réciproquement : qui a compris pourquoi `aauthorize` n'a aucun appelant a compris pourquoi 429 tables sont vides. Troisième récurrence, plus fine : l'OIGNON RELATIF. Les trois échelles du womb (soi / cercle / civilisation) ne sont pas trois mémoires mais une seule lue à trois profondeurs — même mécanisme que les portes et fenêtres à quatre échelles, et le livre lui-même l'avoue à sa manière (livre-du-proprietaire.html, note : seule l'échelle de soi est éprouvée). Le womb est donc la mémoire au format oignon, avec le même trou que partout : la membrane est dessinée, le passage à travers n'est jamais franchi par personne.

Les marges 7 arbitrages ouverts, entiers
  • ⚑ Deux documents du dépôt mesurent un commit antérieur et se contredisent avec HEAD. frontend/etat-technique.html:989 affirme « aucun de ces 7 fichiers n'apparaît dans governance-init.js ni dans une page HTML vivante … Environ 3000 lignes qui ne s'exécutent jamais » — PÉRIMÉ : 5 des 7 y sont depuis la rallumée du 2026-07-26 (governance-init.js:256-268). Et :978 décrit womb.py « 109 lignes, monté dans main.py:2016 » : le fichier en fait 226 et est monté à :2531. Le défaut qu'ils décrivent s'est déplacé, il n'a pas disparu — ce n'est plus le chargement qui manque, c'est le déclenchement.
  • ⚑ La quaternité cardinale manque dans toute la chaîne womb. frontend/js/womb-core.js:1148-1158 porte un ORCHESTRATOR_GUIDE hors gabarit (clés aria_role / nova_role / orion_role) ; womb-progression.js:234-241 porte aria/nova/orion sans keli. Et womb-progression.js:122 annonce `womb.mue` comme « la MUE (cérémonie Keli) » : la cérémonie nomme son officiant, et aucun gabarit de la chaîne ne le déclare. Ces modules sont dans l'arrière des 1114 mesurés (CLAUDE.md) — aucun backfill de masse, mais tout module touché ici porte les quatre.
  • Le chiffre de l'énoncé initial (« les six entrées de la gestation ») n'est établi par rien que j'aie pu lire. Mesuré : 3 topics womb.* côté womb-core (identiques en events_in et events_out, :1141-1143) + 1 chemin direct womb-progression → /api/v1/womb/events. Je rends 4 et je dis comment je compte, plutôt qu'un chiffre rond.
  • ⚠ Je n'ai interrogé AUCUNE base. Tout ce qui concerne l'existence et le contenu de `womb_events` en production est hors de cette planche : la migration est dans la chaîne alembic, c'est tout ce que le dépôt peut prouver. La fiche mémoire quatre-contrats-distincts-womb-nest-pas-autorite.md rapporte « 0 ligne mesurée en prod le 2026-08-07 » ; je ne le confirme ni ne l'infirme.
  • La collision `requester_merit` décrite par la fiche mémoire (porte.py:205, deux unités sous un seul nom) est RÉSOLUE au commit : le nom a disparu de la signature de `aauthorize`, et `porte.py:206` passe désormais `engagement_level` / `required_engagement_level`, jamais un mérite. La correction est réelle. Elle a résolu une homonymie dans une porte que rien n'emprunte.
  • Deux modules du même paquet canon se contredisent sur le mot TRONC (CLAUDE.md, piège mesuré) : `spheres_libelles.sphere_de('TRONC')` rend S0, `arbre_canon.TRONC` vaut S9. La topologie womb S0⇄S9 est précisément l'axe sur lequel ces deux réponses s'opposent. La planche n'arbitre pas — elle signale que la bipolarité du womb est le lieu exact de ce désaccord.
  • NON ÉTABLI, et ce qui manque pour trancher : l'ordre réel de chargement entre `memory-manager.js` (governance-init:312) et `bio-tick-master.js` (:335) face à l'auto-init DOMContentLoaded (memory-manager.js:1266). Il décide si l'oubli actif tourne ou non. Un chargement observé dans un navigateur suffirait.
Les blancs déclarés ce que la mesure n’a pas pu voir

Ce qui tient après tout doute : la rive existe comme contrat (models/womb.py:16-43, migration v82_054 dans la chaîne, deux imports qui l'enregistrent) ; la bouche est montée et atteignable (main.py:2531, trois endpoints) ; le refus d'écrire sans base est réel et dit sa raison (womb.py:108-114, :139-143) ; la règle de profondeur est nommée avec son unité de normalisation — un point = un couple distinct (event_type, jour), donc du temps traversé et non du volume (membrane_service.py:493-527) ; la loi monotone est bâtie ET lue (womb-intercross.js:38-55 → womb-progression.js:87,97, les deux chargés) ; la frontière mue↔signature est gardée par un test qui lit la source (womb-progression-semantic-boundary.test.js:23-32) ; l'oubli supprime au lieu d'archiver (memory-womb.js:708,718). Et ce qui ne tient pas : entre la rive et la membrane, il n'existe aucun mouvement — `completeStage`, `addProgress`, `conceive`, `enterDormancy`, `checkGermination`, `syncToBackend`, `aauthorize`, `aderive_womb_depth`, `from_womb` : neuf organes, zéro appelant de production entre eux. La matrice a son dedans, son dehors, sa loi et son refus. Elle n'a pas de premier geste.

Les traverses 12 relations, de source à source
frontend/js/womb-progression.js:134 (atomPost /api/v1/womb/events)
le seul producteur câblé sur la bouche serveur — module chargé, route montée
→backend/app/routers/womb.py:150 (POST /events)governance-init.js:265 charge le module ; main.py:2531 monte le routeur ; mais completeStage (:108), qui seul appelle syncBackend, n'a aucun appelant
frontend/js/loteria-engine.js:192 (publie loteria.pattern.completed)
l'arête que le contrat annonce et que le code ne pose pas — aucun .on( dans womb-progression.js
→frontend/js/womb-progression.js:230 (events_in déclaré)loteria-bridge.js:68 capte le topic, re-publie 3 topics, ne touche jamais ATOMWombProgression
frontend/js/womb-core.js:1006 (WombRoots.syncToBackend)
le contrat de lot existe des deux côtés (cac637190) et rien ne l'emprunte : zéro appelant de syncToBackend, pas même interne
→backend/app/routers/womb.py:160 (POST /events/batch)git grep syncToBackend sur frontend/ hors tests : aucune occurrence dans womb-core.js hors la définition
frontend/js/womb-core.js:1032 (chunk.forEach e.synced = true)
le client prend le refus pour un succès — atomPost rend la réponse sans lever (frontend/config.js:306) et le statut n'est jamais lu
→backend/app/routers/womb.py:109-114 (503 fail-close)le docstring du routeur (:100-103) affirme l'inverse, en citant womb-core.js:1027-1029
backend/app/routers/womb.py (INSERT :119-128)
écriture et lecture de la même rive, avec la règle de normalisation nommée (1 point = 1 couple distinct event_type×jour)
→backend/app/services/membrane_service.py:493 (aderive_womb_depth, SELECT)les deux existent et visent womb_events ; aucune des deux extrémités n'est jamais sollicitée en production
backend/app/services/membrane_service.py:529 (aauthorize)
les portes vivantes appellent la variante SYNCHRONE authorize_axes et ne passent jamais womb_depth : la dent asynchrone n'est jamais engrenée
→backend/app/services/knowledge_gate/porte.py:206 · routers/coquille_router.py:119 · services/bureau_service.py:146 · services/community_trunk_service.py:295git grep aauthorize sur backend/ (deux arbres) : appelants = tests seulement
frontend/js/womb-intercross.js:38-55 (la loi monotone)
la loi est lue par l'organe qui compte les étapes — l'un des rares joints womb réellement fermé
→frontend/js/womb-progression.js:87,97 (level, canOpen)les deux modules sont dans les deux tableaux de governance-init (262/265 et 1106/1109)
frontend/js/womb-intercross.js:38-55 (la loi)
l'enforcement lit la loi mais n'est jamais chargé — 0 occurrence dans governance-init
→frontend/js/womb-enforcement.js:43,55comptage sur git show HEAD:frontend/js/governance-init.js
frontend/js/memory-manager.js:514 (consommateur mem-deep)
le déclencheur de l'oubli — présent, mais sur la seule branche BioTickMaster
→frontend/js/memory-womb.js:686 (activeForgetting)memory-manager.js:481 garde la branche ; la branche de repli :536-541 n'appelle que cleanup()
hf-atom-tools/atom_canon/laws/law12_womb_perspective.py:25-27 (WombPole)
la bipolarité devient un axe signé avec refus explicite — le joint canon est fermé
→hf-atom-tools/atom_canon/primitives/polarity.py:129-149 (from_womb)laws/__init__.py:65 importe law12 ; polarity.py lève ValueError hors des deux pôles
hf-atom-tools/atom_canon/primitives/polarity.py:129 (from_womb)
aucun flux ne consomme l'axe signé — seuls les tests du paquet canon l'appellent
→backend/ et frontend/git grep from_womb : hf-atom-tools/atom_canon/tests/test_polarity_primitive.py:55-57 uniquement
backend/app/models/womb.py:16
le modèle est dans le metadata d'alembic ET dans le paquet models — le contrat de table est réellement enregistré
→backend/alembic/env.py:22 et backend/app/models/__init__.py:49deux imports explicites mesurés au commit
La nomenclature 14 pièces, chacune avec sa source
1Les 9 traditions — la figure universelle9 — CONFIRMÉ par comptage des clés : vedique Hiranyagarbha · tantrique Yoni · egyptien Nout · chretien Theotokos · kabbale Shekhinah · gnostique Sophia · bouddhiste Tathagatagarbha · taoiste Xuan Pin · quantique vide_QEDhf-atom-tools/atom_canon/laws/law12_womb_perspective.py:74-84 ; importé par hf-atom-tools/atom_canon/laws/__init__.py:65 · confirmé dans le codeChargé (le paquet laws l'importe), mais lu par rien : aucun appelant de WOMB_TRADITIONS_S2 hors du fichier et des docs. C'est une liste de légitimité, pas un organe. Le livre (livre-du-proprietaire.html:835-839) le dit lui-même : « on garde la figure ; on laisse la métaphysique ».
2La rive durable — la table womb_eventsChaînon alembic CONFIRMÉ : v82_055_agent_mirror_world_contract.py porte down_revision = "v82_054_womb_events_contract" — la révision est dans la chaîne, en amont de la tête prod annoncée v82_260_atom_positionsbackend/app/models/womb.py:16-43 (5 colonnes + Index ix_womb_events_user_recorded_at) ; importé par backend/app/models/__init__.py:49 ET backend/alembic/env.py:22 ; DDL backend/alembic/versions/v82_054_womb_events_contract.py:22-48 · confirmé dans le codeContrat bâti ; existence en base NON VÉRIFIÉE depuis ici (lecture seule, aucune base interrogée — donc je ne la nomme pas, et elle ne compte pas). Deux documents du dépôt affirment le contraire : frontend/etat-technique.html:978 et :1008 annoncent « womb_events N'EXISTE PAS dans la base prod » — mesure antérieure au fail-close du 2026-08-21, et la même ligne décrit un womb.py de « 109 lignes monté à main.py:2016 » alors qu'il en fait 226 et est monté à :2531. Document périmé, pas contre-preuve.
3Le routeur /api/v1/womb — la bouche serveur3 endpoints — POST /events (:150), POST /events/batch (:160), GET /status (:178). Préfixe vide dans main.py, donc le prefix du routeur s'applique : /api/v1/womb. Atteignable.backend/app/main.py:2531 register_router("app.routers.womb", "", ["Womb"], "womb") ; prefix propre déclaré backend/app/routers/womb.py:41 · confirmé dans le code
4La consolidation vivante — les 3 profondeurs de souvenir6 consommateurs bio-tick enregistrés (memory-manager.js:481-531) : mem-hot-cleanup 10t ≈ 4,3 s · mem-consolidate 50t ≈ 21,6 s · mem-archive 100t ≈ 43,2 s · mem-pulse 257t ≈ 111 s · mem-deep 1000t ≈ 7,2 min · mem-cloud 2500t ≈ 18 min — CONFIRMÉ par lecturefrontend/js/governance-init.js:307-312 charge memory-hot.js · memory-warm.js · memory-cold.js · memory-stigmergic.js · memory-womb.js · memory-manager.js ; frontend/js/memory-manager.js:294-296 instancie les trois paliers ; :323 appelle _startCleanupInterval ; auto-init DOMContentLoaded :1266-1272 · confirmé dans le code
5La loi monotone — womb-intercross4 wombs W0→W3, niveau 9 = né, 0 saut possible — CONFIRMÉ. Le gating est aussi recodé en repli dans womb-progression.js:102-104 si la loi est absente.frontend/js/womb-intercross.js:38-44 (level = plus longue suite CONTINUE depuis l'étape 0) et :49-55 (canOpen : W_n n'ouvre que si W_{n-1} ≥ 9) ; chargé par frontend/js/governance-init.js:262 et :1106 ; LU par frontend/js/womb-progression.js:87 et :97, lui-même chargé :265 et :1109 · confirmé dans le code
6La frontière sémantique de la naissance — une mue n'est pas une signature1 garde, 1 test qui l'épingle par lecture du fichier source — CONFIRMÉfrontend/js/womb-progression.js:120-123 : à niveau 9 le module publie `womb.mue` puis son `birth_topic`, et jamais `covenant.soul.minted` ; tenu par frontend/js/__tests__/unit/womb-progression-semantic-boundary.test.js:23-32 (assert topics.not.toContain('covenant.soul.minted')). Module chargé governance-init:265 et :1109. · confirmé dans le code
7L'empreinte du womb dans le dépôt18 fichiers nommés womb (re-mesuré, hors archives/ leaves/ memory/ scripts/ recovery-artifacts/). Côté frontend : 10 modules + 1 test ; 8 des 10 sont chargés par governance-init (womb-intercross:262 · womb-civilisationnel:263 · womb-cheminements:264 · womb-progression:265 · womb-core:266 · womb-tutor:268 · memory-womb:311 · gestation-womb:840), 2 ne le sont pas (womb-enforcement, womb-auto-evaluation). Côté backend : models/womb.py, routers/womb.py, 1 migration, 2 tests. Côté canon : law12 + son test.git ls-files sur backend/ + frontend/ + hf-atom-tools/ · confirmé dans le code
8La bipolarité S0⇄S9 branchée sur un axe signé2 pôles, 1 axe signé, 1 refus explicite — CONFIRMÉ par lecture du codelaw12_womb_perspective.py:25-27 (WombPole INTERIOR_FERTILE="S0" / MEMBRANE_LISIBLE="S9") + hf-atom-tools/atom_canon/primitives/polarity.py:129-149 (Polarity.from_womb → valence +1.0 / -1.0, axis="observer_observed", ValueError sur tout autre pôle) · confirmé dans le codeAucun appelant de production. `from_womb` n'est appelé que par hf-atom-tools/atom_canon/tests/test_polarity_primitive.py:55-57 ; `WombTopology` par personne. `atom_canon` EST importable depuis le backend (backend/app/main.py l'importe), donc la loi est atteignable en principe — elle n'est atteinte par aucun flux.
9Le fail-close d'écriture — honnête au serveur, perdant au client2 portes de refus, toutes deux verbatim avec leur raison — CONFIRMÉbackend/app/routers/womb.py:108-114 (db None → 503 « événement NON enregistré ») et :130-143 (échec base → rollback + 503 avec le type et le message de l'exception) · confirmé dans le code⚑ LA JUSTIFICATION DU REFUS EST FAUSSE DANS SON PROPRE DOCSTRING. womb.py:100-103 affirme : « le client est bâti pour ce refus : frontend/js/womb-core.js:1027-1029 ne marque `synced` qu'après un envoi réussi ». Mesuré : `atomPost` REND la réponse et ne lève pas sur un 5xx (frontend/config.js:306 `return response;` — seuls AbortError et les erreurs réseau lèvent, :307-317). womb-core.js:1021-1032 fait `await atomPost(...)` puis, SANS regarder `response.ok` ni le statut, `chunk.forEach(function (e) { e.synced = true; })` — un 503 est donc enregistré comme un envoi réussi et les événements sont jetés. Le serveur refuse honnêtement ; le client se confirme à lui-même. Second maillon : le repli mémoire `_womb_events` (womb.py:47) n'est plus écrit par AUCUN chemin — la branche dégradée de GET /status (:215-226) rend donc toujours une liste vide, structurellement.
10L'oubli actif — la mémoire supprime, elle n'archive pasSeuil 0.108 et fenêtre 7 jours — CONFIRMÉS dans le code. Déclencheur : 1 seul, et conditionnel.frontend/js/memory-womb.js:681-726 (activeForgetting : warm score < 0.108 → mgr.warm.delete :708 ; cold jamais rappelé en 7 jours → mgr.cold.delete :718) ; déclenché par frontend/js/memory-manager.js:514 dans le consommateur mem-deep · confirmé dans le codeLe déclencheur n'existe QUE sur la branche BioTickMaster (memory-manager.js:481 `if (bioTick && typeof bioTick.register === 'function')`). La branche de repli (:536-541) n'installe qu'un setInterval 5 min appelant `cleanup()`, qui n'appelle PAS `activeForgetting`. Or `memory-manager.js` est chargé au rang 312 de governance-init et `bio-tick-master.js` au rang 335 : je n'ai pas pu établir lequel gagne à l'exécution (aucun navigateur, lecture seule). Si l'auto-init DOMContentLoaded précède bio-tick-master, l'oubli ne tourne jamais. NON ÉTABLI : l'ordre réel. Ce qui manque pour trancher : un chargement observé.
11LE WOMB N'EST PAS UNE AUTORITÉ — la règle en code« Quatre fois en code » = NON CONFIRMÉ comme annoncé. Mesuré : la règle est énoncée dans UN SEUL fichier, à 3 points de texte + 1 geste structurel. Hors membrane_service.py, la formule « jamais une autorité » n'apparaît qu'en 2 endroits sans rapport (services/pay/money_adapter_registry.py:114, frontend/js/projection-field-observation-bridge.js:23). Zéro occurrence dans routers/womb.py, zéro dans la chaîne frontend.backend/app/services/membrane_service.py:477-480 (commentaire de bloc « la dent ») · :533-538 (docstring d'aauthorize : « womb_depth n'existe pas dans la signature ») · :550-552 (« une lentille de présentation, jamais une autorité d'opération ») · :556-558 (womb_depth=0 et required=1 forcés sur toute écriture) · confirmé dans le codeLe refus structurel est réel et testé : `aauthorize` n'accepte ni `requester_merit` ni `engagement_level` (TypeError), tenu par backend/tests/unit/test_membrane_womb_dent.py:87-94. Mais la règle garde une porte que personne n'ouvre — voir la pièce suivante.
12LE PREMIER MOUVEMENT — le producteur est câblé, son déclencheur est absent« Six entrées de la gestation » = NON ÉTABLI, et faux tel quel. Mesuré : 3 topics de gestation côté womb-core (womb.gestation.created · womb.dormancy.enter · womb.dormancy.germinate — les 3 mêmes en events_in et events_out, womb-core.js:1141-1143) + 1 chemin direct côté womb-progression. Soit 4 entrées, pas 6.frontend/js/womb-progression.js:129-137 (syncBackend → atomPost('/api/v1/womb/events', {event_type:'gestation.stage', …}), appelé par completeStage :124) ; frontend/js/womb-core.js:290, :469, :537 (les 3 publications womb.*) et :1006 (WombRoots.syncToBackend, seul envoyeur vers /events/batch) · confirmé dans le code⚑ C'EST ICI QUE LA PLANCHE SE JOUE, et la thèse initiale se corrige : un producteur EST câblé sur la route (womb-progression.js:134), dans un module CHARGÉ. Ce qui manque n'est pas la bouche, c'est le geste. (a) `completeStage` (:108) et `addProgress` n'ont AUCUN appelant hors du fichier (mesuré hors tests) ; womb-progression.js ne porte AUCUN `.on(` ni `subscribe(` alors que son MALLEABILITY_CONTRACT déclare events_in ['loteria.pattern.completed'] (:230) — l'abonnement déclaré n'existe pas en code. Le topic EST émis (frontend/js/loteria-engine.js:192) et capté par frontend/js/loteria-bridge.js:68, qui re-publie trois topics et ne touche jamais ATOMWombProgression. (b) Côté womb-core : `conceive()` n'a aucun appelant — frontend/js/loteria-cheminement.js:20 l'écrit déjà noir sur blanc (« `conceive()` n'est appelé PAR PERSONNE ») ; `enterDormancy` et `checkGermination` non plus. Et `WombRoots.syncToBackend()` n'a AUCUN appelant du tout, pas même dans womb-core.js. `ATOMWombRoots.start()` est bien appelé (governance-init:1827) : il s'abonne à 3 topics que personne n'émet et remplit une file que personne ne vide.
13L'enforcement de la loi monotone0 occurrence de « womb-enforcement » et 0 de « womb-auto-evaluation » dans frontend/js/governance-init.js au commit (mesuré par comptage) — les 2 modules ne sont donc PAS chargésfrontend/js/womb-enforcement.js:43 et :55 lisent global.ATOMWombIntercross ; frontend/js/womb-auto-evaluation.js:92 déclare emits ['womb-enforcement'] · confirmé dans le codeSon propre en-tête l'annonçait : womb-intercross.js:16-17 « il fournit la LOI ; le câblage d'enforcement viendra séparément ». Il n'est pas venu. 2 des 10 modules womb du dépôt sont hors des deux tableaux de governance-init.
14Le seul lecteur de la rive n'a aucun appelantAppelants mesurés dans le dépôt (git grep, deux arbres sous backend/) : TESTS SEULEMENT — backend/tests/unit/test_membrane_womb_dent.py:62-139 et backend/tests/unit/test_membrane_axes_separation.py:127. ZÉRO appelant de production.backend/app/services/membrane_service.py:493-527 (aderive_womb_depth : COUNT(DISTINCT (event_type, DATE(recorded_at))) sur womb_events) et :529-591 (aauthorize) · confirmé dans le codeLes 7 appelants vivants de la membrane passent tous par la variante SYNCHRONE `authorize_axes`, qui prend `womb_depth` en PARAMÈTRE — et aucun ne le passe : backend/app/services/knowledge_gate/porte.py:206, backend/app/routers/coquille_router.py:119, backend/app/services/bureau_service.py:146, backend/app/services/community_trunk_service.py:295, plus les renvois de core/conduit_membranes.py:26 et relation_mutuelle_service.py:143. La dent est taillée ; la roue ne la touche pas.
Le lexique de cette planche 18 termes à deux registres · 7 avec un jumeau

On ne remplace pas le nom canon, on le double : le terme reste l’autorité, la glose est une poignée. Le lexique entier est sur sa propre page.

Face (d'une portée)Le nom sous lequel une même portée se présente selon qui la regarde : la base, l'écran, l'agent, ou le livre du lecteur.
arêteUn lien enregistré une seule fois, qui se lit dans un sens ou dans l'autre selon le côté d'où on le regarde.
membrane (membrane_service, S9 lisible)L'organe qui décide si une lecture passe, pas encore, ou jamais — en croisant où l'on lit, qui lit, son cheminement, son rang et son rôle.membranes A · B · C (conduit_membranes) — Les trois seuls passages déclarés du système : ce qui entre, ce qui remonte vers le plus large, et ce qui sort vers un lecteur.
lieu (type de nœud)Le genre de place qu'occupe un endroit ; le dépôt en compte déjà plus de cinq mille, tous géographiques.
TRONC (arbre_canon.TRONC)C'est la position centrale de la structure, celle où ce que les huit autres produisent est compilé et gardé ; S9 l'occupe.TRONC (libellé, face données de S0) — C'est le nom sous lequel S0 apparaît quand on la regarde du côté de ce qui est enregistré.face (enum Face) — Elle dit sous quel angle on nomme une sphère : le même objet reçoit un nom différent selon l'angle choisi.
TRONC (libellé, face données de S0)C'est le nom sous lequel S0 apparaît quand on la regarde du côté de ce qui est enregistré.TRONC (arbre_canon.TRONC) — C'est la position centrale de la structure, celle où ce que les huit autres produisent est compilé et gardé ; S9 l'occupe.
branche (BRANCHES)C'est la position des huit sujets qui produisent du contenu : S1 à S8, pas une de plus ni une de moins.
face (enum Face)Elle dit sous quel angle on nomme une sphère : le même objet reçoit un nom différent selon l'angle choisi.
status (green / yellow / red)C'est la note de confiance mise sur l'étiquetage d'un message : vert, le classement est bon ; rouge, il a échoué.
topicC'est le nom exact d'un message, celui qui décide qui le recevra ; il s'écrit en trois morceaux séparés par des points.
mériteLe fait de comprendre vraiment par quoi une chose arrive — ce qui ne s'imite pas, parce qu'imiter la compréhension c'est ne pas l'avoir.
fail-closeQuand l'outil ne peut pas faire le travail pour de vrai, il refuse et dit pourquoi, au lieu de repondre « c'est fait ».
porteUn passage qu'on traverse vraiment : il faut une permission pour le franchir, et il laisse une trace de ce qui est passe.porte (Porte de la Connaissance, knowledge_gate/porte.py) — Elle decide combien d'un document on montre a quelqu'un — de rien du tout jusqu'au texte complet — en six crans, et par defaut elle ne…
porte (Porte de la Connaissance, knowledge_gate/porte.py)Elle decide combien d'un document on montre a quelqu'un — de rien du tout jusqu'au texte complet — en six crans, et par defaut elle ne montre rien.porte — Un passage qu'on traverse vraiment : il faut une permission pour le franchir, et il laisse une trace de ce qui est passe.fenetre — Une vue sur ce qui se passe ailleurs : on voit, on ne prend rien, et rien ne change de main.
gardeUn controle pose sur le chemin d'une action, qui la laisse passer ou la refuse.
membrane (membrane lisible, S9)registre spirituelElle decide, pour chaque lecture, si la personne peut voir la chose maintenant, pas encore, ou jamais — et elle ne rend pas un simple oui/non : elle dit lequel des trois.MONDES — La liste fermée des sept espaces où une chose peut avoir une adresse, et deux façons d'écrire le même nom y comptent pour deux espaces…membrane (routeur /api/v1/membrane — passages entre les 3 mondes) — Elle enregistre les transferts d'un contenu d'un espace vers un autre — du prive au collectif, du collectif au public — et permet de les…
membrane (routeur /api/v1/membrane — passages entre les 3 mondes)Elle enregistre les transferts d'un contenu d'un espace vers un autre — du prive au collectif, du collectif au public — et permet de les annuler.membrane (membrane lisible, S9) — Elle decide, pour chaque lecture, si la personne peut voir la chose maintenant, pas encore, ou jamais — et elle ne rend pas un simple…
KeliLe quatrieme interlocuteur : celui qui tient le cote intime et verifie qu'une decision respecte les regles du projet avant qu'elle passe.

Matière : PLANCHES-MATIERE-4-OUBLIEES-2026-10-03.json (sha256 7a2a3299f5ed) — planche de matière « La mémoire vivante — le womb : la matrice a ses deux rives, et aucun premier mouvement ». Générée par scripts/generer-planches-ancrage.py ; la version « avant » (avant le passage du sceptique) que la matière conserve n’est pas dessinée — c’est la version dégradée au doute qui l’est, et les marges portent les dégradations.