Liens d'équipe (Yvv, 2026-10-21) : un lien réutilisable jusqu'à une date
et pour un nombre de personnes, révocable. Chaque ouverture demande un nom
et crée sa propre identité d'invitation, jamais administratrice ; un nom
déjà pris est refusé ; une personne déjà connectée reçoit les groupes.
trustinWallet montre par quel lien chaque identité est venue, et donne un
nouveau lien de connexion à une personne invitée (autre appareil).
Migration additive 0002 (table team_links, colonne identities.team_link).
Publication : yvv/libredecision-textes sur git.open.us.org, pour
l'instant (un dépôt pour l'ouverture, puis le dépôt officiel, viendront).
Huitième relecture (c3d6bf8 : ok), points corrigés :
- une négation n'est jamais coupée ni formée par collage (« ja mais ») ;
- caractères invisibles : tout l'ensemble Unicode des ignorables et les
contrôles autres que saut de ligne et tabulation ;
- sauts de ligne et indentation font partie de la forme (listes) ;
- un titre tient sur une ligne.
Boucle : 65 tests Rust, svelte-check, 9 vitest, e2e 13/13 (C12 ajouté).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.3 KiB
Contribuer à libreDecision
On travaille un chantier à la fois, livré complet et en production avant le suivant
(docs/chantiers/README.md). Le chantier en cours a sa fiche :
docs/chantiers/acte-certification/CHANTIER.md — toute décision de comportement s'y adosse,
ou propose de l'amender, argumentée.
Première fois ? Commence par docs/chantiers/acte-certification/ONBOARDING.md.
Les branches — travailler à deux
main = la production. Tout push sur prod/main déploie decision.librodrome.org.
chantier/acte-certification = la branche commune du binôme (Yvv · Chiara), toujours verte.
chiara/<sujet>, yvv/<sujet> = une branche courte par sujet, partie de la branche du chantier.
git switch chantier/acte-certification && git pull --rebase origin chantier/acte-certificationgit switch -c chiara/<sujet>— un sujet, une branche, quelques commits.- Boucle verte (ci-dessous), puis push de la branche et demande de fusion vers
chantier/acte-certificationsur la forge (git.open.us.org/yvv/decision). - Le chantier passe dans
mainquand la boucle est verte et les contrôles d'usage passés.
On ne pousse jamais directement sur main, et jamais de --force sur une branche partagée.
La boucle — une tâche n'est faite que si tout est vert
export PATH=$HOME/.cargo/bin:$PATH
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
cd web
npm run check # svelte-check, zéro avertissement
npm test # vitest : markdown, parité des catalogues i18n, anti-lexique
npm run build
npm run e2e # Playwright : C1–C12 (bureau) + M1 (mobile), serveur jetable sur :8092
L'image Docker rejoue les mêmes portes : un contrôle rouge, pas d'image, pas de déploiement.
Conventions
- Interface en français, code en anglais (identifiants, commentaires, messages de log).
- Trilingue dès le départ : toute chaîne affichée vit dans
web/src/lib/i18n/fr.ts(la source), puisen.tsetes.ts. Le test de parité refuse une clé manquante ou un paramètre{x}qui diffère. Le texte voté est le français ; les traductions sont éditoriales. - Ton : tutoyer la personne ; le sujet est la personne ou le collectif, jamais le système.
Mots interdits à l'écran (
FORBIDDEN_UI_TERMS) : « triage », « verdict », « déléguer »… - Moteur pur :
crates/ld-enginen'a ni I/O, ni base, ni réseau. Toute règle de vote, d'édition ou de composition s'y écrit et s'y teste d'abord. - Accès : le serveur ne décide jamais seul qui voit quoi — il demande à
trustin-access. - Données runtime (
data/, volumelpk-libredecision-app_data) : jamais écrasées, jamais réinitialisées ; une migration ajoute, elle ne réécrit pas. - Design : sans bordures (profondeur par fond et ombre), arrondis 16 / 12 / 20 / 14 px, deux ambiances (pierre, nuit), Literata pour les textes, Nunito pour l'interface.
- Commits : en français, une intention par commit,
git addavec chemins explicites.
Signaler
« Faire un retour » (dans le menu de gauche, sur chaque page) envoie une note datée avec la
page, la langue et la taille de l'écran ; elles se lisent dans trustinWallet (/acces).
Pour un bug reproductible, une issue sur la forge avec les étapes.