diff --git a/actes/2026-11-03-m6c-phrases-quorum.md b/actes/2026-11-03-m6c-phrases-quorum.md index 2fd8ffc..8ee18d1 100644 --- a/actes/2026-11-03-m6c-phrases-quorum.md +++ b/actes/2026-11-03-m6c-phrases-quorum.md @@ -1,9 +1,9 @@ # Acte — Mise en ligne M6c (trois phrases de F1.1, F1.2 et N1.1 écrites justes, lot T2) Classe : déploie Projet : libreDecision Date : 2026-11-03 -**État : EN PRÉPARATION** sur `84f015a` (`84f015ad58a2e87803dd1100d55f271f014339de`) — préparé par -l'intégrateur libredecision-d4 ; exécuté par orch (dev-63) sous son mandat (« déploie » et « pousse », du -03/11 au 08/11). Relecture indépendante : en cours (lancée le 03/11 à 10 h 26). +**État : FIGÉ** sur `84f015a` (`84f015ad58a2e87803dd1100d55f271f014339de`) le 03/11 à 10 h 48 — préparé +par l'intégrateur libredecision-d4 ; exécuté par orch (dev-63) sous son mandat (« déploie » et « pousse », +du 03/11 au 08/11). Relecture indépendante : « 84f015a : ok » (prémisse 3). ## Intention @@ -45,8 +45,10 @@ migrations : rien (prémisse 4). - `seed_amendments` : la décision ; - `outbox` : une ligne par article dans Monnaie libre, qui attend (publication suspendue) ; rien pour l'essai. - Refus possibles, le texte d'avant reste : `not_a_seed`, `voted_into_force`, `confirmed`, `votes`, - `ballots`, `corrected`, `translation_edited`, `signalled`, `revised`, `text_differs`. + Refus possibles, le texte d'avant reste : `not_a_seed`, `no_open_version` (une version entrée en + vigueur, par exemple d'une voix dans l'essai), `voted_into_force`, `confirmed`, `votes`, `ballots`, + `corrected`, `translation_edited`, `signalled`, `revised`, `text_differs`, `changed` + (`seed_amend.rs:283`, `:589`). - Les amendements de M6b sont marqués dépassés : ils ne décident plus rien. - **Aucun vote, aucune autre proposition, aucun autre article n'est touché ; la publication reste suspendue.** @@ -96,6 +98,36 @@ dans l'historique de chaque proposition). `b2e597b6`), puis par l'intégrateur sur sa copie de cette copie : l'attendu exact ; 0 vote et 0 ligne de bulletin en tout. À relire sur la copie fraîche juste avant la poussée. 3. La relecture indépendante de `84f015a`, inscrite « ok » dans `~/harness/etat/relectures.json`. + **Faite** : sous-agent neuf, sans le contexte de l'intégrateur, sur `b2e597b..84f015a`, lancée à + 10 h 26, rendue à 10 h 46, inscrite à 10 h 47 (transcript + `~/.claude/projects/-home-yvv-Documents-PROD-DEV-libreDecision/d0a7108b-7f2f-484a-bcb0-de339238199d/subagents/agent-a59503237fefa982a.jsonl`, + dernière ligne « 84f015a : ok »). Aucun bloquant, aucun « à reprendre ». Ce qu'elle a exécuté, sur des + copies de la copie de 10 h 23 (supprimées depuis), réseau coupé : + - les écritures, base entière comparée : exactement celles annoncées (colonnes `body`, `revision`, + `updated_at` des 6 propositions ; `body`, `source_hash`, `updated_at` des 12 traductions) ; + - second démarrage, retour vers `b2e597b` (qu'elle a construit) et réavance : rien de rejoué, les + nouveaux textes servis par `b2e597b` ; + - la garde avec de vrais votes par l'API de `b2e597b` et des états forgés : refus `votes`, `ballots`, + `corrected`, `translation_edited`, `signalled`, `no_open_version`, `voted_into_force`, `revised`, + `text_differs` ; appliqué après un vote direct retiré dans l'essai et après « supprime » (limites + écrites) ; + - F1.2, « tant que l'article ne garde la trace d'aucun vote », vrai face à `PUT /units/{id}/quorum` + dans tous les cas (409 sur un vote simulé tenu ou retiré ; 200 après « supprime » et après un vote + direct retiré dans l'essai) ; + - les chiffres recalculés (64,4 · 73,5 · 77,4 · 85,3 · 91,9 % ; 8/12, 9/12, 39/50, 43/50, 46/50 ; + l'exemple de N1.1) ; en et es fidèles au français ; + - 220 tests Rust ciblés, svelte-check 0 / 0, vitest 69 / 69, build, C34 et C37. + Mineurs, **liste d'attente** (pour Yvv le premier, U2 ou un prochain tour de textes les autres) : + - N1.1, « qui n'est pas un nombre minimal de votants » : vrai pour les quorums par cran ; faux pour + un quorum d'auteur bas (Q = 2 ou 3 à tout cran, 6 au cran 3…), où le moteur demande Q « pour » ; + - `settings.reading` (fr, en, es) sans « au-delà du quorum » ; + - vocabulaire anglais mêlé (“yes”/“no”, « against », favor/favour) ; + - deux raisons de refus absentes de ce dossier (`no_open_version`, `changed`) : **ajoutées** ; + - `spaces.test.ts` : un faux positif théorique dans `
`, deux angles morts (absents du code) ;
+ - commentaire `crates/ld-engine/src/threshold.rs:9-11` (« near-unanimity ») ;
+ - N1 garde « quand peu de gens votent », que l'interface ne dit plus.
+ Non vérifié par elle : la production (prémisses 1 et 6), le binaire bit pour bit, l'image, la boucle
+ complète, un vote prouvé par la chaîne puis retiré.
4. `git diff b2e597b 84f015a -- docker/ .woodpecker/ .env data/ crates/ld-server/migrations/` → vide (vu par
l'intégrateur à 10 h 22 et par orch à 10 h 23).
5. Boucle verte sur `84f015a`, le 03/11 de 10 h 22 à 10 h 26 (journal `m6c/loop.log`), du premier coup :