28 KiB
Les informations de fonctionnement dans l'interface (lot U3)
Préparé le 2026-11-03 (lot U3, branche
lot/u3-interface), d'après la demande d'Yvv du 03/11 vers 20 h 38 : « ordonnancement, inertie, et formule de vote sont des infos de fonctionnement. Les votes se font à leur place, et les infos doivent trouver leur place dans l'ux. Vérifie que toutes les infos utiles sont au bon endroit au moment où on en a besoin, tu as la place dans les panneaux qui s'ouvrent à droite. » Le lot T4 a sorti F1, F1.1, F1.2, F1.3, N1, N1.1 et O1 du document (ADR 0014). Leurs textes de référence sont ceux de M8 (de1b7eb,seeds/acte-engagement-certification.json, gardés danscrates/ld-server/tests/fixtures/seed-m8/) ; ce que chaque phrase de F1.2 et N1.1 affirme, et le test qui le prouve :t3c-liste-fermee.md(numéros repris ici).
Comment lire
Une ligne par information : la phrase source (abrégée), le moment où elle sert, l'endroit où
l'interface la dit, la clé i18n (web/src/lib/i18n/fr.ts, puis en, es), la preuve. « Déjà » :
l'interface la disait avant U3, à cet endroit ; « nouveau » ou « changé » : ce lot. Critère des lots T3
à T3c, gardé : chaque phrase dite reste vraie pour tout W et tout quorum ; les termes définis
(« participation habituelle », « quorum de l'article », « part exigée ») ; aucun chiffre daté ; les
nombres viennent de l'API.
Les endroits : le chapitre « Info ouverture doc de réf. » (avant le texte, hors vote,
OpeningInfo.svelte) ; le vote déplié sous une version (VoteFold), avec « Inertie »
(InertiaPicker), « Quorum » (QuorumSetting) et « La formule du seuil » (Formula) ; le panneau
de droite « Réglages de la formule » (?onglet=reglages, FormulaSettings) ; la ligne d'ordre
d'une section et « Réordonner » (OrderLine, Reorder) ; la ligne du titre (TitleBar) ;
le panneau « Proposer » (ProposeView).
Les preuves : les tests nommés sont sous crates/ (Rust) ; « grille » renvoie à
crates/ld-server/tests/seed_quorum_texts.rs sur la grille de T3c. Chaque phrase de règle que l'écran
dit est épinglée, lettre pour lettre, par web/tests/unit/rules.test.ts, qui nomme à chaque ligne le
test qui la prouve ; les nombres lus dans l'API, par les contrôles e2e (C20, C39, C43).
F1 « Formule de vote »
| # | Phrase source | Moment | Endroit | Clé | Preuve |
|---|---|---|---|---|---|
| F1.a | « La formule qui régit l'adoption ou le rejet de chaque modification » | au vote | vote déplié, « La formule du seuil » (déjà) | formula.title, formula.intro |
une définition |
| F1.b | « Référence : g1vote (https://…) » | — | non porté (plus bas) | — | — |
F1.1 « Formule du seuil WoT »
| # | Phrase source | Moment | Endroit | Clé | Preuve |
|---|---|---|---|---|---|
| F1.1.1 | « Le seuil est le nombre de voix pour qu'il faut à une version pour entrer en vigueur. » | au vote | « La formule du seuil » (déjà), R | formula.intro, formula.R |
une définition |
| F1.1.2 | « Sous le quorum Q, les votants qui manquent comptent comme « non » : le seuil se calcule comme si Q personnes avaient voté. » | au vote | « La formule du seuil », changé : « Sous le quorum Q de l'article, … : il faut autant de « pour » que si Q personnes avaient voté. » ; l'infobulle de « 9 oui sur 12 » (déjà) | formula.reading, vote.need.title |
grille under_the_quorum_it_takes_as_many_for_as_if_the_quorum_had_voted |
| F1.1.3 | « Au-delà, il faut la part de « pour » que demande le cran … la plus haute au quorum et baisse quand la participation monte, jusqu'à la majorité M » | au vote | « La formule du seuil » (déjà, suite de la même clé), changé (lot U3c) : « Au-delà, la part de « pour » demandée, la plus haute au quorum, baisse quand la participation monte ; quand tout le monde vote, la part exigée est la majorité M. » (avant : « … la majorité M suffit », faux pour W ≤ 15 : quand les W votent, R = B^W + M·W, et B^W ajoute une voix quand M·W est entier, sur 17 couples (W, cran), par exemple W = 4, cran 2 : 3 « pour » sur 4, pas 2 ; relecture de d66823b) |
formula.reading |
grille the_share_asked_falls_beyond_the_article_s_quorum_down_to_m ; « la part exigée est la majorité M » : ld-engine inertia::when_everyone_votes_the_share_asked_is_m_on_every_electorate (tout W de 1 à 10 000 000, les cinq crans, G aux deux bornes de la participation habituelle, les quorums 1, 2 et W : la part exigée des T′ = max(W, Q) votants vaut M exactement ; la phrase d'avant fausse sur les 17 couples, tous W ≤ 15) ; web/tests/unit/rules.test.ts : la phrase en fr, en, es, aucune chaîne ne dit que la majorité suffit |
| F1.1.4 | T' = max(T, Q) et Seuil = B^W + (M + (1 − M) × (1 − (T'/W)^G)) × T' |
au vote | « La formule du seuil », en MathML (déjà) | — | grille the_formulas_of_the_texts_are_those_the_engine_computes |
| F1.1.5 | « Une version passe quand ses voix pour atteignent le seuil, arrondi à l'entier au-dessus. » | au vote | « La formule du seuil », nouveau : « Une version atteint son seuil quand ses voix pour atteignent R, arrondi à l'entier au-dessus. » | formula.round |
ld-engine threshold::a_whole_number_of_votes_never_gains_one_by_rounding |
| F1.1.6 | les lettres T, Q, T′, W, B, M, G | au vote | « La formule du seuil » : chaque lettre avec sa valeur lue dans l'API (déjà), nouveau T′ (« votants retenus : 12, T ou Q s'il en manque »), changé G (« déduit de la participation habituelle du groupe »), nouveau sous la liste, dans la toile seulement : « À la puissance W, B est si petit qu'il ne compte pas dans la toile de confiance. » | formula.T, formula.Tprime, formula.Q, formula.W, formula.B, formula.B.wot, formula.M, formula.G |
formula.Tprime : the_formulas_… ; formula.B.wot : grille b_to_the_power_w_never_counts_in_the_web_of_trust (W de 100 à 10 000 000) ; G : grille g_gives_… |
| F1.1.7 | « Leurs valeurs sont dans « Paramètres par défaut » et « Niveaux d'inertie ». » | au vote | le lien « Réglages de la formule » sous la formule (déjà) | settings.title |
— |
F1.2 « Paramètres par défaut » (numéros de t3c-liste-fermee.md)
| # | Phrase source | Moment | Endroit | Clé | Preuve |
|---|---|---|---|---|---|
| 1, 2, 9, 19 | l'introduction et les intertitres | — | rien à porter | — | — |
| 3, 4 | « Chaque version se vote à tout moment, sans échéance. Chacun peut changer ou retirer son vote : le dernier fait foi. » | au vote | vote déplié, sous les boutons, nouveau : « Le vote reste ouvert, sans échéance : tu peux changer ou retirer ton vote à tout moment, le dernier fait foi. » — pas sur une version retenue par une objection, où « Une objection retient cette version… » dit ce qui reste (déjà) | vote.permanent (vote.held) |
ld-engine ballot::the_last_one_stands_in_the_order_of_the_chain ; tests/ballots.rs the_last_one_stands_in_the_order_of_the_chain |
| 5 | « Une proposition entre en vigueur dès qu'elle atteint son seuil. » | en lisant les propositions | « Propositions en cours » : « Chacune remonte dès qu'elle atteint son seuil » (déjà) ; « Seuil atteint. » dans le vote (déjà) | deep.note, tally.reached |
une règle sans nombre |
| 6, 7 | « S'il y a déjà un texte en vigueur, il lui faut en plus une marge … plus large que celle de ce texte. Le texte remplacé redevient une proposition, avec ses votes : il peut revenir. » | au vote d'une version concurrente | vote déplié d'une version à côté d'un texte en vigueur (texte, titre, ordre), nouveau : « Un texte est déjà en vigueur : pour le remplacer, cette version doit en plus atteindre une marge (voix pour moins voix exigées) plus large que celle de ce texte. Le texte remplacé redevient une proposition, avec ses votes : il peut revenir. » | vote.rival |
ld-engine compose::a_rival_must_beat_the_version_in_force ; tests/api.rs a_rival_replaces_the_seed_and_the_seed_returns_among_proposals ; tests/modules.rs an_order_is_proposed_with_the_articles_of_its_section_then_voted_into_force (l'ordre d'avant revient parmi les propositions) |
| 8 | « Si plusieurs propositions y parviennent, celle qui a la marge la plus large entre en vigueur. » | au vote, en voyant les autres versions | vote déplié, dans « Autres versions », nouveau | vote.others.rule |
ld-engine compose::rivals_on_one_unit_yield_one_winner |
| 10 | « W : le nombre de membres de la toile de confiance Ğ1, relu sur la chaîne toutes les 6 heures. » | au vote, aux réglages | « W — électorat : 5 745 (membres de la toile de confiance Ğ1) », formule et réglages (déjà) ; « toutes les 6 heures » non porté (plus bas) | formula.W, formula.W.wot |
— |
| 11 | « T : les votes exprimés sur la version, pour et contre. » | au vote | « T — voix exprimées » (déjà) | formula.T |
une définition |
| 12 | « Q, le quorum : sous ce nombre de votants, ceux qui manquent comptent comme « non ». » | à l'ouverture ; au vote ; en fixant le quorum | le chapitre, nouveau : « Sous le quorum d'un article, les votants qui manquent comptent comme « non ». » ; l'infobulle du vote, « Quorum », les réglages (déjà) | opening.quorum.rule, vote.need.title, quorum.explain, settings.quorum.note |
grille under_the_quorum_… |
| 13 | « Chaque article prend celui de son cran : 12, 12, 50, 50 et 50 dans Monnaie libre, du cran 1 au cran 5. » | à l'ouverture ; aux réglages ; en fixant le quorum | le chapitre, nouveau : « 12 · 12 · 50 · 50 · 50 votants, du cran 1 au cran 5. » (lu dans doc.quorums ; « 1 votant à chaque cran. » dans le groupe d'essai) ; la colonne « Quorum » des réglages, « Par défaut, celui de son cran : 12 votants. » (déjà) |
opening.quorum.levels, opening.quorum.same.*, settings.col.quorum, quorum.default.* |
tests/quorum.rs each_level_has_its_quorum_and_every_evaluation_says_it ; lu dans l'API : C39 (l'API changée, le chapitre suit), C20 |
| 14 | « L'auteur de la première version d'un article, un administrateur pour les textes de départ, peut en fixer un autre tant que l'article ne garde la trace d'aucun vote. » | à l'ouverture ; en fixant le quorum | le chapitre, nouveau, la phrase de F1.2 mot pour mot ; « Quorum » du vote déplié, changé : « Tu fixes le quorum de cet article tant qu'il ne garde la trace d'aucun vote. » (avant : « tant que personne n'a voté », faux après un vote retiré, point 8 du lot T2) | opening.quorum.author, quorum.explain |
tests/quorum.rs the_author_of_an_article_sets_its_quorum_before_the_first_vote ; tests/ballots.rs a_vote_exists_for_every_state_of_the_buffer |
| 15 | « Dans Monnaie libre, jamais moins de 2 : une seule voix ne fait jamais passer un texte. » | en fixant le quorum | le refus du serveur, dit à la personne : « Ce quorum sort des bornes : au moins 2 votants (1 dans le groupe d'essai)… » (déjà) | quorum.error.quorum |
tests/quorum.rs in_monnaie_libre_a_quorum_holds_two_voices_and_a_ballot_counts_even_pending ; ld-engine threshold::one_vote_never_passes_with_a_quorum_of_two_or_more |
| 16 | « B = 0,1 : dans la toile de confiance, B^W est si petit qu'il ne compte pas. » | au vote | « B — base : 0,1 » (déjà), nouveau formula.B.wot quand W est la toile (F1.1.6) |
formula.B, formula.B.wot |
grille b_to_the_power_w_… |
| 17 | « M et G : donnés par le cran d'inertie de l'article » | au vote ; aux réglages | « M — majorité à pleine participation : 50 % — inertie 2 / 5 · basse » (déjà) ; colonnes M et G des réglages, la ligne de l'article marquée (déjà) | formula.M, settings.col.*, settings.current |
grille the_formulas_… |
| 18 | « G n'est pas fixé à la main : il se déduit de la participation habituelle du groupe. » | au vote ; aux réglages | « G — gradient : 0,103, déduit de la participation habituelle du groupe », changé ; aux réglages, nouveau : « G se calcule pour que la part exigée, au-delà du quorum de l'article, soit exactement celle du cran à la participation habituelle. » | formula.G, settings.gradient |
grille g_gives_the_share_of_the_level_at_the_usual_turnout_beyond_the_article_s_quorum |
| 20 | « Le cran par défaut est le 3 (moyenne) : M = 55 %, un quorum de 50 dans Monnaie libre, et, au-delà du quorum, le groupe demande 75 % de « pour » à sa participation habituelle. » | aux réglages ; à l'ouverture | le tableau des réglages, ligne 3 (déjà) ; sous le tableau, changé : « Part exigée : celle que le cran demande au-delà du quorum de l'article, à la participation habituelle. » (avant : « à 100 votants comme d'habitude », faux quand la médiane sort de ses bornes, T3c) ; le chapitre : « Autres articles 3 / 5 · moyenne » | settings.share.note, opening.inertia.others |
grille the_share_of_a_level_is_asked_at_the_usual_turnout_beyond_the_article_s_quorum ; C20 |
| 21 | « Tout nouvel article commence à ce cran. » | en proposant un nouvel article | non dit dans le formulaire (plus bas) ; dit aussitôt après, dans le vote qui se déplie : « Inertie · 3 / 5 · moyenne » | — | tests/quorum.rs the_author_of_an_article_sets_its_quorum_before_the_first_vote (cran 3) |
| 22 | « Au départ, aucun article n'est en vigueur. » | à l'ouverture | le chapitre, la phrase d'Yvv, tant que c'est vrai : « Aucun article n'est encore en vigueur. » | opening.none |
C39 (dite à Monnaie libre, plus dite dans le groupe d'essai où trois articles sont en vigueur) |
| 23 | « Raison d'être, Unicité du compte et Réciprocité sont des Propositions seed, mises en avant pour lancer le vote, au cran 2 (basse). » | à l'ouverture ; en lisant le texte | le chapitre : le paragraphe d'Yvv, et « Propositions d'amorce 2 / 5 · basse » (le cran d'ouverture : avant tout changement voté, lu dans l'API, lib/opening.ts) ; la marque « Proposition d'amorce » sur chacune, son infobulle (déjà, mot changé) |
opening.amorce, opening.inertia.amorce, doc.seedProposal, doc.seedProposal.long |
tests/seed_proposals.rs the_view_keeps_which_versions_the_seed_put_forward_once_they_enter_into_force ; web/tests/unit/opening.test.ts ; C39, C40 |
| 24 | « Le titre du document est au cran 4 (haute), l'ordre des articles de chaque section au cran 2, tous les autres articles au cran 3. » | à l'ouverture | le chapitre : « Titre du document 4 / 5 · haute », « Ordre de chaque section 2 / 5 · basse », « Autres articles 3 / 5 · moyenne » ; les crans sur la ligne du titre et chaque ligne d'ordre (déjà) | opening.inertia.title, opening.inertia.orders, opening.inertia.others |
web/tests/unit/opening.test.ts ; C39 (le cran du titre changé dans l'API, le chapitre suit) |
N1 « Réglage de l'inertie »
| # | Phrase source | Moment | Endroit | Clé | Preuve |
|---|---|---|---|---|---|
| N1.1 | « Chaque article porte son inertie : un cran de 1 à 5 » | partout | les crans dessinés sous chaque article, ligne d'ordre, titre ; « Inertie · 2 / 5 · basse » au vote (déjà) | inertia.level, inertia.badge |
— |
| N1.2 | « Plus le cran est haut, plus il faut de voix pour changer le texte quand peu de gens votent. » | au vote | « Inertie » du vote déplié (déjà) : « Plus l'inertie est haute, plus il faut de voix pour changer ce texte. » ; sa seconde phrase changée : « Sous le quorum de l'article, … ; au-delà, la part exigée baisse quand la participation monte. » | inertia.explain |
seconde phrase : grille under_the_quorum_…, the_share_asked_falls_… ; la première n'est pas prouvée (plus bas) |
| N1.3 | « Le titre du document et l'ordre des articles de chaque section ont aussi la leur, qui se change de la même façon. » | au vote d'un module | les crans de la ligne du titre et des lignes d'ordre, « Inertie » dans leur vote (déjà) | — | — |
| N1.4 | « Tout membre du groupe peut proposer un autre cran. » | au vote | « Proposer un changement d'inertie » (déjà) | inertia.change |
— |
| N1.5 | « Cette proposition se vote au cran actuel de l'article … l'inertie de l'inertie hérite du cran de l'article. » | en changeant l'inertie | sous le choix du cran (déjà) : « Un changement d'inertie se vote lui-même à l'inertie de l'article : 2 / 5 · basse. » | inertia.change.note |
ADR 0007 ; ld-engine compose::voting_level |
N1.1 « Niveaux d'inertie » (numéros de t3c-liste-fermee.md)
| # | Phrase source | Moment | Endroit | Clé | Preuve |
|---|---|---|---|---|---|
| 1 | « À chaque cran, le groupe demande une part de « pour » parmi les votants » | aux réglages | l'introduction des réglages (déjà) | settings.intro |
— |
| 2 | « Chaque cran a aussi son quorum : sous le quorum de l'article, … il faut autant de « pour » que si ce quorum avait voté. » | au vote ; aux réglages | « La formule du seuil » (changé, F1.1.2) ; aux réglages, changé : « Sous le quorum de l'article, les votants qui manquent comptent comme « non », et il faut autant de « pour » que si ce quorum avait voté. » | formula.reading, settings.reading |
grille under_the_quorum_… |
| 3 | « La part exigée dépend du cran et du nombre de votants … au-delà de ce quorum, plus il y a de votants, plus elle baisse, jusqu'à la majorité M quand tout le monde vote. » | aux réglages ; au vote | aux réglages, changé : « Au-delà du quorum de l'article, plus il y a de votants, plus la part exigée baisse, jusqu'à la majorité M quand tout le monde vote. » (avant : « quand il vote comme d'habitude » et « Sous le quorum du cran », T3c) ; la formule (déjà) | settings.reading, formula.reading |
grille the_share_asked_falls_… |
| 4 | « Part exigée = M + (1 − M) × (1 − (T'/W)^G) » |
au vote | dans R, en MathML (déjà) | — | grille the_formulas_… |
| 5 à 10 | les cinq crans : quorum, part exigée au-delà du quorum de l'article à la participation habituelle, M quand tout le monde vote, ce qui est à ce cran au départ | aux réglages ; à l'ouverture | le tableau des réglages : M, G, part exigée, quorum, voix pour, lus dans l'API (déjà) ; sous le tableau settings.share.note (changé, F1.2.20) et « Voix pour : à 100 votants, la participation habituelle arrondie, ou au quorum s'il est plus haut. » (changé, avant « comme d'habitude ») ; ce qui est à chaque cran au départ : le chapitre |
settings.col.*, settings.share.note, settings.required.usual.*, settings.required.version.*, opening.inertia.* |
grille the_share_of_a_level_… ; every_number_of_the_quorum_texts_is_the_engine_s ; C20 |
| 11 | « La participation habituelle est la médiane du nombre de votants des propositions du groupe votées depuis un an. » | aux réglages | « Participation habituelle » (déjà) | settings.usual.median.* |
tests/inertia.rs the_usual_participation_is_the_median_of_five_voted_proposals |
| 12 | « Tant qu'elle repose sur moins de 5 propositions, elle vaut deux fois le quorum de référence du document » | aux réglages | changé : « … la participation de référence, tant qu'elle repose sur moins de 5 propositions votées depuis un an (0 pour l'instant). » (avant : « tant que le groupe n'a pas voté sur 5 propositions », faux quand des votes ont plus d'un an, T3c) | settings.usual.reference.* |
grille the_participation_habituelle_is_the_median_brought_back_within_its_bounds ; tests/inertia.rs (ci-dessus) |
| 13 | « Elle ne dépend pas du quorum d'un article. » | aux réglages | « Participation habituelle », nouveau | settings.usual.quorum |
tests/quorum.rs in_monnaie_libre_a_quorum_holds_two_voices_and_a_ballot_counts_even_pending |
| 14 | « Elle est ramenée entre 1 % et 50 % de l'électorat, et se mesure une fois par jour. » | aux réglages | « Ramenée entre 1 % et 50 % de l'électorat … » quand elle l'est (bornes lues dans l'API), « Mesurée une fois par jour… » (déjà) | settings.usual.bounded.*, settings.usual.when, settings.usual.never |
grille the_participation_habituelle_… ; participation::a_measure_is_taken_again_after_a_day ; C27 |
| 15 | « G se calcule pour que la part exigée, au-delà du quorum de l'article, soit exactement celle du cran à la participation habituelle : G = ln(…)/ln(p̃) » |
aux réglages | nouveau, la phrase sans la formule ; la valeur de G de chaque cran dans le tableau (déjà) | settings.gradient |
grille g_gives_… |
O1 « Ordonnancement du document »
| # | Phrase source | Moment | Endroit | Clé | Preuve |
|---|---|---|---|---|---|
| O1.1 | « L'ordre des articles de chaque section est lui-même soumis au vote. » | en lisant | la ligne « Ordre de la section » au bout de chaque section, « Le vote » (déjà) | order.line |
— |
| O1.2 | « En fin de section, le module « Ordre des articles » se vote comme un article, au cran 2 (basse) au départ » | en réordonnant ; à l'ouverture | « Un ordre se vote à l'inertie 2 / 5 · basse, comme un article… » (déjà) ; le chapitre : « Ordre de chaque section 2 / 5 · basse » | order.edit.note, opening.inertia.orders |
— |
| O1.3 | « chaque proposition est la liste des articles de la section, dans un autre ordre » | au vote d'un ordre | la liste dans le vote d'un ordre, les déplacements marqués (déjà) | module.order.proposal |
— |
| O1.4 | « Quand un ordre entre en vigueur, seuls les articles de cette section changent de place ; aucun texte ne change. » | en réordonnant | sous la liste à réordonner, nouveau : « S'il entre en vigueur, seuls les articles de cette section changent de place ; aucun texte ne change. » | order.edit.effect |
tests/modules.rs an_order_is_proposed_with_the_articles_of_its_section_then_voted_into_force |
| O1.5 | « Un nouvel article se place à la fin de sa section ; sa place se vote ensuite par l'ordre de la section. » | en proposant ; en réordonnant | « Proposer » (nouvel article) et sous la liste à réordonner (déjà) | propose.section.note, module.order.rule |
— |
| O1.6 | « Un ordre proposé garde ses votes quand la section change … » | en réordonnant ; au vote d'un ordre | module.order.rule (déjà) ; « 1 article entré depuis, placé à la fin », « 1 article sorti depuis » au vote (déjà) |
module.order.rule, module.order.added.*, module.order.dropped.* |
tests/modules.rs articles_that_enter_or_leave_a_section_complete_an_order_under_vote |
| O1.7 | « Une section d'un seul article n'a pas d'ordre à voter. » | en lisant | par l'absence : pas de ligne d'ordre (déjà) | — | tests/modules.rs an_order_of_one_article_has_nothing_to_decide |
| O1.8 | « Le titre du document est lui aussi un module, voté au cran 4 (haute) au départ. » | en lisant ; à l'ouverture | la ligne du titre (« Titre du document », ses crans), « Le titre du document se vote à l'inertie 4 / 5 · haute… » (déjà) ; le chapitre | module.title.name, title.propose.note, opening.inertia.title |
— |
| O1.9 | « Le titre de chaque article, lui, se vote avec son texte. » | en proposant | le formulaire « Proposer » : le titre et le texte partent ensemble (déjà, par ses champs) | propose.title, propose.body |
— |
Ce qui n'est pas porté, et pourquoi
- F1.3 « Processus de dépôt officiel » en entier : il décrit un calcul de hash IPFS, un ancrage
« on-chain via
system.remark» et une mise à jour automatique des applications (Cesium, Gecko) ; rien de cela n'existe aujourd'hui. Ce qui est vrai — la publication des textes en vigueur sur un dépôt git, suspendue jusqu'au premier texte en vigueur (ADR 0011, 0012) — est déjà dit : « Publié sur le dépôt des textes », « Publication en attente » (doc.published,doc.publish.pending), et dans/acces→ « Publication des textes ». - F1 « Référence : g1vote » : la formule d'aujourd'hui n'est plus celle de g1vote (le quorum
T′ = max(T, Q)a remplacé le plancher C, ADR 0013) ; la dire « référence » serait inexact. Un « d'après g1vote » serait vrai : à trancher par Yvv. - F1.2.10 « relu sur la chaîne toutes les 6 heures » : l'API ne donne pas cette période
(
wot::REFRESH) ; l'écrire en dur serait un chiffre de plus à tenir à jour. La source de W (« membres de la toile de confiance Ğ1 ») est dite. - F1.2.21 « Tout nouvel article commence à ce cran », au moment d'écrire un nouvel article :
l'API ne donne pas le cran d'un nouvel article (
InertiaLevel::DEFAULT) ; l'ordre de U3 ne permet de touchercrates/que pour le chapitre. Le cran est dit dès que l'article est proposé (son vote se déplie, « Inertie · 3 / 5 · moyenne »). Un champ de l'API le permettrait : à trancher. - F1.1.6, la phrase de G « plus il est grand, plus la part demandée monte quand peu de gens
votent » : sans effet quand le quorum de l'article est W (relevé par T3c) ; le sens de G est dit par
formula.Getsettings.gradient. - N1.1.15, la formule de G (
G = ln(1 − (s − M)/(1 − M)) / ln(p̃)) : la phrase est portée, pas la formule — un chapitre d'information, pas un manuel. À ajouter en MathML si Yvv la veut. - N1.5, l'exemple « Ainsi, un article au cran 4 ne descend qu'avec les voix que demande le
cran 4 » : la règle est dite avec le cran de l'article (
inertia.change.note).
Ce qui reste à trancher ou n'est pas prouvé
inertia.explain, première phrase (déjà en ligne, gardée) : « Plus l'inertie est haute, plus il faut de voix pour changer ce texte. » C'est une tendance, pas une règle prouvée pour tout W et tout quorum : quand tout le monde vote, les crans 1 et 2 demandent la même part (M = 50 % aux deux) ; un quorum d'article fixé à W donne M à tous les crans. Aucun test ne la vérifie.formula.B.wotn'est dit que si W est celui de la toile (electorateSource=wot) ; il est prouvé pour W de 100 à 10 000 000 (wot::PLAUSIBLE). UnLD_WOT_FALLBACKsous 100 le rendrait faux (la production ne le règle pas).- « Le vote reste ouvert … à tout moment » (
vote.permanent) : vrai hors objection ; sur une version retenue, la phrase ne s'affiche pas etvote.helddit ce qui reste (contre, ou retrait).
Ce que l'API donne en plus (le seul changement sous crates/)
seedFeatured sur chaque version (docs.rs, proposal_json) : la colonne proposals.seed_featured,
qui reste vraie quand la Proposition d'amorce entre en vigueur, alors que seedProposal devient faux.
Sans elle, le chapitre ne saurait plus, une fois Raison d'être en vigueur, à quel cran les Propositions
d'amorce ont ouvert, et la compterait parmi les « autres articles ». Testé :
tests/seed_proposals.rs the_view_keeps_which_versions_the_seed_put_forward_once_they_enter_into_force
(vu rouge avant le champ).
Le chapitre « Info ouverture doc de réf. »
Ce qu'il lit (web/src/lib/opening.ts, testé par web/tests/unit/opening.test.ts) :
- le cran d'ouverture d'un module : celui d'avant le premier changement voté
(
inertiaChanges, causevote) ; un changement par amendement du seed (« réglage de départ du texte ») est un réglage de l'auteur, il compte dans l'ouverture ; - les Propositions d'amorce : les articles dont une version porte
seedFeatured; les autres articles : ceux du seed (une version d'origineseed), pas ceux qu'un membre a proposés depuis ; - le titre et l'ordre de chaque section : les modules ; plusieurs crans dans une même catégorie seraient tous dits ;
- les quorums :
doc.quorums, du cran 1 au cran 5, dits une fois s'ils sont tous égaux.
Le paragraphe d'Yvv ne s'affiche que si le document a des Propositions d'amorce. Sa première phrase,
« Aucun article n'est encore en vigueur. », ne s'affiche plus dès qu'un article est en vigueur ; la
suite commençait par « Les Propositions d'amorce y entrent par le vote », où « y » n'a plus rien à
reprendre : elle dit alors « Les Propositions d'amorce entrent en vigueur par le vote, … » (clé
opening.amorce.after), le reste mot pour mot. À confirmer par Yvv.