# 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 »). *(En ligne depuis M6c, le 03/11 à 11 h 05.)* > > **Mis à jour le 2026-11-03 par le lot T3** (branche `lot/t3-chiffres`), après ta validation du > jour : N1.1 perd son exemple chiffré, et trois phrases, deux de N1.1 et une de F1.2, sont écrites > vraies pour tout W et tout quorum (« Lot T3 », ci-dessous). Les blocs de texte de ce fichier sont > ceux du seed d'aujourd'hui. Rien du lot T3 n'est en ligne. ## Lot T3 : aucun chiffre daté, chaque phrase vraie pour tout W Ta réponse du 03/11 (avant 16 h 56), mot pour mot : « Je valide textes-quorum-seed (dont le point 3, pas de chiffre datés dans un texte voté). Tu peux lancer la livraison de decision. » **Les points tranchés le 03/11** (« Points à trancher », plus bas) : - **point 3 : retiré.** L'exemple de N1.1 (7 224 membres, 120 votants, et ce qui en était calculé) sort des trois langues. Rien ne le remplace : un exemple qui ne porterait que des paramètres, vrai pour tout W, ne dirait rien de plus que la liste des crans ; - **points 1, 2, 4 et 8 : le défaut reste.** 1 : ton intention de remonter l'inertie n'est pas écrite ; 2 : « Propositions seed » reste le mot du texte voté ; 4 : le groupe d'essai n'est pas nommé, les quorums sont ceux « dans Monnaie libre » ; 8 : F1.2 garde « tant que l'article ne garde la trace d'aucun vote » (le texte en ligne), et l'interface ta formule « avant le premier vote ». **Est daté** tout nombre qui dépend de l'état de la toile (W) ou d'une participation à une date. Restent les paramètres et les règles : les quorums 12 · 12 · 50 · 50 · 50, M et s de chaque cran, B = 0,1, les bornes 1 % et 50 %, « jamais moins de 2 », 6 heures, un an, une fois par jour, 5 propositions, la référence « deux fois le quorum de référence : 100 votants » (2 × 50). F1.1 et F1.2 n'avaient aucun chiffre daté. Le test des nombres (`every_number_of_the_quorum_texts_is_the_engine_s`) n'admet plus que des paramètres : chacun vient du seed ou d'une constante du moteur, et ils sont les mêmes sur toute toile de 100 à 10 000 000 membres (`wot::PLAUSIBLE`, les tailles que le serveur tient pour vraies) ; aucune participation n'y entre. Vu rouge sur le texte de T2 : N1.1 portait 7 224 · 120 · 72 · 81 · 90 · 100 · 108 · 75 % · 90 · 9 · 3 · 39 · 11, que rien ne justifie. Ensuite, **chaque phrase des trois textes relue** pour tout W et tout quorum dans les bornes (2 à W dans Monnaie libre, 1 à W dans le groupe d'essai), tout cran, toute participation entre 1 % et 50 %. Trois phrases étaient fausses quelque part, chacune prouvée par un test ; elles sont corrigées au plus court. Rien d'autre ne change ; les titres restent. ### N1.1 — Niveaux d'inertie - **Le quorum** (premier paragraphe). - **Avant** : « 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 ». » - **Après** : « Chaque cran a aussi son quorum : sous le quorum, les votants qui manquent comptent comme « non », et il faut autant de voix pour que si le quorum avait voté. » - **Pourquoi** : « pas un nombre minimal de votants » est faux pour un quorum d'auteur bas. Au quorum 2, la part du quorum dépasse 50 % : il faut 2 « pour », une seule voix ne passe jamais, et le quorum est alors un minimum de votants, à tout cran et sur toute toile (de même au quorum 1 du groupe d'essai). La phrase nouvelle est vraie pour tout quorum : avec moins de votants que le quorum, les « pour » qui passent sans « contre » sont exactement le seuil du quorum (`yes_needed(0)` égale le seuil à T = Q), et un décompte passe dès que ses « pour » l'atteignent. Prouvé sur une grille par `under_the_quorum_it_takes_as_many_for_as_if_the_quorum_had_voted` : W de 100 à 10 000 000, chaque quorum de 2 à W jusqu'à 10 000 membres (des quorums choisis au-delà), les cinq crans, quatre participations dans les bornes ; le groupe d'essai de 1 à 40 membres, chaque quorum de 1 à W ; plus de 500 000 cas. C'est le défaut d'orch, mot pour mot. - en : « Each level also has its quorum: below the quorum, the voters who are missing count as votes against, and it takes as many votes in favour as if the quorum had voted. » ; es : « Cada nivel tiene además su quórum: por debajo del quórum, los votantes que faltan cuentan como «no», y hacen falta tantos votos a favor como si hubiera votado el quórum. » - **La liste des crans** (son introduction). - **Avant** : « **Les cinq crans** : le quorum dans Monnaie libre, la part exigée quand le groupe vote comme d'habitude, puis quand tout le monde vote, et ce qui est à ce cran au départ. » - **Après** : « **Les cinq crans** : le quorum dans Monnaie libre, la part exigée au-delà du quorum, quand le groupe vote comme d'habitude, puis quand tout le monde vote, et ce qui est à ce cran au départ. » - **Pourquoi** : « 75 % comme d'habitude » n'est vrai que si la participation habituelle atteint le quorum. En dessous, le groupe qui vote comme d'habitude est jugé sur le quorum : sur une toile de 3 000 membres dont la médiane est de 40 votants (dans les bornes : 1 %, c'est 30), au cran 3, quorum 50, il faut 38 « pour » de ces 40 votants, 95 %, pas 75 %. Cela arrive dès que la toile passe sous 5 000 membres (1 % sous 50) avec une médiane sous 50, ou quand l'auteur d'un article fixe un quorum au-dessus de la participation habituelle. Prouvé par `the_share_of_a_level_as_usual_is_asked_beyond_the_quorum` : la part du cran exactement quand la participation habituelle atteint le quorum, une part plus basse, sur plus de votants, sinon ; M quand tout le monde vote, à tout quorum. - en : « the share asked beyond the quorum, when the group votes as usual, then when everyone votes » ; es : « la proporción exigida más allá del quórum, cuando el grupo vota como de costumbre, luego cuando vota todo el mundo ». - **L'exemple** (dernier paragraphe) : retiré entier, dans les trois langues (point 3). ### F1.2 — Paramètres par défaut - **Avant** : « Le cran par défaut est le 3 (moyenne) : M = 55 %, un quorum de 50 dans Monnaie libre, et le groupe demande 75 % de « pour » quand il vote comme d'habitude. » - **Après** : « Le cran par défaut est le 3 (moyenne) : M = 55 %, un quorum de 50 dans Monnaie libre, et, au-delà du quorum, le groupe demande 75 % de « pour » quand il vote comme d'habitude. » - **Pourquoi** : la raison de la liste des crans de N1.1 ; le cas de 3 000 membres est celui-ci (cran 3, quorum 50). en : « and, beyond the quorum, the group asks for 75% of votes in favour when it votes as usual » ; es : « y, más allá del quórum, el grupo pide un 75 % de votos a favor cuando vota como de costumbre ». ### F1.1 — relu, laissé Aucun chiffre daté, aucune phrase fausse : pas d'amendement. « B : la base ; à la puissance W, elle est si petite qu'elle ne compte pas » est vrai sur toute toile de 100 à 10 000 000 membres : le seuil du moteur y est celui sans B, même quand la part tombe juste sur un entier (`threshold::settle`, `clamp_ceil` : M × W quand tout le monde vote, s × la participation habituelle, 60 · 67 · 75 · 83 · 90 « pour » à 100 votants), prouvé par `b_to_the_power_w_never_counts_in_the_web_of_trust`. Ce n'est pas vrai d'un très petit groupe : dans le groupe d'essai, où W est le nombre de ses membres, B^W compte (deux membres qui votent : deux « pour », jamais un seul). F1.1 dit que W est la toile de confiance, et les textes ne décrivent pas le groupe d'essai (point 4) : laissé (point 10). ### La garde, en production Dans les deux groupes, F1.2 et N1.1 sont à leur révision 4 (M5, puis M6b, puis M6c), F1.1 à sa révision 3. Les amendements `2026-11-03-f1-2-chiffres` et `2026-11-03-n1-1-chiffres` suivent ceux de T2 (`2026-11-03-f1-2-phrases`, `-n1-1-phrases`), qui sont **dépassés** : ils ne décident plus rien, leurs décisions du 03/11 restent. La garde de révision admet la révision écrite par les amendements suivis, dans leur ordre, le dernier étant celui de T2, et eux seuls : en production, M5, M6b et M6c (révision 4) ; sur une base née le 02/11 avec les textes de M5, M6b et M6c (révision 3) ; née avec ceux de M6b, M6c seul (révision 2) ; née avec ceux de M6c, la révision 1 ; le texte étant celui que M6c a posé (empreinte). 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. | Article | Empreinte d'avant : le texte de T2, en ligne | Empreinte d'après : le texte de T3 | |---|---|---| | F1.2 | `96caf353b33805f2894593d72c5b70fce2e751039cd7f4651d8842c986729a14` | `ddce5aa5fcd13dfc3e374c37509a1bb8cfafddefb6e6add5a06b130b43216d62` | | N1.1 | `7fbedcb8750c208f8790c4f87dc21d8bd1096a27a1a0044af6b9b8f2057f2aa8` | `4289e3579ee747f6023162339ed60601b810d33462617b42a9f8b5b3735c3238` | Appliqué, dans une transaction, par document : le texte (fr) remplacé, **révision 4 → 5** pour F1.2 et N1.1 ; une ligne « texte de départ remplacé » dans l'historique, sans auteur (la révision 4, le texte de T2, reste lisible, avec son diff) ; en et es remplacés ; la décision dans `seed_amendments`. **La file de publication de Monnaie libre** reçoit deux lignes de plus (« proposition de départ réécrite : F1.2, la part du cran par défaut au-delà du quorum » et « … : N1.1, sans chiffre daté ; sous le quorum, autant de voix pour que si le quorum avait voté ») ; elles attendent, comme les autres, le premier texte en vigueur (ADR 0011) puis des votes prouvés (ADR 0012) : rien n'est publié tant qu'aucun article n'est en vigueur. Le groupe d'essai ne publie jamais. Refusé, le texte de T2 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 M6c — née avec les textes du 21/10, démarrée par le seed de M5, puis de M6, de M6b et de M6c (les textes de T2 gardés dans `tests/fixtures/seed-quorum-t2.json`) : appliqué une fois dans les deux groupes, quatre révisions et deux lignes de file de plus, F1.1 et tout le reste intacts ; 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. Appliqué aussi sur une base née le 02/11 avec les textes de M5, et sur une base née avec ceux de T2. Les deux limites de T2 restent (le commentaire de `seed_amend.rs`) : un vote direct retiré dans le groupe d'essai, ou un vote simulé que l'acte « supprime » aurait effacé avant la mise en ligne, ne laissent pas de trace. En production d'après l'ordre T3 : 0 vote, 0 bulletin (à revoir à la répétition). ## 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. - *Reprise par le lot T3* : « qui n'est pas un nombre minimal de votants » est vrai aux quorums des crans, faux pour un quorum d'auteur bas (au quorum 2, il faut 2 « pour »). ### 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 un paramètre lu dans le seed ou une constante du moteur, vérifiés 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 ; depuis le lot T3, aucun ne dépend de W ni d'une participation. 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 `