Files
decision/docs/chantiers/acte-certification/CHANTIER.md
T
YvvandClaude Opus 5.5 1eac6f856a v3 : quatrième relecture — coquille en liste blanche, mesurée contre le texte voté
- Une coquille ne touche que des lettres latines, des espaces et la ponctuation
  ordinaire ; tout le reste est figé : chiffres de toute écriture, signes,
  relations, parenthèses, sosies (U+201A, U+2044, pleine chasse), marques
  superposées (U+0336, U+0338), autres alphabets, rayure Markdown, contenu entre
  accents graves, séparateurs et tirets collés à un chiffre.
- Adresses (domaines, liens, courriels) comparées à l'identique.
- Glissement de clavier au cœur du mot seulement (ni les deux premières ni les
  deux dernières lettres : préfixes, nombre, genre, temps, mode) ; mots de
  position ajoutés (dessus/dessous, avant/après…).
- Chaque correction est mesurée contre le texte voté (dernière révision initiale
  ou de fond) : les glissements ne s'additionnent plus ; le texte soumis d'un
  brouillon devient sa révision initiale.
- Déploiement : « previous » = l'image du conteneur en service, pas la dernière
  construite ; migrations inconnues tolérées pour qu'une image précédente démarre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 05:58:36 +02:00

11 KiB
Raw Blame History

Chantier 1 — Acte d'engagement Certification

Binôme : Yvv (porteur) · Chiara (testeuse et codeuse — ses tests d'usage valent contrôles). Branche commune : chantier/acte-certification. Ouvert le 2026-10-21. Production : https://decision.librodrome.org

Le besoin, en une phrase

La communauté Monnaie libre tient son Acte d'engagement Certification comme un texte vivant : lisible d'abord, modifiable par article, chaque modification passant par un vote dont le seuil suit la formule inertielle de la Ğ1 — sans qu'une coquille demande un vote, sans que deux articles contradictoires soient en vigueur ensemble, et avec une publication automatique que les applications clientes (Cesium, Ğecko…) peuvent suivre.

Ce que voit la personne

  1. Accueil sobre : « Rendre possible la décision collective » / « en fonction du contexte, processus et modalités, boîte à outils », les quatre outils en une ligne chacun, puis la connexion. Le menu complet à gauche : Décisions · Docs de référence · Mandats · Protocoles (seul Docs de référence est actif).
  2. Connexion Ğ1 — la même que le forum Monnaie libre (connect.monnaie-libre.fr). En attendant l'inscription du client OAuth2, des liens d'invitation à usage unique.
  3. Groupes : avec une clé Ğ1, on voit Monnaie libre, Axiom, Librodrome et le Groupe local 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 le Préambule et les deux engagements fondamentaux (Unicité du compte, Réciprocité), marqués seed a minima · 0 vote. Au survol (ou toujours visibles sur mobile), trois gestes discrets : Le vote (en cours, inertie, formule, annexes) · Les propositions · Proposer. Ils ouvrent un panneau latéral (une feuille sur mobile) dont l'état vit dans l'URL.
  5. En dessous, les propositions en cours — les 30 autres articles du texte source, à zéro vote, inertie standard — rangées par section (introduction, fondamental, technique, conclusion, annexes, formule, inertie, ordonnancement), les variantes signalées.
  6. Deux aperçus : « si les bien cotées passent » et « si tout passe ».
  7. Trois langues : fr · en · es, pour l'interface comme pour le texte. Le français fait foi ; une traduction devenue ancienne (le français a changé depuis) est signalée.

Les règles

Le seuil — formule inertielle Ğ1

R = C + B^W + (M + (1 − M)·(1 − (T/W)^G)) · max(0, T − C)

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⌉.

Inertie M G
basse 50 % 0,1
standard (au départ, partout) 50 % 0,2
haute 60 % 0,4
maximale 66 % 0,6

Moteur : crates/ld-engine/src/threshold.rs (testé : 7224 / 120 votants → 94 voix requises).

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.
  • 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).

L'inertie se vote aussi

Chaque article porte son inertie. La changer est une proposition, votée elle-même à l'inertie du cran au-dessus (« inertie + ») : alourdir ou alléger demande plus que modifier.

Corriger n'est pas voter

Geste Qui Effet sur les votes
Corriger une coquille (accents, casse, ponctuation, espaces ; ou jusqu'à 2 mots mal tapés, une lettre ajoutée, retirée ou inversée chacun, au cœur du mot) — mesurée contre le texte voté, jamais contre la dernière correction tout membre sur un texte de départ ou en vigueur ; l'auteur sur sa proposition aucun — les votes restent, les traductions restent à jour
Modifier le fond d'une proposition son auteur nouvelle révision : les votes antérieurs sont « à reconfirmer », les signalements tombent
Modifier le fond d'un texte en vigueur ou d'un texte de départ personne refusé : on propose une nouvelle version

Le classement est prudent — quatre relectures indépendantes l'ont éprouvé, et il fonctionne par liste blanche : une coquille ne peut toucher que des lettres latines, des espaces et la ponctuation ordinaire. Tout le reste compte comme le sens et ne bouge pas : chiffres (de toute écriture), signes, relations, parenthèses, sosies (« ‚ » pour une virgule, « ⁄ » pour une barre, formes pleine chasse), marques superposées (rayure, barre), autres alphabets (cyrillique, hébreu), rayure Markdown, tout ce qui est entre accents graves, les adresses (domaines, liens, courriels), et un séparateur ou un tiret collé à un chiffre (« 50 » → « 5,0 », « 182.625 » → « 182 625 », « -5 »). Pour les mots : au plus deux mots, chacun un seul glissement de clavier au cœur du mot — jamais aux deux premières ni aux deux dernières lettres (préfixes « valide » → « invalide », terminaisons « certifierai » → « certifierais »), jamais une lettre remplacée (« deux » → « dix »), jamais un mot de négation, de quantité ou de position (ne, jamais, deux, majorité, tous, dessus, avant…). Chaque correction est mesurée contre le texte voté : les glissements ne s'additionnent pas d'une correction à l'autre. Les caractères invisibles (inversion du sens d'écriture, largeur nulle) sont refusés partout. Moteur : crates/ld-engine/src/edit.rs.

Deux articles qui se contredisent

Tout membre peut signaler une contradiction entre deux propositions, motif à l'appui. Tant que le signalement tient, celle des deux qui n'est pas en vigueur ne peut pas entrer en vigueur. Il se lève par son auteur (ou un administrateur), ou tombe quand la proposition signalée est révisée sur le fond.

Une décision par proposition

L'éditeur a un assistant à règles (pas d'IA pour l'instant ; plus tard, une IA locale, sans abonnement) : il repère un texte qui porte plusieurs décisions et propose de le découper en brouillons, signale une proposition très proche d'une existante, et un texte long. Moteur : crates/ld-engine/src/assist.rs.

Brouillon → proposition

On écrit en brouillon (libre, invisible des autres), on soumet ; la proposition est alors ouverte au vote. Son auteur peut la retirer.

Publication

Chaque entrée en vigueur (et la publication initiale) passe par une file d'envoi : le serveur écrit fr.md, en.md, es.md (front matter : document, langue, source, mise à jour ; les traductions marquées éditoriales) et document.json, commit et pousse sur git.duniter.org/Yvv/libredecision-textes, chemin monnaie-libre/acte-engagement-certification/. É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.

Accès — trustinWallet

Tout le monde connecté peut tout faire dans les groupes qu'il ouvre (lire, proposer, voter, corriger, signaler) sauf la gestion des accès, réservée aux administrateurs de trustinWallet (/acces) : membres des groupes, invitations, administrateurs, retours, clé de publication. Le nom trustinWallet remplace trustWallet (déjà pris). Règles : crates/trustin-access.

Une personne, une voix. Dans Monnaie libre, dont l'électorat W est la toile de confiance, seuls les membres de la toile votent (connexion Ğ1). Une identité d'invitation y lit, propose, corrige et signale, mais ne vote pas : sinon la même personne, invitée puis connectée avec sa clé, voterait deux fois. Dans les groupes gérés (essai, Axiom…), tout membre vote.

Le groupe d'essai

Caché, plancher C = 1, 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)

Question Décision
Stack Rust (serveur, moteur) + Svelte (interface), pour la durée, la performance, la modularité
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.duniter.org/Yvv/libredecision-textes (compte d'Yvv)
Garde-fou du vote permanent nombre minimal de votants « pour » (C)
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

Les raisons longues sont dans docs/adr/.

Limites connues (assumées pour ce premier chantier)

  • Le droit de vote se vérifie au moment du vote : un membre sorti de la toile, ou dont l'accès est révoqué, garde les voix déjà exprimées.
  • Dans un groupe géré (essai, Axiom…), une même personne admise sous une identité d'invitation et sous sa clé Ğ1 aurait deux voix : c'est à l'administration de n'en admettre qu'une.
  • Un administrateur peut créer un nouveau lien pour une identité d'invitation existante (pour la dépanner) — jamais pour une identité Ğ1.
  • Des accents ou une ponctuation qui portent du sens restent des coquilles (« ou » / « où », « a » / « à », une virgule autour d'une relative) : le diff de chaque correction est visible dans l'historique de l'article.
  • Les traductions (en, es) sont éditoriales : tout membre les corrige sans vote, et elles sont republiées — le français fait foi.

Questions ouvertes (à Yvv)

  • Licence du code — non choisie.
  • Texte « Paramètres par défaut » du seed (F1.2) : il annonce C = 0 et une durée de 30 jours, alors que le vote est permanent avec C = 50. À reformuler par proposition (c'est leur rôle), ou à corriger dans le seed avant la première publication si c'est une erreur de transcription.
  • Anglais : l'interface est en anglais américain, le seed en anglais britannique.

Ce qui reste après la livraison

  • L'inscription du client OAuth2 (poka) : DEMANDE-CONNECT.md, puis les deux secrets dans la CI.
  • Les retours de Chiara → contrôles → corrections, sur la branche du chantier.
  • Ensuite : chantier 2, l'Acte d'engagement forgeron (qualification d'une compétence).