YvvandClaude Opus 5.5 92ba485f71 Lot T : F1.1, F1.2 et N1.1 disent le quorum par cran (seed, trois langues) ; un second amendement de seed gardé les remplace en production
- Le seed : « Formule du seuil WoT », « Paramètres par défaut », « Niveaux d'inertie »
  réécrits d'après l'ADR 0013 (sous le quorum, les votants qui manquent comptent comme
  « non » ; au-delà, la part du cran) et l'ADR 0011 (aucun article en vigueur au départ,
  les trois Propositions seed au cran 2, le titre au cran 4) ; le _source le dit.
- Les nombres : chacun, en fr, en et es, calculé par le moteur ou lu dans le seed
  (tests/seed_quorum_texts.rs) ; les trois formules évaluées telles qu'écrites contre
  threshold et inertia ; les règles de forme vérifiées.
- seed_amend : 2026-11-03-f1-1-quorum, -f1-2-quorum, -n1-1-quorum. Un amendement qui
  « follows » un autre admet la révision 2 « initial puis amendment » écrite par lui seul,
  rien d'autre ; ceux de M5 sur F1.2 et N1.1 sont « superseded_by » (plus rien décidé,
  sans erreur). La garde compte aussi les lignes de bulletin du tampon (« ballots »).
- Tests vus rouges : sept du lot T, deux unitaires de la garde ; les tests de M5 jouent
  sur le seed de M5 (la fixture de production).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 07:16:57 +01:00

libreDecision

Rendre possible la décision collective — en fonction du contexte, processus et modalités, boîte à outils.

En ligne : https://decision.librodrome.org (le produit, v3) · la maquette v2, conservée pour présenter le projet : https://maquette.decision.librodrome.org (maquette/).

Manifeste

Personne n'a jamais vécu en démocratie — alors nous la rêvons de jour, et nous la commençons à notre échelle. libreDecision attrape chaque décision en une phrase et propose le chemin le plus court : décide seul et trace-le, décide sous mandat, écoute puis décide, ou décidez ensemble — jamais plus lourd que l'enjeu. Ici on ne délègue pas, on mandate, et on reprend ; on n'est pas consulté, on s'instruit, puis on se prononce ; on ne s'affronte pas en deux camps, on règle des curseurs — et la position de chacun reste visible dans le faisceau, la médiane n'écrase personne, la dernière main est toujours humaine. Les concernés en premier lieu ont voix par construction, chacun voit pourquoi ; lever la main « ça me concerne » est un droit, pas une demande. Chaque décision dit ce qu'elle engage, ce qu'elle cherche à changer, et repasse l'épreuve du réel : rien n'est définitif, toute décision en vigueur garde sa poignée, se tromper est une donnée qu'on consigne. Les règles du jeu elles-mêmes — le Pacte — s'écrivent au fil de l'eau, par ceux qu'elles gouvernent, sous les boussoles Autonomie, Équilibre, Liaison. Du trio d'amis à la toile Ğ1 : le même geste, dix secondes, et l'observatoire qui apprend de nous. La ville change, le puits demeure.

Les quatre outils

Outil Ce qu'il fait État
Décisions funnel assisté pour choisir les modalités, journal des décisions à venir
Docs de référence acte d'engagement, licence, charte, constitution… sous vote permanent actif
Mandats création et révocation de tout mandat à venir
Protocoles workflows sans organe statutaire, rôles tournants, automatisations à venir

Le produit avance un chantier à la fois, chacun livré complet et en production avant le suivant — feuille de route : docs/chantiers/README.md. Chantier en cours : Acte d'engagement Certification (Monnaie libre), en binôme Yvv + Chiara.

Comment marche un doc de référence

  • On arrive sur le texte en vigueur, seul, lisible. Trois gestes contextuels : consulter le vote, voir les propositions, proposer une modification.
  • Chaque article est sous vote permanent : une proposition qui atteint son seuil (formule inertielle Ğ1, plancher C de votants « pour ») remonte en vigueur et remplace la version en place — si elle tient une marge plus large. Les textes de départ sont des seeds a minima, à zéro vote.
  • Corriger n'est pas voter : une coquille se corrige sans vote ; un changement de fond ouvre une nouvelle révision, dont les votes antérieurs sont à reconfirmer.
  • Deux propositions qui se contredisent ne passent pas ensemble : un signalement bloque la seconde tant qu'il n'est pas levé.
  • L'inertie de chaque article (cinq crans, 3 par défaut, calés sur la participation habituelle du groupe) se vote aussi, au cran de l'article.
  • Tout ce qui entre en vigueur est publié automatiquement dans un dépôt git (fr/en/es + JSON) lu par les applications clientes.

Le détail, les décisions et leurs raisons : docs/chantiers/acte-certification/CHANTIER.md et docs/adr/.

Stack

  • Serveur : Rust (edition 2024, toolchain 1.99 épinglée) — axum 0.8, sqlx/SQLite, tokio. Trois crates : ld-engine (moteur pur : seuils, édition, assistant, composition), trustin-access (règles d'accès de trustinWallet), ld-server (API + publication + service de l'interface).
  • Interface : SvelteKit 2 / Svelte 5 (runes), SPA statique servie par le serveur ; trilingue fr · en · es dès le départ (le français fait foi).
  • Déploiement : une seule image Docker, Woodpecker → sonic (fabio), volume de données nommé.

Démarrer

export PATH=$HOME/.cargo/bin:$PATH
cd web && npm ci && npm run build && cd ..                       # l'interface compilée
LD_DEV_LOGIN=1 cargo run -p ld-server                            # API + interface sur :8002
cd web && npm run dev                                            # interface à chaud sur :3002 (proxy /api → :8002)

LD_DEV_LOGIN=1 ouvre une connexion de développement (sans clé, membre de tous les groupes) — jamais en production. Toutes les variables : .env.example.

Vérifier (la boucle)

cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace
cd web && npm run check && npm test && npm run build && npm run e2e

Les contrôles d'usage (C1–C12, M1) sont décrits dans docs/chantiers/acte-certification/CONTROLES.md ; les tests de Chiara en sont la version humaine.

Structure

crates/
  ld-engine/        # moteur pur, sans I/O : threshold, edit, assist, compose
  trustin-access/   # qui voit, qui ouvre, qui gère les accès
  ld-server/        # axum : auth Ğ1 + invitations, docs, propositions, votes, adoption, publication
    migrations/     # schéma SQLite (données runtime : jamais réécrites)
    tests/api.rs    # scénarios bout en bout de l'API
seeds/              # documents de départ (JSON trilingue), instanciés une seule fois par groupe
web/
  src/lib/          # api, session, i18n (fr source, en, es), composants
  src/routes/       # accueil, groupes, lecteur du texte, trustinWallet (/acces)…
  e2e/              # Playwright : C1–C12, M1
docker/             # app.Dockerfile + app-compose.yml (sonic)
.woodpecker/        # app.yml (le produit) · maquette.yml (la maquette)
docs/               # chantiers/, adr/, dev/ (blueprint v2), recherche/
maquette/           # la v2 Nuxt + FastAPI, telle quelle

Licence

Logiciel libre sous GNU Affero General Public License, version 3 ou toute version ultérieure (AGPL-3.0-or-later, choix d'Yvv du 2026-11-03) : quiconque fait tourner une version modifiée en ligne doit en publier le code. Le texte est dans LICENSE.

S
Description
No description provided
Readme AGPL-3.0
9.7 MiB
Languages
Rust 36.7%
TypeScript 23.9%
Python 17.2%
Vue 13.5%
Svelte 7.6%
Other 1%