forked from yvv/decision
Dossier d'acte M1 (préparé) et tableau : réponses d'Yvv, lots A et R fusionnés, C lancé
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
# Acte — Mise en ligne M1 (revue du 30/10 : entrée, DA, menu, listes, Raison d'être, versions)
|
||||
Classe : déploie
|
||||
Projet : libreDecision Date : 2026-10-30
|
||||
**État : PRÉPARÉ** (relecture indépendante en cours ; le SHA est figé quand elle rend « ok »)
|
||||
|
||||
## Intention
|
||||
|
||||
Mettre en ligne sur decision.librodrome.org les points L1 à L8 de la revue d'Yvv du 30/10 (tableau
|
||||
du chantier) :
|
||||
- accueil qui ouvre directement sur le choix du groupe, avec le leitmotiv en trois lignes ;
|
||||
- logo « Clé de voûte » et quatre ambiances ;
|
||||
- page de groupe avec les quatre piliers et « En cours » ;
|
||||
- menu avec le nombre de docs, les « À venir » des outils et Décisions, une ligne par doc ;
|
||||
- « Raison d'être » à la place du Préambule ;
|
||||
- une seule ligne par article dans la liste, même avec plusieurs versions.
|
||||
|
||||
Maintenant, parce que ces points ne dépendent d'aucune question ouverte, et qu'il vaut mieux
|
||||
livrer petit (le vote, M2, viendra ensuite).
|
||||
|
||||
## Ce qui part
|
||||
|
||||
Version : `8727315` (branche `chantier/acte-certification`), qui contient la version en
|
||||
production `dc2de09`. Commits emportés (`git log --oneline dc2de09..8727315`) :
|
||||
- les fusions des lots R (`68115fb`) et A (`8727315`) ;
|
||||
- lot R : `a5b92fa` (Raison d'être, amendement de seed gardé), `edc8811` (versions groupées),
|
||||
`1503e57` (ordre stable des variantes), `c223c5c` (contrôles) ;
|
||||
- lot A : `c640413` (Décisions et « À venir » côté serveur), `81b604e` (entrée, logo, ambiances,
|
||||
menu, pages d'outil), `1e04336` (nom accessible du menu) ;
|
||||
- documents : HANDOFF, tableau, note `docs/recherche/vote-g1-chaine.md`.
|
||||
|
||||
Aucune configuration ni aucun secret ne change : `docker/app-compose.yml` et `.woodpecker/`
|
||||
sont identiques à ceux de `dc2de09` (prémisse 4).
|
||||
|
||||
## Ce que l'acte écrit dans la base de production (donnée runtime)
|
||||
|
||||
- La migration `0004` ajoute la table `seed_amendments`. Elle est additive : rien n'est
|
||||
supprimé ni réécrit.
|
||||
- L'amendement « 2026-10-30-i1-raison-d-etre » remplace le Préambule par la Raison d'être,
|
||||
dans Monnaie libre et dans le groupe d'essai, **seulement si l'article est intact** :
|
||||
- texte de départ, en vigueur sans vote, jamais confirmé ;
|
||||
- révision 1, 0 vote, aucune correction ;
|
||||
- aucune traduction écrite par un membre, aucun signalement ;
|
||||
- texte identique au Préambule du seed.
|
||||
|
||||
Sinon, il ne touche à rien et journalise la raison. Il consigne chaque décision dans
|
||||
`seed_amendments` et ajoute à l'historique de l'article la ligne « texte de départ remplacé »
|
||||
avec son diff. Il met une republication en file, pour Monnaie libre seulement.
|
||||
- État de la production lu le 2026-10-30 à 13 h 43, sur une copie de la base :
|
||||
- le Préambule est intact dans les deux groupes : 0 vote, révision 1, traductions du seed,
|
||||
aucun signalement ;
|
||||
- il y a une identité (invitation) et aucun vote en tout ;
|
||||
- deux propositions d'inertie ouvertes, d'Yvv le 29/10, n'en sont pas touchées.
|
||||
- Répétition faite sur cette copie avec le serveur de `8727315` : démarrage sans erreur, puis
|
||||
« seed amendment applied » pour l'essai et pour Monnaie libre. Le titre est devenu « Raison
|
||||
d'être », en révision 2. La file d'envoi contient « texte de départ remplacé : I1 » pour
|
||||
Monnaie libre seulement.
|
||||
|
||||
## Avant — prémisses vivantes
|
||||
|
||||
1. La production sert `dc2de09` :
|
||||
`curl -s https://decision.librodrome.org/api/health` → `"build":"dc2de09…"`.
|
||||
2. `prod/main` et `origin/main` sont à `dc2de09` :
|
||||
`git fetch prod && git fetch origin && git rev-parse --short prod/main && git rev-parse --short origin/main`
|
||||
→ `dc2de09` deux fois (vérifié le 2026-10-30 à 14 h, avec la santé `"build":"dc2de094"`).
|
||||
3. La relecture de `8727315` est inscrite « ok » dans `~/harness/etat/relectures.json` ; et à
|
||||
la question « une autre relecture de ce code est-elle en cours ? », la réponse est non.
|
||||
4. Rien ne change la configuration :
|
||||
`git diff --stat dc2de09 8727315 -- docker/app-compose.yml .woodpecker/ .env* data/` →
|
||||
vide.
|
||||
5. La boucle est verte sur `8727315` : fait le 2026-10-30 (91 tests Rust, svelte-check
|
||||
0 avertissement, 16 vitest, e2e 20 / 20), et l'image de production se construit
|
||||
(`docker build --target production`, sortie 0, `seeds/upcoming/` présent dans l'image).
|
||||
|
||||
## Commandes exactes
|
||||
|
||||
```sh
|
||||
cd /home/yvv/Documents/PROD/DEV/libreDecision
|
||||
git push prod 8727315:main
|
||||
git push origin 8727315:main
|
||||
git push origin chantier/acte-certification
|
||||
```
|
||||
|
||||
Le pipeline Woodpecker (dépôt LPK/decision, `ci.open.us.org`) construit l'image (qui rejoue la
|
||||
boucle), garde la version en service sous `libredecision-app:previous`, déploie, et revient
|
||||
seul à la version précédente si le contrôle d'après déploiement échoue.
|
||||
|
||||
## Effet attendu
|
||||
|
||||
Les visiteurs de decision.librodrome.org voient la nouvelle entrée, le logo, les ambiances, le
|
||||
menu, les pages d'outil, Décisions, la Raison d'être et les versions groupées. Le dépôt des
|
||||
textes reçoit un commit : la Raison d'être en fr, en et es, dans
|
||||
`monnaie-libre/acte-engagement-certification/`.
|
||||
|
||||
Irréversibilité : **partielle**. Le code se remet en arrière. Le remplacement du Préambule
|
||||
reste en base, et le commit du dépôt des textes reste publié.
|
||||
|
||||
## Vérifications après
|
||||
|
||||
- [ ] `curl -s https://decision.librodrome.org/api/health` → `"build":"8727315…"`.
|
||||
- [ ] `curl -s https://decision.librodrome.org/ | grep -c 'favicon'` ≥ 1, et la page répond
|
||||
200.
|
||||
- [ ] `ssh sonic 'docker logs lpk-libredecision-app 2>&1 | grep "seed amendment"'` → deux
|
||||
lignes « applied » (essai, monnaie-libre).
|
||||
- [ ] Dans `/acces` → Publication : « Dernière publication » datée du jour, sans envoi en
|
||||
attente.
|
||||
- [ ] À l'écran (Yvv) : l'accueil ouvre sur les groupes ; Monnaie libre montre les quatre
|
||||
piliers et l'Acte d'engagement ; la Raison d'être ouvre le texte ; « Connaissance
|
||||
suffisante » tient une ligne avec « 2 versions ».
|
||||
|
||||
## Retour
|
||||
|
||||
- **Le code** : pousser l'ancienne tête rejoue le pipeline avec la version précédente.
|
||||
```sh
|
||||
git push --force-with-lease=main:8727315 prod dc2de09:main
|
||||
```
|
||||
C'est une réécriture de branche : elle demande le mot « déploie » pour ce retour précis.
|
||||
Plus rapide, sur sonic : `docker tag libredecision-app:previous libredecision-app:latest`,
|
||||
puis `cd /opt/libredecision-app && docker compose up -d --force-recreate`.
|
||||
L'ancienne version démarre sur la base migrée (la table ajoutée ne la gêne pas). Elle
|
||||
affiche la clé brute « history.amendment » dans l'historique de I1, et y refuse toute
|
||||
coquille, parce qu'elle la mesure contre le Préambule : c'est un refus, jamais une
|
||||
écriture à tort.
|
||||
- **La Raison d'être en base** : **pas de retour automatique**. Revenir au Préambule
|
||||
demanderait un amendement inverse, écrit et relu comme celui-ci.
|
||||
- **Le commit publié** dans le dépôt des textes : **IMPOSSIBLE à retirer sans réécrire
|
||||
l'historique** de ce dépôt (geste « supprime »). On publierait par-dessus.
|
||||
@@ -6,8 +6,10 @@
|
||||
## REPRISE
|
||||
|
||||
Orch seul sur le dépôt (projet à un dépôt : sous-agents en copies de travail, pas de sessions).
|
||||
Lots A et R lancés le 2026-10-30 ; B, C, D, F attendent les réponses du formulaire (ou partent
|
||||
avec les réponses par défaut ci-dessous). Rien n'est en ligne de cette revue.
|
||||
A et R fusionnés (`8727315`), boucle verte, image construite, répétition sur une copie de la
|
||||
base de production faite ; relecture indépendante en cours ; dossier `actes/2026-10-30-m1-mise-en-ligne.md`.
|
||||
C lancé le 2026-10-30 à 13 h 30. B attend la recherche sur Ğ1Companion et une question (secret
|
||||
du vote et transaction publique). D après C, F après B. Rien n'est en ligne de cette revue.
|
||||
|
||||
## Critère de livraison (liste fermée)
|
||||
|
||||
@@ -34,21 +36,22 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag
|
||||
|
||||
| Lot | Contenu | Effort | État | Branche |
|
||||
|---|---|---|---|---|
|
||||
| A | L1–L6 : entrée, DA, menu, listes, Décisions | high | lancé 2026-10-30 | `lot/a-entree` |
|
||||
| R | L7–L8 : Raison d'être (seed + migration gardée), versions groupées | high | lancé 2026-10-30 | `lot/r-texte` |
|
||||
| B | L9 : vote déplié, vote groupé, voie du vote Ğ1 | xhigh | attend Q1, Q2 | — |
|
||||
| C | L10 : cinq crans, échelle, réglages | xhigh | attend Q3 | — |
|
||||
| A | L1–L6 : entrée, DA, menu, listes, Décisions | high | fusionné (`8727315`) | `lot/a-entree` |
|
||||
| R | L7–L8 : Raison d'être (amendement de seed gardé), versions groupées | high | fusionné (`68115fb`) | `lot/r-texte` |
|
||||
| B | L9 : vote déplié, vote groupé, vote par transaction de 0,1 Ğ1 | xhigh | recherche Ğ1Companion en cours ; question Q5 | — |
|
||||
| C | L10 : cinq crans, échelle, réglages | xhigh | lancé 2026-10-30 13 h 30 | `lot/c-inertie` |
|
||||
| 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 | — |
|
||||
|
||||
## Questions (réponse par défaut appliquée tant qu'Yvv n'a pas tranché)
|
||||
|
||||
| # | Question | Défaut |
|
||||
| # | Question | Réponse |
|
||||
|---|---|---|
|
||||
| Q1 | Voter dans Monnaie libre avant la connexion Ğ1 (poka) | lier sa clé Ğ1 une fois par une transaction commentée, puis voter ici |
|
||||
| Q2 | Les votes se voient-ils avec les noms ? | oui, votes nominatifs visibles des membres du groupe |
|
||||
| Q3 | Échelle des cinq crans | calée sur la participation médiane du groupe |
|
||||
| Q4 | Le titre d'un article se vote-t-il à part ? | non : un article = titre + texte ; seul le titre du doc devient un module |
|
||||
| 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 ? | défaut : empreinte scellée (la chaîne montre qui a voté et quand, pas quoi) |
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user