Boucle verte dans la copie du lot (abc9c44) : fmt, clippy, 294 tests Rust,
svelte-check 0/0, 56 vitest, build ; e2e 36 / 36 (une passe à 35/36, C18
hors délai une fois, vert à la relance sans changement).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
Boucle verte dans la copie du lot (98b4530 puis d57326d) : fmt, clippy,
286 tests Rust, svelte-check 0/0, 56 vitest, build, e2e 36 / 36 (C34).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- conflits résolus des deux côtés : kept_params garde le quorum (S) et la part simulée, la version déplacée, le cran d'avant (V) ; proposals.rs garde seedMinimal / seedProposal (S) et tallyPending / tallySimulated / myVoteState (V) ;
- simulation::reexamine juge sur le quorum gardé par l'adoption (params.quorum, à défaut celui de l'article) ;
- l'acte répété n'examine plus une adoption qui tient (params.reexamined) ;
- tests V repris sans texte en vigueur au départ (I1, E1 : la Proposition seed) et sur un quorum 2 (small_web) ; le test overview d'une personne invitée dans Monnaie libre suit la simulation (elle vote, chaîne fermée).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Boucle verte dans la copie du lot (5cd10d1) : fmt, clippy, 265 tests Rust,
svelte-check 0/0, 56 vitest, build, e2e 35 / 35.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ADR 0013 : la formule sur T' = max(T, Q), « Ils comptent comme non » dans
threshold::judged_voters, les quorums par cran 12 · 12 · 50 · 50 · 50 (1 dans le
groupe d'essai), le quorum d'un article fixé par l'auteur avant le premier vote
(« un vote existe » : quorum::voted_units, la limite du vote retiré), p0 = 2Q₀/W,
l'amendement 2026-11-03-quorums-par-cran, les nombres, le coût (une voix passe
dans le groupe d'essai ; F1.1 et N1.1 du seed décrivent encore C).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>