Files
decision/docs/adr/0011-propositions-seed.md
T

6.5 KiB
Raw Blame History

0011 — Les Propositions seed : rien en vigueur au départ, trois textes mis en avant

Remplace, dans 0002, « les textes de départ sont des seeds a minima » pour les articles : seuls les modules (le titre, l'ordre de chaque section, ADR 0009) restent en vigueur sans vote. Décision d'Yvv du 2026-11-02.

Contexte. Depuis le 2026-10-21, la Raison d'être (I1) et les deux engagements fondamentaux, Unicité du compte (E1) et Réciprocité (E2), étaient en vigueur au départ, sans vote (seeds a minima, marge −C). Yvv, 2026-11-02 : « pour le démarrage, conserve un statut particulier pour les 3 premiers modules. Mais ils ne sont pas en vigueur. Appelle les "Proposition seed" (intégré par un ou deux clients pour amorcer le mouvement de vote). » Puis : « on pouvait l'amorcer avec une inertie basse, pour que le nombre de votes initiaux soit assez petits pour commencer l'expérience en mode prod. Et je mettrai, une fois les textes passés, une inertie forte pour éviter que l'inertie passe avant les textes. » Au formulaire du même jour : le cran 2 (« basse ») ; la publication « Suspendre jusqu'au 1er texte ».

Décision

  • Une Proposition seed est une proposition ouverte du seed, mise en avant pour lancer le vote : I1, E1 et E2 de l'Acte d'engagement Certification, dans chaque groupe. Elle n'est pas en vigueur : elle y entre comme toute proposition, par son seuil, la place étant vide. Sa marque est écrite à part (proposals.seed_featured) ; l'API dit seedProposal tant que la version est ouverte et n'est jamais entrée en vigueur (docs::ProposalRow::seed_proposal). Entrée en vigueur, c'est un texte adopté comme un autre. L'interface la marque « Proposition seed » (fr), « Seed proposal » (en), « Propuesta seed » (es).
  • Au départ, aucun article n'est en vigueur. Le titre du document et l'ordre de chaque section restent des seeds a minima (en vigueur sans vote, ADR 0009). Le lecteur le dit (« Aucun article n'est en vigueur… ») ; les trois textes se lisent dans « Propositions en cours » et dans l'aperçu « si tout passe ».
  • Le cran 2 pour les trois, une seule constante : seed::SEED_PROPOSAL_LEVEL. Le seed ne leur donne pas de cran (le chargement du seed le refuse), l'amendement écrit celui-là. L'intention d'Yvv : remonter l'inertie une fois les textes passés. Une proposition de changement d'inertie se vote au cran de l'article (ADR 0007) : faite avant l'entrée des textes, elle pourrait passer avant eux et leur demander davantage ; faite après, elle protège des textes déjà adoptés. Le serveur n'automatise rien : c'est un vote, après les textes.
  • La publication attend le premier texte. Tant qu'aucun article d'un document n'est en vigueur, sa file d'envoi attend (publish::waits_for_a_text) : ce n'est pas un échec (aucune tentative comptée, aucune erreur), l'API dit publication.state = "suspended". Le premier texte qui entre ajoute une ligne à la file, et tout part avec lui. LD_PUBLISH_WITHOUT_ARTICLES=1 publie quand même (un document sans article). Le groupe d'essai ne publie jamais.

Une base existante

Un document seedé n'est jamais réinstancié. Dans une base existante (la production : I1, E1 et E2 en vigueur, seeds a minima, dans Monnaie libre et dans le groupe d'essai), trois amendements de Proposition seed (crates/ld-server/src/seed_proposal_amend.rs, 2026-11-02-i1-proposition-seed, -e1-, -e2-) décident une fois par document et par article, consignés dans seed_proposal_amendments et dans les journaux.

Le statut, seulement si personne n'a touché le texte en vigueur : origine seed, jamais entré par un vote ni confirmé ; aucun vote du serveur, aucune ligne de bulletin de la chaîne, quel que soit son sort ; aucune coquille (appliquée, en attente ou refusée), aucune traduction écrite par un membre, aucune objection qui le nomme ; son historique est celui du seed (le texte initial, et pour I1 l'amendement de la Raison d'être du 30/10, révision 2) ; son texte est celui de la Proposition seed d'aujourd'hui (empreinte). Appliqué : la même version, avec son texte, ses traductions et son historique, devient ouverte et marquée ; l'article n'a plus de texte en vigueur ; l'historique dit le changement (seed_proposal, sans diff). Refusé : le texte reste en vigueur, seed a minima.

Le cran, avec le statut seulement, et seulement si personne n'y a touché : aucune proposition de changement d'inertie d'un membre ouverte, appliquée ou votée, aucun vote qui l'a changé, et un cran que le seed lui a donné avant (I1 : 3 ; E1 et E2 : 3, puis 4 depuis le 30/10). Appliqué : l'article le dit (inertia_changes, « réglage de départ du texte »). Refusé : il garde son cran, le statut change quand même.

En production, l'orch notait le 30/10 deux propositions d'inertie ouvertes à zéro vote dans Monnaie libre, I1 → 5 et E1 → 5. Si elles sont encore ouvertes au démarrage, I1 et E1 y deviennent des Propositions seed à leur cran d'avant (3 et 4 ; refus inertia_proposal), E2 au cran 2. Pour que les trois démarrent au cran 2, leurs auteurs les retirent avant la mise en ligne (une proposition retirée sans vote ne compte plus). À trancher par Yvv avant M6.

Là où le document publie (Monnaie libre), chaque amendement appliqué ajoute une ligne à la file (« Proposition seed : I1 sort de la vigueur »…), qui attend le premier texte. Les deux amendements d'inertie du 30/10 (E1 et E2 de 3 à 4, ADR 0007) sont dépassés : décidés en production, ils ne décident plus rien ailleurs (superseded_by).

Les données

Migration 0009 (additive) : proposals.seed_featured ; la table seed_proposal_amendments (statut et cran : appliqué, refusé et pourquoi, ou déjà là). Le seed : "seedProposal": true et "status": "open" sur la version de I1, E1 et E2, sans inertia.

Coût

  • Personne ne lit de texte en vigueur avant le premier vote qui passe ; le dépôt des textes garde la dernière publication jusque-là.
  • Les comptes bougent : 0 article en vigueur, 35 propositions en cours (les 32 d'avant et les trois Propositions seed) ; « Décisions » compte toujours 41 modules à voter.
  • Les textes F1.2 et N1.1 du seed disent encore Unicité du compte et Réciprocité au cran 4 au départ : orch les réécrira au prochain tour de textes, avec la relecture d'Yvv. (Fait par le lot T : F1.2 et N1.1 disent Raison d'être, Unicité du compte et Réciprocité au cran 2, en ligne depuis M6b, le 03/11, bb4bdf5.)