forked from yvv/decision
Dossier d'acte M3a (inertie à cinq crans) préparé ; tableau : C relu, B lancé
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,138 @@
|
|||||||
|
# Acte — Mise en ligne M3a (inertie à cinq crans, échelle calée sur la participation, réglages)
|
||||||
|
Classe : déploie
|
||||||
|
Projet : libreDecision Date : 2026-10-30
|
||||||
|
**État : PRÉPARÉ** (relecture de `a576b68` : ok ; relecture du correctif `71819f9` en cours)
|
||||||
|
|
||||||
|
## Intention
|
||||||
|
|
||||||
|
Mettre en ligne le point L10 de la revue d'Yvv du 30/10 :
|
||||||
|
- l'inertie à cinq crans : 3 par défaut, 4 pour Unicité du compte et Réciprocité ;
|
||||||
|
- l'échelle calée sur la participation médiane du groupe (choix d'Yvv au formulaire) ;
|
||||||
|
- l'inertie de l'inertie qui hérite du cran de l'article ;
|
||||||
|
- les réglages de la formule, à portée de main.
|
||||||
|
|
||||||
|
Ce sont les règles sur lesquelles le vote (M2, lot B) va compter : mieux vaut qu'elles soient
|
||||||
|
en place avant que les premiers votes arrivent. Le module d'ordre des sections (L11) et le
|
||||||
|
titre du doc en module viendront avec le lot D.
|
||||||
|
|
||||||
|
## Ce qui part
|
||||||
|
|
||||||
|
Version : `71819f9`, qui contient la version en production `8727315`. Commits emportés
|
||||||
|
(`git log --oneline 8727315..71819f9`) :
|
||||||
|
- lot C : `d762301` (moteur, données, serveur), `db64405` (interface), `a57a1ff` (ADR 0007,
|
||||||
|
chantier, contrôles), `341df4d` (mesure manquée au démarrage), `3bc60a1` (contrôles) ;
|
||||||
|
- la fusion `a576b68` ;
|
||||||
|
- le correctif de relecture `71819f9` (les propositions retirées sortent de la médiane ; les
|
||||||
|
réglages montrent la vraie participation) ;
|
||||||
|
- des documents : l'acte M1 exécuté, HANDOFF, tableau, note `vote-g1-chaine.md`.
|
||||||
|
|
||||||
|
Aucune configuration ni aucun secret ne change (prémisse 4).
|
||||||
|
|
||||||
|
## Ce que l'acte écrit dans la base de production (donnée runtime)
|
||||||
|
|
||||||
|
- **La migration `0005`.**
|
||||||
|
- Elle ajoute `units.inertia_legacy` et `proposals.inertia_target_legacy`, et y recopie
|
||||||
|
l'ancien mot de chaque ligne.
|
||||||
|
- Elle **réécrit** `units.inertia` et `proposals.inertia_target` en crans : `low` → 2,
|
||||||
|
`standard` → 3, `high` → 4, `max` → 5. Rien n'est perdu : le mot reste à côté.
|
||||||
|
- Elle crée les tables `inertia_changes` et `inertia_amendments`.
|
||||||
|
- Les `adoptions` passées ne sont pas touchées (testé).
|
||||||
|
- **Les amendements « 2026-10-30-e1-inertie-4 » et « …-e2-inertie-4 ».**
|
||||||
|
- Ils font passer E1 et E2 du cran 3 au cran 4, dans Monnaie libre et dans le groupe d'essai.
|
||||||
|
- Ils ne s'appliquent que si l'article n'a jamais changé d'inertie par un vote, et si son
|
||||||
|
cran est encore celui du seed. Une proposition d'inertie ouverte ne les arrête pas.
|
||||||
|
- Chaque décision est consignée dans `inertia_amendments`, avec une ligne dans
|
||||||
|
`inertia_changes` : l'article affiche « Passée de 3 à 4 le … : réglage de départ du texte ».
|
||||||
|
- Ils mettent une republication en file, pour Monnaie libre seulement. Le `document.json`
|
||||||
|
publié porte désormais l'inertie en nombre.
|
||||||
|
- **La mesure de participation** de chaque groupe est gardée dans `settings`
|
||||||
|
(`participation:<groupe>`). Sans votes, c'est la référence 2C/W, soit 100 votants pour
|
||||||
|
Monnaie libre.
|
||||||
|
- **Répétition faite le 30/10 à 18 h 23**, avec le serveur de `a576b68`, sur une copie fraîche
|
||||||
|
de la base de production :
|
||||||
|
- 62 articles au cran 3 et 4 au cran 4 (E1 et E2 des deux groupes), tous avec le mot
|
||||||
|
`standard` gardé à côté ;
|
||||||
|
- les deux propositions d'Yvv du 29/10 restent ouvertes, cible 5, mot `max` gardé ;
|
||||||
|
- 0 adoption réécrite ;
|
||||||
|
- la file contient « inertie de départ relevée : E1, 3 → 4 » et « … E2, 3 → 4 ».
|
||||||
|
|
||||||
|
## Ce que voient les visiteurs
|
||||||
|
|
||||||
|
- L'inertie en crans, de 1 à 5, avec un nom court (très basse, basse, moyenne, haute, très
|
||||||
|
haute).
|
||||||
|
- Les réglages de la formule : W, C, B, la participation habituelle, et le tableau des cinq
|
||||||
|
crans.
|
||||||
|
- Les seuils bougent un peu. Au cran 3, avec la référence de Monnaie libre, il faut 103 voix
|
||||||
|
pour à 120 votants (au lieu de 105 en `standard`), et 1 265 à 2 000 votants (au lieu de
|
||||||
|
1 246). Le détail est dans l'ADR 0007.
|
||||||
|
- Tes deux propositions d'inertie :
|
||||||
|
- « Raison d'être → 5 » se vote au cran 3 : 103 voix pour à 120 votants, au lieu de 115 quand
|
||||||
|
on votait au cran du dessus ;
|
||||||
|
- « Unicité → 5 » se vote au cran 4 : 108 voix pour.
|
||||||
|
|
||||||
|
## Avant — prémisses vivantes
|
||||||
|
|
||||||
|
1. La production sert `8727315` : `curl -s https://decision.librodrome.org/api/health` →
|
||||||
|
`"build":"87273156"`.
|
||||||
|
2. `git fetch prod && git fetch origin && git rev-parse --short prod/main && git rev-parse --short origin/main`
|
||||||
|
→ `8727315` deux fois.
|
||||||
|
3. Les relectures `a576b68 : ok` et `71819f9 : ok` sont inscrites dans
|
||||||
|
`~/harness/etat/relectures.json`, et aucune autre relecture de ce code n'est en cours.
|
||||||
|
4. `git diff --stat 8727315 71819f9 -- docker/app-compose.yml .woodpecker/ .env data/` → vide.
|
||||||
|
5. La boucle est verte sur `71819f9` : fait le 30/10 vers 19 h (118 tests Rust, svelte-check
|
||||||
|
0 avertissement, 23 vitest, e2e 21 / 21). L'image de production de `a576b68` se construit
|
||||||
|
(sortie 0).
|
||||||
|
6. Une copie fraîche de la base de production rend :
|
||||||
|
- `SELECT inertia, COUNT(*) FROM units GROUP BY 1` → `standard|66` ;
|
||||||
|
- `SELECT COUNT(*) FROM adoptions WHERE kind = 'inertia'` → `0` ;
|
||||||
|
- deux propositions `inertia` ouvertes (I1 et E1, cible `max`, 0 vote).
|
||||||
|
|
||||||
|
Toute autre valeur arrête l'acte, le temps de revoir la garde.
|
||||||
|
|
||||||
|
## Commandes exactes
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd /home/yvv/Documents/PROD/DEV/libreDecision
|
||||||
|
git push prod 71819f9:main
|
||||||
|
git push origin 71819f9:main
|
||||||
|
git push origin chantier/acte-certification
|
||||||
|
```
|
||||||
|
|
||||||
|
## Effet attendu
|
||||||
|
|
||||||
|
Les règles d'inertie à cinq crans, l'échelle et les réglages sont en ligne. E1 et E2 sont au
|
||||||
|
cran 4. Le dépôt des textes reçoit un `document.json` qui porte les crans.
|
||||||
|
|
||||||
|
Irréversibilité : **partielle**. Le code se remet en arrière. Ce qui reste :
|
||||||
|
- les crans écrits en base, avec le mot d'origine à côté ;
|
||||||
|
- E1 et E2 au cran 4 ;
|
||||||
|
- le commit publié dans le dépôt des textes.
|
||||||
|
|
||||||
|
## Vérifications après
|
||||||
|
|
||||||
|
- [ ] `curl -s https://decision.librodrome.org/api/health` → `"build":"71819f90"`.
|
||||||
|
- [ ] `ssh sonic 'docker logs lpk-libredecision-app 2>&1 | grep -E "inertia amendment|participation measured|published"'`
|
||||||
|
→ quatre « inertia amendment applied » (E1, E2 × essai, monnaie-libre), les mesures,
|
||||||
|
une publication.
|
||||||
|
- [ ] À l'écran (Yvv) : Monnaie libre → Acte d'engagement → « Réglages de la formule ». On y
|
||||||
|
lit la référence de 100 votants et le tableau des cinq crans. Unicité et Réciprocité
|
||||||
|
sont au cran 4, la Raison d'être au cran 3.
|
||||||
|
|
||||||
|
## Retour
|
||||||
|
|
||||||
|
- **Le code**, au plus court, sur sonic : `docker tag libredecision-app:previous libredecision-app:latest`,
|
||||||
|
puis `cd /opt/libredecision-app && docker compose up -d --force-recreate`. L'image
|
||||||
|
précédente est `8727315`.
|
||||||
|
- **Rejoué par la relecture** : base de `8727315`, montée en `a576b68`, puis ramenée. Aucune
|
||||||
|
perte, aucune écriture ni adoption à tort. Mais l'affichage se dégrade :
|
||||||
|
- la clé brute « inertia.3 » ou « inertia.4 » sur chaque ligne d'article ;
|
||||||
|
- les propositions vers 5 se lisent « vers standard », et ne s'adoptent pas tant qu'on reste
|
||||||
|
sur l'ancienne image ;
|
||||||
|
- l'ancienne image laisse créer des propositions d'inertie en double, ou sans effet.
|
||||||
|
|
||||||
|
On n'y reste donc pas : on revient vite sur une version corrigée.
|
||||||
|
- **Les crans en base** : pas de retour automatique ; les mots d'origine restent dans les
|
||||||
|
colonnes `*_legacy`.
|
||||||
|
- **E1 et E2 au cran 4** : pas de retour automatique. Il faudrait un amendement inverse, relu.
|
||||||
|
- **Le commit publié** dans le dépôt des textes : on ne le retire pas sans réécrire
|
||||||
|
l'historique de ce dépôt (« supprime »). On publierait par-dessus.
|
||||||
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
Orch seul sur le dépôt (sous-agents en copies de travail). **M1 (L1–L8) en ligne** depuis le
|
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
|
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). Lot C en cours (`lot/c-inertie`). Lot B attend
|
publiée (commit `35864eb` du dépôt des textes). Lot C fusionné et relu, acte M3a préparé (`actes/2026-10-30-m3-inertie-cinq-crans.md`). Lot B lancé
|
||||||
Q5–Q7 (recherche faite : `docs/recherche/vote-g1-chaine.md`) et la fusion de C. D après C, F
|
avec les défauts de Q5–Q7 (recherche : `docs/recherche/vote-g1-chaine.md`). D après C, F
|
||||||
après B. Restes mineurs de la relecture M1 : focus et flèches des pastilles d'ambiance (lot B).
|
après B. Restes mineurs de la relecture M1 : focus et flèches des pastilles d'ambiance (lot B).
|
||||||
|
|
||||||
## Critère de livraison (liste fermée)
|
## Critère de livraison (liste fermée)
|
||||||
@@ -38,8 +38,8 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag
|
|||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| A | L1–L6 : entrée, DA, menu, listes, Décisions | high | **en ligne** 30/10 15 h 45 | `lot/a-entree` |
|
| 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` |
|
| 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 | recherche Ğ1Companion en cours ; question Q5 | — |
|
| B | L9 : vote déplié, vote groupé, vote par transaction de 0,1 Ğ1 | xhigh | lancé 2026-10-30 18 h 25 (défauts Q5–Q7) | `lot/b-vote` |
|
||||||
| C | L10 : cinq crans, échelle, réglages | xhigh | lancé 2026-10-30 13 h 30 | `lot/c-inertie` |
|
| C | L10 : cinq crans, échelle, réglages | xhigh | fusionné (`a576b68`), relu ok, correctif `71819f9` en relecture ; acte M3a préparé | `lot/c-inertie` |
|
||||||
| D | L11 (+ titre du doc en module, Q4) | high | après C | — |
|
| D | L11 (+ titre du doc en module, Q4) | high | après C | — |
|
||||||
| F | L12–L13 : objections, coquilles validées, messages, délai de 3 jours | xhigh | après B | — |
|
| F | L12–L13 : objections, coquilles validées, messages, délai de 3 jours | xhigh | après B | — |
|
||||||
|
|
||||||
@@ -69,6 +69,7 @@ Défauts posés par orch, sans question (Yvv peut les corriger) :
|
|||||||
## Actes
|
## Actes
|
||||||
|
|
||||||
- M1 : **exécuté** le 30/10/2026, 15 h 29 – 15 h 52 (`actes/2026-10-30-m1-mise-en-ligne.md`).
|
- M1 : **exécuté** le 30/10/2026, 15 h 29 – 15 h 52 (`actes/2026-10-30-m1-mise-en-ligne.md`).
|
||||||
|
- M3a (L10) : **préparé** (`actes/2026-10-30-m3-inertie-cinq-crans.md`), attend la relecture de `71819f9` puis « déploie ».
|
||||||
|
|
||||||
Ensuite : Chaque mise en ligne (M1 à M4) attend « déploie » d'Yvv et une relecture
|
Ensuite : Chaque mise en ligne (M1 à M4) attend « déploie » d'Yvv et une relecture
|
||||||
indépendante inscrite. La migration « Raison d'être » touche la base de production : elle ne
|
indépendante inscrite. La migration « Raison d'être » touche la base de production : elle ne
|
||||||
|
|||||||
Reference in New Issue
Block a user