Files
decision/docs/chantiers/acte-certification/tableau.md
T

202 lines
19 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.
# Tableau — revue d'Yvv du 2026-10-30
> Tenu par l'intégrateur libredecision-d4, par délégation d'orch (dev-63, depuis le 03/11 à 05 h 02).
> État courant seulement ; l'historique est dans git.
> Source : le message « REVIEW DECISION » d'Yvv, 2026-10-30 vers 08 h.
## Sessions
| Rôle | Session | Ce qu'elle fait |
|---|---|---|
| orch | dev-63 (`e66db8ca`), ouverte dans /DEV | orchestre, parle à Yvv, pousse et met en ligne sous mandat (« déploie » et « pousse », du 03/11 au 08/11) |
| intégrateur | libredecision-d4, ouverte dans le dépôt | mène S, V puis U (un sous-agent à la fois), relit, fusionne, tient ce tableau, prépare les dossiers d'acte ; ne pousse et ne déploie rien |
Vers orch : « ACTE <lot> pousse » (dépôt, branche, sha exact) ; « PRÊT M6 » (dossier figé, sha,
relecture indépendante inscrite dans `relectures.json`) ; QUESTION pour Yvv, avec sa réponse par
défaut (jamais de formulaire chez l'intégrateur).
## REPRISE
Orch seul sur le dépôt (sous-agents en copies de travail). **M1 (L1–L8) en ligne** depuis le
2026-10-30 à 15 h 45 (`8727315`, acte `actes/2026-10-30-m1-mise-en-ligne.md`) ; Raison d'être
publiée (commit `35864eb` du dépôt des textes). Sur `chantier/acte-certification` : tous les lots
fusionnés (B2, F, D), puis `4d4adcc` (mineurs de la relecture de F) ; boucle verte, e2e 35 / 35.
**M4 en ligne** depuis le 01/11 à 23 h 06 (`4d4adcc`) : L9 à L13, le vote par la chaîne éteint. Les
`origin` poussé le 02/11 (chantier `70aa9ba`, main `4d4adcc`). **M5 en ligne** depuis le 02/11 à
03 h 04 (`3f10a0e`, `actes/2026-11-02-m5-retenue-textes-regles.md`) :
- **lot G** fusionné (`0919b46`) : « contre » et retrait sur une version retenue, jamais « pour » ;
- **F1.2, N1, N1.1, O1** réécrits (amendement de seed sur une proposition ouverte) ;
- **licence** AGPL-3.0 (`76b8e9f`).
**Revue d'Yvv du 02/11 (ergonomie, Propositions seed, tampon des votes, accueil)**, armée d'avance par
« Et pousse. Déploie. ». Décisions d'Yvv du 02/11, de 06 h 26 à 07 h 05 (registre) :
- Propositions seed au **cran 2** ;
- **C devient un quorum** de votants par cran : 12 · 12 · 50 · 50 · 50 en Monnaie libre, 1 à
l'essai. Au-delà, la proportion suit la courbe des cinq crans. L'auteur initial change le quorum
de son article avant le premier vote ;
- l'écran dit, sans prendre de place, combien de « oui » font passer et combien de « non »
bloquent ;
- un vote simulé compte, puis s'efface à l'ouverture de la chaîne (acte « supprime ») ;
- la publication est suspendue jusqu'au premier texte en vigueur.
**Relève le 03/11 à 03 h 38**, sur ordre d'orch racine (dev-63) ; à 05 h 02, dev-63 devient orch de
libreDecision avec le mandat (Yvv, 04 h 58), et cette session devient intégratrice. La session d'avant était
bloquée par le quota depuis le 02/11 à 09 h 51, puis coupée par le redémarrage du poste à 02 h 56.
Les quatre agents sont morts, leurs copies sont intactes, `/tmp` est vidé (captures et bases de
test perdues). Budget : finir S, U, V et H, sans nouveau lot, **un sous-agent à la fois** (compte
partagé avec HCO, qui passe en premier). M6 : l'intégrateur fige le dossier et fait relire,
orch l'exécute sous son mandat.
Ordre de reprise : H, puis S, puis V, puis T, puis U (validé par orch le 03/11, reçu avant 05 h 38). Chaque lot fusionne d'abord le chantier, qui contient
déjà les lots finis. Le contrat du quorum vient de S et sert V et U.
Lots en cours, en copies de travail (`.claude/worktrees/agent-<id>`) :
- **H** (`a6b179c…`, `lot/h-accueil`) : l'accueil. **Fini et fusionné** le 03/11 à 04 h 03
(`a3c0a76`). Boucle verte dans sa copie : 237 tests Rust, 55 vitest, e2e 35 / 35. À faire voir
à Yvv : le titre anglais devient « Making it possible / to decide together » ; les trois points
font 12 px à 360 de large.
- **S** (`a0b2510…`, `lot/s-seed`) : **fini et fusionné** le 03/11 à 05 h 20 (`349c8ed`).
- les Propositions seed : I1, E1 et E2 ouvertes, au cran 2 (ADR 0011) ; publication suspendue sans texte en vigueur ;
- le quorum par cran (ADR 0013) : 12 · 12 · 50 · 50 · 50 en Monnaie libre, 1 à l'essai ; règle « les votants manquants comptent non » (`judged_voters`) ; `PUT /units/{id}/quorum` ; « un vote existe » = `voted_units`, adoptions comprises ;
- la licence `AGPL-3.0-or-later`.
Boucle verte dans sa copie : 265 tests Rust, 56 vitest, e2e 35 / 35. Pour M6, sur une copie de la production : vérifier les propositions qui ont déjà assez de voix (9 au cran 2, 39 au cran 3), qui entreraient au premier balayage.
- **V** (`a78bacc…`, `lot/v-tampon`) : le tampon des votes, le vote simulé partout tant que la chaîne
est fermée, qui compte, puis s'efface par l'acte « supprime » (`ld-server discard-simulation
[--apply]`, jamais appelé automatiquement) ; la publication « pas avant des votes prouvés »
(`publish::waits_for_proven_votes`, bascule `LD_PUBLISH_SIMULATED`, règle stricte) ; `voted_units`
étendu ; ADR 0012 réécrite. Fini le 03/11 vers 06 h 05 (`98b4530`) : 286 tests Rust, 56 vitest, e2e
36 / 36 (C34). Puis la marque « simulé » sous l'article (VoteFold, minimal, `d57326d`), puisque M6
part sans U. **Fusionné le 03/11 à 06 h 18** (`94ddb17`).
- **T** (`lot-t-textes`, `lot/t-textes`, parti de `39d5cd2` ; hors M6 ; **lancé le 03/11 à 06 h 46**) : réécrire les articles du seed qui décrivent encore l'ancien plancher C
(F1.1, F1.2, N1.1 au moins) selon le quorum par cran (ADR 0013), en fr, en, es ; amendement
gardé pour la production (sur le modèle de M5) ; Yvv relit les textes avant M6. Demandé par orch
le 03/11, reçu avant 05 h 38 (bilan des consignes).
- **U** (`adddf06…`, `lot/u-lecteur`) : le lecteur. Page courte ; ordonnancement par poignées en
fin de section ; trois natures de modules ; consoles sans doublon ; déplier ou panneau, une règle ;
**la ligne « N oui pour passer · N non bloquent »** et **le réglage du quorum par l'auteur avant
le premier vote** (le serveur les fournit depuis S, aucun écran ne les montre encore). Note `UX-lecteur.md` commitée (`d4531da`), 4 fichiers
commencés. En attente de V.
**M6 en ligne** depuis le 03/11 à 07 h 03 (`94ddb17`, pipeline 37) : H, S et V. Production `94ddb175` ;
`main` et `chantier/acte-certification` poussés vers origin par orch. Le dépôt des textes reste à `9e0f45a`
(publication suspendue). Copies de répétition retirées par l'intégrateur le 03/11 à 07 h 06 (scratchpad
`m6/rep`, `m6/retour`, la base locale de `3f10a0e`) ; orch a retiré ses trois copies de la base.
Suite : **T** (en cours), puis **U** (M7), un sous-agent à la fois ; PRÊT et actes par orch.
Yvv relit les quatre textes en ligne. Au prochain tour, avec ses retours :
- N1.1 : G se calcule sur p̃ rapporté à W ;
- étendre la garde de l'amendement à un texte déjà amendé.
Mineurs de la relecture de `0919b46+3f10a0e`, à trancher avant d'allumer le vote par la chaîne :
- un bulletin créé avant l'objection et payé après compte « pour » ;
- course objection / vote ;
- « Tout contre » sur un article en concurrence ;
- ADR 0009, l. 100, et CHANTIER, l. 161, à reformuler ;
- F1.2 ne dit pas l'exception de l'objection.
Ce qu'Yvv doit fournir :
- l'identifiant et le courriel de Chiara, pour l'acte « accorde » qui crée son compte sur la forge
(l'inscription y est fermée) ;
- l'adresse publique du compte de vote, quand il l'aura créé dans Ğecko. L'ouverture du vote par la
chaîne sera alors un acte « déploie », et le premier vote réel un acte « paye ».
## Critère de livraison (liste fermée)
| # | Ce qui fait « livré » | Lot | Mise en ligne |
|---|---|---|---|
| L1 | Accueil : le titre et le leitmotiv en trois lignes (contexte et cadrage · processus et modalités · boîte à outils), puis **directement le choix du groupe** ; sans session, la connexion à sa place. L'écran des quatre piliers disparaît de l'accueil. | A | M1 |
| L2 | Logo « Clé de voûte » du DA (sans tampon incliné) dans le menu et la barre mobile ; favicon et icônes ; **quatre ambiances** : pierre, calcaire (claires), nuit, ardoise (sombres). Le sceau 井 ne bouge pas. | A | M1 |
| L3 | Page d'un groupe : le pavé des quatre piliers, puis « En cours » (Monnaie libre : Acte d'engagement). | A | M1 |
| L4 | Menu : le nombre à côté de « Docs de référence » ; surligné seulement quand on y est ; au survol, seul lui réagit ; les trois autres restent éteints mais s'ouvrent (leurs « À venir »). | A | M1 |
| L5 | Docs de référence : « En cours » (Acte d'engagement) et « À venir » (Acte d'engagement forgerons). Mandats, à venir : Administration forum Duniter, Administration forum Monnaie libre. Protocoles, à venir : Runtime upgrade — décision on-chain. | A | M1 |
| L6 | Décisions : seulement les docs en cours, **une ligne par doc**, avec le nombre de modules qui restent à voter. | A | M1 |
| L7 | Le Préambule devient « Raison d'être », texte d'Yvv, en fr, en, es. | R | M1 |
| L8 | Un article qui a plusieurs versions tient **une seule ligne** dans la liste ; ses versions se lisent dedans. | R | M1 |
| L9 | On peut voter (voie de la question 1). « Le vote » se déplie sous l'article, sans panneau : ton vote, ceux des autres, la distance au seuil. Voter tout le doc, une section, un article. | B | M2 |
| L10 | Inertie à **cinq crans** : 3 par défaut, 4 pour les deux engagements fondamentaux (Unicité, Réciprocité) et pour le titre du doc ; l'inertie de l'inertie hérite de celle de l'article ; les réglages de la formule sont à portée de main ; l'échelle suit la taille de l'électorat et la participation médiane du groupe. | C | M3 |
| L11 | En fin de section, un module « ordre des articles » (inertie 2) : une liste où l'on clique pour déplacer. | D | M3 |
| L12 | Objections « redit » et « contredit » : la plus récente des deux propositions n'est pas votable tant que son auteur n'a pas répondu (redit : modifier l'article visé ; contredit : reformuler) ; un message à l'auteur de l'objection dans trustinWallet : lever ou réitérer ; sans réponse sous 3 jours, l'objection est levée. | F | M4 |
| L13 | Coquilles : celle d'un autre que l'auteur attend sa validation (message), puis passe seule après 3 jours ; l'auteur garde la main tant que le texte n'est pas en vigueur ; sur un texte en vigueur, seule une coquille validée le corrige. | F | M4 |
**Liste d'attente** (hors livraison, sauf mot d'Yvv) : au bureau, le bas du menu latéral (pastilles
d'ambiance, « Se connecter ») est rogné au bord droit ; sur téléphone avec session, le sceau fixe
chevauche la flèche d'une carte de groupe (vus par le lot H le 03/11, pas comparés à `5cf30e0`) ; l'inscription de chaque vote sur la
chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichage dans Ğecko.
## Lots
| Lot | Contenu | Effort | État | Branche |
|---|---|---|---|---|
| A | L1–L6 : entrée, DA, menu, listes, Décisions | high | **en ligne** 30/10 15 h 45 | `lot/a-entree` |
| R | L7–L8 : Raison d'être (amendement de seed gardé), versions groupées | high | **en ligne** 30/10 15 h 45 | `lot/r-texte` |
| B | L9 : vote déplié, vote groupé, vote par transaction de 0,1 Ğ1 | xhigh | fusionné et relu (`74f96be`) ; acte M2 figé (vote par la chaîne éteint) | `lot/b-vote` |
| B2 | Corrections du vote avant de l'ouvrir (relecture de `74f96be`, points 2 à 8) | xhigh | fusionné (`7ffa4fd`) ; relu « à reprendre », repris en `9c8f4cc`, relu « ok » | `lot/b2-vote-sur` |
| C | L10 : cinq crans, échelle, réglages | xhigh | fusionné et relu (`a576b68`, `71819f9`) ; acte M3a figé | `lot/c-inertie` |
| D | L11 + titre du doc en module (4) + restes mineurs des relectures | high | fusionné (`033b331`), relu « ok » | `lot/d-modules` |
| F | L12–L13 : objections, coquilles validées, messages, délai de 3 jours | xhigh | fusionné (`cd7e683`), relu « ok » ; mineurs repris en `4d4adcc`, relu « ok » | `lot/f-objections` |
## Questions (réponse par défaut appliquée tant qu'Yvv n'a pas tranché)
| # | Question | Réponse |
|---|---|---|
| Q1 | Comment voter dans Monnaie libre | **tranché** : une transaction de 0,1 Ğ1 par vote, signée par le portefeuille (Ğ1Companion, Ğecko, plus tard trustinWallet), un seul geste ; une personne, une voix, qui s'exprime autant de fois qu'elle veut, le dernier vote fait foi |
| Q2 | Les votes se voient-ils avec les noms ? | **tranché** : totaux seulement |
| Q3 | Échelle des cinq crans | **tranché** : calée sur la participation médiane |
| Q4 | Le titre d'un article se vote-t-il à part ? | **tranché** : non ; seul le titre du doc devient un module (4) |
| Q5 | Secret du vote (Q2) et transaction publique (Q1) : le commentaire porte le choix en clair, ou une empreinte scellée ? | **tranché** (01/11, avec Q8) : empreinte scellée, inchangée |
| Q6 | Ğ1Companion ne signe pas encore une transaction construite par une page : quelle extension pour le geste unique ? | **tranché** (01/11) : duniter-connect maintenant ; Ğ1Companion et trustinWallet sur la même interface ; Ğecko par lien et QR |
| Q7 | Le compte qui reçoit les 0,1 Ğ1 : à qui, et que deviennent les sommes ? | **tranché** (01/11) : un compte « libreDecision » créé par Yvv dans Ğecko, les sommes au collectif ; attend son adresse publique |
| Q8 | Le secret du vote tombe par recoupement : la chaîne montre qui vient de voter, et les totaux bougent aussitôt (relecture de `74f96be`) | **tranché** (01/11) : on ne dit rien ; totaux et son propre vote en direct, inchangés |
| Q9 | Sous le quorum, les votants qui manquent comptent-ils comme des « non » ? (Sinon, un « non » peut faire passer un texte en complétant le quorum.) | **tranché** (03/11, formulaire d'orch racine vers 03 h 45) : « Ils comptent comme non » ; au cran 2, quorum 12, 9 oui passent avec 3 non au plus |
| Q10 | Licence : AGPL-3.0 seulement, ou « ou toute version ultérieure » ? | **tranché** (03/11, même formulaire) : « Ou version ultérieure » → `AGPL-3.0-or-later` dans les manifestes (`Cargo.toml`, `web/package.json` et son verrou) et le README ; `LICENSE` inchangé ; confié au lot S |
| Q11 | Un texte entré en vigueur par des votes simulés (9 « pour » au cran 2 dans Monnaie libre) se publie-t-il dans le dépôt des textes ? | **tranché** (03/11, formulaire d'orch, reçu avant 05 h 35 ; le relais disait « vers 05 h 45 ») : « Pas avant des votes prouvés » → en vigueur sur le site, pas publié ; la publication attend un texte passé par les seuls votes prouvés (dans Monnaie libre, rien avant l'ouverture de la chaîne) ; codé par V, écrit au dossier M6 |
| Q12 | En production, Yvv a ouvert le 29/10 deux propositions d'inertie, I1 → 5 et E1 → 5 (0 vote). Ouvertes au démarrage de M6, elles retiennent I1 et E1 aux crans 3 et 4 pour de bon (amendement décidé une fois). Les retirer ? | **tranché** (03/11, formulaire d'orch, reçu à 05 h 51) : « Oui, retire-les » → avant le démarrage de M6, par le geste d'Yvv à l'écran (« Les miennes » › la ligne d'inertie › « Coquilles, traductions, objections, historique » › « Retirer ma proposition »), vérifié sur `3f10a0e` en local ; fait par Yvv à l'écran (annoncé à 06 h 07), dossier `actes/2026-11-03-m6-propositions-seed-quorum-tampon.md` |
Défauts posés par orch, sans question (Yvv peut les corriger) :
- Décisions : « modules restant à voter » = les modules du doc pas encore adoptés par un vote
(propositions ouvertes et textes de départ à 0 vote) ; pour une personne qui vote, « dont N
sans ton vote ».
- La messagerie de trustinWallet : une boîte « Messages » dans l'application (menu), pas de
courriel ; chaque message porte ses gestes (lever / réitérer, valider / refuser).
- Une coquille sur un texte sans auteur (texte de départ) : validée par un administrateur, ou
seule après 3 jours.
- Les quatre ambiances : un sélecteur à quatre pastilles à la place du bouton soleil / lune ; la
première visite suit le réglage clair / sombre de l'appareil (pierre / nuit).
## Actes
- M1 : **exécuté** le 30/10/2026, 15 h 29 – 15 h 52 (`actes/2026-10-30-m1-mise-en-ligne.md`).
- M3a (L10) : **caduc, emporté par M4** (`actes/2026-10-30-m3-inertie-cinq-crans.md`) : jamais exécuté, `71819f9` est en production depuis M4.
- M2 + M3a (L9 et L10) : **caduc, emporté par M4** (`actes/2026-10-31-m2-vote.md`) : jamais exécuté, `74f96be` est en production depuis M4.
- M4 (L9 à L13) : **exécuté** le 01/11/2026, 22 h 52 – 23 h 40 (`actes/2026-10-31-m4-vote-modules-objections.md`) ; M2 et M3a n'ont plus d'objet.
- M5 (lot G, articles des règles, licence) : **exécuté** le 02/11/2026, 02 h 53 – 03 h 10 (`actes/2026-11-02-m5-retenue-textes-regles.md`).
- M6 (H, S, V) : **exécuté** le 03/11/2026 par orch sous mandat, en ligne à 07 h 03 (pipeline 37) ; figé le 03/11 à 06 h 22 sur `94ddb17` (`actes/2026-11-03-m6-propositions-seed-quorum-tampon.md`) ; répétition faite sur une copie de la production de 06 h 11 ; relecture indépendante « 94ddb17 : ok » inscrite à 06 h 42 ; retour corrigé (couper `LD_PUBLISH_REMOTE` avant, répété) ; PRÊT envoyé à orch (dev-63), qui exécute sous mandat.
Restes mineurs de `71819f9` et du lot B : faits dans le lot D.
Liste d'attente (relecture de `94ddb17`, M6) :
- `sbom-publish` échoue encore (pipelines 36 et 37) : écart ancien (certificat du serveur
Dependency-Track refusé, HANDOFF), étape en `failure: ignore` ;
- **acte « supprime »** (ouverture de la chaîne) : le jouer serveur arrêté, ou ajouter des gardes
`WHERE in_force_id = …` à `give_back` (`simulation.rs:200`, `:258-298`) ; `give_back` remet la version
déplacée telle qu'elle est (révisée entre-temps, une révision non votée reviendrait) ; `confirm_seeds`
(`adoption.rs:49`) : un module confirmé par des votes simulés le reste ; p̃ mesurée votes simulés
compris jusqu'au lendemain de l'acte ;
- **lien d'équipe** : il multiplie les voix simulées (jusqu'à 500 ouvertures) ; l'ADR 0012 l. 290 dit
« deux voix » : à corriger ; à dire à Yvv ;
- **U** : « Vote enregistré. » (`VoteFold.svelte:123`) et « N votes enregistrés. » (`BallotPanel.svelte:95`)
après un vote simulé ; `fr.ts:263`, `:348` (et en, es) : « jusqu'à son effacement à l'ouverture de la
chaîne » → c'est l'acte « supprime » qui efface ;
- `document.json` comptera les votes simulés une fois la publication permise (l'ADR le dit) ;
`simulation::unproven` recharge l'état du document à chaque affichage tant que la file attend
(performance) ; `reached` / `missing` = 0 alors que la marge retient le rival (antérieur).
Liste d'attente (relecture de `033b331+4d4adcc`, après M4) :
- 0008 : lever les doublons debout avant de créer `signals_one_standing` (sans objet en production : 0 signalement) ;
- un ordre ne départage pas deux articles à la même position (deux créations simultanées) ;
- `place_at_end` coupe toujours le même intervalle : au 52e ajout dans une section, les positions se confondent ;
- `publish.rs` : articles sur `tally`, modules sur `shown_tally` (identiques aujourd'hui).
Chaque mise en ligne attend « déploie » d'Yvv, ou le mandat d'orch, et une relecture indépendante
inscrite.