- types.ts : evaluation.quorum / yesNeeded / noNeeded, levels[].quorum, l'unité
quorum / quorumDefault / canSetQuorum, doc.quorums (optionnels) ; publication
« suspended » (ADR 0011) ;
- Réglages de la formule : la colonne « Quorum » des cinq crans et sa note, la
participation de référence « deux fois 50, le quorum de référence » ; plus de
ligne C ; sur téléphone, les six colonnes tiennent dans la feuille ;
- La formule du seuil : T' = max(T, Q), R = B^W + ratio(T')·T', la ligne Q (le
quorum de la version) au lieu de C ;
- textes : deep.note, formula.reading, settings.* parlent du quorum, plus de C
(test vu rouge puis vert, tests/unit/inertia.test.ts) ;
- e2e : Seuil 9 (cran 2) et 39 (cran 3) dans Monnaie libre, les quorums 12 · 12 ·
50 · 50 · 50, voix pour à 100 votants 60 · 67 · 75 · 83 · 90, à 0 votant
8 · 9 · 39 · 43 · 46.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- migration 0011 (additive ; 0010 reste au lot V) : documents.quorums (par cran,
NULL = vote_floor à chaque cran, le C d'avant), units.quorum (NULL = celui du
cran), journaux quorum_changes et quorum_amendments ;
- quorum effectif = units.quorum ?? quorums[cran] ; les propositions d'inertie et
les modules en héritent ; p0 = 2 × vote_floor / W, jamais le quorum d'un article ;
- route PUT /units/{id}/quorum { "quorum": n | null } : trustin_access::sets_quorum
(l'auteur de la première version, un administrateur pour le seed), refusée dès
qu'un vote existe (quorum::voted_units : vote du serveur, bulletin de la chaîne
en attente ou confirmé, adoption) ; bornes 2..W, 1..W dans le groupe d'essai ;
- amendement gardé 2026-11-03-quorums-par-cran : écrit les quorums du seed là où
il n'y en a pas, une fois par document, consigné, file de publication là où il
publie ;
- JSON : evaluation.quorum / yesNeeded / noNeeded ; l'unité : quorum,
quorumDefault, canSetQuorum ; doc.quorums ; levels[].quorum ; document.json
publié : quorums ; adoptions.params : quorum (plus de constant) ;
- seed : quorums 12 · 12 · 50 · 50 · 50 (Monnaie libre), 1 partout (essai).
- tests : tests/quorum.rs (5) et les règles pures ; les scénarios du groupe
d'essai qui demandaient deux voix posent le quorum 2 de l'article, comme son
auteur le ferait ; les chiffres de Monnaie libre suivent (9 au cran 2, 39 au
cran 3, 43 au cran 4).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le quorum Q (votants = pour + contre) remplace le C additif : T' = max(T, Q),
la version passe si pour ≥ ⌈B^W + ratio(T')·T'⌉, ratio la courbe des cinq crans
(M, G calé à la participation de référence, inchangé). La règle d'Yvv du 03/11
(« Ils comptent comme non ») est seule dans threshold::judged_voters. Pour
l'écran : yes_needed (le total de pour qui passe avec les contre d'aujourd'hui)
et no_needed (le total de contre qui tient les pour d'aujourd'hui, 0 si le quorum
suffit) ; passe ⇔ pour ≥ yesNeeded ⇔ contre < noNeeded, éprouvé sur une grille.
well_rated : la part tient sur ceux qui sont venus. Scale porte les quorums par
cran, UnitState le quorum propre d'un article ; p0 reste 2·vote_floor/W.
Vu rouge : sans la règle (T' = T), 9 tests échouent ; avec l'autre lecture d'un
quorum (un minimum de votants, les absents non comptés), 8 échouent, dont « un
contre n'aide jamais ». Chiffres de contrôle (W 5 707, p0 = 100/W) tenus : 9, 39,
46 au quorum ; 7, 8, 9, 9, 10 à dix votants.
Le serveur suit au commit suivant.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
Interface au strict nécessaire (le lot U refera la présentation) : la marque
« Proposition seed » là où une version est montrée (liste des propositions,
Détails, panneau Propositions), seedProposal?: boolean dans types.ts ; au-dessus
des ordres, « Aucun article n'est en vigueur » quand c'est le cas.
e2e : C3 (aucun texte en vigueur, 33 lignes, trois Propositions seed au cran 2),
C9 et C18 (« si tout passe »), C20, C23, C24 et M1 par la liste des propositions
dans Monnaie libre ; dans le groupe d'essai, I1, E1 et E2 entrent d'abord par le
vote (seedsInForce : deux voix puis leur retrait, le texte reste en vigueur) pour
les contrôles qui lisent un texte en vigueur (C4 à C6, C20, C21, C24, C28 à C31).
Boucle e2e : 35 / 35.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
modules.rs : 0 article en vigueur et 35 propositions en cours dans une base
neuve (I1, E1 et E2 sont des Propositions seed) ; l'ajout des modules à une
base existante se rejoue sur le seed de production du 02/11 (textes en
vigueur), comme inertia.rs. overview.rs : le vote porte sur la Proposition
seed I1 ; 41 modules à voter, inchangé.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Boucle verte dans la copie du lot (48529e5) : fmt, clippy, 237 tests Rust,
svelte-check 0/0, 55 vitest, build, e2e 35 / 35.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Travail en cours, sauvegardé à la demande d'orch : le moteur, le serveur et
tests/seed_proposals.rs (verts) ; les autres tests et les e2e ne sont pas
encore repris.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Le seed porte les nouveaux textes (fr, en, es), ceux du brouillon relu
(textes-regles-seed.md), pour les bases neuves.
- L'amendement de seed vise aussi une proposition ouverte du seed, par son
étiquette (Version::Open) ; mêmes gardes : rien d'une personne, 0 vote,
révision 1, empreinte attendue. Quatre amendements, de l'empreinte du seed du
21/10 (inchangée depuis 67ddee2) à celle d'aujourd'hui.
- Tests vus rouges : remplacement une fois, un vote garde le texte, republication
de Monnaie libre seule, base neuve « present ».
Boucle : 237 tests Rust, svelte-check 0, 55 vitest, e2e 35 / 35.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ADR 0010 révisée : « Retirer ou "contre" » remplace la ligne qui gelait tout ;
la levée fait entrer la version avec les voix encore là, et le coût le dit.
CHANTIER et l'invariant de CLAUDE.md suivent. CONTROLES : C28 ajusté (chez Vera,
pas de « Pour », mais « Contre » et le retrait ; le panier), passage du lot G :
C1–C33 et M1, 35 tests verts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sous l'article, une version retenue montre « Contre » et le retrait, avec la
phrase qui dit pourquoi. Dans le panier, elle se choisit en « contre » ou en
retrait ; « Tout pour » la saute et le dit, « Tout contre » la prend ; un « pour »
gardé d'avant l'objection quitte le panier (basket.kept). Les phrases qui disaient
« ne se vote plus » disent la règle d'Yvv, en fr, en et es. C28 ajusté.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
LICENSE est le texte actuel de gnu.org (661 lignes, vérifié mot à mot contre le
texte SPDX) ; license = "AGPL-3.0-only" dans le workspace Cargo et package.json ;
README.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Décision d'Yvv du 01/11/2026 : « Retirer ou "contre" ». Le moteur dit la règle
(objection::may_cast) ; le vote direct, le vote groupé et le bulletin de la chaîne
l'appliquent par DocState::admits : « pour » 409 objection, « contre » et retrait
acceptés, une ligne refusée refuse tout le vote. Un bulletin scellé avant
l'objection compte tel qu'il est signé ; une version retenue n'entre jamais.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Le revirement de l'auteur sur une coquille (reprendre une correction appliquée,
valider une correction refusée) ne s'écrit que sur une version encore ouverte :
Settle porte while_open ; et la garde de statut de write_text marche enfin
(?9 restait NULL, le statut est le 8e paramètre).
- 0008 lève les signalements debout dont un côté est déjà retiré.
- Une seule objection debout par personne et par paire (index unique partiel) ;
envoyée plusieurs fois à la fois, les autres reçoivent objection_exists.
- Un retrait relance l'adoption : la version que l'objection retenait entre aussitôt.
Tests vus rouges d'abord. Boucle : 230 tests Rust, svelte-check 0, 55 vitest,
e2e 35 / 35.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Les deux côtés gardés partout. Aux coutures :
- une objection (redit / contredit) porte sur deux articles, jamais sur un module ;
un ordre ne se corrige pas, ni par son auteur ni par un autre ; une coquille du
titre suit le chemin de F (l'auteur du titre, un administrateur pour le titre
de départ, ou 3 jours), et documents.title suit à l'application ;
- votable() couvre les modules ; leurs totaux passent par shown_tally, à l'écran
et dans document.json ;
- « Modules à voter » ne compte plus une version retenue par une objection (test
vu rouge) ; la liste du groupe la compte toujours parmi les propositions en cours ;
- le panier : une fonction pour les articles et les modules, avec les versions
retenues de F ; un nouvel article se propose dans une section, à sa fin, et peut
répondre à une objection ;
- migrations 0007 (modules) puis 0008 (objections) ;
- C25 et C26 supportent un groupe d'essai où une voix suffit (dès 16 membres).
Boucle : fmt, clippy -D warnings, cargo test (227), svelte-check 0, vitest 55,
build, e2e 35 / 35 (C1–C33 et M1).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chaque connexion de développement rejoint tous les groupes : B2 et F en ajoutent
quatre chacun, l'essai passe de 13 à 17 membres. Dès 16, B^W passe sous la
précision du calcul et, C valant 1, la voix seule de Chiara fait entrer sa
version de « Connaissance suffisante » en vigueur. Conforme à l'ADR 0002 (essai :
C = 1) ; l'ADR 0007 le dit maintenant. Boucle : 202 tests Rust, svelte-check 0,
49 vitest, e2e 31 / 31.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ADR 0009 : un module est une unité du document (units.kind), ses versions des
propositions ; l'ordre d'une section se complète à la fin quand des articles
entrent ou sortent pendant son vote (ni caduc, ni à reconfirmer) ; un nouvel
article se place à la fin de sa section ; à l'entrée d'un titre, ses traductions
passent « à revoir » ; l'ajout gardé des documents existants.
ADR 0007 : l'échantillon de la participation nomme ses statuts (open, in_force,
applied) ; ce que les réglages disent d'une participation ramenée.
CHANTIER : ce que voit la personne, la règle des modules, les crans 2 et 4.
CONTROLES : C3, C17, C20 mis à jour, C25 à C27, le passage du lot D (29 / 29).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conflits avec B2 : docs.rs garde shown_tally / shown_evaluation et votable ;
proposals.rs sert les totaux montrés et « votable » ; CONTROLES réunit C24
(« faire une objection », le panier par son adresse), C28–C33 et les deux passages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
polkadot-api lève InvalidTxError (JSON indenté) quand le nœud refuse la transaction :
elle est désormais lue comme « la chaîne a dit non » (rien n'est parti, le bulletin est
lâché), au lieu de rester en attente 24 h. La page /bulletins ne présente comme vérifiés
que la version, la révision et le choix ; l'article, le titre et le bloc du reçu sont dits
hors du sceau. ADR 0008 : trois affirmations corrigées (indexeur sans filtre, débit de la
tâche de fond, lectures qui n'utilisent pas encore shown_tally).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chaque section du lecteur finit par l'ordre de ses articles (inertie 2) : ses
articles numérotés, son vote déplié, « Proposer un autre ordre » — une liste où
l'on clique un article puis sa place, ses flèches, ou le clavier. Le titre du
document (inertie 4) se vote et se propose sous le titre, « traduction à
revoir » quand il a changé. Les deux sont dans la liste des propositions, le
panier et la chaîne Ğ1 ; un nouvel article se propose dans une section, à sa fin.
La liste du groupe compte les propositions ouvertes des modules.
Restes mineurs : la participation ramenée se dit en deux temps (la mesure, puis
ce que le groupe demande), les lignes « habituelle » des réglages resserrées, le
sélecteur d'inertie se parcourt aux flèches (le cran actuel atteignable, jamais
choisi), la marque « seed a minima » porte le vrai nombre de votes.
Contrôles : C25 (ordre, dont la chaîne et le téléphone), C26 (titre), C27
(participation ramenée) ; C3, C17 (41 modules), C20 mis à jour.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ADR 0010 remplace 0004 et complète 0003 (renvois dans les deux). CHANTIER :
« Corriger n'est pas voter » et « Deux articles qui se répètent ou se
contredisent » réécrits avec le tableau des gestes (qui, quoi, effet,
échéance), la boîte « Messages », deux limites connues. CONTROLES : C6
suit la règle, C24 son nouveau texte, C28–C31, le passage du lot F.
CLAUDE.md : l'invariant de l'objection et de la coquille validée, les
nouveaux modules, 29 contrôles.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Une version retenue par une objection le dit sous l'article, à chacun
selon son rôle : la personne qui vote voit qu'elle ne se vote plus (les
votes faits restent) ; l'auteur, quoi faire (« Modifier l'article visé »
pour une redite, « Reformuler » pour une contradiction) ; la personne qui
objecte, lever ou réitérer avant l'échéance. Le panier la montre sans
choix et ne l'envoie jamais.
« Détails » : faire une objection (redit / contredit), les objections et
où elles en sont, les coquilles proposées par d'autres avec leur diff
resserré, valider / refuser / revenir, l'historique dit qui a validé.
Une coquille se propose sur toute version ouverte ou en vigueur.
Boîte « Messages » dans le menu, avec le nombre de non-lus (pastille sur
le bouton du menu en mobile) : objet, texte, gestes, échéance ; un message
traité n'a plus de geste. Répondre à une objection lit son message.
Trilingue (fr, en, es). C6 suit la règle : la coquille d'un administrateur
sur un texte du seed passe tout de suite ; C28–C31 couvrent le reste.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>