- ld-engine inertia::when_everyone_votes_the_share_asked_is_m_on_every_electorate : pour tout W de 1 à
10 000 000, les cinq crans, G aux deux bornes de la participation habituelle, les quorums 1, 2 et W :
quand les W votent, la part exigée des T′ = max(W, Q) votants est M, exactement ; la phrase d'avant
(« la majorité M suffit », lue ⌈M·W⌉ « pour ») fausse sur 17 couples (W, cran), tous W ≤ 15, une voix
de plus (B^W) ; vert sur le moteur inchangé, ses dents vues rouges par trois mutations (le plafond de
la participation retiré, B^W mis dans la part, B^W retiré de R).
- web/tests/unit/rules.test.ts : formula.reading épinglée en fr, en, es (« la part exigée est la
majorité M ») ; aucune chaîne des catalogues ni du texte des composants ne dit que la majorité suffit ;
la liste fermée de ce que l'écran dit de la pleine participation (formula.M, formula.reading,
settings.reading) ; inertia.test.ts suit. 5 tests rouges sur 116.
- tests/amorce.rs the_queue_names_the_starter_proposals_as_the_screen_does : les quatre raisons
« Proposition d'amorce réécrite / ajoutée » (I1, E1, E2, E12), dans les constantes et dans les cinq
lignes de file que T4 écrit sur une base comme la production après M8 ; celles de M6 inchangées. Rouge
sur les constantes, et sur la file quand les constantes sont sautées.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ADR 0014 « Les informations de fonctionnement ne se votent pas » : ce qui sort
(F1, F1.1, F1.2, F1.3, N1, N1.1, O1 et l'ordre de leurs sections), comment (rien
d'effacé, units.retired_at), la garde et ses refus, aucun vote futur (404 / 400),
ce que dira l'interface (U3), la file de publication, le retour arrière (prouvé
avec l'image de de1b7eb), les limites. textes-amorce.md : chaque texte avant /
après en fr, en, es, E12, ce qui sort, les choix à confirmer par Yvv.
e2e (aucun changement de web/src) : C3, C9 (27 articles, cinq sections, quatre
Propositions seed), C17 (33 modules à voter), C18 et C31 (le texte d'I1 de
T4), C25 (cinq lignes d'ordre, E12 dans l'ordre de « fondamental »), C35 (E12
entre E1 et E2 ; le glisser d'une place), C38 (4 Propositions seed).
CONTROLES.md suit ; CLAUDE.md : article_amend.rs, retire.rs, amorce.rs,
fixtures/seed-m8, le seed de 27 articles, l'invariant.
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>
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>
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>
- 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>
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>
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>
Le texte de Monnaie libre reste tel que C20 et C23 l'attendent (ils passent après dans
l'ordre des fichiers) ; rien n'entre en vigueur, rien ne devient bien coté.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- rien n'est parti (nœud muet avant la signature, refus, fenêtre fermée avant) :
la page lâche le bulletin ; signé, ou montré en code Ğecko, il est gardé et
le serveur le confirme sans la page ; le refus de la chaîne se dit (« chain ») ;
- le reçu : téléchargeable depuis la fenêtre de vote, et la page « Tes
bulletins » (/bulletins) qui garde l'historique et vérifie un reçu dans le
navigateur, sans le serveur (lib/receipt.ts, mêmes vecteurs que le moteur) ;
- le panier ne dit plus « Tes votes comptent dès l'envoi » quand le vote est fermé ;
- @noble/hashes déclaré (utilisé par e2e/chain-mock.mjs et le reçu) ;
- chaîne simulée : finalité, pages, filtres, nœud qui tombe ; contrôles C32, C33.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Le vote se déplie sous l'article, façon accordéon, l'URL pour état (?vote=) :
niveau d'eau, totaux, seuil et voix manquantes, ton vote et où il en est
(enregistré, inscrit sur la chaîne, en attente, à reconfirmer, non compté),
inertie et formule. Le reste d'une version (coquilles, traductions,
signalements, historique) passe dans l'onglet « Détails » du panneau.
- Le panier : article par article, « tout pour / tout contre » par section ou
pour tout le document, jamais pour un article à plusieurs versions ; un seul
geste (une écriture, ou une transaction).
- La signature : le portefeuille de la page (injectedWeb3), polkadot-api chargé
au moment de signer ; sans portefeuille, Ğecko par lien et QR ; la page
attend la confirmation. Un bulletin que le portefeuille n'a pas signé est
lâché aussitôt (DELETE /api/ballots/{id}).
- Pastilles d'ambiance : flèches dans le groupe, anneau de focus pointillé à
la couleur d'accent de la page (3:1 au moins), distinct du choix.
- e2e : chaîne simulée (indexeur et nœud), faux portefeuille ; C21–C24, et
C4, C5, C6, C11, C17, C19, C20, M1 mis à jour.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La médiane de participation ne compte plus les propositions retirées (invisibles, votes
non repris). Quand l'échelle ramène la participation dans ses bornes, les réglages disent
la médiane mesurée (ou deux fois C) et, à part, la valeur sur laquelle les seuils se calculent.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
L'inertie se lit en crans, « 3 / 5 · moyenne » (très basse, basse,
moyenne, haute, très haute ; fr, en, es). Le sélecteur offre les cinq
crans, l'actuel marqué ; le changement se vote au cran de l'article.
L'article dit le passé de son inertie (vote ou réglage de départ).
« Réglages de la formule », en lecture seule, depuis l'en-tête du doc et
depuis le vote d'un article (onglet « Réglages » du panneau, dans
l'URL) : W et sa source, C, B, la participation habituelle (médiane ou
référence, sur combien de propositions, quand), et les cinq crans : M,
G, part exigée, voix pour exigées à la participation de la version
regardée (ou habituelle depuis l'en-tête).
Composants à part (InertiaPicker, FormulaSettings), branchés par
quelques lignes dans VoteView. La formule dépliée ne fait plus déborder
le panneau. e2e : C4 (cran de l'article dans la formule), C20 (réglages
et cinq crans), M1 (réglages lisibles sur mobile).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le lien porte « Docs de référence, 1 doc en cours » (fr, en, es) au lieu
d'un texte masqué collé au libellé ; contrôlé dans C15.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>