# Textes du seed : le quorum par cran (F1.1, F1.2, N1.1) > Préparé le 2026-11-03 pour ta relecture, Yvv (lot T), d'après tes décisions : le quorum (02/11 : > « C suit le cran, mais c'est une proposition par défaut, variable modifiable par l'auteur initial > du texte […] c'est plutôt un quorum ») ; « La courbe d'aujourd'hui, après le quorum » ; sous le > quorum, « Ils comptent comme non » (03/11) ; les quorums 12 · 12 · 50 · 50 · 50 dans Monnaie libre ; > « L'auteur, avant le 1er vote » ; les Propositions seed au cran 2 (ADR 0011). Les nouveaux textes sont > collés dans `seeds/acte-engagement-certification.json` et dans un amendement gardé, sur la branche > `lot/t-textes` : **rien n'est en ligne**. > > **Mis à jour le 2026-11-03 par le lot T2** (branche `lot/t2-phrases`), après la relecture > indépendante de M6b : ces textes sont en ligne depuis M6b (03/11, 08 h 02), et trois de leurs > phrases disaient plus que les règles. Elles sont reprises ci-dessous, avant et après > (« Lot T2 »). Les blocs de texte de ce fichier sont ceux du seed d'aujourd'hui, phrases > reprises comprises. Rien du lot T2 n'est en ligne. ## Lot T2 : trois phrases reprises (après la relecture de M6b) La relecture indépendante de M6b (`bb4bdf5`) a laissé trois phrases qui disent plus que les règles. Le lot T2 les réécrit, dans le seed (une base neuve naît avec elles) et par un **amendement gardé** (`2026-11-03-f1-1-phrases`, `-f1-2-phrases`, `-n1-1-phrases`) qui suit celui de M6b. Rien d'autre ne change dans ces textes ; les titres restent. Un test le vérifie phrase par phrase (`the_amendments_of_lot_t2_go_from_the_texts_of_m6b_to_the_seed_of_today`), et que les anciens mots ont disparu des trois langues (`the_three_phrases_of_the_review_of_m6b_are_written_true`). ### F1.1 — Formule du seuil WoT - **Avant** : « Au-delà, il faut la part de « pour » que demande le cran d'inertie de l'article, parmi tous les votants : presque l'unanimité quand peu de gens votent, la majorité M quand tout le monde vote. » - **Après** : « Au-delà, il faut la part de « pour » que demande le cran d'inertie de l'article, parmi tous les votants : cette part est la plus haute au quorum et baisse quand la participation monte, jusqu'à la majorité M quand tout le monde vote. » - **Pourquoi** : la part se demande à T' = max(T, Q) votants ; sous le quorum, c'est celle du quorum, et au-delà elle ne fait que baisser. Elle n'atteint jamais l'unanimité parce que peu de gens votent : c'est le quorum qui tient le texte. En production (W 5 707, participation de référence 100 votants), au quorum : **64,4 · 73,5 · 77,4 · 85,3 · 91,9 %** du cran 1 au cran 5 ; au cran 2, **9 « pour » sur 12** (73,5 % de 12, soit 8,8, arrondi au-dessus). La relecture disait 74 % au cran 2 : le moteur donne 73,5 %. Calculé par `the_control_figures_of_the_quorum` (`crates/ld-engine/src/inertia.rs`), qui vérifie aussi, à chaque cran, que la part reste celle du quorum en dessous, ne remonte jamais au-delà et vaut M quand tout le monde vote ; le test des textes refait la même vérification sur une grille (W, quorum, cran). ### F1.2 — Paramètres par défaut - **Avant** : « L'auteur de la première version d'un article, un administrateur pour les textes de départ, peut en fixer un autre tant que personne n'a voté sur l'article ; ensuite, il ne change plus. » - **Après** : « L'auteur de la première version d'un article, un administrateur pour les textes de départ, peut en fixer un autre tant que l'article ne garde la trace d'aucun vote. » - **Pourquoi** : « ensuite, il ne change plus » est faux dans deux cas. Après l'acte « supprime », les votes simulés effacés ne laissent pas de trace, et le quorum se règle de nouveau (`quorum::voted_units`, `simulation::discard`). Dans le groupe d'essai, un vote direct retiré ne laisse pas de trace non plus (`votes` ne garde que le dernier choix). Les deux cas sont prouvés par les tests (`a_vote_exists_for_every_state_of_the_buffer`, `the_author_of_an_article_sets_its_quorum_before_the_first_vote` : le quorum se fixe de nouveau, 200 ; un vote prouvé par la chaîne, même retiré, le tient toujours, 409). - **La formulation par défaut d'orch**, « tant qu'aucun vote n'est compté sur l'article », n'est pas celle-ci : elle serait fausse dans l'autre sens. Un vote retiré sur la chaîne, ou en simulation avant « supprime », n'est plus compté, mais il laisse sa trace et le quorum reste figé ; de même une version entrée en vigueur dont les votes sont retirés. « Garder la trace » est le mot de l'ADR 0012 pour cette règle. À trancher (point 8). ### N1.1 — Niveaux d'inertie (première phrase) - **Avant** : « À chaque cran, le groupe demande un quorum de votants, puis une part de « pour » parmi eux (voir « Formule du seuil WoT »). Sous le quorum, les votants qui manquent comptent comme « non ». La part dépend du cran et du nombre de votants, comparé à la participation habituelle du groupe : plus il y a de votants, plus elle baisse, jusqu'à la majorité M quand tout le monde vote. » - **Après** : « À chaque cran, le groupe demande une part de « pour » parmi les votants (voir « Formule du seuil WoT »). Chaque cran a aussi son quorum, qui n'est pas un nombre minimal de votants : sous le quorum, les votants qui manquent comptent comme « non ». La part dépend du cran et du nombre de votants, comparé à la participation habituelle du groupe : au-delà du quorum, plus il y a de votants, plus elle baisse, jusqu'à la majorité M quand tout le monde vote. » - **Pourquoi** : « demande un quorum de votants » laisse croire à un minimum. Moins de votants que le quorum font passer un texte s'ils votent tous « pour » : en production, **8 sur 12, 9 sur 12, 39 sur 50, 43 sur 50, 46 sur 50**, du cran 1 au cran 5 (le moteur, dans `the_three_phrases_of_the_review_of_m6b_are_written_true`). « Au-delà du quorum » est ajouté à la troisième phrase : sous le quorum, la part ne baisse pas, elle reste celle du quorum. ### L'interface, dans le même sens - Sous « Inertie » (`inertia.explain`) : « Plus l'inertie est haute, plus il faut de voix pour changer ce texte quand peu de gens votent. » devient « Plus l'inertie est haute, plus il faut de voix pour changer ce texte. Sous le quorum, les votants qui manquent comptent comme « non » ; au-delà, la part de « pour » demandée baisse quand la participation monte. » - Sous la formule (`formula.reading`), la même phrase fausse : « À faible participation, il faut presque l'unanimité ; quand tout le monde vote, la majorité M suffit. Sous le quorum Q, les votants qui manquent comptent comme « non ». » devient « Sous le quorum Q, les votants qui manquent comptent comme « non ». Au-delà, la part de « pour » demandée, la plus haute au quorum, baisse quand la participation monte ; quand tout le monde vote, la majorité M suffit. » - Le refus d'un quorum (`quorum.error.voted`) : « Quelqu'un a déjà voté sur cet article : son quorum ne change plus. » devient « … son quorum ne change pas. » - Le vote déplié affichait « 0 contredont 1 simulé » : l'espace revient (« 0 contre dont 1 simulé »). Dix autres espaces se perdaient de la même façon, en tête d'un bloc Svelte : dans les détails d'une version (« proposé par Chiara· sur invitation ») et dans le nom du menu lu par un lecteur d'écran (« Menu· Messages, 1 non lu »). Un test lit tous les composants (`web/tests/unit/spaces.test.ts`). - Laissés tels quels, parce qu'ils disent ta décision (« L'auteur, avant le 1er vote ») : « l'auteur d'un article peut en fixer un autre avant le premier vote » (`settings.quorum.note`), « Seule la personne qui a écrit l'article fixe son quorum, avant le premier vote » (`quorum.error.forbidden`), « Tu fixes le quorum de cet article tant que personne n'a voté » (`quorum.explain`). Ils ont la même imprécision que F1.2 (point 8). ### La garde, en production Dans les deux groupes, F1.1 est à sa révision 2 (écrite par l'amendement de M6b), F1.2 et N1.1 à leur révision 3 (M5, puis M6b). La garde de révision est étendue : elle admet la révision écrite par les amendements que celui-ci suit, appliqués dans leur ordre, **le dernier étant celui de M6b, et eux seuls** (l'historique « texte initial » puis autant de « texte de départ remplacé »), le texte étant celui que M6b a posé (empreinte). Une base née le 02/11 avec les textes de M5 (F1.2 et N1.1 à leur révision 2, écrite par M6b seul) est admise de même. Le reste de la garde ne change pas : origine du seed, jamais entré en vigueur ni confirmé ; aucune trace de vote (vote du serveur, prouvé ou simulé ; ligne de bulletin en attente ou prouvée, quel qu'en soit le sort) ; aucune coquille, traduction de membre ni objection. Les amendements de M6b sont **dépassés** : ils ne décident plus rien, leurs décisions du 03/11 restent. Appliqué, dans une transaction, par document : le texte (fr) remplacé, la révision + 1 (F1.1 : 3 ; F1.2 et N1.1 : 4) ; une ligne « texte de départ remplacé » dans l'historique, sans auteur ; en et es remplacés ; la décision dans `seed_amendments` ; dans Monnaie libre, une ligne par article dans la file de publication, qui attend le premier texte en vigueur. Refusé, le texte de M6b reste, avec sa raison (`votes`, `ballots`, `corrected`, `translation_edited`, `signalled`, `revised`, `text_differs`…), consignée une fois pour toutes. Testé (`crates/ld-server/tests/seed_quorum_texts.rs`) sur une base faite comme la production après M6b — née avec les textes du 21/10, démarrée par le seed de M5, puis par celui de M6, puis par celui de M6b (les textes de M6b gardés dans `tests/fixtures/seed-quorum-m6b.json`) : appliqué une fois dans les deux groupes, six révisions et trois lignes de file de plus, rien d'autre ; au second démarrage, rien n'est rejoué. Refusé avec sa raison là où un vote simulé est compté (`votes`), là où un bulletin attend (`ballots`), là où un vote direct tient dans le groupe d'essai (`votes`) ; le refus tient même une fois le vote parti. **Deux limites, écrites** (le commentaire de `seed_amend.rs`) : dans le groupe d'essai, un vote direct retiré ne laisse pas de trace, et l'amendement s'applique (testé) ; de même un vote simulé que l'acte « supprime » aurait effacé avant la mise en ligne de T2 (l'amendement décide une fois, au premier démarrage). En production aujourd'hui : 0 vote, 0 bulletin, une seule identité (dit par orch). ## Avant de lire - **Ce qui change.** Trois articles décrivaient encore l'ancien plancher C de voix « pour » : « Formule du seuil WoT » (F1.1), « Paramètres par défaut » (F1.2), « Niveaux d'inertie » (N1.1). Ils disent désormais le quorum, dans cet ordre : d'abord le sens (sous le quorum, les votants qui manquent comptent comme « non » ; au-delà, la part de « pour » du cran), puis la formule en code, telle que le moteur la calcule (`crates/ld-engine/src/threshold.rs:3-6`). F1.2 et N1.1 disent aussi le départ d'après l'ADR 0011 : aucun article en vigueur, Raison d'être, Unicité du compte et Réciprocité en Propositions seed au cran 2, le titre du document au cran 4. - **Les titres** sont gardés tous les trois : ils restent vrais. - **Les nombres.** Chaque nombre de ces textes, dans les trois langues, est calculé par le moteur ou lu dans le seed par un test (`crates/ld-server/tests/seed_quorum_texts.rs`, `every_number_of_the_quorum_texts_is_the_engine_s`) : un chiffre que rien ne justifie fait échouer le test. Les trois formules écrites dans les textes sont évaluées telles quelles et comparées au moteur sur une grille de cas (`the_formulas_of_the_texts_are_those_the_engine_computes`). - **La forme**, vérifiée par le test `the_quorum_texts_follow_the_rules_of_form` et par `render()` (`web/src/lib/markdown.ts`) : sous-ensemble de Markdown, ni tableau ni intertitre ; une ligne vide avant chaque liste (toutes les listes sortent en `