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

93 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 0011 — Les Propositions seed : rien en vigueur au départ, trois textes mis en avant
> Remplace, dans [0002](0002-vote-permanent.md), « 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`.)*