forked from yvv/decision
Fusion de chantier/acte-certification (lots H et S) dans le lot V : le tampon et ses états, avec le quorum et les Propositions seed
- conflits résolus des deux côtés : kept_params garde le quorum (S) et la part simulée, la version déplacée, le cran d'avant (V) ; proposals.rs garde seedMinimal / seedProposal (S) et tallyPending / tallySimulated / myVoteState (V) ; - simulation::reexamine juge sur le quorum gardé par l'adoption (params.quorum, à défaut celui de l'article) ; - l'acte répété n'examine plus une adoption qui tient (params.reexamined) ; - tests V repris sans texte en vigueur au départ (I1, E1 : la Proposition seed) et sur un quorum 2 (small_web) ; le test overview d'une personne invitée dans Monnaie libre suit la simulation (elle vote, chaîne fermée). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,13 @@
|
||||
> **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.
|
||||
> **Complétée par [0011](0011-propositions-seed.md)** (2026-11-02) : aucun article n'est en
|
||||
> vigueur au départ ; les textes de départ des articles sont des Propositions seed, seuls les
|
||||
> modules restent des *seeds a minima*.
|
||||
> **Le plancher C est remplacé par [0013](0013-quorum.md)** (2026-11-03) : un quorum Q par
|
||||
> cran (12 · 12 · 50 · 50 · 50 dans Monnaie libre, 1 dans le groupe d'essai), que l'auteur
|
||||
> d'un article peut changer avant le premier vote ; sous le quorum, les votants qui manquent
|
||||
> comptent comme « non ». `vote_floor` reste, comme quorum de référence de p0.
|
||||
|
||||
**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
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
> 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).
|
||||
> **Le C de la formule est remplacé par [0013](0013-quorum.md)** (2026-11-03) : R = B^W +
|
||||
> ratio(T')·T', T' = max(T, Q), un quorum Q par cran. M, G_k, s_k, p̃ et ses bornes restent ;
|
||||
> « au-delà de C » se lit désormais « parmi les T' votants » ; les nombres ci-dessous sont ceux
|
||||
> d'avant (ceux d'après : ADR 0013).
|
||||
|
||||
**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
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# 0011 — Les Propositions seed : rien en vigueur au départ, trois textes mis en avant
|
||||
|
||||
> Remplace, dans [0002](0002-vote-permanent.md), « les textes de départ sont des *seeds a
|
||||
> minima* » pour les articles : seuls les modules (le titre, l'ordre de chaque section, ADR 0009)
|
||||
> restent en vigueur sans vote. Décision d'Yvv du 2026-11-02.
|
||||
|
||||
**Contexte.** Depuis le 2026-10-21, la Raison d'être (I1) et les deux engagements fondamentaux,
|
||||
Unicité du compte (E1) et Réciprocité (E2), étaient en vigueur au départ, sans vote (*seeds a
|
||||
minima*, marge −C). Yvv, 2026-11-02 : « pour le démarrage, conserve un statut particulier pour
|
||||
les 3 premiers modules. Mais ils ne sont pas en vigueur. Appelle les "Proposition seed" (intégré
|
||||
par un ou deux clients pour amorcer le mouvement de vote). » Puis : « on pouvait l'amorcer avec
|
||||
une inertie basse, pour que le nombre de votes initiaux soit assez petits pour commencer
|
||||
l'expérience en mode prod. Et je mettrai, une fois les textes passés, une inertie forte pour
|
||||
éviter que l'inertie passe avant les textes. » Au formulaire du même jour : le cran 2
|
||||
(« basse ») ; la publication « Suspendre jusqu'au 1er texte ».
|
||||
|
||||
## Décision
|
||||
|
||||
- **Une Proposition seed** est une proposition ouverte du seed, mise en avant pour lancer le
|
||||
vote : I1, E1 et E2 de l'Acte d'engagement Certification, dans chaque groupe. Elle **n'est pas
|
||||
en vigueur** : elle y entre comme toute proposition, par son seuil, la place étant vide. Sa
|
||||
marque est écrite à part (`proposals.seed_featured`) ; l'API dit `seedProposal` tant que la
|
||||
version est ouverte et n'est jamais entrée en vigueur (`docs::ProposalRow::seed_proposal`).
|
||||
Entrée en vigueur, c'est un texte adopté comme un autre. L'interface la marque
|
||||
« Proposition seed » (fr), « Seed proposal » (en), « Propuesta seed » (es).
|
||||
- **Au départ, aucun article n'est en vigueur.** Le titre du document et l'ordre de chaque
|
||||
section restent des *seeds a minima* (en vigueur sans vote, ADR 0009). Le lecteur le dit
|
||||
(« Aucun article n'est en vigueur… ») ; les trois textes se lisent dans « Propositions en
|
||||
cours » et dans l'aperçu « si tout passe ».
|
||||
- **Le cran 2 pour les trois**, une seule constante : `seed::SEED_PROPOSAL_LEVEL`. Le seed ne
|
||||
leur donne pas de cran (le chargement du seed le refuse), l'amendement écrit celui-là.
|
||||
**L'intention d'Yvv** : remonter l'inertie une fois les textes passés. Une proposition de
|
||||
changement d'inertie se vote au cran de l'article (ADR 0007) : faite avant l'entrée des textes,
|
||||
elle pourrait passer avant eux et leur demander davantage ; faite après, elle protège des
|
||||
textes déjà adoptés. Le serveur n'automatise rien : c'est un vote, après les textes.
|
||||
- **La publication attend le premier texte.** Tant qu'aucun article d'un document n'est en
|
||||
vigueur, sa file d'envoi attend (`publish::waits_for_a_text`) : ce n'est pas un échec (aucune
|
||||
tentative comptée, aucune erreur), l'API dit `publication.state = "suspended"`. Le premier
|
||||
texte qui entre ajoute une ligne à la file, et tout part avec lui. `LD_PUBLISH_WITHOUT_ARTICLES=1`
|
||||
publie quand même (un document sans article). Le groupe d'essai ne publie jamais.
|
||||
|
||||
## Une base existante
|
||||
|
||||
Un document seedé n'est jamais réinstancié. Dans une base existante (la production : I1, E1 et
|
||||
E2 en vigueur, *seeds a minima*, dans Monnaie libre et dans le groupe d'essai), trois
|
||||
**amendements de Proposition seed** (`crates/ld-server/src/seed_proposal_amend.rs`,
|
||||
`2026-11-02-i1-proposition-seed`, `-e1-`, `-e2-`) décident une fois par document et par article,
|
||||
consignés dans `seed_proposal_amendments` et dans les journaux.
|
||||
|
||||
**Le statut**, seulement si personne n'a touché le texte en vigueur : origine `seed`, jamais
|
||||
entré par un vote ni confirmé ; aucun vote du serveur, aucune ligne de bulletin de la chaîne,
|
||||
quel que soit son sort ; aucune coquille (appliquée, en attente ou refusée), aucune traduction
|
||||
écrite par un membre, aucune objection qui le nomme ; son historique est celui du seed (le texte
|
||||
initial, et pour I1 l'amendement de la Raison d'être du 30/10, révision 2) ; son texte est celui
|
||||
de la Proposition seed d'aujourd'hui (empreinte). Appliqué : la même version, avec son texte, ses
|
||||
traductions et son historique, devient ouverte et marquée ; l'article n'a plus de texte en
|
||||
vigueur ; l'historique dit le changement (`seed_proposal`, sans diff). Refusé : le texte reste en
|
||||
vigueur, *seed a minima*.
|
||||
|
||||
**Le cran**, avec le statut seulement, et seulement si personne n'y a touché : aucune proposition
|
||||
de changement d'inertie d'un membre ouverte, appliquée ou votée, aucun vote qui l'a changé, et un
|
||||
cran que le seed lui a donné avant (I1 : 3 ; E1 et E2 : 3, puis 4 depuis le 30/10). Appliqué :
|
||||
l'article le dit (`inertia_changes`, « réglage de départ du texte »). Refusé : il garde son cran,
|
||||
le statut change quand même.
|
||||
|
||||
**En production**, l'orch notait le 30/10 deux propositions d'inertie ouvertes à zéro vote dans
|
||||
Monnaie libre, I1 → 5 et E1 → 5. Si elles sont encore ouvertes au démarrage, I1 et E1 y
|
||||
deviennent des Propositions seed **à leur cran d'avant** (3 et 4 ; refus `inertia_proposal`), E2
|
||||
au cran 2. Pour que les trois démarrent au cran 2, leurs auteurs les retirent avant la mise en
|
||||
ligne (une proposition retirée sans vote ne compte plus). À trancher par Yvv avant M6.
|
||||
|
||||
Là où le document publie (Monnaie libre), chaque amendement appliqué ajoute une ligne à la file
|
||||
(« Proposition seed : I1 sort de la vigueur »…), qui attend le premier texte. Les deux
|
||||
amendements d'inertie du 30/10 (E1 et E2 de 3 à 4, ADR 0007) sont dépassés : décidés en
|
||||
production, ils ne décident plus rien ailleurs (`superseded_by`).
|
||||
|
||||
## Les données
|
||||
|
||||
Migration `0009` (additive) : `proposals.seed_featured` ; la table `seed_proposal_amendments`
|
||||
(statut et cran : appliqué, refusé et pourquoi, ou déjà là). Le seed : `"seedProposal": true` et
|
||||
`"status": "open"` sur la version de I1, E1 et E2, sans `inertia`.
|
||||
|
||||
## Coût
|
||||
|
||||
- Personne ne lit de texte en vigueur avant le premier vote qui passe ; le dépôt des textes
|
||||
garde la dernière publication jusque-là.
|
||||
- Les comptes bougent : 0 article en vigueur, 35 propositions en cours (les 32 d'avant et les
|
||||
trois Propositions seed) ; « Décisions » compte toujours 41 modules à voter.
|
||||
- Les textes F1.2 et N1.1 du seed disent encore Unicité du compte et Réciprocité au cran 4 au
|
||||
départ : orch les réécrira au prochain tour de textes, avec la relecture d'Yvv.
|
||||
@@ -0,0 +1,135 @@
|
||||
# 0013 — Le quorum : les votants qui manquent comptent comme « non »
|
||||
|
||||
> Remplace, dans [0002](0002-vote-permanent.md) et [0007](0007-inertie-cinq-crans.md), le
|
||||
> plancher C de voix pour placé devant la formule. Décisions d'Yvv du 2026-11-02 et du
|
||||
> 2026-11-03. La migration est la `0011` : la `0010` reste au lot V.
|
||||
|
||||
**Contexte.** Depuis le 2026-10-21, `R = C + B^W + (M + (1 − M)(1 − (T/W)^G)) · max(0, T − C)` :
|
||||
C voix pour d'abord (50 dans Monnaie libre, 1 dans le groupe d'essai), puis la part de l'inertie
|
||||
sur les votes au-delà. Yvv, 2026-11-02 : « C suit le cran, mais c'est une proposition par
|
||||
défaut, variable modifiable par l'auteur initial du texte » ; « ce n'est pas un nombre de vote
|
||||
pour a priori, c'est plutôt un quorum, à partir de ce nombre, alors il faut la bonne proportion
|
||||
attendue par l'indice. Si c'est 60 % et c = 10, alors il faut 6 voix pour et ça passe. » Au
|
||||
formulaire : « La courbe d'aujourd'hui, après le quorum » ; les quorums par défaut
|
||||
« 12 · 12 · 50 · 50 · 50 », le groupe d'essai à 1 partout ; « L'auteur, avant le 1er vote ».
|
||||
Le 2026-11-03, à « Sous le quorum, les votants qui manquent comptent-ils comme des « non » ? » :
|
||||
« Ils comptent comme non ».
|
||||
|
||||
## Décision
|
||||
|
||||
**La formule, jugée sur un quorum Q** (`crates/ld-engine/src/threshold.rs`) :
|
||||
|
||||
```
|
||||
T' = max(T, Q)
|
||||
R = B^W + (M + (1 − M)·(1 − (T'/W)^G)) · T'
|
||||
```
|
||||
|
||||
Une version passe si au moins une voix est exprimée et si « pour » ≥ ⌈R⌉. Sous le quorum, les
|
||||
votants qui manquent comptent comme « non » : la part de l'inertie est demandée à Q votants.
|
||||
La règle tient dans **une seule fonction nommée**, `threshold::judged_voters`, qui porte la
|
||||
phrase d'Yvv. M, G et les cinq crans ne changent pas (ADR 0007) : la courbe est celle
|
||||
d'aujourd'hui, après le quorum. L'exemple d'Yvv (60 %, Q = 10) donne 6 « pour » ; 6 « pour »
|
||||
contre 5 « contre » ne passent pas, 7 contre 4 passent.
|
||||
|
||||
**Monotone.** Un « pour » de plus ne nuit jamais, un « contre » de plus n'aide jamais : à
|
||||
« pour » fixé, un « contre » de plus laisse T' à Q ou l'augmente, et ratio(T')·T' ne décroît pas
|
||||
avec T' (sa dérivée reste entre 0,06 et 1 pour les cinq crans, p̃ dans ses bornes). Les tests
|
||||
le vérifient sur une grille (`an_against_never_helps`, l'équivalence de `passes` avec
|
||||
`yes_needed` et `no_needed`).
|
||||
|
||||
**Ce que l'écran peut dire** (`Evaluation`) : `quorum` ; `yesNeeded`, le total de « pour » qui
|
||||
passe avec les « contre » d'aujourd'hui ; `noNeeded`, le total de « contre » qui tient les
|
||||
« pour » d'aujourd'hui en échec (0 : le quorum les tient déjà) ; `missing = yesNeeded − pour` ;
|
||||
`wellRated`, la part de l'inertie tenue sur les T votants venus, le quorum mis de côté
|
||||
(l'aperçu « si les bien cotées passent »).
|
||||
|
||||
**Un quorum par cran**, le défaut d'un article à ce cran (`documents.quorums`) : Monnaie libre
|
||||
**12 · 12 · 50 · 50 · 50**, le groupe d'essai **1 partout**. Une proposition d'inertie se juge
|
||||
sur le quorum de son article (elle hérite de son cran, ADR 0007) ; un module, sur celui de son
|
||||
cran.
|
||||
|
||||
**Le quorum d'un article** (`units.quorum`, NULL : celui du cran) est fixé par l'auteur de sa
|
||||
première version — pour un texte du seed, sans auteur, par un administrateur —, et seulement
|
||||
**avant le premier vote** : `trustin_access::sets_quorum`, la route `PUT /units/{id}/quorum`
|
||||
(`{ "quorum": n | null }`, en-tête CSRF), dans `crates/ld-server/src/quorum.rs`. Bornes : de 2
|
||||
à W (une voix seule ne fait jamais passer un texte), de 1 à W dans le groupe d'essai
|
||||
(`ld_engine::inertia::quorum_bounds`, `trustin_access::TEST_GROUP`). Chaque changement est
|
||||
consigné (`quorum_changes` : qui, de quoi, à quoi, quand). Refus : 403 à qui n'est pas
|
||||
l'auteur, 400 `quorum` hors des bornes, 409 `voted` dès qu'un vote existe.
|
||||
|
||||
**« Un vote existe »** : une seule fonction, `quorum::voted_units` (et `quorum::a_vote_exists`
|
||||
pour une unité), que le lot V étendra là et nulle part ailleurs. Sur l'une des versions de
|
||||
l'article (textes, retrait, changement d'inertie ; toute révision) : un vote du serveur
|
||||
(`votes`) ; une ligne de bulletin de la chaîne en attente ou confirmé (un bulletin refusé ou
|
||||
expiré n'est pas un vote) ; une adoption (une version entrée en vigueur par le vote en garde la
|
||||
trace, même ses votes retirés). **Limite connue** : un vote du serveur retiré avant toute
|
||||
adoption ne laisse pas de ligne (`votes` ne garde que le dernier choix) ; après lui, l'auteur
|
||||
peut de nouveau fixer le quorum.
|
||||
|
||||
**La participation de référence** reste p0 = 2Q₀/W, Q₀ le quorum de référence du document
|
||||
(`documents.vote_floor` : 50 dans Monnaie libre, 1 dans le groupe d'essai), **jamais le quorum
|
||||
d'un article** : un auteur qui baisserait le sien déplacerait l'échelle de tout le groupe.
|
||||
|
||||
## Une base existante
|
||||
|
||||
Un document seedé n'est jamais réinstancié. Tant que `documents.quorums` est NULL, chaque cran
|
||||
lit `vote_floor` (le C d'avant : 50 et 1). L'**amendement de quorums**
|
||||
`2026-11-03-quorums-par-cran` (`crates/ld-server/src/quorum_amend.rs`) décide une fois par
|
||||
document, seulement si le seed d'aujourd'hui donne ces quorums à l'instance : NULL → écrit
|
||||
(`applied`) ; les mêmes → `present` ; d'autres → refusé (`quorums_set`), gardés tels quels.
|
||||
Chaque décision est consignée (`quorum_amendments` : ce qui était là, ce que dit le seed,
|
||||
l'issue, la raison) et dans les journaux ; là où le document publie (Monnaie libre), une ligne
|
||||
s'ajoute à la file (« quorums par cran : 12 · 12 · 50 · 50 · 50 (ADR 0013) »), qui attend le
|
||||
premier texte (ADR 0011). Rien d'autre n'est touché : ni le quorum propre d'un article, ni un
|
||||
vote, ni un texte.
|
||||
|
||||
## Les nombres
|
||||
|
||||
Monnaie libre, W = 5 745 (repli des tests), participation de référence (100 votants) :
|
||||
|
||||
| | cran 1 | cran 2 | cran 3 | cran 4 | cran 5 |
|
||||
|---|---|---|---|---|---|
|
||||
| quorum | 12 | 12 | 50 | 50 | 50 |
|
||||
| « pour » à 0 vote (C d'avant : 50) | 8 | 9 | 39 | 43 | 46 |
|
||||
| « pour » à 100 votants (C d'avant : 80 · 84 · 88 · 92 · 95) | 60 | 67 | 75 | 83 | 90 |
|
||||
|
||||
Au cran 2, quorum 12 : 9 « pour » passent avec 3 « contre » au plus ; 9 contre 4 demandent 11
|
||||
(`yesNeeded`), il en manque 2 ; 8 « pour » ne passent pas même sans « contre » (`noNeeded` 0).
|
||||
|
||||
W = 7 224 (tests `ld-engine/src/inertia.rs`), « pour » exigés :
|
||||
|
||||
| Médiane | T | cran 1 | cran 2 | cran 3 | cran 4 | cran 5 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 120 votants | 120 | 72 | 81 | 90 | 100 | 108 |
|
||||
| 120 votants | 500 | 284 | 310 | 347 | 386 | 424 |
|
||||
| 120 votants | 2 000 | 1 068 | 1 123 | 1 252 | 1 389 | 1 537 |
|
||||
| 360 votants | 120 | 76 | 86 | 96 | 106 | 113 |
|
||||
| 360 votants | 360 | 216 | 242 | 270 | 299 | 324 |
|
||||
| 360 votants | 500 | 296 | 328 | 367 | 407 | 443 |
|
||||
| 360 votants | 2 000 | 1 092 | 1 164 | 1 301 | 1 446 | 1 598 |
|
||||
|
||||
Le cas de référence de la formule (vote forgeron v2.0.0 : W 7 224, 120 votants, M 50 %, G 0,2,
|
||||
Q 0 → 94 voix) reste le test de la formule elle-même.
|
||||
|
||||
## Les données
|
||||
|
||||
Migration `0011` (additive) : `documents.quorums` (JSON des cinq quorums), `units.quorum`, les
|
||||
tables `quorum_changes` et `quorum_amendments`. Le seed : `"quorums"` sur chaque instance.
|
||||
`vote_floor` reste, lu pour p0. Les adoptions nouvelles gardent `quorum` dans leurs `params`
|
||||
(celles d'avant gardent `constant`, lu tel quel). L'API : `doc.quorums`, `levels[].quorum`,
|
||||
l'unité `quorum` (le sien ou `null`), `quorumDefault`, `canSetQuorum` ; le `document.json`
|
||||
publié : `quorums`.
|
||||
|
||||
## Coût
|
||||
|
||||
- Les seuils de Monnaie libre baissent à faible participation : 9 « pour » au lieu de 50 pour
|
||||
I1, E1 et E2 au cran 2 ; 39 au lieu de 50 au cran 3. À la participation habituelle, la part
|
||||
s_k s'applique à tous les votants, plus seulement au-delà de C.
|
||||
- **Dans le groupe d'essai, une voix seule passe**, à tout cran et quel que soit le nombre de
|
||||
membres (avant : deux voix sous 16 membres). Les tests qui demandent deux voix y posent le
|
||||
quorum 2 de l'article, comme son auteur le ferait.
|
||||
- En production, si les propositions d'inertie I1 → 5 et E1 → 5 restent ouvertes (ADR 0011),
|
||||
I1 et E1 restent aux crans 3 et 4 : leur quorum est 50, pas 12.
|
||||
- Le texte F1.1 du seed (« Seuil = C + B^W + … ») et N1.1 (« le groupe demande d'abord C voix
|
||||
pour ») décrivent encore C : orch les réécrira au prochain tour de textes, avec la relecture
|
||||
d'Yvv (ce lot ne touche pas aux textes du seed).
|
||||
@@ -15,4 +15,6 @@ pas une décision : on en écrit une nouvelle qui la remplace, et on le note dan
|
||||
| [0008](0008-vote-par-transaction.md) | Le vote par transaction sur la chaîne Ğ1 : bulletin scellé, confirmation par l'indexeur, le dernier fait foi | 2026-10-30 |
|
||||
| [0009](0009-modules-ordre-et-titre.md) | Les modules : l'ordre des articles de chaque section (inertie 2), le titre du document (inertie 4) | 2026-10-31 |
|
||||
| [0010](0010-objections-et-coquilles-validees.md) | Objections « redit » / « contredit », coquilles validées, messagerie (remplace 0004, complète 0003) | 2026-10-31 |
|
||||
| [0011](0011-propositions-seed.md) | Les Propositions seed : rien en vigueur au départ, trois textes mis en avant au cran 2, la publication attend le premier texte (complète 0002) | 2026-11-02 |
|
||||
| [0012](0012-tampon-des-votes.md) | Le tampon des votes : l'intention visible tout de suite, la preuve de la chaîne, la réconciliation a posteriori ; la simulation tant que la chaîne est fermée (complète 0008, révise 0010) | 2026-11-02 |
|
||||
| [0013](0013-quorum.md) | Le quorum par cran (12 · 12 · 50 · 50 · 50), fixé par l'auteur avant le premier vote ; sous le quorum, les votants qui manquent comptent comme « non » (remplace le C de 0002 et 0007) | 2026-11-03 |
|
||||
|
||||
@@ -29,11 +29,15 @@ les applications clientes (Cesium, Ğecko…) peuvent suivre.
|
||||
Vallée Drôme Crestois — pas l'Atelier du canal. Un groupe et son contenu ne s'ouvrent qu'à
|
||||
ses membres ; Monnaie libre s'ouvre à tout membre de la toile de confiance, les autres
|
||||
groupes sur accord dans trustinWallet.
|
||||
4. **Le texte en vigueur**, seul, en grand, typographie de lecture (Literata) : au départ la
|
||||
**Raison d'être** (texte d'Yvv du 2026-10-30, qui remplace le Préambule : « Derrière une clé
|
||||
il n'y a qu'un seul être humain vivant ; derrière un être humain, il n'y a qu'une seule clé
|
||||
certifiante. ») et les deux engagements fondamentaux (Unicité du compte, Réciprocité), marqués
|
||||
*seed a minima* avec leur nombre réel de votes (*seed a minima · 0 vote*, puis *· 1 vote*…).
|
||||
4. **Le texte en vigueur**, seul, en grand, typographie de lecture (Literata). **Au départ, aucun
|
||||
article n'est en vigueur** (Yvv, 2026-11-02 ; ADR 0011), et le lecteur le dit : la **Raison
|
||||
d'être** (texte d'Yvv du 2026-10-30, qui remplace le Préambule : « Derrière une clé il n'y a
|
||||
qu'un seul être humain vivant ; derrière un être humain, il n'y a qu'une seule clé
|
||||
certifiante. ») et les deux engagements fondamentaux (Unicité du compte, Réciprocité) sont des
|
||||
**Propositions seed** : ouvertes, mises en avant pour lancer le vote, marquées « Proposition
|
||||
seed », au cran 2 ; elles entrent en vigueur comme toute proposition. Le titre du document et
|
||||
l'ordre de chaque section, eux, sont en vigueur sans vote, marqués *seed a minima* avec leur
|
||||
nombre réel de votes (*seed a minima · 0 vote*, puis *· 1 vote*…).
|
||||
**Le titre du document est un module** (inertie 4) : sous le titre, son état (en vigueur sans
|
||||
vote, ou adopté le…), « traduction à revoir » quand le titre lu est la traduction d'un titre
|
||||
remplacé, et les mêmes gestes : **Le vote** · **Propositions** · **Proposer un autre titre**.
|
||||
@@ -49,10 +53,10 @@ les applications clientes (Cesium, Ğecko…) peuvent suivre.
|
||||
pourquoi), puis l'inertie et la formule. Les autres gestes ouvrent un panneau latéral (une
|
||||
feuille sur mobile), lui aussi dans l'URL : **Panier**, **Propositions**, **Proposer**,
|
||||
**Détails** d'une version (coquilles, traductions, objections, historique) et
|
||||
**« Réglages de la formule »** (W, C, B, la participation habituelle du groupe et les cinq
|
||||
crans), atteints depuis l'en-tête du document et depuis chaque vote.
|
||||
5. **En dessous**, les propositions en cours — les 30 autres articles du texte source, à zéro
|
||||
vote, inertie 3 / 5 — rangées par section (introduction, fondamental, technique,
|
||||
**« Réglages de la formule »** (W, B, la participation habituelle du groupe et les cinq
|
||||
crans avec leur quorum), atteints depuis l'en-tête du document et depuis chaque vote.
|
||||
5. **En dessous**, les propositions en cours — les 33 articles du texte source, à zéro vote : les
|
||||
trois Propositions seed au cran 2, les 30 autres à l'inertie 3 / 5 — rangées par section (introduction, fondamental, technique,
|
||||
conclusion, annexes, formule, inertie, ordonnancement), **une ligne par article** : un
|
||||
article qui a plusieurs versions (variantes du seed, propositions rivales) montre leur
|
||||
nombre et la meilleure en tête (niveau d'eau, pour / contre) ; la ligne se déplie sur ses
|
||||
@@ -82,46 +86,64 @@ les applications clientes (Cesium, Ğecko…) peuvent suivre.
|
||||
### Le seuil — formule inertielle Ğ1
|
||||
|
||||
```
|
||||
R = C + B^W + (M + (1 − M)·(1 − (T/W)^G)) · max(0, T − C)
|
||||
T' = max(T, Q)
|
||||
R = B^W + (M + (1 − M)·(1 − (T'/W)^G)) · T'
|
||||
```
|
||||
|
||||
W = électorat (Monnaie libre : taille de la toile, lue sur la chaîne toutes les 6 h ; un groupe
|
||||
géré : ses membres), T = votes exprimés, M = majorité, G = gradient, B = 0,1, **C = plancher de
|
||||
votants « pour »** (Monnaie libre : **50** ; groupe d'essai : 1). Adoptée si « pour » ≥ ⌈R⌉.
|
||||
géré : ses membres), T = votes exprimés, M = majorité, G = gradient, B = 0,1, **Q = quorum**
|
||||
(ADR 0013, Yvv 2026-11-02 et 03) : sous Q votants, **ceux qui manquent comptent comme « non »**
|
||||
(« Ils comptent comme non »). Adoptée si « pour » ≥ ⌈R⌉. Chaque cran a son quorum, le défaut
|
||||
d'un article à ce cran : Monnaie libre **12 · 12 · 50 · 50 · 50**, groupe d'essai **1 partout**
|
||||
(une voix seule y passe). **L'auteur de la première version d'un article** (un administrateur
|
||||
pour un texte du seed) peut en fixer un autre, **avant le premier vote** (« L'auteur, avant le
|
||||
1er vote ») : de 2 à W, de 1 à W dans le groupe d'essai ; chaque changement est consigné. Il
|
||||
remplace le plancher C (« C suit le cran, mais c'est une proposition par défaut […] c'est
|
||||
plutôt un quorum »).
|
||||
|
||||
**Cinq crans d'inertie** (Yvv, 2026-10-30 ; ADR 0007). 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** quand
|
||||
le groupe vote comme d'habitude (participation p̃), et G_k s'en déduit :
|
||||
M_k est la majorité à pleine participation, s_k la part de « pour » exigée des votants quand le
|
||||
groupe vote comme d'habitude (participation p̃), et G_k s'en déduit :
|
||||
G_k = ln(1 − (s_k − M_k)/(1 − M_k)) / ln(p̃).
|
||||
|
||||
| Cran | Nom | M_k | s_k | Au départ |
|
||||
|---|---|---|---|---|
|
||||
| 1 | très basse | 50 % | 60 % | |
|
||||
| 2 | basse | 50 % | 67 % | l'ordre des articles de chaque section |
|
||||
| 3 | moyenne | 55 % | 75 % | partout ailleurs |
|
||||
| 4 | haute | 60 % | 83 % | Unicité du compte, Réciprocité, le titre du document |
|
||||
| 5 | très haute | 66 % | 90 % | |
|
||||
| Cran | Nom | M_k | s_k | Quorum (Monnaie libre) | Au départ |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | très basse | 50 % | 60 % | 12 | |
|
||||
| 2 | basse | 50 % | 67 % | 12 | les trois Propositions seed (Raison d'être, Unicité du compte, Réciprocité), l'ordre des articles de chaque section |
|
||||
| 3 | moyenne | 55 % | 75 % | 50 | partout ailleurs |
|
||||
| 4 | haute | 60 % | 83 % | 50 | le titre du document |
|
||||
| 5 | très haute | 66 % | 90 % | 50 | |
|
||||
|
||||
**La participation habituelle p̃** = la médiane des votants des propositions du groupe votées
|
||||
depuis un an (au moins 5), sur W ; avant, la référence 2C/W (Monnaie libre : 100 votants) ;
|
||||
depuis un an (au moins 5), sur W ; avant, la référence 2Q₀/W, Q₀ le quorum de référence du
|
||||
document (`vote_floor` : 50 dans Monnaie libre, 100 votants ; jamais le quorum d'un article) ;
|
||||
toujours ramenée entre 1 % et 50 %. Mesurée une fois par jour. Le seuil croît avec le cran, la
|
||||
part exigée se relâche vers M quand plus de monde vote, et rien ne passe sous C voix pour.
|
||||
part exigée se relâche vers M quand plus de monde vote, et sous le quorum les votants qui
|
||||
manquent comptent comme « non ».
|
||||
|
||||
Avec W = 7 224, C = 50 et une médiane de 120 votants, il faut, à 120 votants, 92, 97, 103, 109
|
||||
et 113 voix pour ; à 500, 306, 329, 362, 397 et 432 ; à 2 000, 1 091, 1 145, 1 271, 1 404 et
|
||||
1 549.
|
||||
Avec W = 5 745 et la référence (100 votants), il faut, sans aucun vote, 8, 9, 39, 43 et 46 voix
|
||||
pour (crans 1 à 5) ; à 100 votants, 60, 67, 75, 83 et 90. Au cran 2 (quorum 12), 9 « pour »
|
||||
passent avec 3 « contre » au plus. Avec W = 7 224 et une médiane de 120 votants, il faut, à 120
|
||||
votants, 72, 81, 90, 100 et 108 ; à 500, 284, 310, 347, 386 et 424 ; à 2 000, 1 068, 1 123, 1 252,
|
||||
1 389 et 1 537 (ADR 0013).
|
||||
|
||||
Moteur : `crates/ld-engine/src/threshold.rs` (la formule ; son cas de référence, lettres
|
||||
données : 7224 / 120 votants, M 50 %, G 0,2, C 0 → 94 voix) et `crates/ld-engine/src/inertia.rs`
|
||||
(les crans, la médiane, la référence, les bornes) ; mesure : `crates/ld-server/src/participation.rs`.
|
||||
Moteur : `crates/ld-engine/src/threshold.rs` (la formule, la règle du quorum dans
|
||||
`judged_voters`, `yes_needed` / `no_needed` ; son cas de référence, lettres données : 7224 / 120
|
||||
votants, M 50 %, G 0,2, Q 0 → 94 voix) et `crates/ld-engine/src/inertia.rs` (les crans, leurs
|
||||
quorums, la médiane, la référence, les bornes) ; mesure : `crates/ld-server/src/participation.rs` ;
|
||||
le quorum d'un article : `crates/ld-server/src/quorum.rs` (la route, « un vote existe » dans
|
||||
`voted_units`).
|
||||
|
||||
### Le vote permanent
|
||||
|
||||
- Toute version d'un article (proposition ou texte en vigueur) se vote à tout moment.
|
||||
- Une proposition **remonte en vigueur** dès qu'elle atteint son seuil **et** tient une marge
|
||||
(pour − requis) plus large que la version en place. La version déplacée redevient une
|
||||
proposition, avec ses votes. Un *seed a minima* a pour marge −C : la première proposition qui
|
||||
atteint son seuil le remplace.
|
||||
proposition, avec ses votes. Un *seed a minima* (sans vote) a une marge négative : la première
|
||||
proposition qui atteint son seuil le remplace.
|
||||
- **Les Propositions seed** (ADR 0011) ne sont pas en vigueur : la place est vide, la première
|
||||
version de l'article qui atteint son seuil y entre. Yvv remontera leur inertie une fois les
|
||||
textes passés, par un vote : une inertie relevée avant eux leur demanderait davantage.
|
||||
- Retirer un article est une proposition comme une autre (« retirer cet article »).
|
||||
- Le balayage tourne à chaque vote et toutes les 5 minutes (la taille de la toile bouge).
|
||||
|
||||
@@ -131,8 +153,10 @@ Chaque article porte son inertie, un cran de 1 à 5. La changer est une proposit
|
||||
elle-même au cran actuel de l'article** : l'inertie de l'inertie hérite de celle de l'article
|
||||
(Yvv, 2026-10-30 ; elle était votée au cran au-dessus, « inertie + », depuis le 2026-10-21).
|
||||
L'article dit le passé de son inertie : passée de tel cran à tel autre, par un vote ou par le
|
||||
réglage de départ du texte (E1 et E2 relevés de 3 à 4 dans une base existante, seulement si
|
||||
aucun vote n'a changé leur inertie : `crates/ld-server/src/inertia_amend.rs`).
|
||||
réglage de départ du texte (E1 et E2 relevés de 3 à 4 dans une base existante le 30/10,
|
||||
seulement si aucun vote n'a changé leur inertie : `crates/ld-server/src/inertia_amend.rs` ; puis
|
||||
I1, E1 et E2 descendus au cran 2 des Propositions seed le 02/11, seulement si personne n'a touché
|
||||
à leur cran : `crates/ld-server/src/seed_proposal_amend.rs`).
|
||||
|
||||
### Les modules : l'ordre des articles, le titre du document (ADR 0009)
|
||||
|
||||
@@ -141,7 +165,7 @@ Revue du 2026-10-30 : « En fin de section, il y a un "module" qui permet de cha
|
||||
titre d'un article reste voté avec son texte.
|
||||
|
||||
- Un module se vote **comme un article** : déplié, dans le panier, par la chaîne Ğ1 dans
|
||||
Monnaie libre, avec la marge du texte en place (seed a minima : −C) et son cran. Son inertie
|
||||
Monnaie libre, avec la marge du texte en place (seed a minima : négative) et son cran. Son inertie
|
||||
se vote aussi. Il compte dans « Décisions » : le seed passe de 33 à **41 modules à voter**
|
||||
(33 articles, le titre, l'ordre de 7 sections ; l'ordonnancement n'a qu'un article).
|
||||
- **L'ordre d'une section** est la liste de ses articles qui ont un texte en vigueur ou une
|
||||
@@ -281,7 +305,10 @@ traductions marquées éditoriales) et `document.json`, commit et pousse sur
|
||||
Échec → nouvel essai avec délai croissant. La clé de publication est générée par le serveur ;
|
||||
sa partie publique s'affiche dans trustinWallet, à ajouter comme clé de déploiement (écriture)
|
||||
du dépôt. Le groupe d'essai ne publie jamais. `document.json` dit aussi les modules : le titre
|
||||
(son état, ses votes, ses traductions et leur fraîcheur) et l'ordre de chaque section.
|
||||
(son état, ses votes, ses traductions et leur fraîcheur) et l'ordre de chaque section. **Tant
|
||||
qu'aucun article d'un document n'est en vigueur, sa publication attend** (Yvv, 2026-11-02 :
|
||||
« Suspendre jusqu'au 1er texte ») : ni échec ni tentative comptée, l'état dit « suspendue », et
|
||||
le premier texte qui entre envoie tout (`LD_PUBLISH_WITHOUT_ARTICLES=1` publie quand même).
|
||||
|
||||
### Un texte de départ remplacé
|
||||
|
||||
@@ -294,6 +321,21 @@ journaux quand l'article garde son texte) ; appliqué, l'amendement se lit dans
|
||||
l'article (« texte de départ remplacé », avec le diff) et le texte est republié
|
||||
(`crates/ld-server/src/seed_amend.rs`).
|
||||
|
||||
De même, un texte de départ en vigueur que le seed met désormais en avant comme **Proposition
|
||||
seed** (I1, E1, E2 ; ADR 0011) le devient dans une base existante par un amendement gardé, une
|
||||
seule fois par document et par article, et seulement si personne ne l'a touché (origine du seed,
|
||||
jamais entré par un vote ni confirmé, aucun vote ni bulletin de la chaîne, aucune coquille,
|
||||
traduction de membre ou objection, l'historique du seed, l'empreinte attendue) : la même version
|
||||
redevient ouverte et marquée, l'historique le dit ; son cran descend à 2 avec lui, seulement si
|
||||
personne n'y a touché non plus (aucun changement d'inertie proposé, voté ou appliqué). Décisions
|
||||
consignées dans `seed_proposal_amendments` (`crates/ld-server/src/seed_proposal_amend.rs`).
|
||||
|
||||
De même, les **quorums par cran** du seed (ADR 0013) s'écrivent dans un document qui n'en a pas,
|
||||
par un amendement gardé (`2026-11-03-quorums-par-cran`, `crates/ld-server/src/quorum_amend.rs`),
|
||||
une seule fois par document : écrits là où il n'y en a pas, gardés s'ils sont autres (refus
|
||||
`quorums_set`) ; décisions consignées dans `quorum_amendments`, une ligne à la file là où le
|
||||
document publie. Jusque-là, chaque cran lit `vote_floor` (le C d'avant).
|
||||
|
||||
### Accès — trustinWallet
|
||||
|
||||
Tout le monde connecté peut tout faire dans les groupes qu'il ouvre (lire, proposer, voter,
|
||||
@@ -319,7 +361,7 @@ gérés (essai, Axiom…), tout membre vote directement, sans portefeuille.
|
||||
|
||||
## Le groupe d'essai
|
||||
|
||||
Caché, plancher C = 1, sans publication : on y éprouve tout (adoption, coquilles, découpage)
|
||||
Caché, quorum 1 à chaque cran (une voix seule passe), sans publication : on y éprouve tout (adoption, coquilles, découpage)
|
||||
sans toucher au texte de la communauté. Chiara et Yvv en sont membres.
|
||||
|
||||
## Décisions prises (2026-10-21, avec Yvv)
|
||||
@@ -330,7 +372,9 @@ sans toucher au texte de la communauté. Chiara et Yvv en sont membres.
|
||||
| Domaine | le produit à la racine `decision.librodrome.org` ; la maquette sur `maquette.decision.librodrome.org` |
|
||||
| Connexion | client OAuth2 de connect.monnaie-libre.fr (demande à poka) ; liens d'invitation en attendant |
|
||||
| Dépôt des textes | `git.open.us.org/yvv/decision-depot-textes-reference` pour l'instant (2026-10-21) ; puis un dépôt pour l'ouverture, par transfert, et le dépôt officiel pour les textes en vigueur |
|
||||
| Garde-fou du vote permanent | nombre minimal de votants « pour » (C) |
|
||||
| Garde-fou du vote permanent | nombre minimal de votants « pour » (C) ; remplacé le 2026-11-03 par un quorum par cran, les votants qui manquent comptant comme « non » (ADR 0013) |
|
||||
| Textes de départ (2026-11-02) | aucun article en vigueur : trois Propositions seed (I1, E1, E2) au cran 2, la publication suspendue jusqu'au premier texte (ADR 0011) |
|
||||
| Quorum (2026-11-02 et 03) | 12 · 12 · 50 · 50 · 50 dans Monnaie libre, 1 dans le groupe d'essai ; l'auteur d'un article le change avant le premier vote ; sous le quorum, les votants qui manquent comptent comme « non » (ADR 0013) |
|
||||
| Langues | fr, en, es ; le français est voté, les traductions sont éditoriales |
|
||||
| Chiara | testeuse et codeuse |
|
||||
| Assistant | à règles d'abord ; IA locale plus tard, sans dépendance d'abonnement |
|
||||
|
||||
@@ -5,7 +5,10 @@ Chaque contrôle existe en deux versions : **automatique** (Playwright, `web/e2e
|
||||
sur un contrôle vaut échec du contrôle tant qu'elle n'est pas traitée.
|
||||
|
||||
Où tester : les contrôles qui écrivent (C5, C6, C7, C21, C22, C25, C26, C28–C31) se font dans le **groupe
|
||||
d'essai** (caché, plancher C = 1, jamais publié) — jamais sur le texte de la communauté. Les
|
||||
d'essai** (caché, quorum 1 à chaque cran — une voix seule y passe, ADR 0013 —, jamais publié) — jamais sur le texte de la communauté. Au départ, rien
|
||||
n'y est en vigueur (ADR 0011) : les contrôles qui lisent un texte en vigueur (C4 à C6, C20, C21, C24,
|
||||
C28 à C31) y font d'abord entrer Raison d'être, Unicité du compte et Réciprocité par le vote (une voix
|
||||
suffit, deux au plus, puis leur retrait : le texte reste en vigueur, à zéro vote ; `seedsInForce`, `web/e2e/helpers.ts`). Les
|
||||
votes par la chaîne Ğ1 (C11, C17, C23, C25, C32, C33) ne se jouent, pour l'automate, que sur une **chaîne
|
||||
simulée** (`web/e2e/chain-mock.mjs` : un faux nœud, un faux indexeur, un faux portefeuille) ;
|
||||
pour une personne, ils coûtent 0,1 Ğ1 réels : c'est un acte « paye » d'Yvv.
|
||||
@@ -14,13 +17,13 @@ pour une personne, ils coûtent 0,1 Ğ1 réels : c'est un acte « paye » d'Yvv.
|
||||
|---|---|---|---|
|
||||
| C1 | L'accueil, sans session | ouvrir `/` sans être connectée | « Rendre possible la décision collective », puis le leitmotiv en trois lignes : « contexte et cadrage », « processus et modalités », « boîte à outils » ; « Se connecter avec sa clé Ğ1 » et sa note ; pas de piliers ni de groupes ; le menu à gauche avec les quatre outils, trois éteints |
|
||||
| C2 | L'accueil, avec session | se connecter : on arrive sur `/` | le titre, le leitmotiv, puis directement le choix du groupe : Monnaie libre en grand, Axiom, Librodrome, Groupe local Vallée Drôme Crestois ; **pas** l'Atelier du canal ; `/groupes` et « Mes groupes » (menu) ramènent ici |
|
||||
| C3 | Le texte en vigueur | Monnaie libre → Docs de référence → Acte d'engagement Certification | trois articles seulement (Raison d'être, Unicité du compte, Réciprocité), chacun « seed a minima · 0 vote » — le nombre réel de ses votes, qui change quand on vote —, sous le titre du document et à la fin de chaque section ses modules (C25, C26) ; en dessous, « Propositions en cours » (30 lignes, une par article) |
|
||||
| C4 | Gestes contextuels | survoler la Raison d'être → « Le vote » | le vote se **déplie sous l'article**, sans fenêtre : seuil 50 voix pour, il en manque 50 ; « La formule du seuil » se déplie : « M — majorité à pleine participation : 55 % — inertie 3 / 5 · moyenne », et le lien « Réglages de la formule » ; l'URL garde le vote déplié (`?vote=`) ; « Le vote » de nouveau le replie |
|
||||
| C5 | Entrée en vigueur | groupe d'essai : à deux, déplier le vote de « Les deux garanties réciproques », « Pour » | au second vote, « … est entré en vigueur » ; le texte en vigueur compte quatre articles, le vote reste déplié sous le nouveau texte (2 pour · 0 contre) |
|
||||
| C3 | Le texte au départ : les Propositions seed | Monnaie libre → Docs de référence → Acte d'engagement Certification | aucun article en vigueur (ADR 0011) : « Aucun article n'est en vigueur. Les propositions ci-dessous remontent dès qu'elles atteignent leur seuil. », sous le titre du document, puis à la fin de chaque section ses modules (C25, C26) ; en dessous, « Propositions en cours » (33 lignes, une par article), dont Raison d'être, Unicité du compte et Réciprocité marquées « Proposition seed » (au survol : « Texte de départ mis en avant pour lancer le vote… »), « 0 pour · 0 contre », « inertie 2 / 5 · basse » |
|
||||
| C4 | Gestes contextuels | groupe d'essai, où la Raison d'être est entrée en vigueur par le vote : la survoler → « Le vote » | le vote se **déplie sous l'article**, sans fenêtre : le seuil et les voix qui manquent ; « La formule du seuil » se déplie : « M — majorité à pleine participation : 50 % — inertie 2 / 5 · basse », et le lien « Réglages de la formule » ; l'URL garde le vote déplié (`?vote=`) ; « Le vote » de nouveau le replie |
|
||||
| C5 | Entrée en vigueur | groupe d'essai (Raison d'être, Unicité du compte et Réciprocité entrées en vigueur par le vote) : déplier le vote de « Les deux garanties réciproques », « Pour » ; une deuxième personne si cette voix ne suffit pas | à la voix qui suffit, « … est entré en vigueur » ; le texte en vigueur compte quatre articles, le vote reste déplié sous le nouveau texte (autant de « pour » que de voix, 0 contre) |
|
||||
| C6 | Coquille sans vote | groupe d'essai, **en administratrice** (un texte du seed n'a pas d'auteur) : Unicité du compte → « Le vote » → « Coquilles, traductions, objections, historique » (onglet « Détails ») → « Corriger une coquille », remplacer les apostrophes droites par des apostrophes typographiques (« Je m’engage sur l’honneur ») | « Coquille corrigée, sans toucher aux votes. » ; un changement de sens est refusé : « Ce changement touche au sens : propose-le comme modification. » (sans être administratrice, la correction attend : C31) |
|
||||
| C7 | Une décision par proposition | groupe d'essai : « Proposer un nouvel article », deux paragraphes « Je m'engage à… » | l'assistant : « Ce texte semble porter 2 décisions » ; « Découper en 2 brouillons » ; « Tes brouillons » apparaît |
|
||||
| C8 | Trois langues | choisir EN puis ES pour le texte | « Certification Commitment Act », « Acta de compromiso de Certificación » ; l'interface suit |
|
||||
| C9 | Les aperçus | « Si tout passe », puis « Si les bien cotées passent » | 33 articles avec la mention d'aperçu, puis 3 |
|
||||
| C9 | Les aperçus | « Si tout passe », puis « Si les bien cotées passent » | 33 articles avec la mention d'aperçu, puis aucun (rien en vigueur dans Monnaie libre, rien de bien coté sans « pour ») |
|
||||
| C10 | trustinWallet | ouvrir `/acces` sans être administratrice | « La gestion des accès est réservée aux administrateurs de trustinWallet. » (côté admin : créer un lien d'invitation) |
|
||||
| C11 | Une personne, une voix | avec un lien d'invitation et un portefeuille dont le compte n'est pas membre de la toile (Bob, chaîne simulée), voter « Pour » sur un article de Monnaie libre | le vote dit que la voix est celle de l'identité Ğ1 du portefeuille qui signe ; après signature : « Ton vote n'a pas été compté : le portefeuille qui a signé n'est pas celui d'un membre de la toile de confiance Ğ1. », et sous l'article « Ton dernier vote n'a pas été compté… », 0 pour ; dans le groupe d'essai, la même personne vote directement, sans portefeuille |
|
||||
| C12 | Lien d'équipe | administrateur : `/acces` → « Liens d'équipe », cocher le groupe d'essai, créer ; l'ouvrir dans deux navigateurs, sous deux noms | chacun arrive sur ses groupes sous son nom ; dans `/acces`, « 2 / 30 personnes » et deux identités « venue par » le lien ; un nom déjà pris est refusé, même autrement écrit (« luna » pour « Luna ») ; sur un navigateur où quelqu'un est connecté, « Ce n'est pas moi » le déconnecte ; « Révoquer » ferme le lien |
|
||||
@@ -30,16 +33,16 @@ pour une personne, ils coûtent 0,1 Ğ1 réels : c'est un acte « paye » d'Yvv.
|
||||
| C15 | Le menu | survoler les outils ; ouvrir Docs, puis Mandats ; revenir à l'accueil | « 1 » à côté de « Docs de référence » ; aucun outil surligné sur la page du groupe, seul celui où l'on est ensuite ; au survol, seul Docs réagit ; Mandats s'ouvre quand même (ses « À venir ») ; hors d'un groupe, les outils mènent au dernier groupe ouvert (ou à l'accueil s'il n'y en a pas) |
|
||||
| C16 | En cours, à venir | Monnaie libre → Docs, Mandats, Protocoles ; les anciennes adresses `/decisions`, `/mandats`, `/protocoles` | Docs : « En cours » (Acte d'engagement Certification) et « À venir » (Acte d'engagement forgerons) ; Mandats : Administration forum Duniter, Administration forum Monnaie libre ; Protocoles : Runtime upgrade — décision on-chain ; les « À venir » sont éteints, sans lien ; ils suivent la langue ; les anciennes adresses mènent aux outils du groupe courant |
|
||||
| C17 | Décisions | Monnaie libre → Décisions ; voter (par la chaîne : bulletin, transaction, confirmation) sur une version d'un article, recharger | une ligne par doc : « Acte d'engagement Certification · 41 modules à voter · dont 41 sans ton vote » (33 articles, le titre, l'ordre de 7 sections), puis « dont 40 » ; la ligne ouvre le lecteur |
|
||||
| C18 | La Raison d'être | Monnaie libre → Acte d'engagement Certification, puis EN, puis ES | en tête du texte en vigueur, « Raison d'être » : la première phrase en italique, puis deux paragraphes ; « Purpose », « Razón de ser » |
|
||||
| C18 | La Raison d'être | Monnaie libre → Acte d'engagement Certification → « Si tout passe », puis EN, puis ES | en tête du texte, « Raison d'être » : la première phrase en italique, puis deux paragraphes ; « Purpose », « Razón de ser » |
|
||||
| C19 | Les versions d'un article | Monnaie libre → « Propositions en cours » → « Connaissance suffisante » (au clavier : Tab jusqu'à la ligne, Entrée) | une seule ligne, « 2 versions » ; dépliée : « variante 1.0.0 » et « variante 0.4.0-draft », chacune avec son niveau et ce qui la distingue ; un clic sur une version déplie son vote sous elle ; un nouveau clic sur la ligne la replie |
|
||||
| C20 | Réglages de la formule et cinq crans | Monnaie libre → Acte d'engagement : « Réglages de la formule » (en-tête) ; puis Unicité du compte → « Le vote » → « Réglages de la formule » ; dans le groupe d'essai, Réciprocité → « Le vote » → « Proposer un changement d'inertie » → 5 → « Soumettre au vote » | W 5 745 (toile de confiance Ğ1), C 50, B 0,1 ; « 100 votants sur 5 745 (1,74 %), deux fois C : la participation de référence… (0 pour l'instant) » ; le tableau des cinq crans : très basse, basse, moyenne, haute, très haute ; M 50, 50, 55, 60, 66 % ; part exigée 60, 67, 75, 83, 90 % ; voix pour à 100 votants 80, 84, 88, 92, 95, « Voix pour : à 100 votants, comme d'habitude. » ; depuis le vote déplié : « Inertie · 4 / 5 · haute », la ligne du cran 4 marquée « cet article », 50 voix, « Voix pour : à 0 votant, la participation de cette version. » ; le sélecteur montre les cinq crans, 4 « actuelle », atteignable au clavier mais jamais choisi ; un seul arrêt de tabulation ; les flèches passent d'un cran à l'autre et le choisissent, en boucle ; le vote de la proposition se déplie : « inertie vers 5 / 5 · très haute », votée à « inertie 4 / 5 · haute » |
|
||||
| C20 | Réglages de la formule et cinq crans | Monnaie libre → Acte d'engagement : « Réglages de la formule » (en-tête) ; puis, dans « Propositions en cours », Unicité du compte → son vote → « Réglages de la formule » ; dans le groupe d'essai, Réciprocité (entrée en vigueur par le vote) → « Le vote » → « Proposer un changement d'inertie » → 5 → « Soumettre au vote » | W 5 745 (toile de confiance Ğ1), B 0,1 ; « 100 votants sur 5 745 (1,74 %), deux fois 50, le quorum de référence : la participation de référence… (0 pour l'instant) » ; le tableau des cinq crans : très basse, basse, moyenne, haute, très haute ; M 50, 50, 55, 60, 66 % ; part exigée 60, 67, 75, 83, 90 % ; quorum 12, 12, 50, 50, 50 (ADR 0013) ; voix pour à 100 votants 60, 67, 75, 83, 90, « Voix pour : à 100 votants, comme d'habitude. », « Part exigée : la part de « pour » demandée, à 100 votants comme d'habitude. », « Quorum : en dessous, les votants qui manquent comptent comme « non ». … » ; depuis le vote déplié : « Inertie · 2 / 5 · basse », la ligne du cran 2 marquée « cet article », à 0 votant 8, 9, 39, 43, 46 voix, « Voix pour : à 0 votant, la participation de cette version. » ; le sélecteur montre les cinq crans, 2 « actuelle », atteignable au clavier mais jamais choisi ; un seul arrêt de tabulation ; les flèches passent d'un cran à l'autre et le choisissent, en boucle ; le vote de la proposition se déplie : « inertie vers 5 / 5 · très haute », votée à « inertie 2 / 5 · basse » |
|
||||
| C21 | Le vote déplié | groupe d'essai : Unicité du compte → « Le vote », puis « Pour » ; une autre personne ouvre le même vote | sous l'article : le niveau d'eau, « 0 pour · 0 contre », « Seuil : … voix pour », « Il manque … », « Tu n'as pas voté sur cette version. » ; après « Pour » : « Ton vote : pour · enregistré », « 1 pour · 0 contre », le bouton enfoncé, « Ton vote ne se montre à personne : seuls les totaux sont visibles. » ; l'autre personne voit 1 pour, jamais qui ; « Le vote » replie ; « Retirer mon vote » remet 0 |
|
||||
| C22 | Le vote groupé | groupe d'essai : « Propositions en cours » → « Engagements techniques » → « Voter cette section » ; « Tout pour » ; dans « Connaissance suffisante », « Pour » sur la variante 1.0.0 ; recharger ; « Voter (n) » | le panier s'ouvre sur la section ; « Tout pour » remplit les articles à une version, pas « Connaissance suffisante » ni « Rencontre physique… » (« Plusieurs versions : choisis la tienne. », et le compte des articles laissés) ; le panier reste après rechargement (« Voter en lot · n ») ; un seul envoi : « n votes enregistrés. », le panier vide, la variante choisie à 1 pour |
|
||||
| C23 | Le vote par la chaîne Ğ1 | Monnaie libre, un portefeuille dans le navigateur : « Voter en lot », « Pour » sur Unicité du compte et Réciprocité, « Signer et envoyer (2) » ; puis sous Réciprocité, « Contre » (l'indexeur en retard) puis « Retirer mon vote » ; puis sans portefeuille : « Pour » → « Passer par Ğecko » | une seule signature pour les deux : 0,1 Ğ1 vers le compte des votes et une remarque `ld1:` + 64 chiffres, rien du vote en clair ; « Ton vote compte : il est inscrit sur la chaîne Ğ1. », « Compté pour l'identité Ğ1 « Alice ». » ; sous l'article « Ton vote : pour · inscrit sur la chaîne Ğ1 », 1 pour ; « En attente de la chaîne Ğ1 : contre. » ; le retrait, plus récent sur la chaîne, fait foi même quand le « contre » est confirmé après lui (0 pour · 0 contre) ; Ğecko : un QR code et le lien `g1://<compte>?amount=0.1&comment=ld1:…`, puis la confirmation dès que la chaîne la montre |
|
||||
| C24 | Sans compte des votes | Monnaie libre sur un serveur sans `LD_VOTE_ACCOUNT`, puis le groupe d'essai | pas de « Voter en lot » ni « Voter cette section » ; sous l'article : « Le vote par la chaîne Ğ1 n'est pas encore ouvert : le compte qui reçoit les votes reste à créer. Tu peux lire, proposer et faire une objection. », pas de bouton, les totaux et le seuil restent ; le panier ouvert par son adresse (`?onglet=panier`) dit la même chose, son bouton éteint, et **jamais** « Tes votes comptent dès l'envoi » ; dans le groupe d'essai, le panier et les boutons sont là |
|
||||
| C23 | Le vote par la chaîne Ğ1 | Monnaie libre, un portefeuille dans le navigateur : « Voter en lot », « Pour » sur Unicité du compte et Réciprocité (Propositions seed), « Signer et envoyer (2) » ; puis, dans « Propositions en cours », sous Réciprocité, « Contre » (l'indexeur en retard) puis « Retirer mon vote » ; puis sans portefeuille : « Pour » → « Passer par Ğecko » | une seule signature pour les deux : 0,1 Ğ1 vers le compte des votes et une remarque `ld1:` + 64 chiffres, rien du vote en clair ; « Ton vote compte : il est inscrit sur la chaîne Ğ1. », « Compté pour l'identité Ğ1 « Alice ». » ; sous la proposition « Ton vote : pour · inscrit sur la chaîne Ğ1 », 1 pour ; « En attente de la chaîne Ğ1 : contre. » ; le retrait, plus récent sur la chaîne, fait foi même quand le « contre » est confirmé après lui (0 pour · 0 contre) ; Ğecko : un QR code et le lien `g1://<compte>?amount=0.1&comment=ld1:…`, puis la confirmation dès que la chaîne la montre |
|
||||
| C24 | Sans compte des votes | Monnaie libre sur un serveur sans `LD_VOTE_ACCOUNT`, puis le groupe d'essai | pas de « Voter en lot » ni « Voter cette section » ; sous la première proposition : « Le vote par la chaîne Ğ1 n'est pas encore ouvert : le compte qui reçoit les votes reste à créer. Tu peux lire, proposer et faire une objection. », pas de bouton, les totaux et le seuil restent ; le panier ouvert par son adresse (`?onglet=panier`) dit la même chose, son bouton éteint, et **jamais** « Tes votes comptent dès l'envoi » ; dans le groupe d'essai, le panier et les boutons sont là |
|
||||
| C25 | L'ordre des articles | groupe d'essai : en fin de « Conclusion », « Proposer un autre ordre » ; cliquer « Monnaie G1 » puis la place 1 ; au clavier, flèche bas puis haut ; « Proposer cet ordre » ; « Pour » ; une deuxième personne vote « Pour » si cette voix ne suffit pas (dès 16 membres, une voix suffit dans le groupe d'essai : ADR 0007) ; puis, dans Monnaie libre, sur un téléphone, avec un portefeuille : « Voter en lot », « Pour » sur « Ordre des articles · Engagements fondamentaux », « Signer et envoyer (1) » | chaque section finit par « Ordre des articles · <section> » (7, aucun pour l'Ordonnancement, un seul article), ses articles numérotés, « 2 articles · inertie 2 / 5 · basse », « seed a minima · 0 vote » ; le vote d'un ordre en vigueur déplié montre la liste entière ; la liste où l'on clique : l'article choisi marqué, puis à sa place, annoncé (« « Monnaie G1 » en place 1 sur 2. »), « Proposer cet ordre » éteint tant que c'est l'ordre en vigueur ; le vote de l'ordre proposé se déplie dans la liste des propositions, l'ordre proposé en clair ; il est dans le panier, à la fin de sa section ; à la voix qui suffit : « Le nouvel ordre de « Conclusion » est entré en vigueur. », la section se lit dans le nouvel ordre ; par la chaîne : « Ton vote compte : il est inscrit sur la chaîne Ğ1. », « seed a minima · 1 vote » ; sur un téléphone, rien ne déborde, chaque ligne fait au moins 44 px |
|
||||
| C26 | Le titre du document | groupe d'essai : sous le titre, « Proposer un autre titre » ; « Acte d'engagement de la certification » ; « Pour » ; une deuxième personne vote « Pour » si cette voix ne suffit pas ; lire en anglais | sous le titre : « Titre du document · inertie 4 / 5 · haute · seed a minima · 0 vote » et les trois gestes ; le titre proposé se vote dans la liste des propositions (« Titre du document ») ; à la voix qui suffit : « Le titre « … » est entré en vigueur. », le document change de titre, son vote reste déplié sous le titre ; en anglais, l'ancien titre traduit, marqué « translation needs review » |
|
||||
| C27 | La participation ramenée dans ses bornes | un groupe de 4 dont la médiane est 2,5 votants, ramenée à 50 % (l'automate fait répondre ces chiffres au serveur) : « Réglages de la formule » | « 3 votants sur 4 (62,5 %) : la médiane des 12 propositions votées depuis un an. » — la part de la mesure elle-même, jamais 3 sur 4 arrondi d'abord ; puis « Ramenée entre 5 % et 50 % de l'électorat : le groupe demande ses voix pour comme si 2 personnes votaient (50 %). » ; « Part exigée : les « pour » demandés au-delà de C, à 2 votants comme d'habitude. » |
|
||||
| C27 | La participation ramenée dans ses bornes | un groupe de 4 dont la médiane est 2,5 votants, ramenée à 50 % (l'automate fait répondre ces chiffres au serveur) : « Réglages de la formule » | « 3 votants sur 4 (62,5 %) : la médiane des 12 propositions votées depuis un an. » — la part de la mesure elle-même, jamais 3 sur 4 arrondi d'abord ; puis « Ramenée entre 5 % et 50 % de l'électorat : le groupe demande ses voix pour comme si 2 personnes votaient (50 %). » ; « Part exigée : la part de « pour » demandée, à 2 votants comme d'habitude. » |
|
||||
| C28 | Objection « redit » ; sur la version retenue, « contre » et retrait, jamais « pour » | groupe d'essai, à trois (Aude, Oscar, Vera) : Aude propose un nouvel article qui répète « Unicité du compte » ; Oscar, dans « Détails » de cette proposition → « Faire une objection » → « Redit », « En vigueur — Unicité du compte », un motif → « Envoyer l'objection » ; Vera déplie son vote → « Contre », puis « Retirer mon vote » ; Vera ouvre « Voter en lot » → « Tout le document » : « Tout pour », puis « Tout contre », puis « Vider » ; Aude ouvre « Messages » → « Modifier l'article visé », complète le texte et soumet ; Oscar ouvre « Messages » → « Lever l'objection » ; Vera déplie de nouveau son vote | « Objection enregistrée : jusqu'à sa levée, personne ne peut plus voter pour la dernière arrivée des deux versions. » ; chez Oscar, « « … » redit « Unicité du compte » », « personne ne peut plus voter pour cette version », « Lever l'objection » ; chez Vera, « Une objection retient cette version : jusqu'à sa levée, personne ne peut plus voter pour. Tu peux voter contre ou retirer ton vote ; à la levée, elle n'entre en vigueur qu'avec les voix encore là. », « Elle redit « Unicité du compte ». », pas de « Pour », mais « Contre », la ligne marquée « retenue par une objection » ; après « Contre » : « Vote enregistré. », « Ton vote : contre », « 0 pour · 1 contre », et « Retirer mon vote » ; après le retrait : « Vote retiré. », « 0 pour · 0 contre », toujours pas de « Pour » ; dans le panier, la version retenue montre « Contre » sans « Pour », avec « une objection la retient : contre ou retrait, pas de « pour » » ; « Tout pour » la laisse de côté et le dit (« Tu as tout mis pour, sauf 1 version qu'une objection retient : sur elle, tu peux voter contre ou retirer ton vote. », le nombre suivant les versions retenues du document) ; « Tout contre » la prend (« Contre » enfoncé) ; chez Aude, « Messages, 1 non lu », le message « Oscar fait une objection : ta version « … » redit « Unicité du compte »… Pour répondre, modifie l'article visé. », puis le panneau « Proposer » sur Unicité du compte, partant de son texte, avec « Cette proposition répond à une objection… » ; chez Oscar, « Ton objection sur « … » a reçu une réponse. », une échéance, « Lever l'objection » et « Réitérer l'objection » ; levée : « Objection levée. », le message dit « objection levée » sans plus aucun geste ; Vera peut de nouveau voter, « Pour » compris |
|
||||
| C29 | Objection « contredit », levée à l'échéance | groupe d'essai : Aude propose un article qui contredit « Réciprocité » ; Oscar fait une objection « Contredit » ; Aude déplie le vote de sa proposition → « Reformuler », change le fond, « Enregistrer la correction » ; Oscar ne fait rien ; trois jours passent (l'automate avance l'horloge du serveur : `POST /api/dev/clock`, connexion de développement seulement) | chez Aude : « Elle contredit « Réciprocité ». », « Pour qu'elle se vote à nouveau, reformule-la… », « Reformuler » ouvre « Détails » avec le formulaire de modification ; « Nouvelle version enregistrée : les votants devront reconfirmer. », puis « Une réponse est arrivée : Oscar lève ou réitère l'objection d'ici le … » ; trois jours après : l'objection dit « levée : 3 jours sans suite », la proposition se vote de nouveau, le message d'Oscar dit « objection levée : 3 jours sans suite », sans geste |
|
||||
| C30 | La coquille d'un autre, validée par l'auteur | groupe d'essai : Aude propose « Clé unique et vivante » ; Vera, dans « Détails » → « Corriger une coquille », apostrophes typographiques → « Enregistrer la correction » ; Aude ouvre « Messages » → « Valider » | chez Vera : « Ta correction attend l'auteur du texte : elle s'applique quand il la valide, ou d'elle-même le … » ; le texte ne change pas ; « Coquilles proposées » montre le diff, « proposée par Vera », « en attente : s'applique d'elle-même le … » ; chez Aude : « Vera propose une correction de coquille dans ta version « Clé unique et vivante ». », le diff, une échéance, « Valider » / « Refuser » ; « Correction appliquée. », le message dit « correction appliquée » ; le texte porte la correction, l'historique « coquille corrigée · par Vera · validée par Aude » |
|
||||
@@ -83,3 +86,4 @@ page, la langue et la taille de l'écran. Les retours se traitent dans trustinWa
|
||||
| 2026-10-31 | automate | local, `033b331` et la relecture de `cd7e683` (coquille sur un texte qui vient d'entrer, objection face à un texte retiré, objection en double, retrait qui relance l'adoption) | C1–C33, M1 | 34 / 34 verts (35 tests) |
|
||||
| 2026-11-02 | automate | local, lot G sur `5d1f865` (décision d'Yvv du 01/11 : sur une version retenue, « contre » et retrait, jamais « pour » ; C28 ajusté : « Contre » et le retrait sous l'article, le panier) | C1–C33, M1 | 34 / 34 verts (35 tests) |
|
||||
| 2026-11-02 | automate | local, lot G fusionné (`0919b46`) et les articles des règles réécrits (amendement de seed sur une proposition ouverte) | C1–C33, M1 | 34 / 34 verts (35 tests) |
|
||||
| 2026-11-03 | automate | local, lot S (Propositions seed, ADR 0011 ; le quorum par cran, ADR 0013 : C3, C4, C5, C9, C18 à C20, C23, C24, C27, M1 repris) | C1–C33, M1 | 34 / 34 verts (35 tests) |
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
# Tableau — revue d'Yvv du 2026-10-30
|
||||
|
||||
> Tenu par orch (seul rédacteur). État courant seulement ; l'historique est dans git.
|
||||
> Tenu par l'intégrateur libredecision-d4, par délégation d'orch (dev-63, depuis le 03/11 à 05 h 02).
|
||||
> État courant seulement ; l'historique est dans git.
|
||||
> Source : le message « REVIEW DECISION » d'Yvv, 2026-10-30 vers 08 h.
|
||||
|
||||
## Sessions
|
||||
|
||||
| Rôle | Session | Ce qu'elle fait |
|
||||
|---|---|---|
|
||||
| orch | dev-63 (`e66db8ca`), ouverte dans /DEV | orchestre, parle à Yvv, pousse et met en ligne sous mandat (« déploie » et « pousse », du 03/11 au 08/11) |
|
||||
| intégrateur | libredecision-d4, ouverte dans le dépôt | mène S, V puis U (un sous-agent à la fois), relit, fusionne, tient ce tableau, prépare les dossiers d'acte ; ne pousse et ne déploie rien |
|
||||
|
||||
Vers orch : « ACTE <lot> pousse » (dépôt, branche, sha exact) ; « PRÊT M6 » (dossier figé, sha,
|
||||
relecture indépendante inscrite dans `relectures.json`) ; QUESTION pour Yvv, avec sa réponse par
|
||||
défaut (jamais de formulaire chez l'intégrateur).
|
||||
|
||||
## REPRISE
|
||||
|
||||
Orch seul sur le dépôt (sous-agents en copies de travail). **M1 (L1–L8) en ligne** depuis le
|
||||
@@ -16,6 +28,54 @@ fusionnés (B2, F, D), puis `4d4adcc` (mineurs de la relecture de F) ; boucle ve
|
||||
- **F1.2, N1, N1.1, O1** réécrits (amendement de seed sur une proposition ouverte) ;
|
||||
- **licence** AGPL-3.0 (`76b8e9f`).
|
||||
|
||||
**Revue d'Yvv du 02/11 (ergonomie, Propositions seed, tampon des votes, accueil)**, armée d'avance par
|
||||
« Et pousse. Déploie. ». Décisions d'Yvv du 02/11, de 06 h 26 à 07 h 05 (registre) :
|
||||
- Propositions seed au **cran 2** ;
|
||||
- **C devient un quorum** de votants par cran : 12 · 12 · 50 · 50 · 50 en Monnaie libre, 1 à
|
||||
l'essai. Au-delà, la proportion suit la courbe des cinq crans. L'auteur initial change le quorum
|
||||
de son article avant le premier vote ;
|
||||
- l'écran dit, sans prendre de place, combien de « oui » font passer et combien de « non »
|
||||
bloquent ;
|
||||
- un vote simulé compte, puis s'efface à l'ouverture de la chaîne (acte « supprime ») ;
|
||||
- la publication est suspendue jusqu'au premier texte en vigueur.
|
||||
|
||||
**Relève le 03/11 à 03 h 38**, sur ordre d'orch racine (dev-63) ; à 05 h 02, dev-63 devient orch de
|
||||
libreDecision avec le mandat (Yvv, 04 h 58), et cette session devient intégratrice. La session d'avant était
|
||||
bloquée par le quota depuis le 02/11 à 09 h 51, puis coupée par le redémarrage du poste à 02 h 56.
|
||||
Les quatre agents sont morts, leurs copies sont intactes, `/tmp` est vidé (captures et bases de
|
||||
test perdues). Budget : finir S, U, V et H, sans nouveau lot, **un sous-agent à la fois** (compte
|
||||
partagé avec HCO, qui passe en premier). M6 : l'intégrateur fige le dossier et fait relire,
|
||||
orch l'exécute sous son mandat.
|
||||
|
||||
Ordre de reprise : H, puis S, puis V, puis U. Chaque lot fusionne d'abord le chantier, qui contient
|
||||
déjà les lots finis. Le contrat du quorum vient de S et sert V et U.
|
||||
|
||||
Lots en cours, en copies de travail (`.claude/worktrees/agent-<id>`) :
|
||||
- **H** (`a6b179c…`, `lot/h-accueil`) : l'accueil. **Fini et fusionné** le 03/11 à 04 h 03
|
||||
(`a3c0a76`). Boucle verte dans sa copie : 237 tests Rust, 55 vitest, e2e 35 / 35. À faire voir
|
||||
à Yvv : le titre anglais devient « Making it possible / to decide together » ; les trois points
|
||||
font 12 px à 360 de large.
|
||||
- **S** (`a0b2510…`, `lot/s-seed`) : **fini et fusionné** le 03/11 à 05 h 20 (`349c8ed`).
|
||||
- les Propositions seed : I1, E1 et E2 ouvertes, au cran 2 (ADR 0011) ; publication suspendue sans texte en vigueur ;
|
||||
- le quorum par cran (ADR 0013) : 12 · 12 · 50 · 50 · 50 en Monnaie libre, 1 à l'essai ; règle « les votants manquants comptent non » (`judged_voters`) ; `PUT /units/{id}/quorum` ; « un vote existe » = `voted_units`, adoptions comprises ;
|
||||
- la licence `AGPL-3.0-or-later`.
|
||||
Boucle verte dans sa copie : 265 tests Rust, 56 vitest, e2e 35 / 35. Pour M6, sur une copie de la production : vérifier les propositions qui ont déjà assez de voix (9 au cran 2, 39 au cran 3), qui entreraient au premier balayage.
|
||||
- **V** (`a78bacc…`, `lot/v-tampon`) : le tampon entre la base des votes et les indexeurs ; « je
|
||||
vois ce que j'ai fait sans attendre » ; contrôle a posteriori (unique, le dernier qui vaut) ; vote
|
||||
simulé partout tant que la chaîne est fermée, qui compte, puis s'efface par un acte « supprime ».
|
||||
ADR 0012 et moteur commités (`e7dda2f`, `ee37c3b`) ; serveur, migration 0010 et tests non
|
||||
commités (16 fichiers). **Relancé le 03/11 à 05 h 21**, avec en plus :
|
||||
- la fusion du chantier (H et S) ;
|
||||
- le quorum compté sur le décompte affiché ;
|
||||
- `voted_units` étendu à ses états ;
|
||||
- le défaut de Q11.
|
||||
- **U** (`adddf06…`, `lot/u-lecteur`) : le lecteur. Page courte ; ordonnancement par poignées en
|
||||
fin de section ; trois natures de modules ; consoles sans doublon ; déplier ou panneau, une règle ;
|
||||
la ligne oui / non et le réglage du quorum. Note `UX-lecteur.md` commitée (`d4531da`), 4 fichiers
|
||||
commencés. En attente de V.
|
||||
|
||||
Puis : boucle sur le chantier, relecture indépendante, répétition, dossier d'acte M6, PRÊT.
|
||||
|
||||
Yvv relit les quatre textes en ligne. Au prochain tour, avec ses retours :
|
||||
- N1.1 : G se calcule sur p̃ rapporté à W ;
|
||||
- étendre la garde de l'amendement à un texte déjà amendé.
|
||||
@@ -51,7 +111,9 @@ Ce qu'Yvv doit fournir :
|
||||
| L12 | Objections « redit » et « contredit » : la plus récente des deux propositions n'est pas votable tant que son auteur n'a pas répondu (redit : modifier l'article visé ; contredit : reformuler) ; un message à l'auteur de l'objection dans trustinWallet : lever ou réitérer ; sans réponse sous 3 jours, l'objection est levée. | F | M4 |
|
||||
| L13 | Coquilles : celle d'un autre que l'auteur attend sa validation (message), puis passe seule après 3 jours ; l'auteur garde la main tant que le texte n'est pas en vigueur ; sur un texte en vigueur, seule une coquille validée le corrige. | F | M4 |
|
||||
|
||||
**Liste d'attente** (hors livraison, sauf mot d'Yvv) : l'inscription de chaque vote sur la
|
||||
**Liste d'attente** (hors livraison, sauf mot d'Yvv) : au bureau, le bas du menu latéral (pastilles
|
||||
d'ambiance, « Se connecter ») est rogné au bord droit ; sur téléphone avec session, le sceau fixe
|
||||
chevauche la flèche d'une carte de groupe (vus par le lot H le 03/11, pas comparés à `5cf30e0`) ; l'inscription de chaque vote sur la
|
||||
chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichage dans Ğecko.
|
||||
|
||||
## Lots
|
||||
@@ -78,6 +140,9 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag
|
||||
| Q6 | Ğ1Companion ne signe pas encore une transaction construite par une page : quelle extension pour le geste unique ? | **tranché** (01/11) : duniter-connect maintenant ; Ğ1Companion et trustinWallet sur la même interface ; Ğecko par lien et QR |
|
||||
| Q7 | Le compte qui reçoit les 0,1 Ğ1 : à qui, et que deviennent les sommes ? | **tranché** (01/11) : un compte « libreDecision » créé par Yvv dans Ğecko, les sommes au collectif ; attend son adresse publique |
|
||||
| Q8 | Le secret du vote tombe par recoupement : la chaîne montre qui vient de voter, et les totaux bougent aussitôt (relecture de `74f96be`) | **tranché** (01/11) : on ne dit rien ; totaux et son propre vote en direct, inchangés |
|
||||
| Q9 | Sous le quorum, les votants qui manquent comptent-ils comme des « non » ? (Sinon, un « non » peut faire passer un texte en complétant le quorum.) | **tranché** (03/11, formulaire d'orch racine vers 03 h 45) : « Ils comptent comme non » ; au cran 2, quorum 12, 9 oui passent avec 3 non au plus |
|
||||
| Q10 | Licence : AGPL-3.0 seulement, ou « ou toute version ultérieure » ? | **tranché** (03/11, même formulaire) : « Ou version ultérieure » → `AGPL-3.0-or-later` dans les manifestes (`Cargo.toml`, `web/package.json` et son verrou) et le README ; `LICENSE` inchangé ; confié au lot S |
|
||||
| Q11 | Un texte entré en vigueur par des votes simulés (9 « pour » au cran 2 dans Monnaie libre) se publie-t-il dans le dépôt des textes ? | **défaut appliqué** (lot V) : non, il est en vigueur sur le site, mais la publication attend un texte qui tient avec les seuls votes prouvés ; bascule en un seul endroit ; posé à orch le 03/11 à 05 h 21 |
|
||||
|
||||
Défauts posés par orch, sans question (Yvv peut les corriger) :
|
||||
- Décisions : « modules restant à voter » = les modules du doc pas encore adoptés par un vote
|
||||
@@ -93,8 +158,8 @@ Défauts posés par orch, sans question (Yvv peut les corriger) :
|
||||
## Actes
|
||||
|
||||
- M1 : **exécuté** le 30/10/2026, 15 h 29 – 15 h 52 (`actes/2026-10-30-m1-mise-en-ligne.md`).
|
||||
- M3a (L10) : **figé** sur `71819f9` (`actes/2026-10-30-m3-inertie-cinq-crans.md`), attend « déploie ».
|
||||
- M2 + M3a (L9 et L10) : **figé** sur `74f96be` (`actes/2026-10-31-m2-vote.md`), le vote par la chaîne éteint ; remplace M3a s'il est armé.
|
||||
- M3a (L10) : **caduc, emporté par M4** (`actes/2026-10-30-m3-inertie-cinq-crans.md`) : jamais exécuté, `71819f9` est en production depuis M4.
|
||||
- M2 + M3a (L9 et L10) : **caduc, emporté par M4** (`actes/2026-10-31-m2-vote.md`) : jamais exécuté, `74f96be` est en production depuis M4.
|
||||
- M4 (L9 à L13) : **exécuté** le 01/11/2026, 22 h 52 – 23 h 40 (`actes/2026-10-31-m4-vote-modules-objections.md`) ; M2 et M3a n'ont plus d'objet.
|
||||
- M5 (lot G, articles des règles, licence) : **exécuté** le 02/11/2026, 02 h 53 – 03 h 10 (`actes/2026-11-02-m5-retenue-textes-regles.md`).
|
||||
|
||||
@@ -106,15 +171,5 @@ Liste d'attente (relecture de `033b331+4d4adcc`, après M4) :
|
||||
- `place_at_end` coupe toujours le même intervalle : au 52e ajout dans une section, les positions se confondent ;
|
||||
- `publish.rs` : articles sur `tally`, modules sur `shown_tally` (identiques aujourd'hui).
|
||||
|
||||
À dire à Yvv : dans le groupe d'essai (C = 1), dès 16 membres une voix seule fait passer un texte,
|
||||
la garde B^W passant sous la précision du calcul (ADR 0007). Monnaie libre (C = 50) n'est pas
|
||||
concernée. Pour deux voix dans l'essai quel que soit W : C = 2.
|
||||
|
||||
À demander à Yvv (relecture de `cd7e683`) : sur une version retenue par une objection, ni retirer
|
||||
son vote ni passer à « contre » ; à la levée, l'adoption tourne aussitôt. Le garder, ou permettre de
|
||||
retirer son vote et de voter « contre » sur une version retenue ? Défaut : tel quel (ADR 0010).
|
||||
|
||||
Ensuite : Chaque mise en ligne (M1 à M4) attend « déploie » d'Yvv et une relecture
|
||||
indépendante inscrite. La migration « Raison d'être » touche la base de production : elle ne
|
||||
remplace le Préambule que s'il est intact (texte de départ, 0 vote, aucune correction), et le
|
||||
dossier d'acte de M1 le dit.
|
||||
Chaque mise en ligne attend « déploie » d'Yvv, ou le mandat d'orch, et une relecture indépendante
|
||||
inscrite.
|
||||
|
||||
Reference in New Issue
Block a user