- Le seed porte les nouveaux textes (fr, en, es), ceux du brouillon relu
(textes-regles-seed.md), pour les bases neuves.
- L'amendement de seed vise aussi une proposition ouverte du seed, par son
étiquette (Version::Open) ; mêmes gardes : rien d'une personne, 0 vote,
révision 1, empreinte attendue. Quatre amendements, de l'empreinte du seed du
21/10 (inchangée depuis 67ddee2) à celle d'aujourd'hui.
- Tests vus rouges : remplacement une fois, un vote garde le texte, republication
de Monnaie libre seule, base neuve « present ».
Boucle : 237 tests Rust, svelte-check 0, 55 vitest, e2e 35 / 35.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9.5 KiB
0007 — Inertie à cinq crans, calée sur la participation du groupe
Complète 0002 : la règle « l'inertie se vote au cran au-dessus » y est remplacée par l'héritage décrit ici. Décision d'Yvv du 2026-10-30 (revue, L10).
Contexte. Quatre niveaux (low, standard, high, max) fixaient M et G une fois pour
toutes. Yvv, 2026-10-30 : « L'indice d'inertie doit avoir 5 niveaux. Tu mets par défaut au
milieu (3) pour toutes les propositions, (4) pour les 2 engagements structurels » ; « par
défaut l'inertie de l'indice d'inertie lui-même hérite de l'inertie de l'article » ; « une
échelle cohérente qui s'adapte aux nombres de certifiés et à la participation médiane aux
votes du groupe ». Au formulaire, il a choisi l'échelle calée sur la participation :
chaque cran exige une part fixe de « pour » quand le groupe vote comme d'habitude, puis se
relâche vers la majorité M quand plus de monde vote.
Décision
La formule reste celle de la Ğ1, adoptée si « pour » ≥ ⌈R⌉ :
R = C + B^W + (M + (1 − M)·(1 − (T/W)^G)) · max(0, T − C)
Seuls M et G dépendent du cran k. M_k est la majorité à pleine participation ; s_k la part de « pour » exigée au-delà de C à la participation habituelle p̃ ; G_k s'en déduit :
s_k = M_k + (1 − M_k)·(1 − p̃^G_k) ⇔ G_k = ln(1 − (s_k − M_k)/(1 − M_k)) / ln(p̃)
| Cran | Nom | M_k | s_k |
|---|---|---|---|
| 1 | très basse | 50 % | 60 % |
| 2 | basse (l'ordre des articles de chaque section, ADR 0009) | 50 % | 67 % |
| 3 | moyenne (par défaut) | 55 % | 75 % |
| 4 | haute (E1, E2 ; le titre du document, ADR 0009) | 60 % | 83 % |
| 5 | très haute | 66 % | 90 % |
La participation habituelle p̃ d'un groupe (crates/ld-server/src/participation.rs) :
- l'échantillon : les propositions du groupe (tous ses documents, toutes sortes, modules
compris) ouvertes, en vigueur ou appliquées — statuts
open,in_force,applied, nommés un par un dans la requête — qui portent au moins un vote sur leur révision actuelle, le dernier exprimé depuis moins de 365 jours. Les brouillons et les propositions retirées n'en sont pas ; un statut qui viendrait à exister n'y entre pas tant qu'il n'est pas nommé (lot D, 2026-10-31 : la liste d'exclusionNOT IN ('draft', 'withdrawn')laissait entrer tout statut nouveau sans qu'on l'ait décidé ; testthe_usual_participation_counts_the_statuses_it_names_and_only_those) ; - T de chacune est compté au moment de la mesure : c'est le T que voit la formule, le vote étant permanent ;
- T̃ = la médiane de ces T (moyenne des deux du milieu pour un nombre pair) ; p̃ = T̃ / W, avec le W du moment : quand la toile grandit, l'échelle demande toujours s_k au même nombre habituel de votants ;
- il faut au moins 5 propositions votées ; avant, la référence p0 = 2C/W s'applique (Monnaie libre : 100 votants sur 7 224, 1,38 %) — deux fois le plancher, une participation que le groupe doit de toute façon atteindre pour que C laisse place à la majorité.
Les bornes. p̃ (mesurée ou de référence) est ramenée dans [1 %, 50 %]. Ainsi 0 < p̃ < 1, ln(p̃) est négatif et fini ; comme M_k < s_k < 1 pour chaque cran, 0 < 1 − (s_k − M_k)/(1 − M_k) < 1 et G_k est fini et positif (de 0,05 à 1,77). Alors :
- le seuil croît avec le cran : la part exigée vaut 1 − (1 − M_k)·(T/W)^G_k, croissante en M_k et en G_k, et M_k, G_k croissent avec k (à pleine participation, les crans 1 et 2 se rejoignent à M = 50 %) ;
- la part exigée décroît vers M quand la participation monte, et vaut M à T = W ;
- à p̃, la part au-delà de C vaut s_k ;
- C reste un plancher : à T ≤ C, R = C + B^W ; une seule voix ne fait jamais passer un texte dans Monnaie libre ;
- le groupe d'essai (W = 2, C = 1) : la référence vaut 100 %, ramenée à 50 % ; G reste fini ; il faut les deux voix, à tout cran. Cette garde tient à B^W : dès 16 membres, 0,1^W passe sous la précision du calcul (1 + 10⁻¹⁶ = 1), et une voix seule suffit alors, C valant 1. Monnaie libre n'est pas concernée (C = 50).
Les réglages de la formule disent les deux, dans cet ordre (lot D) : la mesure telle quelle — sa
part est celle de la valeur elle-même, une médiane de 2,5 votants sur 4 fait 62,5 %, jamais
« 3 sur 4 » arrondi d'abord (web/src/lib/participation.ts, usualShown) —, puis ce que le
groupe en fait quand elle est ramenée : « le groupe demande ses voix pour comme si 2 personnes
votaient (50 %) » (contrôle C27).
La borne basse limite aussi l'effet de propositions à une voix multipliées pour faire baisser
la médiane (une médiane basse adoucit les seuils au-dessus d'elle) : à 1 % près, l'effet est
borné, et il faudrait plus de propositions de ce genre que de vraies. Les propositions retirées
sortent de l'échantillon (relecture de a576b68, 2026-10-30) : sinon, créer cinq propositions, y
voter puis les retirer tirerait la médiane vers le bas sans laisser de trace visible, et leurs
votes ne pourraient plus être repris.
Le recalcul : une fois par jour. La mesure est gardée dans settings
(participation:<groupe> : médiane, taille de l'échantillon, date) ; elle est reprise au
démarrage puis par le balayage (toutes les 5 minutes) dès qu'elle a 24 heures. Un seuil qui
bougerait à chaque vote exprimé ailleurs dans le groupe ne se lirait pas ; une fois par jour,
il reste stable dans la journée et suit pourtant la vie du groupe. W, lui, change à son rythme
(la toile, toutes les 6 heures), et p̃ = T̃ / W le suit aussitôt.
L'inertie de l'inertie hérite du cran de l'article. Une proposition de changement
d'inertie se vote au cran actuel de l'article (compose::voting_level), comme son texte —
plus au cran au-dessus. Le cran se change en proposant l'un des cinq crans.
Un entier reste un entier. Le calcul flottant de ln et de la puissance peut porter un
milliardième de voix : un seuil qui tombe juste sur un entier (90 % de 70 = 63) ne doit pas
monter d'une voix pour autant. La part inertielle est ramenée à l'entier quand elle en est à
moins de 10⁻⁹ (threshold::settle) ; cas réel : 101 membres qui votent tous, M = 55 %, C = 1,
il faut 56 voix, et non 57.
Les nombres
W = 7 224, C = 50 ; voix pour exigées (tests ld-engine/src/inertia.rs) :
| Médiane | T | cran 1 | cran 2 | cran 3 | cran 4 | cran 5 |
|---|---|---|---|---|---|---|
| 120 votants | 120 | 92 | 97 | 103 | 109 | 113 |
| 120 votants | 500 | 306 | 329 | 362 | 397 | 432 |
| 120 votants | 2 000 | 1 091 | 1 145 | 1 271 | 1 404 | 1 549 |
| 360 votants | 120 | 95 | 101 | 106 | 112 | 116 |
| 360 votants | 360 | 236 | 258 | 283 | 308 | 329 |
| 360 votants | 500 | 316 | 345 | 381 | 416 | 449 |
| 360 votants | 2 000 | 1 114 | 1 184 | 1 318 | 1 460 | 1 608 |
Le cas de référence de la formule (vote forgeron v2.0.0 : W 7 224, 120 votants, M 50 %, G 0,2, C 0 → 94 voix) reste le test de la formule elle-même, lettres données ; ce ne sont plus les lettres d'aucun cran.
Les données
- Migration
0005: les quatre mots deviennent des crans (low → 2, standard → 3, high → 4, max → 5 ; le cran 1 est nouveau) dansunits.inertiaetproposals.inertia_target. Chaque mot est d'abord gardé tel quel (inertia_legacy,inertia_target_legacy) ; lesparamsdesadoptionspassées ne sont pas touchés (ils portent les M et G de leur jugement). Le serveur lit toujours les quatre mots. Les adoptions nouvelles gardent en plus le cran, s_k et p̃ (sa source, l'échantillon, la médiane). - Le seed : 3 partout, 4 pour E1 et E2.
- Dans une base existante, E1 et E2 passent de 3 à 4 par un amendement d'inertie
(
crates/ld-server/src/inertia_amend.rs), dans la lignée des amendements de seed : décidé une fois par document, seulement si aucun vote n'a changé l'inertie de l'article (pas d'adoption d'inertie, cran encore celui du seed). Une proposition d'inertie ouverte ne l'arrête pas : elle reste ouverte et se vote au nouveau cran. Chaque décision est gardée (inertia_amendments), écrite dans les journaux, se lit sur l'article (inertia_changes: « passée de 3 à 4 : réglage de départ du texte ») et le document est republié.
Coût
- Les seuils de Monnaie libre changent. Avec W = 7 224, C = 50 et la référence (100 votants),
le cran 3 demande 103 voix à 120 votants (
standard: 105), 360 à 500 (369), 1 265 à 2 000 (1 246), 3 996 quand tout le monde vote (3 637, M passant de 50 à 55 %) : un peu moins jusqu'à un millier de votants, plus au-delà. Le cran 4 demande 108 à 120 votants (high: 115), 395 à 500 (439), autant à pleine participation (M 60 %). Rien n'est en vigueur par un vote aujourd'hui ; les seuils déjà affichés bougent. - Le seuil d'une proposition dépend désormais des autres votes du groupe, par la médiane : une fois par jour, un texte peut passer ou ne plus passer sans nouveau vote sur lui (comme quand W change). Chaque entrée en vigueur garde la médiane qui l'a jugée.
- Le document publié (
document.json) porte l'inertie en nombre (1 à 5), et non plus en mot. - Le texte N1.1 du seed (« Niveaux d'inertie », quatre niveaux) décrivait autre chose que la règle
en place. Le 2026-11-02, Yvv a fait réécrire F1.2, N1, N1.1 et O1 selon les règles appliquées
(
docs/chantiers/acte-certification/textes-regles-seed.md) ; un amendement de seed gardé remplace ces propositions ouvertes là où personne n'y a touché (seed_amend,Version::Open).