forked from yvv/decision
Lot S, phase 1 : les Propositions seed documentées (ADR 0011, CHANTIER, CONTROLES, CLAUDE.md, _source du seed)
ADR 0011 : aucun article en vigueur au départ ; I1, E1 et E2 Propositions seed au cran 2 (une constante), avec l'intention d'Yvv de remonter l'inertie par un vote une fois les textes passés, pour qu'elle ne passe pas avant eux ; la publication attend le premier texte ; l'amendement gardé d'une base existante, et ce qu'il décidera en production (les propositions d'inertie ouvertes I1 → 5 et E1 → 5 notées le 30/10 y garderaient leur cran : à trancher avant M6). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -52,15 +52,19 @@ crates/
|
||||
# (les échéances de 3 jours) · clock.rs (horloge injectable) · adoption.rs
|
||||
# (balayage, verrou) · participation.rs (p̃, une fois par
|
||||
# jour) · publish.rs (file → git) · wot.rs (W sur la chaîne) · seed.rs ·
|
||||
# seed_amend.rs / inertia_amend.rs (amendements gardés) · ballots.rs (vote groupé,
|
||||
# seed_amend.rs / inertia_amend.rs / seed_proposal_amend.rs (amendements gardés ;
|
||||
# le dernier fait des Propositions seed, ADR 0011) · ballots.rs (vote groupé,
|
||||
# bulletins de la chaîne Ğ1, confirmation, « ton vote ») · indexer.rs (txComments)
|
||||
# · modules.rs / order.rs / doc_title.rs (les modules, ADR 0009 : l'ordre d'une
|
||||
# section, le titre du document) · module_amend.rs (ajout gardé) · web.rs (sert web/build)
|
||||
tests/ # api.rs (scénarios bout en bout) · ballots.rs (vote par la chaîne, indexeur simulé) ·
|
||||
# objections.rs · typos.rs (lot F, horloge avancée, migration 0008) · modules.rs (ordre,
|
||||
# titre, ajout gardé)
|
||||
seeds/ # acte-engagement-certification.json (trilingue, 33 articles, I1/E1/E2 en vigueur ;
|
||||
# inertie 3, E1/E2 à 4 ; modules : le titre à 4, l'ordre de chaque section à 2)
|
||||
# titre, ajout gardé) · seed_proposals.rs (Propositions seed, publication suspendue) ·
|
||||
# fixtures/seed-production-2026-11-02/ (le seed que la production fait tourner :
|
||||
# I1/E1/E2 en vigueur, pour rejouer les amendements sur une base comme elle)
|
||||
seeds/ # acte-engagement-certification.json (trilingue, 33 articles, aucun en vigueur ;
|
||||
# I1/E1/E2 Propositions seed au cran 2 (seed::SEED_PROPOSAL_LEVEL), inertie 3 ailleurs ;
|
||||
# modules en vigueur sans vote : le titre à 4, l'ordre de chaque section à 2)
|
||||
# upcoming/<groupe>.json : les « À venir » des outils d'un groupe (fr, en, es), lus au démarrage
|
||||
web/src/
|
||||
lib/i18n/ # fr.ts SOURCE (types Key) · en.ts · es.ts — parité testée
|
||||
@@ -114,7 +118,9 @@ docker build -f docker/app.Dockerfile --target production . # rejoue toute la
|
||||
est la personne ou le groupe, jamais le système. Le français du texte voté fait foi.
|
||||
- **Moteur pur** : une règle de vote / édition / composition s'écrit et se teste dans
|
||||
`ld-engine` avant d'être câblée. Le serveur ne décide jamais l'accès seul : `trustin-access`.
|
||||
- **Invariants** : une seule voix ne fait jamais passer un texte (C = 50 pour Monnaie libre) ;
|
||||
- **Invariants** : au départ, aucun article n'est en vigueur : I1, E1 et E2 sont des Propositions
|
||||
seed (ouvertes, mises en avant, au cran 2 ; seuls les modules sont des *seeds a minima*), et la
|
||||
publication d'un document attend son premier texte en vigueur (ADR 0011) ; une seule voix ne fait jamais passer un texte (C = 50 pour Monnaie libre) ;
|
||||
une coquille ne demande pas de vote, un changement de fond si ; la coquille d'un autre attend
|
||||
son auteur (un administrateur pour le seed) ou 3 jours, et en vigueur seule une coquille validée
|
||||
change le texte ; une objection retient la dernière arrivée jusqu'à sa levée (jamais un texte en
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
> **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*.
|
||||
|
||||
**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
|
||||
|
||||
@@ -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.
|
||||
@@ -15,3 +15,4 @@ 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 |
|
||||
|
||||
@@ -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**.
|
||||
@@ -51,8 +55,8 @@ les applications clientes (Cesium, Ğecko…) peuvent suivre.
|
||||
**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,
|
||||
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
|
||||
@@ -97,9 +101,9 @@ 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 |
|
||||
| 2 | basse | 50 % | 67 % | les trois Propositions seed (Raison d'être, Unicité du compte, Réciprocité), 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 |
|
||||
| 4 | haute | 60 % | 83 % | le titre du document |
|
||||
| 5 | très haute | 66 % | 90 % | |
|
||||
|
||||
**La participation habituelle p̃** = la médiane des votants des propositions du groupe votées
|
||||
@@ -122,6 +126,9 @@ données : 7224 / 120 votants, M 50 %, G 0,2, C 0 → 94 voix) et `crates/ld-eng
|
||||
(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.
|
||||
- **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 +138,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)
|
||||
|
||||
@@ -281,7 +290,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 +306,15 @@ 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`).
|
||||
|
||||
### Accès — trustinWallet
|
||||
|
||||
Tout le monde connecté peut tout faire dans les groupes qu'il ouvre (lire, proposer, voter,
|
||||
@@ -331,6 +352,7 @@ sans toucher au texte de la communauté. Chiara et Yvv en sont membres.
|
||||
| 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) |
|
||||
| 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) |
|
||||
| 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é, plancher C = 1, 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 (deux voix
|
||||
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,13 +33,13 @@ 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), 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 · 2 / 5 · basse », la ligne du cran 2 marquée « cet article », 50 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. » |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"_source": "maquette/frontend/app/data/seeds/duniter-g1.bundle.json (doc engagement-certification, 33 clauses + 2 variantes). Aucun article en vigueur au départ. I1, E1, E2 : Propositions seed (« seedProposal »), ouvertes, mises en avant pour amorcer le vote, sans niveau d'inertie ici : elles démarrent au cran SEED_PROPOSAL_LEVEL (crates/ld-server/src/seed.rs, 2 « basse » par défaut ; Yvv, 2026-11-02, ADR 0011). Tout le reste : propositions ouvertes à 0 vote (Yvv, 2026-10-21), inertie 3 / 5. I1 « Raison d'être » remplace le Préambule (texte d'Yvv, revue du 2026-10-30). Modules : le titre du document à 4, l'ordre des articles de chaque section à 2, en vigueur sans vote (seed a minima ; revue du 2026-10-30, ADR 0009). F1.2, N1, N1.1, O1 réécrits selon les règles appliquées (Yvv, 2026-11-02). Une base existante reçoit ces changements par des amendements gardés (seed_amend, seed_proposal_amend), jamais en réinstanciant le document.",
|
||||
"_source": "maquette/frontend/app/data/seeds/duniter-g1.bundle.json (doc engagement-certification, 33 clauses + 2 variantes). Aucun article en vigueur au départ. I1, E1, E2 : Propositions seed (« seedProposal »), ouvertes, mises en avant pour amorcer le vote, sans niveau d'inertie ici : elles démarrent au cran SEED_PROPOSAL_LEVEL (crates/ld-server/src/seed.rs : 2 « basse », choix d'Yvv du 2026-11-02, qui remontera leur inertie par un vote une fois les textes passés ; ADR 0011). Tant qu'aucun article n'est en vigueur, la publication attend le premier texte. Tout le reste : propositions ouvertes à 0 vote (Yvv, 2026-10-21), inertie 3 / 5. I1 « Raison d'être » remplace le Préambule (texte d'Yvv, revue du 2026-10-30). Modules : le titre du document à 4, l'ordre des articles de chaque section à 2, en vigueur sans vote (seed a minima ; revue du 2026-10-30, ADR 0009). F1.2, N1, N1.1, O1 réécrits selon les règles appliquées (Yvv, 2026-11-02). Une base existante reçoit ces changements par des amendements gardés (seed_amend, seed_proposal_amend), jamais en réinstanciant le document.",
|
||||
"slug": "acte-engagement-certification",
|
||||
"title": {
|
||||
"fr": "Acte d'engagement Certification",
|
||||
|
||||
Reference in New Issue
Block a user