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

L’économie

L'ÉCONOMIE — la valeur sort de l'opération : le battement frappe le bus, mais il s'arrête TROIS portes avant θ

Planche 12 · L’économie
33 pièces · 19 bâties · 14 partielles · 0 absentes · 0 non établies
Planche 12 — L’économie

ouvrir la planche en plein écran → · 33 pièces · 20 traverses · 12 marges

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

Le premier output est bâti et tourne jusqu'au bus, mais il meurt à trois portes RAM vides AVANT d'atteindre θ (témoin de cohérence · chaos · seuil civ 1.0) ; θ est la dernière ligne du DESSIN, pas celle qui refuse aujourd'hui — et le second output (captation temple/forge/mission), seul numérateur de θ, n'a aucun publieur serveur et son autorité est un frozenset() vide.

Les marges 12 arbitrages ouverts, entiers
  • ⚑ LE DÉPLACEMENT LE PLUS IMPORTANT — θ n'est PAS où le battement s'arrête. La planche annoncée disait « bâti de bout en bout jusqu'au grand livre et REFUSÉ à la dernière ligne ». Mesuré au commit 8441e8cdf : TROIS portes précèdent θ, et toutes les trois rendent zéro au repos — (1) le témoin de cohérence absent force work_units=0 (cosmic_circuit.py:575-583, aggregate_r() rend None sur _live_records vide) ; (2) chaos_level=0 quand le décodeur macro n'a rien vu (cosmic_circuit.py:534 + fractal_clock_service.py:474) ; (3) le seuil civ de 1.0 fait sortir le consommateur par skip_reason='below_threshold_civ' AVANT tout appel au gouverneur (babel_fractal_treasury_consumer.py:72, :545-553). θ=0 refuserait, mais il n'est jamais interrogé. Dessiner θ comme la couture terminale flatte la chaîne d'un étage entier.
  • ⚑ « UNE SEULE entrée non vide sur 7 » est FAUX — il y en a TROIS (bus_acl.py:78-87), et babel.fractal.energy.generated en autorise DEUX sources. « cosmic_circuit SEUL publieur serveur autorisé » ne survit qu'avec « en exercice » écrit noir sur blanc, parce que le second (bioacoustic_fractal_pipeline_bridge) est autorisé ET câblé (main.py:874-885) — c'est son amont emit_energy qui a zéro appelant, sur les DEUX arbres (git grep sur l'intégralité de HEAD).
  • ⚑ « LA TAXE DE CIRCULATION, 1 % CODÉE EN DUR » est FAUX. treasury_service.py:154-165 lit monetary.burn_rate_on_transactions dans economic_settings ; le Decimal('0.01') de la ligne 130 est le REPLI. La valeur semée (1.0) est divisée par 100 par _PERCENTAGE_FRACTION_KEYS. Le mécanisme de gouvernance existe — ce qui manque, c'est la mesure de la valeur réellement en base en production, que je n'ai pas prise.
  • ⚑ « CES DÉFAUTS SONT TENUS PAR DES ÉPREUVES » est À DEMI FAUX, et c'est la marge la plus coûteuse. Les 7 fichiers de contre_epreuves_economie/ existent au commit. Le job backend de ci.yml n'installe PAS requirements-test.txt (0 occurrence dans tout le fichier), pytest.ini garde timeout = 30 sous --strict-config, pytest-timeout n'est dans aucun job ⇒ exit 4, ZÉRO test exécuté. Les épreuves sont ÉCRITES, pas TENUES. Bonne nouvelle mesurable : le second des deux gestes est posé — les 6 marqueurs (alembic, atom, mapping, vibration, harmonics, creative_layer) SONT déclarés dans pytest.ini au commit. Il reste UNE ligne.
  • ⚑ DEUX DOCSTRINGS SONT PÉRIMÉES ET MENTENT DANS LE SENS FLATTEUR OU PESSIMISTE — (a) g4_emission_guard.py:21-23 affirme « chaos_level absent du snapshot » : il y est (fractal_clock_service.py:474). Ce n'est plus l'absence d'un champ, c'est sa valeur ; (b) mission_reward_consumer.py:6 cite « mission_center_service.py:333 » comme émetteur de MISSION_REWARDED : cet émetteur n'existe plus, complete_mission LÈVE MissionProofGateUnavailable (mission_center_service.py:621). Un module qui décrit son amont au passé compose un faux « boucle fermée ».
  • ⚑ DES 101 INSTANTANÉS, UN SEUL PEUT FRAPPER. Le compte de 101 est juste (3+15+83, recompté ce tour). Mais l'identité causale est FIGÉE avant le fan-out (fractal_clock_service.py:168-177) et MintIdentityAlveolus dédoublonne sur (clock_id, epoch_id, tick_id, event_id) (cosmic_circuit.py:768) : 100 des 101 rendent mint_allowed=False. Dessiner 101 traits de frappe serait un facteur 101 d'exagération.
  • ⚑ L'HORLOGE SOUVERAINE N'EST PAS CELLE QU'ON CROIT. Celle qui alimente le circuit est PointZeroHeartbeatScheduler (main.py:993, 39 s). FractalBioTickWorker démarre (main.py:856) et n'est branché à AUCUN bus — journal explicite « fractal_causal_clock_unassigned ». Deux horloges, une seule dans le circuit.
  • ⚑ LA COUTURE ATOMIQUE EST BÂTIE POUR UN SEUL DES DEUX CONSOMMATEURS D'ÉMISSION. Chemin fractal : verrou causal + G4 + ledger sous UN commit (governed_mint.py:393-512). Chemin mission : emission_allowance committe sa propre transaction (mission_reward_consumer.py:111) PUIS governed_reward est appelé SANS emission_producer (:124-129) — donc hors de reserve_emission_in_transaction. Deux transactions, pas une.
  • ⚑ « LA PORTE REFUSE PAR SON NOM » décrit l'état ANTÉRIEUR. Le commentaire de routers/event_bus.py:110-120 dit que le refus a été VOLONTAIREMENT dépouillé : « Les deux portes rendent désormais event_topic_forbidden, et rien d'autre : ce qui est refusé ne dessine pas à l'appelant la carte de ce qu'il pourrait viser ensuite. » C'est une amélioration de sécurité, pas la planche annoncée.
  • ⚑ DEUX CLAIMS DE DOCTRINE DÉCRIVENT UN CHEMIN QUE L'AUTORITÉ REFUSE. « le minage est une longueur en octets » (fractal_pipeline.py:258-265) et « le calcul est soustrait » (:316-331) sont tous deux VRAIS — dans fractal_pipeline, dont le publish est POSITIONNEL (:928-932) donc source='system', retirée de TRUSTED_SOURCES et absente de EXACT_TOPIC_SOURCES ⇒ fail-close. Le chemin vivant (cosmic_circuit) calcule ur_coin_minted = work_units et écrit compute_cost_ms = 0.0 en dur. Attribuer au système vivant une règle qu'applique seulement son chemin refusé est exactement le genre de trait qui flatte.
  • ⚑ LA RESTITUTION EST UN MÉCANISME SANS GÂCHETTE. governed_restitution (governed_mint.py:249-308) et arestitute_credits (treasury_service.py:1503) sont propres — tx_type distinct, jamais un signe. Zéro appelant de production dans tout le dépôt. « La restitution ne se déguise jamais en récompense » est vrai comme un théorème, pas comme un fait d'exercice.
  • DÉCISIONS QUI ATTENDENT JONATHAN — (1) la ligne de CI : pip install -r requirements-test.txt dans le job backend, sans quoi aucune des contre-épreuves de ce dossier ne garde quoi que ce soit ; (2) le publieur serveur de captation TEMPLE + son inscription dans EXACT_TOPIC_SOURCES — le seul des quatre sujets vides dont tout l'aval est bâti ; (3) FORGE exige de rouvrir la frontière navigateur→serveur, refusée par trois mécanismes indépendants et délibérés : c'est une décision de sécurité, pas une ligne de code ; (4) la gâchette de governed_restitution — refuser d'en inventer une est le bon réflexe ; (5) le source= explicite de fractal_pipeline.py:928-932, ou l'aveu que ce chemin est mort ; (6) le seuil civ de 1.0 et le témoin de cohérence : faut-il un producteur de kuramoto_r serveur, ou le repos est-il l'état juste ?
Les blancs déclarés ce que la mesure n’a pas pu voir

Mesuré en LECTURE SEULE au COMMIT 8441e8cdf (git show HEAD:...), jamais dans l'arbre de travail — or .github/workflows/ci.yml, backend/app/main.py, backend/app/core/bus_acl.py, refus_publics.py, security.py, ratelimit.py et ~60 routeurs sont MODIFIÉS mais non commités : tout ce rapport peut être en retard d'un geste non commité. Aucune base interrogée (ni atom_db sur 138.197.132.63, ni locale) : donc 'θ = 0' est une conclusion ARITHMÉTIQUE sur l'absence d'écrivain de captation, pas une lecture de treasury_transactions — et la valeur réelle de monetary.burn_rate_on_transactions en production est NON ÉTABLIE. Aucun serveur interrogé : 'monté' se lit dans main.py, et register_router (main.py:1637-1655) AVALE l'ImportError d'un routeur non-core — l'atteignabilité runtime de emission_state_router, event_bus, armure, accounting_router est donc NON ÉTABLIE. Les contre-épreuves n'ont PAS été lancées ici (règle : je ne dis jamais 'verte' une garde non lancée) : je mesure seulement qu'aucun job de CI ne les exécute ; leur verdict local est NON ÉTABLI. _live_records() de geo_coherence_service et les stats RAM de babel_macro_decoder n'ont pas été observées en exercice : je conclus 'zéro au repos' depuis la lecture du code, pas depuis un processus vivant. Le second arbre (≈278 .py hors backend/app/) a été fouillé par git grep sur l'INTÉGRALITÉ de HEAD pour emit_energy, governed_restitution, arecord_entry et les 4 sujets de captation — mais PAS exhaustivement pour les autres pièces. Le frontend n'a été fouillé que pour forge-alchemy/forge-energy-bridge, presentation-economie.html, atom-universe.js, runtime-guards.js et governance-init.js. Aucun journal GitHub Actions consulté (gh absent de la machine) : l'affirmation 'exit 4, zéro test' reprend une émulation locale datée du 2026-09-30 sur un HEAD antérieur, dont j'ai RE-VÉRIFIÉ ici les deux prémisses de code (absence de requirements-test dans ci.yml, présence de timeout+--strict-config dans pytest.ini) mais pas la sortie elle-même.

ne pas dessiner

  • θ en position de dernière couture qui refuse le battement — il est le dernier garde du DESSIN, mais trois portes amont (témoin · chaos · seuil civ 1.0) rendent zéro avant lui et θ n'est jamais interrogé
  • « une seule entrée non vide sur 7 » dans l'autorité du bus — il y en a trois, et le sujet fractal en autorise deux sources
  • 101 traits de frappe partant du fan-out — un seul des 101 peut frapper, l'alvéole dédoublonne sur l'identité du tick
  • la taxe de 1 % comme constante gravée — elle est lue dans economic_settings, le 0.01 littéral n'est qu'un repli
  • les contre-épreuves comme un cliquet qui tient — elles sont écrites et aucun job de CI ne les exécute
  • la boucle mission comme refermée depuis les fiches — la soudure aval est posée, l'amont a été RETIRÉ (complete_mission lève)
  • le minage-en-octets et le calcul-soustrait comme règles du système vivant — ils ne gouvernent que le chemin que l'ACL refuse
  • FractalBioTickWorker comme l'horloge souveraine — c'est le heartbeat du Point 0 qui alimente le circuit ; le bio-tick tourne hors bus
  • la restitution comme un flux — c'est un organe propre à zéro appelant
  • l'armure reliée à l'économie par un fil, même pointillé — zéro occurrence monétaire dans ses trois fichiers
  • Hedera comme un maillon vivant — mock par défaut, et inatteignable derrière une frappe qui n'a pas lieu
  • un trait unique pour un organe bâti et un organe affamé : temple, forge et mission ont chacun un consommateur BÂTI monté sur un amont ABSENT — le trait doit se rompre à la jonction, pas avant ni après
Les traverses 20 relations, de source à source
PointZeroHeartbeatScheduler
produit
→pointzero.heartbeatbackend/app/main.py:993 · backend/app/services/sanctum/point_zero_heartbeat.py:155-198
pointzero.heartbeat
alimente
→clock.fractal.snapshot (×101)backend/app/services/fractal_clock_service.py:164-182, :209 · backend/app/main.py:1015, :1068
clock.fractal.snapshot
traverse
→cosmic_circuit.circulatebackend/app/main.py:1024 · backend/app/services/cosmic_circuit.py:1113-1137
cosmic_circuit.circulate
produit
→work_unitsbackend/app/services/cosmic_circuit.py:534, :564, :575-583 — chaos=0 au repos ET témoin absent ⇒ work_units=0 (fail-close voulu)
cosmic_circuit
autorise
→babel.fractal.energy.generatedbackend/app/core/bus_acl.py:81-83 (source autorisée) · cosmic_circuit.py:1090-1101
babel.fractal.energy.generated
alimente
→babel_fractal_treasury_consumerbackend/app/main.py:838-841 · babel_fractal_treasury_consumer.py:412-451
babel_fractal_treasury_consumer (seuil civ 1.0)
gouverne
→governed_rewardbackend/app/services/babel/babel_fractal_treasury_consumer.py:72, :545-553 — net_value_score=0 < 1.0 ⇒ skip 'below_threshold_civ' AVANT governed_reward : θ n'est pas consulté
governed_reward (emission_producer)
traverse
→θ (reserve_emission_in_transaction)backend/app/services/babel/governed_mint.py:449-452 · g4_emission_guard.py:187-280
θ
gouverne
→treasury_transactions (captation:%)backend/app/services/babel/g4_emission_guard.py:165-180
temple_decoder.compute_energy_yield
produit
→babel.temple.energy.generated0 publieur dans tout le dépôt au commit ; backend/app/core/bus_acl.py:84 = frozenset()
forge (navigateur)
produit
→forge.product.distributed / forge.pierre.philosophalefrontend/js/forge-alchemy.js + forge-energy-bridge.js : 0 appel réseau ; backend/app/routers/event_bus.py:90,156 ; bus_acl.py:86-87 = frozenset()
mission_center_service.complete_mission
produit
→mission.rewardedbackend/app/services/mission_center_service.py:621 (raise MissionProofGateUnavailable) ; bus_acl.py:85 = frozenset()
emit_energy
produit
→bioacoustic.energy.emittedbackend/app/services/bioacoustic/energy_emitter.py:49 — 0 appelant de production sur l'INTÉGRALITÉ de HEAD (deux arbres)
bioacoustic_fractal_pipeline_bridge
autorise
→babel.fractal.energy.generatedbackend/app/core/bus_acl.py:81-83 + main.py:874-885 — autorisé et câblé, amont vide
fractal_pipeline (publish positionnel)
produit
→babel.fractal.energy.generatedbackend/app/services/babel/fractal_pipeline.py:928-932 — source par défaut 'system', refusée par bus_acl.py:165-192
captation (temple/forge)
alimente
→numérateur de θbackend/app/services/babel/g4_emission_guard.py:165-180 — aucun écrivain atteignable ⇒ captation_24h=0 ⇒ θ=0
armure 15D
alimente
→économie (treasury / ur_coin)backend/app/services/armure_15d.py, armure_store.py, backend/app/routers/armure.py — 0 occurrence des termes monétaires
governed_restitution
produit
→treasury (tx_type restitution)backend/app/services/babel/governed_mint.py:249-308 — organe bâti, 0 appelant de production
accounting_records (grand livre nº2)
alimente
→θbackend/app/models/accounting_contract.py:18 · accounting_engine.py:197-295 — θ ne lit que treasury_transactions
CI (job backend)
gouverne
→contre_epreuves_economie.github/workflows/ci.yml (job backend, 0 'requirements-test') · backend/pytest.ini (timeout = 30 sous --strict-config) ⇒ exit 4, 0 test exécuté
La nomenclature 33 pièces, chacune avec sa source
1θ — LE GOULOT. La formule et son fail-safeθ = min(1, captation_24h / max(MA7j,1)) ; captation_24h <= 0 → Decimal(0). Règle : lecture du COMMIT 8441e8cdf (git show HEAD:...)backend/app/services/babel/g4_emission_guard.py:54-64 · confirmé dans le code
2θ — SA RÈGLE DE LECTURE : le numérateur ne regarde QU'UN SEUL livre1 seule table lue : TreasuryTransaction, filtre tx_type='reward' AND description LIKE 'captation:%' ; fenêtres 24 h et 24×7 h / 7backend/app/services/babel/g4_emission_guard.py:165-180 (_captation_window) · confirmé dans le code
3PREMIER OUTPUT — l'horloge souveraine : c'est le HEARTBEAT, pas le bio-tick workercadence CYCLE_9 = 39 s ; le payload porte les 7 champs d'identité causale (schema, schema_version, tick_identity_version, clock_id, epoch_id, tick_id, event_id)backend/app/main.py:993 (await get_heartbeat_scheduler().start()) · backend/app/services/sanctum/point_zero_heartbeat.py:155-198 · confirmé dans le code
4PREMIER OUTPUT — le fan-out : le battement devient bien 101 instantanés nommés101 = 3 soleils (cosmic_circuit.py:74-78) + 15 ancres géomag (atom_canon/empirique/geomag_regulators.py, len=15 mesuré par appel) + 83 temples (data/temples/registre/registre-maitre-sites-temples.json, filtre hz_canonique+lat+lon, dédoublonné sur slug — recompté ce tour)backend/app/main.py:1068 (register_canonical_nodes(tier='rich')) · backend/app/services/node_registry_bootstrap.py:139-200 · backend/app/services/fractal_clock_service.py:164-182 · confirmé dans le code
5⚠ DES 101, UN SEUL PEUT FRAPPER — l'alvéole dédoublonne sur l'identité du tick1 frappe autorisée par (clock_id, epoch_id, tick_id, event_id) ; les 100 autres snapshots du même battement rendent mint_allowed=Falsebackend/app/services/cosmic_circuit.py:768 (MintIdentityAlveolus.decide) + fractal_clock_service.py:168-177 (identité figée AVANT le fan-out) · confirmé dans le code
6⚠ PORTE 1 AVANT θ — le témoin de cohérence, fail-close à work_units = 0aggregate_r() rend None si _live_records() est vide (geo_coherence_service.py:220-223) — mémoire de processus, vide au démarragebackend/app/services/cosmic_circuit.py:575-583 (if not witness_present → motor_state='sans_temoin' ; work_units = 0) · :191-207 (_temoin_vivant → geo_coherence_service.aggregate_r()) · confirmé dans le codeaucun — c'est une garde VOULUE. Mais elle coupe le battement AVANT θ : la planche annoncée faisait de θ le point d'arrêt
7⚠ PORTE 2 AVANT θ — le chaos, zéro au reposchaos_level = n_refused/(n_decoded+n_refused) du babel_macro_decoder (RAM) → 0.0 quand total=0 ; chaos=0 ⇒ energy_generated=0 ⇒ work_units=0backend/app/services/cosmic_circuit.py:534 (chaos = _clamp_ratio(tick.get('chaos_level'), default=0.0)) · :564 (work_units = floor(energy_generated / U_METRE)) · fractal_clock_service.py:474 · confirmé dans le codela docstring de g4_emission_guard.py:21-23 affirme encore 'chaos_level absent du snapshot' — PÉRIMÉE : il y est (fractal_clock_service.py:474-476). Ce n'est plus l'absence du champ, c'est sa valeur
8⚠ PORTE 3 AVANT θ — le seuil civ, et c'est LUI qui refuse aujourd'huinet_value_score = work_units ; seuil civ = 1.0 ; work_units=0 ⇒ skip_reason='below_threshold_civ' AVANT tout appel à governed_rewardbackend/app/services/babel/babel_fractal_treasury_consumer.py:72 (MIN_NET_VALUE_FOR_MINT_CIV = 1.0) · :75-85 · :545-553 (skip below_threshold) · cosmic_circuit.py:265-275 (tree_scope='civ', net_value_score = work_units) · confirmé dans le codeaucun — mais ce seuil est la vraie dernière ligne atteinte. θ n'est JAMAIS consulté tant que work_units < 1
9PREMIER OUTPUT — la circulation qui frappe : cosmic_circuit est monté et publie bienabonné à clock.fractal.snapshot ; publie babel.fractal.energy.generated avec source='cosmic_circuit' (:1096), seulement si mint_decision['mint_allowed']backend/app/main.py:1024 (attach_cosmic_circuit_to_bus()) · backend/app/services/cosmic_circuit.py:1063-1101 · :1113-1137 · confirmé dans le code
10PREMIER OUTPUT — le consommateur frappe, et il LIT le refussur refus G4_THROTTLED → retour minted=0 et 'RIEN NE PART sur Hedera' ; sur autre refus → refused_governed_count++ et compteur BILAN_HONNETE_REFUSALSbackend/app/main.py:838-841 (subscribe) · backend/app/services/babel/babel_fractal_treasury_consumer.py:598-653 (governed_reward emission_producer='fractal' puis lire_frappe) · confirmé dans le code
11SECOND OUTPUT / FORGE — le consommateur serveur est monté et affamé2 topics abonnés (forge.product.distributed, forge.pierre.philosophale) ; 0 publieur dans les deux arbres ; ACL = frozenset() pour les deuxbackend/app/main.py:912-918 · backend/app/services/babel/forge_energy_consumer.py:196-231 (subscribe) · :412-433 (governed_reward captation + lire_frappe) · confirmé dans le code
12SECOND OUTPUT / FORGE — les producteurs vivent dans le navigateur, sans un seul appel réseau0 occurrence de atomPost / atomFetch / fetch( dans les deux fichiers au commitfrontend/js/governance-init.js:372-373 (forge-alchemy.js + forge-energy-bridge.js CHARGÉS) · frontend/js/forge-alchemy.js, frontend/js/forge-energy-bridge.js · confirmé dans le code
13SECOND OUTPUT / TEMPLE — consommateur monté, recalcul fail-close, écriture de captation0 publieur de babel.temple.energy.generated dans tout le dépôt (backend + frontend) au commit ; ACL = frozenset()backend/app/main.py:929-935 · backend/app/services/babel/babel_temple_treasury_consumer.py:102-122 · :227-260 (rendement non recalculable → mint REFUSÉ) · :289-308 · confirmé dans le codele publieur serveur. temple_decoder.compute_energy_yield existe et n'est jamais publié
14SECOND OUTPUT / ENCRYPTION — l'armure est montée et n'a aucun fil économique0 occurrence de treasury / ur_coin / governed_reward / credit dans les trois fichiers au commitbackend/app/main.py:1957 (register_router armure) · backend/app/services/armure_15d.py · armure_store.py · backend/app/routers/armure.py · confirmé dans le code
15LE GRAND LIVRE nº1 — le gouverneur de frappe, le SEUL que θ littable treasury_transactions ; idempotence durable par index unique partiel v82_256 sur task_id ; refus RENDU, jamais levébackend/app/services/babel/governed_mint.py:36 (CAPTATION_PREFIX) · :59 (G4_THROTTLED) · :187 (lire_frappe) · :393-512 · g4_emission_guard.py:165-180 · confirmé dans le code
16⚠ LE GRAND LIVRE nº2 — il y en a bien DEUX, et θ n'en voit qu'unarecord_entry (la seule qui persiste) : 2 appelants de production — accounting_router.py:124 et wallet_portfolio.py. θ ne lit QUE treasury_transactionsbackend/app/models/accounting_contract.py:18 (table accounting_records) · backend/app/services/accounting_engine.py:197-245 (record_entry écrit dans self._ledger, dict RAM) · :273-295 (arecord_entry persiste) · backend/app/main.py:2362 · confirmé dans le codeaucun pont entre accounting_records et le numérateur de θ ; le constructeur par défaut écrit en mémoire de processus
17LES PORTES DE VALEUR SONT FERMÉES — fail-close, délibérémentla garde est APPELÉE à chaque publish ; sur refus : status='red', blocked=True, block_reason nommé, 0 handlerbackend/app/core/bus_acl.py:165-192 (EXACT_TOPIC_SOURCES toujours fail-close, hors drapeau BUS_ACL_ENFORCE) · backend/app/services/event_bus.py:510-528 (check_publish appelé, ImportError NON avalé, handlers_called=0 sur blocage) · confirmé dans le code
18✅ CORRIGÉ DEPUIS LES FICHES — la page publique ne ment plusla phrase « créditée immédiatement » a disparu ; la page dit maintenant « Ce qui est fermé aujourd'hui : l'endpoint […] refuse les appels ordinaires […] aucun crédit n'est donc émis depuis le navigateur, et aucune des quatre parts n'est annoncée comme versée »frontend/presentation-economie.html (section Organe 5, ~l.100-105) · confirmé dans le code
19✅ CORRIGÉ DEPUIS LES FICHES — la garde sourde du cortex entend à nouveaule producteur rend désormais blocked: true ; le lecteur du routeur de cortex, qui tourne à chaque événement porteur de from/to, n'est plus sourdfrontend/js/runtime-guards.js:160-170 (retourne allowed:false ET blocked:true) · frontend/js/atom-universe.js:291 (lit result.blocked) · confirmé dans le code
20θ — SES ENTRÉES RÉELLES (le compte de la fiche est PÉRIMÉ)2 entrées de production (fractal via emission_producer, mission via emission_allowance) + 1 lecture pure. La fiche du 2026-09-10 annonçait 3 appelants dont fractal_seed : fractal_seed_treasury_consumer ne touche PLUS θ (0 occurrence de governed_reward / emission_allowance dans ce fichier au commit)backend/app/services/babel/governed_mint.py:449-452 · backend/app/services/mission_reward_consumer.py:109-111 · backend/app/routers/babel/emission_state_router.py:305 · confirmé dans le codele 3e appelant annoncé (fractal_seed) a disparu : il refuse désormais par 'hedera_mint_receipt_authority_unavailable' (fractal_seed_treasury_consumer.py:161-168)
21⚠ L'AUTRE HORLOGE — FractalBioTickWorker démarre et ne publie RIENdémarré, 0 abonnement bus — journal explicite 'FractalBioTickWorker démarré sans bus (fractal_causal_clock_unassigned)'backend/app/main.py:856 (await bio_tick_worker.start()) + main.py:851-860 · confirmé dans le codele raccord à un tick durable ; nommer le bio-tick worker 'l'horloge souveraine' serait faux — il tourne hors du circuit de frappe
22⚠ L'AUTORITÉ — TROIS entrées non vides sur 7, pas une (claim RÉFUTÉ)7 entrées ; 3 NON VIDES : clock.fractal.snapshot={fractal_clock_service} · bioacoustic.energy.emitted={bioacoustic_energy_emitter} · babel.fractal.energy.generated={cosmic_circuit, bioacoustic_fractal_pipeline_bridge} (DEUX sources). 4 VIDES : temple, mission, forge.product.distributed, forge.pierre.philosophalebackend/app/core/bus_acl.py:78-87 · confirmé dans le codela planche annonçait « UNE SEULE entrée non vide sur 7 » : faux au commit. Et « cosmic_circuit SEUL publieur autorisé » n'est vrai qu'avec le qualificatif « en exercice » explicité ci-dessous
23⚠ LE SECOND PUBLIEUR AUTORISÉ EXISTE, CÂBLÉ, ET SON AMONT EST VIDEemit_energy( : 0 appelant de production sur TOUT le dépôt au commit (git grep 'emit_energy' HEAD -- . : seulement 2 fichiers de tests, le ré-export __init__.py:12, 3 commentaires et 6 docs). Les DEUX arbres sont couverts : la recherche porte sur l'intégralité de HEAD, pas sur backend/app/ seulbackend/app/main.py:874-885 (FractalPipelineBridge souscrit) · backend/app/services/bioacoustic/fractal_pipeline_bridge.py:19,101-121 · backend/app/services/bioacoustic/energy_emitter.py:49 · confirmé dans le codeun appelant serveur de emit_energy. Le pont est une conduite propre branchée sur un robinet fermé
24LE REFUS — la couture atomique : BÂTIE pour fractal, PAS pour mission1 commit unique sur le chemin fractal (emission_producer fourni) ; 2 transactions séparées sur le chemin mission (emission_allowance committe seule, puis governed_reward SANS emission_producer)backend/app/services/babel/governed_mint.py:393-512 (verrou causal + G4 + ledger sous UN commit) · backend/app/services/mission_reward_consumer.py:109-111 puis :124-129 · confirmé dans le codele chemin mission ne passe pas par reserve_emission_in_transaction : sa réservation G4 et son écriture au grand-livre ne sont pas dans la même transaction
25SECOND OUTPUT / FORGE — la porte refuse, mais par un code GÉNÉRIQUE, pas « par son nom »2 portes REST ; liste du pont = VIDE ; /publish = liste positive de PUBLIC_PUBLISH_ALLOWED_TOPICS (bus_topics.py:800) ; les 7 topics qui frappent sont refusés inconditionnellementbackend/app/routers/event_bus.py:90 (FRONTEND_BRIDGE_ALLOWED_TOPICS = frozenset()) · :156 (TOPICS_QUI_FRAPPENT = frozenset(EXACT_TOPIC_SOURCES)) · :158 (PUBLISH_REFUS_CODE) · main.py:1847 (router monté) · confirmé dans le codele commentaire :110-120 dit explicitement que le refus a été DÉPOUILLÉ de son nom de sujet : « Les deux portes rendent désormais event_topic_forbidden, et rien d'autre ». « Refuse par son nom » décrit l'état ANTÉRIEUR
26⚠ MISSION — la soudure est posée, et son amont a été RETIRÉ depuis les fichesconsommateur monté, lire_frappe branché ✔ ; publieur de mission.rewarded : 0 — complete_mission LÈVE 'mission_proof_gate_unavailable' ; ACL = frozenset()backend/app/main.py:1033 (attach_to_bus) · backend/app/services/mission_reward_consumer.py:109-150 · backend/app/services/mission_center_service.py:621 (raise MissionProofGateUnavailable) · backend/app/core/bus_acl.py:85 · confirmé dans le codeTROIS fois coupé : plus d'émetteur, ACL vide, porte REST fermée. Et la docstring du consommateur (mission_reward_consumer.py:6) cite encore « mission_center_service.py:333 » comme émetteur — PÉRIMÉE. La soudure est posée sur un tuyau sans amont
27⚑ LE CALCUL EST SOUSTRAIT — vrai dans la formule, NEUTRALISÉ dans le chemin vivantla soustraction existe dans fractal_pipeline ; le seul publieur autorisé en exercice (cosmic_circuit) écrit compute_cost_ms = 0.0 en dur — ni crédité, ni soustraitbackend/app/services/babel/fractal_pipeline.py:316-331 (_compute_net_value : production − compute_cost_ms × 0.01) · backend/app/services/cosmic_circuit.py:272 ("compute_cost_ms": 0.0) · confirmé dans le codela doctrine du prix inverse n'est exercée par AUCUN chemin atteignable
28⚑ LE « MINAGE » = LONGUEUR EN OCTETS — vrai, mais sur le chemin que l'ACL REFUSEoctets/1024 × 10 ; 0 nonce, 0 difficulté. Mais publish positionnel ⇒ source par défaut 'system', retiré de TRUSTED_SOURCES et absent de EXACT_TOPIC_SOURCES ⇒ fail-close. Le chemin vivant (cosmic_circuit:259-298) calcule ur_coin_minted = work_units, aucune longueur d'octetsbackend/app/services/babel/fractal_pipeline.py:255-265 (len(utf-8)/1024 × 10 × multiplicateur) · :884-932 (publish POSITIONNEL, sans source=) · backend/app/core/bus_acl.py:81-83 · confirmé dans le codela formule-octets décrit un battement refusé à la porte ; la citer comme « le minage » attribue au système vivant une règle qu'il n'applique pas
29⚠ LA RESTITUTION NE SE DÉGUISE PAS — l'organe est bâti, la gâchette n'existe pasgoverned_restitution : 0 appelant de production sur TOUT le dépôt (git grep HEAD -- . : sa propre définition, 1 commentaire, 5 fichiers de tests)backend/app/services/babel/governed_mint.py:246 (RESTITUTION_PREFIX) · :249-308 (governed_restitution) · backend/app/services/treasury_service.py:1503-1531 (arestitute_credits : tx_type distinct, jamais un signe) · confirmé dans le codel'appelant. Un mécanisme anti-déguisement que rien ne déclenche
30LE CADRAN HONNÊTE — il dit « db_absente » au lieu de rendre 0GET /api/v2/babel/emission/state ; 2 producteurs de captation déclarés (captation:temple:%, captation:forge:%)backend/app/routers/babel/emission_state_router.py:1-60 · :284-305 (compute_theta en lecture) · backend/app/main.py:1988 (register_router, non-core) · confirmé dans le code« monté » est conditionnel : register_router (main.py:1637-1655) AVALE l'ImportError pour un routeur non-core — il l'inscrit dans _registered_broken et journalise, sans faire échouer le démarrage. L'atteignabilité réelle ne se prouve qu'au runtime, et je n'ai interrogé aucun serveur
31⚠ LA TAXE DE CIRCULATION — PAS codée en dur : elle est GOUVERNÉE (claim RÉFUTÉ)valeur lue dans economic_settings (monetary.burn_rate_on_transactions), semée à 1.0 puis divisée par 100 via _PERCENTAGE_FRACTION_KEYS ⇒ 0.01. Le 0.01 littéral est le REPLI, pas la règlebackend/app/services/treasury_service.py:154-165 (_get_runtime_burn_rate) · :130 (fallback Decimal('0.01')) · backend/app/services/economic_settings_service.py:18,253 · backend/app/data/economy_data.py:173 · backend/alembic/versions/v82_044_fix_burn_rate_seed.py · confirmé dans le codela planche annonçait « codée en dur ». Faux : le mécanisme de vote existe. Ce qui n'est PAS établi, c'est la valeur réellement en base en production — je n'ai interrogé aucune base
32HEDERA — le serveur signe à la place du porteurune seule clé d'opérateur serveur signe ; admin/supply/freeze/pause keys = la clé de l'opérateur (:272-275). Mock par défautbackend/app/services/hedera_service.py:209-210, 260, 382-391 (PrivateKey.fromString(self.config.operator_key) puis .sign(operator_key)) · backend/app/services/babel/babel_fractal_treasury_consumer.py:292 (HEDERA_LIVE_MODE, default=False) · confirmé dans le codele porteur ne signe nulle part. Et l'appel on-chain n'est atteint qu'APRÈS une frappe gouvernée réussie : inatteignable tant que les trois portes amont rendent 0
33⚠ LES CONTRE-ÉPREUVES — ÉCRITES, et AUCUNE n'est exécutée en CI (claim RÉFUTÉ)7 fichiers de contre-épreuves au commit (test_ce_eco_publieurs, _armure_inventaire, _nft_emissions, _requirements_hedera, _identifiant_fabrique, _user_get + _ast_deux_arbres). CI : pytest-timeout absent de requirements.txt, requirements-test.txt installé par 0 job sur 4 ⇒ 'Unknown config option: timeout' sous --strict-config ⇒ code 4, ZÉRO test exécuté.github/workflows/ci.yml (job backend : pip install -r requirements.txt puis pip install pytest pytest-asyncio httpx ; 0 occurrence de 'requirements-test') · backend/pytest.ini (timeout = 30 + --strict-config) · backend/requirements-test.txt:16 (pytest-timeout) · backend/tests/contre_epreuves_economie/ · confirmé dans le codeUNE ligne : pip install -r requirements-test.txt dans le job backend. Le second geste (les 6 marqueurs alembic/atom/mapping/vibration/harmonics/creative_layer) EST posé — pytest.ini les déclare au commit. Il reste le premier
Le lexique de cette planche 18 termes à deux registres · 6 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.

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.
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é.
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.
captationL'activité réelle déjà inscrite au registre qui autorise le système à émettre de la monnaie ; sans elle, il n'émet rien.
θ (theta)Un nombre entre 0 et 1, obtenu en comparant l'activité du dernier jour à sa moyenne de la semaine, qui multiplie tout montant que le système s'apprête à émettre.THETA_STRUCTURE — Un seuil fixe de 0,30 dans le lecteur de sons vivants : en dessous, le signal est jugé trop désordonné pour valoir quoi que ce soit.
le grand livre (treasury_transactions)La table où chaque mouvement d'argent s'écrit une fois et ne se corrige jamais : on ajoute une ligne, on n'en modifie aucune.
minageProduire de la monnaie en décodant de l'information : à intervalle régulier, le système mesure ce qu'il a décodé et frappe un montant proportionnel.
Treasury (le trésor)Le service unique qui crée et retire la monnaie, tient le portefeuille de chacun, répartit les budgets et fixe les plafonds quotidiens.
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.
armure 15DElle réunit quinze mesures d'un compte en une seule empreinte, et vérifie à chaque passage qu'aucune n'a bougé.Armure Quantique 15 Dimensions (version navigateur) — C'est l'affichage à l'écran qui dessine les quinze dimensions et en tire une note de protection.
templeUne fiche de site ancien, mesurée puis rangée avec son rôle : il produit, il stocke, ou il transmet.
forgeL'atelier qui capte : c'est son volume des dernières vingt-quatre heures qui autorise, ou non, le système à émettre de la monnaie.
Babel (Décodeur de Babel)L'outil qui mesure comment les mots ont été retournés, et qui refuse de répondre plutôt que de deviner quand sa base manque.
ACTIF / PONT / PARTIEL_ENERGIE / LATENT / VIDECinq étiquettes qui disent, pour un site, ce qui est présent de chaque côté et à quel point les deux s'accordent.

Matière : PLANCHES-MATIERE-2-INSTITUTIONNEL-2026-10-03.json (sha256 5cc49a404485) — planche de matière « L'ÉCONOMIE — la valeur sort de l'opération : le battement frappe le bus, mais il s'arrête TROIS portes avant θ ». 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.