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

Étoile, pétale, semence

L'axe vertical : étoile, pétale, semence — et l'endroit où il ne naît pas

Planche 7 · Étoile, pétale, semence
26 pièces · 5 bâties · 15 partielles · 6 absentes · 0 non établies
Planche 7 — Étoile, pétale, semence

ouvrir la planche en plein écran → · 26 pièces · 19 traverses · 15 marges

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

L'axe étoile→pétale→module est écrit sur toute sa longueur mais ne circule nulle part : l'étoile de l'usager ne naît JAMAIS (ses deux déclencheurs ne sont publiés que sur auth.html et inscription.html, les deux pages où le module n'est pas chargé), les cinq pétales-archanges n'ont ni chargeur ni aucun abonné à leur expire, la porte de refus vit dans un module que personne ne charge, et la Fleur enregistre son battement ~900 ms avant que l'horloge existe.

Les marges 15 arbitrages ouverts, entiers
  • ⚑ LE COUP PRINCIPAL. La thèse de la collecte — « l'axe ne circule que par le haut, l'étoile de l'usager naît » — est fausse à sa racine. L'étoile ne naît JAMAIS. Les deux déclencheurs de createStar sont publiés exclusivement sur auth.html:778 et inscription.html:958 (et spiral-router.js:708, non chargé). Ni 'auth' ni 'inscription' n'est dans GOVERNANCE_PAGES (governance-init.js:50-64) : ces pages reçoivent le tableau LÉGER, qui ne contient pas stellar-identity.js. Le MessageBus est en-processus : un publish sur la page d'inscription ne traverse pas la navigation. Et createStar n'a aucun appelant externe. Donc le haut de l'axe est aussi mort que le bas — la planche ne peut PAS dessiner une flèche pleine depuis l'étoile.
  • ⚑ « 4 consommateurs » est faux trois fois. Mesure : 3 abonnés en code runtime, pas 4 (les 2 autres citations sont un test et catalogue-modules.json). Sur ces 3, chip-nft-covenant.js a 0 entrée de chargement. Sur les 2 restants, genetic-mapper.js:900 exige `data.user_id` que stellar-identity.js:181-186 n'émet jamais. Le compte honnête : 1 consommateur qui lirait correctement — et il n'est jamais déclenché.
  • ⚑ UN BATI DÉGRADÉ : le refus de germination. La porte est juste, elle refuse avec sa raison (petal-fractal-bloom.js:145-146, 160, 166) — mais elle est dans un fichier à 0 entrée de chargement, que la collecte a elle-meme classé PARTIEL. Annoncer BATI pour la porte et PARTIEL pour la maison qui la contient est une contradiction interne : la porte hérite de l'état de son hote.
  • ⚑ UN BATI DÉGRADÉ : la polarité hybride. L'invariant existe et est exporté, mais validate_polarity_hybrid n'a qu'un appelant de service — build_canonical_signature — et celui-là a ZÉRO appelant de production. Fouillé LES DEUX arbres sous backend/ (app/ et les 29 racines hors app/) plus frontend/ : seul backend/tests/unit/test_fractal_pipeline_polarity.py l'appelle. Un invariant que rien n'évalue en production n'est pas branché.
  • ⚑ UN BATI DÉGRADÉ : l'étiquette « noyau / Keli / Point 0 ». 0 occurrence du mot « Keli » dans les 7 modules de l'axe. L'ADR écrit « la Graine porte DÉJÀ l'étiquette » — c'est une phrase de l'ADR (lignes 59, 95, 146), pas une valeur de code. La collecte a relu un document comme si c'était du code.
  • ⚑ PIÈCE NEUVE, non annoncée : le battement de la Fleur n'arrive jamais. flower-engine.js cherche `global.ATOMBioTick` une seule fois, à DOMContentLoaded+1100ms (:1302, :1021-1026). bio-tick-master.js est en TIER 3 : chargé via setTimeout(..., 2000) (governance-init.js:1529) et `start()` appelé seulement après. L'objet n'existe pas encore, et le fichier n'a ni réessai ni écoute de secours de bio.tick.heartbeat. La géométrie 19 est chargée ; elle ne respire pas. ⚠ Lu dans la source, jamais observé dans un navigateur — voir le plancher.
  • ⚑ UNE FICHE DE MÉMOIRE PRISE EN DÉFAUT. memory/chaine-etoile-petale-module-batie-et-jamais-chargee.md affirme « la boite noire EST chargée (1 entrée) » et « internal-motion-engine aussi ». Re-mesuré au commit 8addf1c94 : black-box-recorder.js = 0 entrée dans governance-init.js, internal-motion-engine.js = 0. La seule balise qui les charge est frontend/archives/orphan-pages/keli-dashboard.html — une page ARCHIVÉE. Une page archivée n'est pas une entrée de chargement. La meme fiche dit aussi « GeoFrequency est nommé par 0 autre module » : geo-frequency-bridge.js existe ET a 1 entrée de chargement.
  • ⚑ UN AUTRE DOCUMENT DU DÉPOT QUI MENT, dans sa case « preuve ». frontend/etat-technique.html:626 écrit : « Les 4 sont listés dans frontend/js/governance-init.js (grep -c = 1 chacun) donc réellement chargés » — pour dnft-antenna, multi-nft-orchestrator, chip-nft-covenant, hematopoiesis-mint-loop. Mesuré : chip-nft-covenant.js = 0, et governance-init.js:440 dit noir sur blanc que multi-nft-orchestrator.js n'est DÉLIBÉRÉMENT pas chargé. La page d'état technique affirme une mesure qu'elle n'a pas faite.
  • ⚑ UN ÉTAT RELEVÉ, pas dégradé : le type de nœud. Il ne s'appelle pas « personne » mais `individu`, et il EXISTE au contrat — scope_membership_service.py:48 (NODE_KINDS, refus à :236-239) ET contrainte CHECK en base (alembic v82_299:27-28). Ce n'est donc pas ABSENT mais PARTIEL : le contrat est posé, l'écrivain manque. Les seuls producteurs de production écrivent « lieu » ou NULL (country_spine_importer.py:72,78,84) ; « agent » n'apparait que dans un test. Chercher la FONCTION et non le mot marche dans les deux sens : ici c'est le MOT de la collecte qui a manqué la chose.
  • ⚑ L'EXPIRE EST ABSENT, mais pour une raison plus nette que « le module n'est pas chargé ». Les 5 cibles de seal-petal-distributor existent toutes, et QUATRE sur cinq sont effectivement chargées (geo-frequency-bridge, salvation-mesh, caduceus-yantra-ouroboros, chronos-alchemical-regulator). Ce qui manque n'est pas la cible : c'est l'OREILLE. Zéro module du dépot ne s'abonne à `petal.*.exhale`. Le distributeur publierait dans le vide meme s'il était chargé — et c'est une bonne nouvelle pour le geste : brancher 5 abonnements coute moins que bâtir 5 cibles.
  • ⚑ L'ÉTIQUETTE FAUSSE EST CHARGÉE, LE VRAI DJED NE L'EST PAS. interdimensional-map.js:421 (1 entrée) appelle black-box-recorder.js « Boite Noire (Djed) ». Le Djed du village, lui — village-map-generator.js:9, colonne 12 niveaux — a 0 entrée. Donc en runtime il n'existe qu'un Djed : le faux. C'est le meme mécanisme que l'étiquette TRONC = Sphère 6 de arbre-spheres.js:19 que CLAUDE.md signale déjà.
  • ⚑ « ZÉRO DES 43 NE POUVAIT SE CHARGER » est faux d'une unité. 43 .js confirmés dans backend/app/engines/ au commit (sur 50 fichiers du dossier). 42 portent un `export` de premier niveau ; backend/app/engines/emerald_system/Emerald_Tablet_Reader.js n'en porte aucun — que des `const` — et se chargerait comme script ordinaire. Aucun des 43 n'a d'entrée de chargement, donc l'état ABSENT tient ; c'est la RAISON qui était surdite.
  • ⚠ ARBITRAGE OUVERT, à ne pas trancher sur une planche : les arités de la figure. 5 (seal-petal-distributor.js), 6+1 (l'ADR, qui EXIGE 6 pour sa reconstruction), 7 (les 7 rayons de genetic-mapper.js:55-128 et flames_service.py), 12 (village-map-generator.js:9), 13 (flame_registry.py), 19 (flower-engine.js, recompté). Six comptes pour une seule figure. La planche doit MONTRER le désaccord, pas en choisir un.
  • ⚠ CE QUE JE NE PEUX PAS TRANCHER : la pièce « l'étiquette Djed, fausse » est confirmée en code, mais l'état BATI qu'elle porte décrit un DÉFAUT. Un gabarit à trois états ne sait pas dire « bâti et faux ». Décision pour Jonathan : faut-il un quatrième jeton (BATI_FAUX / ÉTIQUETTE) pour que la planche ne colorie pas un défaut comme un acquis ?
  • ⚠ DÉCISION DE DESSIN : flower-redundancy.js est le SEUL module de l'axe présent dans les deux tableaux de chargement (FULL et LÉGER) — et il a 0 consommateur et aucune auto-initialisation. C'est l'état le plus traitre de la planche : chargé, conforme, et muet. Il mérite un trait propre, distinct de « non chargé ».
Les blancs déclarés ce que la mesure n’a pas pu voir

Ce que cette collecte N'A PAS pu voir. (1) AUCUNE EXÉCUTION. Rien n'a été ouvert dans un navigateur ni appelé sur le serveur : la course entre flower-engine (DOMContentLoaded+1100ms) et le TIER 3 (setTimeout 2000) est LUE dans les sources, jamais observée — c'est une course très probable, pas un fait runtime, et une page où DOMContentLoaded arrive tard l'inverserait. (2) AUCUNE BASE INTERROGÉE. Je n'ai lu ni `scope_membership` ni `projection_nodes` : je dis qu'aucun code n'écrit `node_kind='individu'`, je ne peux PAS dire qu'aucune ligne n'en porte (import historique, SQL manuel, migration de données). La base de production est atom_db sur compose-atom-db-1 (138.197.132.63) et je ne l'ai pas touchée. (3) PÉRIMÈTRE DES « ZÉRO APPELANT ». Côté backend, les sweeps de build_canonical_signature, node_kind et polarity_hybrid ont couvert LES DEUX arbres : backend/app/ et les racines hors app/ (agents, services, core, core_engines, modules, verticals, governance, models, schemas, middleware, systems...). Côté frontend, les « 0 entrée de chargement » couvrent frontend/js/governance-init.js (les deux tableaux + SPHERE_MODULE_MAP, grep sur tout le fichier) et les balises `<script>` de frontend/*.html au commit — mais PAS : un chargement par un autre loader JS (temple-drivers-loader.js et ses pareils ont été vus en commentaire, pas audités), ni frontend/pages/*.html s'il existe d'autres arborescences HTML, ni un import dynamique. (4) MESURE AU COMMIT. Tout est lu à `git show HEAD:` sur 8addf1c9481559a8e9dbc97b1fc0bcc85e10a0e1, branche integration/fondateur-p0 — l'arbre de travail porte ~200 fichiers modifiés non commités, dont backend/app/main.py, et aucune de mes mesures ne les voit. (5) NON ÉTABLI, nommément : je n'ai pas vérifié si Emerald_Tablet_Reader.js se charge réellement (pas de `new vm.Script` lancé — et la fiche flower-redundancy avertit précisément que `node --check` mentirait ici) ; je n'ai pas compté les abonnés frontend par AST, seulement par grep de littéraux, donc un abonnement par variable m'échapperait ; et je n'ai pas lu les 7 planches cosmogrammes existantes, donc un recoupement visuel avec elles reste à faire.

ne pas dessiner

  • ⛔ Les 7 planches cosmogrammes existantes : le QG, les poumons, Metatron, la grille 27, l'urbanisme, le contenu du village, l'anatomie des lieux. Cette planche est le COMPLÉMENT technique de l'axe vertical, pas une reprise.
  • ⛔ NE PAS dessiner l'axe étoile→pétale→module comme un flux continu, meme en pointillé « à brancher ». Il est coupé à SEPT endroits distincts, chacun d'un genre différent : pas de publieur co-présent (l'étoile), pas de chargeur (mesh-bridge, seal-petal, petal-bloom, mini-fleur), pas d'oreille (l'expire), mauvais nom de champ (le mapper), horloge arrivée trop tard (la Fleur). Un seul style de trait pour sept pannes serait le mensonge que la devise interdit.
  • ⛔ NE PAS dessiner « l'étoile de l'usager naît » avec une flèche pleine. Mesuré : createStar n'est jamais appelé en production.
  • ⛔ NE PAS écrire « 4 consommateurs de l'étoile ». Le compte vérifié est 3 abonnés, 2 chargés, 1 qui lirait le bon champ.
  • ⛔ NE PAS dessiner l'étiquette « noyau / Keli / Point 0 » comme une valeur portée par le code. Elle est dans l'ADR, et seulement là.
  • ⛔ NE PAS dessiner la porte de refus (petal.bloom.refused) comme un organe bâti. Elle est dans un module à 0 entrée de chargement.
  • ⛔ NE PAS dessiner polarity_hybrid comme un invariant actif. Son unique porte de production n'est franchie par aucun appelant.
  • ⛔ NE PAS dessiner le Djed du village (village-map-generator.js) comme bâti en runtime : 0 entrée de chargement. En runtime il n'y a qu'un Djed, et c'est l'étiquette fausse de interdimensional-map.js:421.
  • ⛔ NE PAS écrire « type de nœud : personne ». Le nom au contrat est `individu` (scope_membership_service.py:48 + CHECK alembic v82_299).
  • ⛔ NE PAS écrire « zéro des 43 moteurs ne pouvait se charger ». 42 sur 43 sont des modules ES ; le 43e est un script ordinaire. Ce qu'on peut écrire : « 0 des 43 n'a d'entrée de chargement ».
  • ⛔ NE PAS citer memory/chaine-etoile-petale-module-batie-et-jamais-chargee.md pour « la boite noire EST chargée » : re-mesuré faux au commit. Et ⛔ ne pas réécrire cette fiche — ses deux bouts se contredisent, la loi dit d'y ajouter une SUITE DATÉE, pas de corriger le témoignage.
  • ⛔ NE PAS citer frontend/etat-technique.html:626 comme preuve de chargement : sa case « preuve » affirme un grep qu'elle n'a pas fait.
  • ⛔ NE PAS trancher sur la planche les six arités de la figure (5 · 6+1 · 7 · 12 · 13 · 19). Les montrer en désaccord, et laisser l'arbitrage à Jonathan.
  • ⛔ NE PAS dessiner l'hypothèse « Djed = antenne d'harmonisation » comme doctrine : la fiche le marque explicitement HYPOTHÈSE EN FORMATION, Jonathan a dit « je ne suis pas sur ».
  • ⛔ NE PAS faire dire à la planche que le TIER 3 est un bug : la temporisation est un choix documenté (governance-init.js:1282, :1500-1510). Ce qui est en défaut, c'est l'absence de réessai chez flower-engine, pas l'horloge.
Les traverses 19 relations, de source à source
bio-tick-master.js
alimente
→stellar-identity.jsfrontend/js/stellar-identity.js:814-815 (register) · governance-init.js:335 + :650
bio-tick-master.js
alimente
→flower-engine.jsflower-engine.js:1021-1026 et :1302 vs governance-init.js:1529 et :1508-1510 — l'horloge n'existe pas encore, 0 réessai
auth.html / inscription.html (via config.js)
appelle
→stellar-identity.jsfrontend/auth.html:778 + frontend/inscription.html:958 + frontend/config.js:196-198 ; ces pages hors GOVERNANCE_PAGES (governance-init.js:50-64) ne chargent pas stellar-identity.js
spiral-router.js
appelle
→stellar-identity.jsfrontend/js/spiral-router.js:708 émet auth.user.connected ; spiral-router.js a 0 entrée de chargement
stellar-identity.js
alimente
→lunar-personal-guard.jsstellar-identity.js:188 → lunar-personal-guard.js:773 (champ userId correct) ; les deux chargés, mais le topic n'est jamais publié
stellar-identity.js
alimente
→genetic-mapper.jsstellar-identity.js:181-186 émet userId ; genetic-mapper.js:900 exige user_id
stellar-identity.js
alimente
→chip-nft-covenant.jschip-nft-covenant.js:658 s'abonne ; 0 entrée de chargement (governance-init.js l.648 ne le cite qu'en commentaire)
stellar-mesh-bridge.js
alimente
→seal-petal-distributor.jsstellar-mesh-bridge.js:382 publie stellar.energy.received · seal-petal-distributor.js:124 l'écoute — contrat exact, aucun des deux chargé
seal-petal-distributor.js
alimente
→les 5 modules ciblesseal-petal-distributor.js:41,55,69,83,97 + :181-187 ; 0 des 5 cibles ne s'abonne à petal.*.exhale (4 des 5 sont pourtant chargées)
seal-petal-distributor.js
alimente
→battlefield-view.jsseal-petal-distributor.js:201 publie petal.bloom · battlefield-view.js:79 l'écoute · battlefield-view.js : 0 entrée de chargement
petal-fractal-bloom.js
contient
→THE_POINT_0petal-fractal-bloom.js:183 parent_point0 écrit en dur, :205 scellé dans le hash
governance-init.js
contient
→flower-redundancy.jsgovernance-init.js:940 (FULL) et :1085 (LÉGER) — 2 entrées
governance-init.js
contient
→flower-engine.jsgovernance-init.js:963 — FULL seul, écart assumé documenté :955-962
flower-redundancy.js
alimente
→un appelant0 occurrence de window.ATOMFlowerRedundancy hors du fichier ; aucune auto-initialisation dans le fichier
fractal_pipeline.py
appelle
→polarity_hybrid.pybackend/app/services/babel/fractal_pipeline.py:1046 + :1071 ; build_canonical_signature (:1050) a 0 appelant de production dans les deux arbres
main.py
appelle
→fractal_clock_service.pybackend/app/main.py:1014-1015 attach_to_bus · main.py:2498 router enregistré
scope_membership_service.py
autorise
→le nœud individuscope_membership_service.py:48 NODE_KINDS + alembic v82_299:27-28 CHECK ; 0 producteur de 'individu' dans les deux arbres
interdimensional-map.js
contient
→black-box-recorder.jsinterdimensional-map.js:421 étiquette « Boite Noire (Djed) » ; black-box-recorder.js : 0 entrée de chargement
arbre-spheres.js
contient
→battlefield-view.jsarbre-spheres.js:743 — registre de noms, aucune balise posée
La nomenclature 26 pièces, chacune avec sa source
1L'horloge — bio-tick-master, le battement du site1 entrée de chargement ; TIER 3, donc chargée via setTimeout(..., 2000) (governance-init.js:1529) et start() appelé SEULEMENT après résolution du TIER 3frontend/js/bio-tick-master.js:847-849 · frontend/js/governance-init.js:335 · governance-init.js:1508-1510 · confirmé dans le code
2La géométrie Graine/Fleur 1+6+12 = 19 — flower-engine.js19 identifiants de cellule recomptés moi-meme au commit : center + seed-0..5 + petal-0..5 + bridge-0..5. Le « 12 extérieurs » de l'en-tete = 6 pétales + 6 ponts. 1 entrée de chargement, tableau FULL SEUL (écart assumé, motivé governance-init.js:955-962)frontend/js/flower-engine.js:97-130 (construction), :199-259 (fiches), :1031 (le libellé) · governance-init.js:963 · confirmé dans le code
3L'individuel est le défaut, pas une exception1 valeur par défaut, et l'organe est réellement attaché au bus au démarrage de l'applicationbackend/app/services/fractal_clock_service.py:87 (tree_scope: TreeScope = "indiv") · backend/app/main.py:1014-1015 (attach_to_bus au démarrage) · main.py:2498 (router enregistré) · confirmé dans le code
4L'étiquette Djed, fausse, dans un module chargé1 étiquette, dans 1 module effectivement chargéfrontend/js/interdimensional-map.js:421 (« Boite Noire (Djed) ») · governance-init.js (interdimensional-map.js : 1 entrée) · confirmé dans le code
5L'ADR étoile-pétale — le socle scellédocs/adr/2026-08-08-etoile-petale-point-zero-fleur-de-vie.md (présent au commit, 300+ lignes, D4 §130-146, I4 §300) · confirmé dans le code
6L'étoile de l'usager — stellar-identity.jscreateStar : 2 appelants, tous deux ses propres écouteurs ; 0 appelant externe hors test (fouillé frontend/js/*.js + frontend/*.html au commit 8addf1c94)frontend/js/stellar-identity.js:136 (createStar), :181-188, :656, :663, :810 · governance-init.js:650 · frontend/config.js:196-198 · frontend/auth.html:778 · frontend/inscription.html:958 · governance-init.js:50-64 (GOVERNANCE_PAGES) · confirmé dans le codeLe déclencheur et le module ne sont jamais sur la meme page. `auth.user.registered` n'est publié que par auth.html:778 et inscription.html:958 ; ni 'auth' ni 'inscription' ne sont dans GOVERNANCE_PAGES, donc ces pages recoivent le tableau LEGER (governance-init.js ~1080-1145), qui ne contient PAS stellar-identity.js. Le second déclencheur `auth.user.connected` n'a qu'un émetteur, spiral-router.js:708, qui a 0 entrée de chargement. Le MessageBus est en-processus : un publish sur auth.html ne traverse pas la navigation. Résultat mesuré : _loadState() ne relit jamais qu'un coffre vide, et `stellar.star.created` n'est jamais publié en production.
7Les consommateurs de l'étoile — le compte annoncé (4)3 abonnés en code runtime (pas 4 ; les 2 autres citations sont un test et catalogue-modules.json) ; 2 chargés (chip-nft-covenant.js = 0 entrée dans governance-init.js, uniquement cité en commentaire l.648) ; 1 seul lirait le payloadfrontend/js/chip-nft-covenant.js:658 · frontend/js/genetic-mapper.js:900 · frontend/js/lunar-personal-guard.js:773 · stellar-identity.js:181-186 (le payload réellement émis) · confirmé dans le codegenetic-mapper.js:900 exige `data.user_id` ; stellar-identity.js:181-186 émet `userId` et jamais `user_id`. Seul lunar-personal-guard.js:773 lit le bon champ.
8Les étoiles royales du système — stellar-mesh-bridge.js5 étoiles royales ; 0 entrée de chargement (governance-init.js + frontend/*.html au commit) ; ses 2 appelants nommés, auto-recovery-engine.js et crop-circle-microtonal-library.js, ont eux aussi 0 entréefrontend/js/stellar-mesh-bridge.js:44 (ROYAL_STARS), :382 (publish stellar.energy.received) · confirmé dans le codeAucune entrée de chargement, et aucun appelant chargé non plus — le module est injoignable des deux cotés.
9Les 5 pétales-archanges — seal-petal-distributor.js5 pétales ; 0 entrée de chargement ; le producteur de son inspire (stellar-mesh-bridge.js) a aussi 0 entréefrontend/js/seal-petal-distributor.js:36-97 (les 5 pétales), :124 (écoute stellar.energy.received), :129 (écoute bio.tick.heartbeat) · confirmé dans le codeAucune entrée de chargement. Et son producteur amont est lui-meme non chargé : brancher ce module seul ne lui apporterait toujours aucune énergie.
10La germination de la pétale (144 000) — petal-fractal-bloom.js556 lignes ; 0 entrée de chargement ; 0 appelant de `window.ATOMPetalFractalBloom` hors du fichier lui-memefrontend/js/petal-fractal-bloom.js:62 (MAX_PETALS = 144000), :155-221 (bloom), :507-509 (register bio-tick) · confirmé dans le codeAucune entrée de chargement, et aucun consommateur de son API globale.
11Le refus de germination — la porte qui sait dire nonla porte refuse bien, avec sa raison — mais elle est dans un fichier à 0 entrée de chargementfrontend/js/petal-fractal-bloom.js:145-146 (point0_unstable), :160 et :166 (publish petal.bloom.refused) · confirmé dans le codeDÉGRADÉ depuis BATI. Le code du refus est juste et complet ; il n'est jamais chargé dans un navigateur, donc jamais atteint. Une porte qu'aucune page n'ouvre n'est pas une porte bâtie — c'est une porte posée à plat.
12La semence de la vie 6+1 — flower-redundancy.js, édition navigateur2 entrées de chargement, les deux tableaux — seul module de l'axe dans les deux ; 0 appelant de `window.ATOMFlowerRedundancy` hors du fichier ; aucune auto-initialisation (ni DOMContentLoaded ni setTimeout)frontend/js/flower-redundancy.js:1-34 (l'en-tete qui avoue) · governance-init.js:940 (tableau FULL) et :1085 (tableau LÉGER) · confirmé dans le codeDeux maillons, pas un. (a) le sol : les 7 copies vivent dans la mémoire d'UN onglet, l'en-tete le dit lui-meme. (b) l'usage : le module est chargé et personne ne l'appelle — 0 consommateur de son API, 0 auto-init. Il est présent et muet.
13Le battement de la Fleur — l'enregistrement qui arrive trop tot1 tentative d'enregistrement, 0 réessai, 0 écoute de secours de `bio.tick.heartbeat` dans le fichierfrontend/js/flower-engine.js:1021-1026 (la seule tentative) et :1302 (init = DOMContentLoaded + 1100 ms) · governance-init.js:1529 (TIER 3 = setTimeout 2000) et :1508-1510 (start() après le TIER 3) · confirmé dans le codePIÈCE NEUVE, non annoncée par la collecte. flower-engine cherche `global.ATOMBioTick` à DOMContentLoaded+1100 ms ; bio-tick-master.js est en TIER 3, chargé au plus tot 2000 ms après le TIER 2, et `start()` n'est appelé qu'après. L'objet horloge n'existe pas encore quand la Fleur le demande, et rien ne réessaie : la géométrie est chargée, elle ne respire pas.
14L'archange personnel (7 rayons) — genetic-mapper.js7 rayons / 7 archanges (Michael, Jophiel, Chamuel, Gabriel, Raphael, Uriel, Zadkiel) ; 1 entrée de chargementfrontend/js/genetic-mapper.js:55-128 (les 7 rayons), :295-331 (scanStarSignature) · governance-init.js:886 · confirmé dans le codeLe module est chargé, mais son seul déclencheur atteignable sur une page de gouvernance est `stellar.star.created` — qui n'est jamais publié (voir pièce 2). Les 2 autres, `auth.user.registered` et `baptism.complete`, ne sont pas publiés sur les pages où il est chargé.
15Le relevé du mapper ne peut jamais réussir1 champ attendu, 0 champ fourni : `user_id` n'apparait dans aucun des 5 champs du payload émisfrontend/js/genetic-mapper.js:900-903 (exige data.user_id) · frontend/js/stellar-identity.js:181-186 (émet userId, starId, frequency, coordinates, template) · confirmé dans le codeLe nom du champ. Le pont serait complet avec `userId` ; tel quel, meme une étoile née serait silencieusement ignorée.
16Le renderer battlefield — nommé dans un registre, chargé par personnebattlefield-view.js : 0 entrée de chargement. Son orchestrateur nommé, view-mode-manager.js, a aussi 0 entrée. Le registre qui les nomme (arbre-spheres.js) est, lui, chargé : 1 entréefrontend/js/arbre-spheres.js:743 (registre S6, module CHARGÉ) · frontend/js/battlefield-view.js:79 · frontend/js/view-mode-manager.js · confirmé dans le codeLe registre S6 de arbre-spheres.js:743 est une TABLE DE NOMS, pas un chargeur : il liste 14 renderers sans jamais poser de balise. Ni le renderer ni son routeur n'ont d'entrée.
17La polarité hybride — le yin-yang canonisévalidate_polarity_hybrid : 1 appelant en code de service, build_canonical_signature (fractal_pipeline.py:1050) — lequel a 0 appelant de production. Fouillé LES DEUX arbres : backend/app/ ET les 29 racines hors app/ (agents, services, core, modules, verticals, governance, models, schemas...) + frontend/. Seul backend/tests/unit/test_fractal_pipeline_polarity.py l'appellehf-atom-tools/atom_canon/invariants/polarity_hybrid.py (IC-N3, CANON_MOYEN 0.85) · atom_canon/invariants/__init__.py:40 (exporté) · backend/app/services/babel/fractal_pipeline.py:1046 (import) et :1071 (le seul appel) · confirmé dans le codeDÉGRADÉ depuis BATI. L'invariant existe, est exporté, est testé — et sa seule porte d'entrée en production n'est franchie par personne. Un invariant que rien n'évalue n'est pas branché.
18Le type de nœud pour une personne4 types au contrat : individu, lieu, agent, communaute. Producteurs de production mesurés : « lieu » et NULL seulement. « individu » : 0 producteur ; « agent » : 1 seule occurrence, dans backend/tests/unit/test_quatre_types_de_noeuds.py:192. Fouillé les deux arbres sous backend/backend/app/services/scope_membership_service.py:48 (NODE_KINDS), :236-239 (le refus), :254 (l'upsert) · backend/alembic/versions/v82_299_scope_membership_node_kind.py:27-28 (CHECK en base) · backend/app/services/country_spine_importer.py:72,78,84 (les seuls écrivains) · confirmé dans le codeRELEVÉ depuis ABSENT, et renommé. Le type n'est pas « personne » : il s'appelle `individu`, il est au contrat (code + contrainte CHECK en base). Ce qui manque est l'ÉCRIVAIN : rien n'inscrit jamais un nœud `individu`.
19La mini-fleur déployable 7 → 13 → 191221 lignes ; 0 entrée de chargement (governance-init.js + frontend/*.html au commit)frontend/js/mini-fleur-deployer.js:24 (croissance 7 → 13 → 19) et :44-45 (le cycle Seed→Satellite) · confirmé dans le codeAucune entrée de chargement.
20Le Djed proprement dit — la colonne du villagevillage-map-generator.js : 0 entrée de chargement. Et la chose que l'étiquette fausse désigne, black-box-recorder.js : 0 entrée aussi (seule balise : frontend/archives/orphan-pages/keli-dashboard.html, une page archivée)frontend/js/village-map-generator.js:9 (QG Djed, colonne 12 niveaux, 174→999 Hz) · frontend/livre-du-proprietaire.html:502 (la doctrine) · confirmé dans le codePIÈCE NEUVE. L'étiquette fausse est chargée ; le vrai Djed ne l'est pas. Aucune entrée de chargement pour la colonne du village.
21L'expire vers le module cible — « Expire = distribue au module cible »5 cibles nommées, 4 existent ET sont chargées (geo-frequency-bridge, salvation-mesh, caduceus-yantra-ouroboros, chronos-alchemical-regulator), 1 non chargée (solar-decontamination-suite) — et ZÉRO des 5 ne s'abonne à `petal.*.exhale`frontend/js/seal-petal-distributor.js:41,55,69,83,97 (les 5 champs target) + :181-187 (le publish) · recherche des abonnés : frontend/js/*.js au commit · confirmé dans le code
22L'écoute de la floraison — petal.bloom2 écouteurs de `petal.bloom` dans tout le frontend ; 0 des 2 a une entrée de chargementfrontend/js/seal-petal-distributor.js:201 (publish) · frontend/js/battlefield-view.js:79 · frontend/js/complexity-harness-multi-level.js:92 · confirmé dans le code
23Un seul Point 0, écrit en dur dans la pétale1 seule valeur de parent, littérale, non paramétrablefrontend/js/petal-fractal-bloom.js:181-189 (local_point0.parent_point0 = 'THE_POINT_0'), :205 (calibrates_point0 scellé dans le hash) · confirmé dans le code
24La persistance de l'archange personnel_save() sérialise 5 clés : stats, mercury_cube (2 champs résumés), archive, tick_count, version — et PAS `individuals`frontend/js/genetic-mapper.js:798-813 (_save) · :228 (_state.individuals déclaré) · :315 (c'est là que l'archange est rangé) · confirmé dans le code
25L'étiquette « noyau / Keli / Point 0 » sur la Graine 432 Hz0 occurrence de « Keli » dans les 7 modules de l'axe au commit 8addf1c94. L'étiquette vit dans un tableau de l'ADR, nulle part en codedocs/adr/2026-08-08-etoile-petale-point-zero-fleur-de-vie.md:59, :95, :146 (l'étiquette) · recherche du mot « Keli » dans frontend/js/flower-engine.js, flower-redundancy.js, petal-fractal-bloom.js, stellar-identity.js, genetic-mapper.js, seal-petal-distributor.js, stellar-mesh-bridge.js · confirmé dans le codeDÉGRADÉ depuis BATI. L'ADR écrit « la Graine (432 Hz) porte DÉJÀ l'étiquette noyau / Keli / Point 0 » — re-mesuré, le code ne la porte pas. C'est une affirmation de document relue comme une valeur de code.
26Les 43 moteurs JS enterrés dans le dossier Python43 .js confirmés par moi au commit. MAIS : 42 des 43 portent un `export` de premier niveau — 1 n'en porte aucun (Emerald_Tablet_Reader.js, que des `const`) et se chargerait comme script ordinaire. 0 des 43 a une entrée de chargementbackend/app/engines/ (43 fichiers .js suivis par git au commit, sur 50 fichiers au total) · l'exception : backend/app/engines/emerald_system/Emerald_Tablet_Reader.js · confirmé dans le code
Le lexique de cette planche 29 termes à deux registres · 11 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.

point 0Le repère depuis lequel tout est compté pour un sujet : le système le cherche, et quand il ne le trouve pas il écrit qu'il ne l'a pas trouvé.
THE_POINT_0La valeur inscrite dans le champ qui devrait dire de quel centre dépend un enregistrement — la même pour tous, et aucune lecture du code ne s'en sert.
mode (fenêtre / porte)La distinction entre regarder depuis chez soi et passer de l'autre côté : passer demande une permission et laisse une trace, regarder ne change rien.
NODE_KINDSLa liste fermée des quatre genres de choses qui peuvent occuper une place : une personne, un endroit, un agent, un groupe.
individu (type de nœud)Le genre de place qu'occupe une personne, et c'est cette place même qui lui sert de repère.
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.
agent (type de nœud)Le genre de place qu'occupe un agent qui agit au nom de quelqu'un, avec l'endroit auquel il est rattaché.
communaute (type de nœud)Le genre de place qu'occupe un groupe, entre les personnes et le centre de tous.
scope_membershipLa table qui dit qui est contenu par qui, avec un contenant différent par portée, et c'est elle qui tranche quand l'adresse dit autre chose.
sphère (S0 à S9)Elle dit de quoi un message parle : chaque message reçoit un numéro de 0 à 9 qui nomme son sujet.
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.
bus (valeur de canal)C'est la valeur qui dit : ce message ne sort pas de la machine, il passe d'un module à l'autre dans le même programme.bus (l'organe de distribution) — C'est la pièce de code qui reçoit un message et le remet à tous ceux qui s'y sont abonnés.
bus (l'organe de distribution)C'est la pièce de code qui reçoit un message et le remet à tous ceux qui s'y sont abonnés.canal — C'est par quel moyen un message voyage : le réseau interne, le web, le courriel, le SMS, l'écran, et onze autres.bus (valeur de canal) — C'est la valeur qui dit : ce message ne sort pas de la machine, il passe d'un module à l'autre dans le même programme.
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.
covenantL'entente qu'une personne accepte en entrant, qui fixe ce que le systeme peut faire avec elle et sert de reference a tous les accords qui viennent apres.
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.
KeliLe quatrieme interlocuteur : celui qui tient le cote intime et verifie qu'une decision respecte les regles du projet avant qu'elle passe.
étoileUne étoile, c'est une personne dans le système, et sa pétale est l'espace qui lui appartient en propre.étoile (figure topologique des services) — C'est la forme que dessine le code quand on regarde qui appelle qui : presque tout passe par un seul point de passage.
étoile (figure topologique des services)C'est la forme que dessine le code quand on regarde qui appelle qui : presque tout passe par un seul point de passage.étoile — Une étoile, c'est une personne dans le système, et sa pétale est l'espace qui lui appartient en propre.
pétaleUne pétale est l'espace propre d'une personne et, dans le code, le petit relais qui reçoit d'en haut puis transmet au module voisin.
SemenceUn des trois types de jetons d'un ancien registre d'émission, gardé pour ne pas casser ce qui existait.Semence de Vie (SEED_OF_LIFE) — Sept cercles de même taille, un au centre et six autour : le motif de départ dont les autres se déduisent.
Djedregistre spirituelLe mât du village : on le voit de loin, il publie l'état du groupe, et il ne promet jamais plus que ce que les machines du lieu peuvent tenir.
templeUne fiche de site ancien, mesurée puis rangée avec son rôle : il produit, il stocke, ou il transmet.
Hz / fréquence (famille Solfeggio)registre spirituelUne courte liste de nombres admis : un nombre qui n'y figure pas est refusé comme hors famille.
plancher (trouvé / déclaré)Dire « au moins tant » au lieu de « tant », et écrire juste après ce que le comptage n'a pas pu voir.cliquet — Un compteur à sens unique : il laisse passer ce qui améliore et fait échouer la construction dès qu'on empire.plancher (seuil minimal d'un cliquet en intégration continue) — Un minimum inscrit dans une épreuve : si le code en perd un, l'épreuve passe au rouge.
plancher (seuil minimal d'un cliquet en intégration continue)Un minimum inscrit dans une épreuve : si le code en perd un, l'épreuve passe au rouge.plancher (trouvé / déclaré) — Dire « au moins tant » au lieu de « tant », et écrire juste après ce que le comptage n'a pas pu voir.

Matière : PLANCHES-MATIERE-1-TECHNIQUE-2026-10-03.json (sha256 b29a3dc78614) — planche de matière « L'axe vertical : étoile, pétale, semence — et l'endroit où il ne naît pas ». 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.