v3 : déploiement (image unique, produit à la racine, maquette en sous-domaine) et documentation du chantier

- docker/app.Dockerfile : une image Rust + Svelte, la construction rejoue toute
  la boucle (fmt, clippy -D warnings, tests, svelte-check, vitest) ; utilisateur
  non-root, volume /data. docker/app-compose.yml pour sonic (fabio).
- .woodpecker/app.yml : produit sur decision.librodrome.org, attend la maquette,
  écarte tout conteneur qui revendique encore la racine, healthcheck du commit.
- .woodpecker/maquette.yml (ex .woodpecker.yml) : la maquette v2 telle quelle,
  sur maquette.decision.librodrome.org, mêmes volumes.
- .env.example de la maquette rangé dans maquette/ ; celui de la v3 à la racine.
- Docs : README, CONTRIBUTING (travail à deux), CLAUDE.md v3, HANDOFF,
  docs/chantiers (feuille de route, fiche, contrôles, onboarding de Chiara,
  demande à poka), docs/adr 0001–0006.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-10-21 03:50:44 +02:00
co-authored by Claude Opus 5.5
parent c2669a3d0b
commit 1f9c241b41
24 changed files with 1187 additions and 281 deletions
@@ -0,0 +1,72 @@
# Bienvenue sur le chantier — Chiara
Tu es **testeuse et codeuse** sur ce chantier : tes tests d'usage sont nos contrôles (une
remarque de toi = un contrôle à repasser), et tu peux corriger ou construire toi-même.
## 1. Ce qu'on construit
Lis d'abord `CHANTIER.md` (10 minutes) : le texte vivant, le vote permanent, coquille ≠ vote,
les contradictions, l'inertie votée, la publication. Puis `CONTROLES.md` : ce que tu vérifies.
## 2. Tes accès (préparés par Yvv)
| Quoi | Pour quoi | Qui le fait |
|---|---|---|
| Un **lien d'invitation** à decision.librodrome.org (groupes Monnaie libre + groupe d'essai) | tester en production avant la connexion Ğ1 | Yvv, dans trustinWallet (`/acces`) |
| Ta **clé Ğ1** | une fois connect.monnaie-libre.fr branché, tu te connectes comme sur le forum | — |
| Un compte sur **git.open.us.org**, collaboratrice de `yvv/decision` | pousser tes branches, ouvrir des demandes de fusion | Yvv |
Le lien d'invitation s'ouvre **une seule fois** et expire en 14 jours ; il ouvre ta session sur
ce navigateur pour 30 jours.
## 3. Tester sans rien installer
1. Ouvre ton lien d'invitation → tu arrives connectée.
2. Les contrôles qui écrivent (voter, corriger, découper) se font dans le **groupe d'essai** :
il est caché, une seule voix « pour » suffit à faire passer une proposition, et rien n'en
sort. Le texte de Monnaie libre, lui, est le vrai : lis-le, ne vote que pour de vrai.
3. Passe les contrôles C1–C10 et M1 (sur ton téléphone aussi), puis tout ce qui te gêne.
4. Chaque remarque : **« Faire un retour »** dans le menu de gauche. Écris ce que tu as fait, ce
que tu attendais, ce qui s'est passé. La page, la langue et la taille de l'écran sont jointes.
## 4. Coder en local
Prérequis : git, Node 22, Rust (rustup — la version 1.99 s'installe toute seule grâce à
`rust-toolchain.toml`).
```bash
git clone gitea@git.open.us.org:yvv/decision.git libreDecision && cd libreDecision
git switch chantier/acte-certification
curl --proto '=https' -sSf https://sh.rustup.rs | sh -s -- -y # si Rust n'est pas installé
cd web && npm ci && npm run build && cd ..
LD_DEV_LOGIN=1 cargo run -p ld-server # http://127.0.0.1:8002 — API + interface
# dans un second terminal, pour l'interface à chaud :
cd web && npm run dev # http://127.0.0.1:3002
```
`LD_DEV_LOGIN=1` affiche une connexion « développement » : tu tapes un nom, tu es membre de
tous les groupes (y compris l'essai). La base locale vit dans `data/` — supprime ce dossier pour
repartir du texte de départ.
Où sont les choses :
- les **règles** (seuil, coquille, découpage, aperçus) : `crates/ld-engine/` — pur, testé ;
- les **accès** : `crates/trustin-access/` ;
- l'**API** : `crates/ld-server/src/` (une route = une fonction ; scénarios dans `tests/api.rs`) ;
- l'**interface** : `web/src/routes/` (pages) et `web/src/lib/components/` ;
- les **textes affichés** : `web/src/lib/i18n/fr.ts` (puis `en.ts`, `es.ts`) — jamais en dur ;
- le **texte de départ** : `seeds/acte-engagement-certification.json`.
## 5. Ta boucle avant de pousser
```bash
cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace
cd web && npm run check && npm test && npm run build && npm run e2e
```
Tout vert, puis : `git switch -c chiara/<sujet>`, commits, `git push origin chiara/<sujet>`, et une
demande de fusion vers `chantier/acte-certification`. Le détail : `CONTRIBUTING.md`.
## 6. Si tu bloques
Écris à Yvv, ou laisse un retour dans l'outil en commençant par « BLOQUÉE : ».