- ACME : le challenge HTTP-01 échoue en IPv6 (AAAA présent, webroot non servi en v6) ; quand un certificat est déjà en place (valide jusqu'au 30/09), on le conserve avec avertissement au lieu de bloquer le déploiement — sans certificat existant, échec franc inchangé - l'org forge renommée EHV→LPK a changé le COMPOSE_PROJECT_NAME : le « compose stop » ne touchait plus l'ancienne stack ehv-decision-main-* (double inscription fabio, trafic partagé v1/v2) → arrêt par filtre de nom avant déploiement Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
libreDecision
Boîte à outils de la première démocratie — décider ensemble, du trio à la population.
libreDecision fait de la décision un geste quotidien : chaque question tient en une phrase, l'outil propose le chemin le plus court — jamais plus lourd que l'enjeu — et tout ce qui est décidé reste révisable, mesuré, consigné. Le même outil sert un trio d'amis, une association, une coopérative ou la toile de confiance Ğ1 (marque blanche par construction).
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 6 routes de décision
Le triage (moteur pur, toujours expliqué en une phrase, toujours contournable) oriente chaque décision vers l'une de six routes :
| Route | Geste |
|---|---|
| solo | « Personne d'autre n'est concerné — décide. » 2 gestes, moins de 10 secondes, trace facultative |
| record | « Déjà tranché — je le consigne. » L'observatoire en un geste, adopté immédiatement |
| mandate | « Ton mandat couvre — décide, c'est tracé. » Trace obligatoire + fenêtre d'objection 48 h |
| transmit | « Le mandat d'un autre couvre — transmets-lui. » (ou conteste le mandat) |
| advice | « Réversible et petit cercle — demande leur avis, puis décide. » 72 h |
| collective | « Nous décidons. » Formulation, liste des concernés arrêtée, session de vote |
Dérogation asymétrique : alourdir est libre (1 tap journalisé) ; alléger exige une note motivée et une fenêtre d'objection.
Les 5 modalités
Chaque protocole est nommé et référencé par une clause du Pacte — le modifier, c'est amender le Pacte.
- Consentement — « Ça me va / J'objecte » : zéro objection maintenue = adopté. Le repli universel : tout collectif en a un (invariant).
- Nuancé 6 niveaux — de « Pas du tout » à « Tout à fait », jamais « contre » ; histogramme visible, commentaire obligatoire sur les niveaux bas.
- Paramétrique — décider au curseur : faisceau des positions, médiane vivante, carte « Pour moi » ; la cristallisation finale est un geste humain daté du garant, jamais un automatisme.
- Élection — réservée aux mandats et aux problématiques d'échelle (6 méthodes de nomination, vote blanc, jamais de départage par l'outil).
- Binaire inertiel — le seuil
C + B^W + (M + (1−M)(1−(T/W)^G))·max(0, T−C), héritage Ğ1 remis à sa place : l'outil de dernier recours des très grands corps. L'Atelier des formules (/textes/formules) reste son école.
Local-first
- Aucun serveur requis : tout l'état vit dans le navigateur (IndexedDB via idb-keyval, une clé par collectif).
- Export / import de bundles JSON — la fédération, c'est l'échange de bundles, jamais une table.
- Seeds livrés et importés par le même chemin que l'import utilisateur :
duniter-g1.bundle.json— la toile Ğ1 : 33 clauses Certification + 59 clauses Forgeron (textes votés intacts, provenance et décomptes conservés), protocoles, 3 mandats ;atelier-du-canal.bundle.json— association fictive de 12 membres, le test permanent de marque blanche : décisions à tous les états, paramétrique vivant, épreuve du réel due.
- 7 gabarits de collectif à la création (
/creer) : page blanche, informel, association, coopérative, commune, monnaie libre, institution symétrique.
Stack
- Frontend : Nuxt 4 (SPA, SSR off) + Vue 3 + TypeScript + Nuxt UI v3 + Pinia + UnoCSS ; npm ; port 3002
- Moteurs purs :
frontend/app/engine/— triage, machine à états, seuils, médiane paramétrique, nuancé, périmètres — zéro dépendance Nuxt, testés vitest (342 tests) - Backend v1 (FastAPI + SQLAlchemy async) : conservé dans
backend/pour la future synchronisation multi-appareils — non requis pour utiliser ou développer le frontend
Démarrage
cd frontend
npm install
npm run dev # http://localhost:3002
npm test # vitest — 342 tests
npm run build # build de production
Structure v2
frontend/app/
engine/ # moteurs purs (barrel index.ts — seul point d'import)
data/ # persistence.ts (IndexedDB), templates.ts (7 gabarits), seeds/*.bundle.json
stores/ # collective.ts (le tenant) + decisions.ts (façade d'actions)
composables/ # useMood, useFeed, useSearch
components/ # par domaine : chemin/ decisions/ votes/ texts/ mandates/ feed/ onboarding/ common/
pages/ # 14 routes : / decider decisions(+id, vote, observatoire)
# textes(+slug, formules) mandats(+id, nouveau) creer donnees
lexicon.ts # source unique des libellés FR + test anti-lexique
types/domain.ts # le noyau du modèle
docs/dev/BLUEPRINT-V2.md # la référence produit
Licence
Logiciel libre. Le fichier LICENSE sera posé avant la première publication.