v3 : inertie à cinq crans — ADR 0007, chantier, contrôles

ADR 0007 : les cinq crans, M_k et s_k, G_k déduit à la participation
habituelle ; la médiane (propositions votées dans l'année, au moins 5,
T compté à la mesure), la référence 2C/W, les bornes [1 %, 50 %], le
recalcul une fois par jour, l'héritage de l'inertie de l'inertie,
l'arrondi stable, la migration et l'amendement de E1 et E2, ce que ça
coûte (seuils comparés à ceux d'avant). L'ADR 0002 le note ; index.

CHANTIER.md : la table des crans et « l'inertie se vote aussi » au cran
de l'article. CLAUDE.md : l'invariant devient « hérite du cran de
l'article ». CONTROLES.md : C4, M1, et C20 « réglages de la formule et
cinq crans ». README, note de source du seed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-10-30 17:24:48 +01:00
co-authored by Claude Opus 5.5
parent db64405e1e
commit a57a1ff642
8 changed files with 194 additions and 24 deletions
+6 -1
View File
@@ -1,5 +1,9 @@
# 0002 — Vote permanent : marge du texte en place et plancher C
> **Complétée par [0007](0007-inertie-cinq-crans.md)** (2026-10-30) : l'inertie a cinq crans,
> calés sur la participation habituelle du groupe, et un changement d'inertie se vote au cran
> de l'article — il n'est plus voté au cran au-dessus.
**Contexte.** Chaque article est sous vote permanent ; « dès qu'une proposition atteint le score,
elle remonte en vigueur ». La formule inertielle Ğ1 donne un seuil faible quand peu de gens
votent : sans garde-fou, une seule voix ferait passer un texte. Sans règle de départage, deux
@@ -12,7 +16,8 @@ versions qui atteignent leur seuil s'échangeraient la place à chaque vote.
(pour − requis) strictement plus large que la version en place. La version déplacée redevient
une proposition avec ses votes : rien n'est perdu, tout peut revenir.
- Les textes de départ sont des *seeds a minima* (0 vote, marge −C) : visibles, non adoptés.
- Changer l'inertie d'un article est une proposition votée à l'inertie du cran au-dessus.
- Changer l'inertie d'un article est une proposition votée à l'inertie du cran au-dessus
(remplacé le 2026-10-30 : elle hérite du cran de l'article, ADR 0007).
- Le balayage tourne après chaque geste et toutes les 5 minutes, sous un verrou global.
**Coût.** Une version en place très soutenue est difficile à déloger — c'est voulu. La taille
+135
View File
@@ -0,0 +1,135 @@
# 0007 — Inertie à cinq crans, calée sur la participation du groupe
> Complète [0002](0002-vote-permanent.md) : 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
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.
**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.
+1
View File
@@ -11,3 +11,4 @@ pas une décision : on en écrit une nouvelle qui la remplace, et on le note dan
| [0004](0004-contradictions-signalees.md) | Contradictions : signalées par les personnes, bloquantes | 2026-10-21 |
| [0005](0005-publication-git.md) | Publication par file d'envoi vers un dépôt git | 2026-10-21 |
| [0006](0006-acces-connect-trustinwallet.md) | Accès : connect.monnaie-libre.fr, invitations, trustinWallet | 2026-10-21 |
| [0007](0007-inertie-cinq-crans.md) | Inertie à cinq crans, calée sur la participation du groupe (complète 0002) | 2026-10-30 |