# Contribuer à libreDecision La référence produit est `docs/dev/BLUEPRINT-V2.md` — toute contribution qui touche au comportement doit s'y conformer (ou proposer un amendement du blueprint, argumenté). ## Environnement ```bash # Frontend — suffit pour tout le développement v2 (local-first, aucun serveur requis) cd frontend npm install npm run dev # http://localhost:3002 — port strict, jamais de fallback npm test # vitest — 342 tests npm run build # doit passer sans erreur avant tout commit # Backend v1 (optionnel — conservé pour la future synchro) cd backend python -m venv venv && source venv/bin/activate pip install -r requirements.txt ``` ## Conventions - **UI en français, code en anglais** (variables, commentaires, docstrings). - **`app/lexicon.ts` est la source unique des libellés français.** Aucun libellé UI en dur dans un composant s'il existe (ou devrait exister) dans le lexicon. Ton : tutoyer la personne dans ses gestes ; actes collectifs à l'infinitif ; le sujet grammatical est toujours la personne ou le collectif — jamais la formule ni le système. - **Test anti-lexique** (`tests/lexicon.spec.ts`) : la liste `FORBIDDEN_UI_TERMS` interdit certains mots dans toute chaîne visible (lexicon + templates `.vue`), insensible à la casse et aux accents. « Triage », « verdict », « déléguer »… peuvent exister comme identifiants de code, jamais à l'écran. - **CSS** : borderless (profondeur via background + box-shadow), palettes par classes `.mood-*` sur ``, composants natifs (``, `