- Dans Monnaie libre (électorat = toile de confiance), seuls les membres de la toile votent (trustin_access::votes_in) ; une identité d'invitation y lit, propose et signale. L'interface le dit à la place des boutons (fr/en/es). - Un lien d'invitation ne vise jamais une identité Ğ1 ; le lien est réservé avant de créer l'identité (deux acceptations simultanées : une seule passe). - Un nombre n'est jamais une coquille (« 50 » → « 5,0 », « 1 5 » → « 15 »). - Redirection après connexion : caractères de contrôle refusés. - En-têtes : X-Frame-Options DENY, frame-ancestors 'none', nosniff, Referrer-Policy. - Déploiement : le produit passe en premier ; la maquette attend son succès. Les conteneurs, même arrêtés, qui revendiquent encore la racine sortent de « restart: always » (ils reviendraient au redémarrage de Docker). - Tests : 57 Rust (dont 14 scénarios d'API), e2e 12 / 12 avec C11. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
74 lines
3.6 KiB
Markdown
74 lines
3.6 KiB
Markdown
# 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 : avec ton lien d'invitation tu le lis,
|
||
tu proposes, tu signales ; le vote y est réservé aux membres de la toile (avec ta clé Ğ1).
|
||
3. Passe les contrôles C1–C11 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 : ».
|