Files
decision/docs/adr/0007-inertie-cinq-crans.md
T
YvvandClaude Opus 5.5 71819f9012 v3 : relecture de a576b68 — les propositions retirées sortent de la médiane, les réglages montrent la vraie participation
La médiane de participation ne compte plus les propositions retirées (invisibles, votes
non repris). Quand l'échelle ramène la participation dans ses bornes, les réglages disent
la médiane mesurée (ou deux fois C) et, à part, la valeur sur laquelle les seuils se calculent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 19:41:33 +01:00

8.1 KiB
Raw Blame History

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 50 % 67 %
3 moyenne (par défaut) 55 % 75 %
4 haute (E1, E2 ; le titre du doc, lot D) 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, brouillons et propositions retirées exceptés) qui portent au moins un vote sur leur révision actuelle, le dernier exprimé depuis moins de 365 jours ;
  • 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.

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) dans units.inertia et proposals.inertia_target. Chaque mot est d'abord gardé tel quel (inertia_legacy, inertia_target_legacy) ; les params des adoptions passé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) est une proposition de la communauté : il n'est pas modifié et décrit désormais autre chose que la règle en place.