Yocoop Vers Cartogroov Features RoleBase — Features à développer sur Yocoop (parité CartoGroov + backlog) Date : 10/07/2026 Base : rolebase-yocoop-features-analyse.md (30/05, v1→v13) + ajouts v14→v17 de CartoGroov. But : rattraper sur Yocoop toutes les features de CartoGroov (prod), proprement, puis avancer. Légende Symbole Sens 🔵 Proposable à Godefroy (générique) 🟣 Spécifique UdN/CartoGroov (interne) 🟢 / 🟡 / 🔴 Facile (<2h) / Moyenne (2-6h) / Longue (>6h) Parité État sur Yocoop : ⬜ à rattraper · 🟩 fait Pour le détail d'implémentation de chaque ligne (patch exact, migration, permissions), se reporter à rolebase-udn-v17.md / MD vXX et à l'analyse d'origine (ID entre parenthèses). A. Features v1→v13 — déjà cataloguées (88 features) Elles restent valables et sont détaillées dans rolebase-yocoop-features-analyse.md avec leur ID (INFRA, UDN, ORG, TENS, GOUV, ASYNC, REU, PP, EMAIL, ADM, IMP, INT). Résumé des blocs et de la proposabilité Godefroy : Bloc Nb Dont 🔵 Godefroy Parité Yocoop Infrastructure (INFRA-01→08) 8 0 ⬜ prérequis à refaire Personnalisation UdN (UDN-01→05) 5 2 ⬜ Organigramme & Rôles (ORG-01→06) 6 5 ⬜ Tensions (TENS-01→09) 9 5 ⬜ Gouvernance (GOUV-01→14) 14 10 ⬜ Gouvernance async (ASYNC-01→13) 13 12 ⬜ Réunions (REU-01→11) 11 7 ⬜ Prochains pas (PP-01→08) 8 6 ⬜ Emails & Crons (EMAIL-01→07) 7 3 ⬜ Admin (ADM-01→04) 4 0 ⬜ Import (IMP-01) 1 1 ⬜ Intégrations (INT-01→02) 2 1 ⬜ Candidats PR Godefroy prioritaires (rappel de l'analyse) : ORG-01 (cercle vs rôle), TENS-01 (types de tension), GOUV-07 (Décision → Règle commune), PP-01+02 (table + page Prochains pas), EMAIL-02+03 (rappel J-1 + CR réunion), puis ASYNC complet, REU-01, TENS-07. L'ordre de reconstruction reste le plan en 8 phases de l'analyse (Socle → Tensions/Gouvernance → Réunions → Prochains pas → Tension enrichie → Async → Emails/Admin → Parité/Migration). B. Nouvelles features CartoGroov (v14→v17) — À AJOUTER au catalogue Ces features ont été développées sur CartoGroov après l'analyse et ne figurent pas encore dans le catalogue. Elles sont à rattraper sur Yocoop. ID Feature Version Diff. Godefroy Parité Notes NEW-01 Recherche Algolia globale (index, clés, backfill) v14 🟡 🟣 (clés) ⬜ Filtre par orgId — attention visibilité (voir NEW-09) NEW-02 Google Agenda OAuth — connexion + export (phase 1) v14 🟡 🔵 ⬜ App OAuth ; secret hors versionné NEW-03 Docs légaux CGU + Politique de confidentialité (RGPD) v14 🟢 🟣 ⬜ Conformité Google incluse NEW-04 Fix liens vérification email + expéditeur v14 🟢 🔵 ⬜ Devenu la base du système emails chartés NEW-05 Rebranding CartoGroov (logo, favicon, PWA, OG/Twitter) v15 🟢 🟣 ⬜ Sur Yocoop : garder configurable (UDN-03) NEW-06 Suppression traceurs tiers (Google Analytics + Sentry) RGPD v15 🟢 🔵 ⬜ Option self-host propre NEW-07 Focus par titulaire de rôle ( circle_member.focus) v16 🟡 🔵 PR forte 🟩 ✅ fait Yocoop 10/07 (déclencheur « + focus » au survol ; italique sous le prénom dans l'organigramme). ⚠️ bascule UdN : le champ existe déjà en v16 → voir migration-blockers.md NEW-08 Système d'emails chartés ( packages/emails/Layout + templates) v17 🟡 🔵 ⬜ MeetingSummary + Notification génériques ; auth via hasura-auth NEW-09 Tensions privées cloisonnées par cercle (private-by-default + trigger) v17 🟡 🔵 ⬜ Modèle de sécurité ; pas de bypass Owner/Admin NEW-10 Réunions privées réellement effectives (fix permission meeting) v17 🟢 🔵 ⬜ Hasura respecte le flag private NEW-11 CR de réunion instantané en fin de réunion + enrichi v17 🟡 🔵 ⬜ Trigger ended false→true ; présents/absents, checklist, prochains pas NEW-12 next_step.memberId — assignation à un membre 21/05 🟡 🔵 ⬜ Recouvre en partie PP-05 NEW-13 Fix persistance indicateurs (toujours role.indicators) 21/05 🟢 🔵 ⬜ Ne plus écrire dans step.notes Candidats PR Godefroy issus du neuf NEW-07 (Focus par titulaire) — générique, propre, à fort intérêt communautaire. NEW-08 (emails chartés) — architecture réutilisable (Layout + templates). NEW-09/10 (modèle privé/cloisonné) — correctifs de sécurité utiles à tous. NEW-11 (CR instantané) — meilleure UX que le cron seul. C. Enrichissements Yocoop (au-delà de la parité) Décisions déjà actées pour faire mieux que CartoGroov une fois la parité atteinte : ID Enrichissement Diff. Godefroy ENR-01 next_step enrichie : description, dueDate, status, priority, projectId 🟡 🔵 ENR-02 "Transformer un prochain pas en projet" (tunnel next_step → task) 🟡 🔵 ENR-03 i18n systématique (dette FR hardcodée de CartoGroov non reproduite) 🟢 🔵 ENR-04 Google Agenda phase 2 (import/synchro bidirectionnelle) 🔴 🔵 ENR-05 Écriture inclusive harmonisée (point médian) — étendre à tout fr.json ( un·e, sûr·e, ce·tte, invité·e, membre·s…) 🟢 🟣 Notes terminologie / inclusif (fait le 10/07/2026) UDN-01 (terminologie FR) — partiel : thread → « Tension », task → « Projet » appliqués dans fr.json (102 valeurs, accords de genre inclus ; en.json inchangé ; règle : c'est de l'affichage, aucune entité de code ne change). Reste de UDN-01 : le terme « Entreprise » (org) et le plan gratuit (UDN-02). Écriture inclusive — commencée : seul « participant » → « participant·e / participant·es » est passé en point médian. Le reste de l'app utilise encore l'inclusif entre parenthèses ( un(e), sûr(e), ce(tte), invité(e)) → d'où des phrases mixtes (« un(e) participant·e »). Harmonisation = ENR-05 (choix éditorial Yocoop, 🟣, à faire en une passe séparée). ⚠️ fr.json est désormais dans YOCOOP_FILES ( update-from-upstream.sh) → un futur rattrapage upstream signalera le conflit au lieu d'écraser silencieusement la terminologie. D. Dépendance transverse — à ne pas oublier au rattrapage Rattrapage upstream déjà intégré (14/06) : packages editor, editor-legacy, graph, puppeteer/Chromium backend, refonte panneau de rôle. Toute feature touchant l'éditeur ou l'organigramme doit composer avec ces packages (voir rolebase-upstream-sync-log.md). circle_participant_cache : toute feature de visibilité (tensions/projets/réunions) en dépend. Metadata Hasura live ≠ disque : vérifier systématiquement lors des features à permissions. Résumé quantitatif mis à jour Ensemble Nb features Catalogue v1→v13 (A) 88 Nouvelles v14→v17 (B) 13 Enrichissements Yocoop (C) 5 Total à piloter ~105 dont proposables Godefroy 🔵 ~60 À maintenir à jour : cocher la colonne Parité (🟩) au fur et à mesure des rattrapages sur Yocoop. RoleBase Yocoop — Analyse complète des features v1→v13 Document : Analyse et recommandations pour le développement propre Date : 30/05/2026 Objectif : Reconstruire proprement toutes les features UdN sur le VPS Yocoop Légende Symbole Signification 🏗️ Feature structurelle — touche à l'architecture de base ⭐ Feature importante — valeur métier forte 🟢 Facile — < 2h, peu de fichiers 🟡 Moyenne — 2-6h, plusieurs fichiers 🔴 Longue — > 6h, BDD + GraphQL + UI + backend 🔵 Proposable à Godefroy — suffisamment générique 🟣 Spécifique UdN — peu de chance d'intéresser Godefroy Classement par catégorie 1. INFRASTRUCTURE & CONFIGURATION ID Feature Difficulté Importance Godefroy INFRA-01 SMTP smtp2go (config email) 🟢 ⭐ 🟣 INFRA-02 Services systemd (backend + yjs) 🟢 ⭐ 🟣 INFRA-03 Build production + settings.ts self-hosted 🟢 ⭐ 🟣 INFRA-04 Nginx config + SSL Let's Encrypt 🟢 ⭐ 🟣 INFRA-05 Backup PostgreSQL automatique (cron 2h, 7j) 🟢 ⭐ 🟣 INFRA-06 Script update.sh (sauvegarde fichiers modifiés) 🟢 ⭐ 🟣 INFRA-07 Dépôt Framagit + git remote 🟢 ⭐ 🟣 INFRA-08 Crons Linux en backup (meeting-summaries, reminders) 🟢 ⭐ 🟣 Notes : INFRA-01 à 06 : à faire en premier, ce sont les prérequis pour tout le reste INFRA-07 : configure le remote Framagit dès le début pour versionner correctement INFRA-08 : contournement du bug Hasura cron scheduling (URLs /trpc/ → /cron.) 2. PERSONNALISATION UdN / YOCOOP ID Feature Difficulté Importance Godefroy Notes UDN-01 Terminologie (Tensions/Projets/Entreprise) 🟢 ⭐ 🟣 Modifier fr.json + en.json UDN-02 Plan gratuit illimité (free: Infinity) 🟢 ⭐ 🟣 1 ligne dans subscription.ts UDN-03 Personnalisation orga (logo, couleur, message) 🟡 ⭐ 🔵 BDD + UI + CSS variables UDN-04 Homepage → redirect AuthPage si selfHosted 🟢 ⭐ 🟣 1 condition UDN-05 Ajouter membre sans email 🟢 ⭐ 🔵 Champ optionnel dans le formulaire 3. ORGANIGRAMME & RÔLES ID Feature Difficulté Importance Godefroy Notes ORG-01 Distinction visuelle cercle 🫧 vs rôle (small-caps) 🟡 ⭐ 🔵 CircleButton + SearchResultIcon ORG-02 Filtres Mes rôles / Cercles / Toute l'org 🟡 ⭐ 🔵 CircleSearchInput + useSearch ORG-03 Surbrillance "Mes rôles" dans l'organigramme 🟡 ⭐ 🔵 CSS dynamique + état ORG-04 Boutons UserPlus / UserMinus dans liste rôles 🟢 ⭐ 🔵 Ajout/retrait membre rapide ORG-05 Tri rôles dans l'organigramme (base en premier) 🟢 ⭐ 🔵 useSearch.ts + sort ORG-06 Filtrage cercles uniquement pour les réunions 🟢 ⭐ 🔵 MeetingEditModal → circlesOnly 4. TENSIONS ID Feature Difficulté Importance Godefroy Notes TENS-01 🏗️ Types de tension (opé/gouv/gouv_réunion) 🟡 ⭐ 🔵 BDD thread.type + badges TENS-02 Description tension (thread.description) 🟢 ⭐ 🔵 BDD + GraphQL + UI TENS-03 Layout 2 colonnes ThreadContent 🟡 ⭐ 🟣 Refonte majeure de l'UI TENS-04 Badges OPÉ/GOUV colorés sur les tensions 🟢 ⭐ 🟣 Visual uniquement TENS-05 Boutons Opé/Gouv (remplace Select type) 🟢 ⭐ 🔵 ThreadEditModal TENS-06 Popup création tension — layout Rôle/Type colonne 🟢 ⭐ 🟣 Fix UX mobile TENS-07 🏗️ Tension opé enrichie — autorité + responsable 🔴 ⭐ 🔵 BDD authorityCircleId+memberId + GraphQL (4 fichiers) + UI TENS-08 Auto-remplissage membre selon rôle sélectionné 🟡 ⭐ 🔵 Dépend de TENS-07 TENS-09 Notes réunion → description à la validation 🟡 ⭐ 🟣 Fix UX + extraction Lexical JSON 5. GOUVERNANCE ID Feature Difficulté Importance Godefroy Notes GOUV-01 🏗️ Modes gouvernance (Libre/Agile/Holacratique) 🟡 ⭐ 🔵 BDD org.governanceMode + permissions GOUV-02 Permissions fines par mode dans CircleContext 🔴 ⭐ 🔵 Logique complexe selon le mode GOUV-03 Modal confirmation passage Holacratique 🟡 ⭐ 🟣 + création rôles structurels colorés GOUV-04 🏗️ Section Évolutions proposées (ThreadGovernanceEvolutions) 🔴 ⭐ 🔵 Composant complexe, menu 2 niveaux GOUV-05 useApplyGovernanceEvolutions (application des évolutions) 🔴 ⭐ 🔵 Hook critique, 10 types d'évolutions GOUV-06 Bouton "Valider directement" (sans async) 🟢 ⭐ 🔵 Dépend de GOUV-05 GOUV-07 Renommage "Décision" → "Règle commune" 🟢 ⭐ 🟣 fr.json + en.json GOUV-08 Suppression champ "Règles communes" de la fiche rôle 🟢 ⭐ 🟣 Doublon avec Règles communes GOUV-09 Sauvegarde evolutionsData en DB avant validation 🟢 ⭐ 🔵 Fix : évolutions persistées après clôture GOUV-10 Tensions gouvernance validées — lecture seule 🟢 ⭐ 🔵 Ne pas ré-ouvrir après application GOUV-11 Section "Traités" gouvernance avec rôle + évolutions 🟡 ⭐ 🔵 Affichage lisible des évolutions appliquées GOUV-12 ThreadGovernanceEvolutions — rôles feuilles vs sous-cercles 🟡 ⭐ 🔵 Détection enfants pour discriminer GOUV-13 Cercle de réunion exclu du sélecteur de tension 🟢 ⭐ 🔵 MeetingStepContentThreads + Governance GOUV-14 Décisions dans les évolutions (decision_add/update/archive) 🟡 ⭐ 🔵 Dépend de GOUV-04 6. GOUVERNANCE ASYNCHRONE ID Feature Difficulté Importance Godefroy Notes ASYNC-01 🏗️ BDD governance_vote + governance_vote_token 🟡 ⭐ 🔵 Tables + permissions Hasura ASYNC-02 Backend — Route /governance-votes (GET) 🟡 ⭐ 🔵 Calcul votes + membres du cercle ASYNC-03 Backend — Route /governance-vote-ui (POST) 🟡 ⭐ 🔵 Vote one-click depuis email ASYNC-04 Backend — handleGovernanceAsync (trigger) 🟡 ⭐ 🔵 Envoi mails aux membres du cercle ASYNC-05 Backend — Cron closeGovernanceAsync 🟡 ⭐ 🔵 Clôture auto à deadline ASYNC-06 Backend — Cron remindGovernanceAsync 🟡 ⭐ 🔵 Rappel membres sans vote J-2 ASYNC-07 Frontend — Interface de vote (ThreadAsyncGovernance.tsx) 🟡 ⭐ 🔵 Affiche votes + permet voter ASYNC-08 asyncStatus — nouveau statut governance_async_validated 🟡 ⭐ 🔵 Fix UX : tension reste Active après cron ASYNC-09 Bouton "Appliquer les évolutions" conditionnel 🟢 ⭐ 🔵 Visible si governance_async_validated ASYNC-10 Masquage boutons Apporter/Async sur tension validée 🟢 ⭐ 🔵 UX : boutons inutiles après validation ASYNC-11 Brouillon évolutions en localStorage 🟢 ⭐ 🔵 Persistence entre sessions ASYNC-12 Filtre cercle dans sélecteur d'évolution (holacracy) 🟡 ⭐ 🔵 Cercle parent qui gouverne le rôle ASYNC-13 Gouvernance async masquée en mode agile/libre 🟢 ⭐ 🔵 Fix : visible seulement en holacratique 7. RÉUNIONS ID Feature Difficulté Importance Godefroy Notes REU-01 🏗️ Nouveaux types d'étapes (Inclusion, Déclusion, Checklist, Indicateurs, NextSteps, Governance) 🔴 ⭐ 🔵 BDD + GraphQL (4 patches) + composants REU-02 Triage opérationnel refonte (inline + import + Traités) 🔴 ⭐ 🟣 MeetingStepContentThreads complexe REU-03 Étape Gouvernance (MeetingStepContentGovernance) 🔴 ⭐ 🟣 Tensions gouvernance en réunion REU-04 Indicateurs et Checklist par rôle 🟡 ⭐ 🔵 ListEditableField + parsing JSON/texte REU-05 Prochains pas en réunion (saisie + affichage) 🟡 ⭐ 🔵 Dépend de PP-01 REU-06 Tensions "Traités" — layout prochain pas en dessous 🟢 ⭐ 🔵 Fix UX v12 REU-07 Création tension inline en réunion 🟡 ⭐ 🔵 Sélecteur cercle + membre REU-08 Import tension existante dans l'étape 🟢 ⭐ 🔵 ThreadSearchButton REU-09 Membre responsable affiché dans "Traités" 🟢 ⭐ 🔵 Dépend de TENS-07 REU-10 Notes réunion pré-remplies depuis description tension 🟢 ⭐ 🟣 UX : évite de retaper la description REU-11 Filtrage cercles pour les réunions (circlesOnly) 🟢 ⭐ 🔵 Évite de choisir un simple rôle 8. PROCHAINS PAS ID Feature Difficulté Importance Godefroy Notes PP-01 🏗️ Table next_step BDD + permissions Hasura 🟡 ⭐ 🔵 Table + contraintes UNIQUE + permissions org.members PP-02 Page Prochains pas (NextStepsPage) 🟡 ⭐ 🔵 Kanban À faire / Réalisé PP-03 Contrainte UNIQUE par tension (next_step_thread_unique) 🟢 ⭐ 🔵 Fix v12 : 1 PP par tension PP-04 saveNextStep appelé avant validation/rejet 🟢 ⭐ 🔵 Fix v12 : PP sauvegardé à la validation PP-05 Filtre PP par mes rôles + assignés à moi 🟡 ⭐ 🟣 Dépend de TENS-07 (memberId) PP-06 Labels dynamiques ("Tous mes rôles", "Assigné à [nom]") 🟢 ⭐ 🟣 i18n à gérer PP-07 PP visible toutes réunions confondues 🟢 ⭐ 🔵 Fix v12 : plus filtré par meetingId PP-08 PP pré-rempli à la réouverture d'une tension 🟡 ⭐ 🔵 Fix v12 : subscription BDD dans ThreadContent 9. EMAILS & CRONS ID Feature Difficulté Importance Godefroy Notes EMAIL-01 Notification email admin (nouvelle orga) 🟢 ⭐ 🟣 notifyNewUser.ts EMAIL-02 Rappel J-1 réunion (cron 9h UTC) 🟡 ⭐ 🔵 sendMeetingReminders.ts EMAIL-03 CR réunion post-meeting (cron horaire) 🟡 ⭐ 🔵 sendMeetingSummaries.ts EMAIL-04 Flag summarySent — CR envoyé une seule fois 🟢 ⭐ 🔵 Fix v12 : plus de doublons EMAIL-05 CR réunion enrichi — tensions + PP + évolutions 🔴 ⭐ 🔵 sendMeetingSummaries v13 EMAIL-06 Invitation membre (email natif Nhost) 🟢 ⭐ 🟣 Config SMTP EMAIL-07 Cron URLs corrigées (sans /trpc/) 🟢 ⭐ 🟣 Fix Hasura metadata 10. ADMIN ID Feature Difficulté Importance Godefroy Notes ADM-01 Tableau de bord admin (/admin) 🟡 ⭐ 🟣 Page statique + API orgas ADM-02 Impersonation admin 🔴 ⭐ 🟣 BDD + backend + frontend + bandeau orange ADM-03 Plans d'abonnement (vivante/carto + addons) 🟡 ⭐ 🟣 BDD org.plan + UI admin ADM-04 Export ISO 9001 Excel — — — ❌ RETIRÉ 14/06/2026 : l'export XLSX/JSON standard de Rolebase ( ExportPage.tsx) couvre déjà le besoin 11. IMPORT ID Feature Difficulté Importance Godefroy Notes IMP-01 Import Glassfrog (JSON bypass base64) 🟡 ⭐ 🔵 Importeur complet 12. INTÉGRATIONS ID Feature Difficulté Importance Godefroy Notes INT-01 Excalidraw (tableau blanc collaboratif) 🟡 ⭐ 🔵 BDD + URL format + composants INT-02 Meet UdN (visio intégrée) 🟡 ⭐ 🟣 URL DDM-NOM-MAA + addon_meet Résumé quantitatif Catégorie Nb features Faciles 🟢 Moyennes 🟡 Longues 🔴 Proposables Godefroy 🔵 Infrastructure 8 8 0 0 0 Personnalisation UdN 5 4 1 0 2 Organigramme & Rôles 6 3 3 0 5 Tensions 9 5 2 2 5 Gouvernance 14 6 5 3 10 Gouvernance async 13 4 9 0 12 Réunions 11 4 5 2 7 Prochains pas 8 4 4 0 6 Emails & Crons 7 3 3 1 3 Admin 4 0 3 1 0 Import 1 0 1 0 1 Intégrations 2 0 2 0 1 TOTAL 88 41 38 9 52 Recommandations de branches Git Stratégie générale main (stable, déployé sur VPS Yocoop) └── develop (intégration continue) ├── feature/XXX-nom-court ├── fix/XXX-description └── chore/XXX-infra-config Règle : on ne merge jamais une feature directement dans main. Toujours passer par develop + tests. Phase 1 — Socle (Juin, semaines 1-2) Ces branches sont à créer et merger dans l'ordre strict — chacune est prérequis de la suivante. chore/infra-systemd-nginx-ssl # INFRA-01 à 04 : SMTP, systemd, build prod, Nginx, SSL chore/infra-backup-scripts # INFRA-05,06,07 : backup PostgreSQL, update.sh, Framagit remote feat/udn-branding # UDN-01 à 05 : terminologie, plan gratuit, personnalisation, redirect homepage feat/orga-visual-distinction # ORG-01 : cercle 🫧 vs rôle (small-caps) feat/orga-filters # ORG-02,03,04,05,06 : filtres, surbrillance, UserPlus/Minus, tri, cerclesOnly Phase 2 — Tensions & Gouvernance de base (Juin, semaines 3-4) feat/tension-types-description # TENS-01,02,04,05,06 : types, description, badges, boutons Opé/Gouv, popup feat/gouvernance-modes # GOUV-01,02,03 : modes Libre/Agile/Holacratique + permissions + modal holacratique feat/gouvernance-evolutions # GOUV-04,05,06,14 : ThreadGovernanceEvolutions + useApplyGovernanceEvolutions + Valider directement + décisions # ⚠️ La plus longue de cette phase — prévoir 2 jours feat/gouvernance-regles-communes # GOUV-07,08 : renommage Décision + suppression champ rules UI Phase 3 — Réunions (Juillet, semaines 1-2) feat/meeting-step-types # REU-01 : nouveaux types d'étapes (Inclusion, Déclusion, Checklist, Indicateurs, NextSteps, Governance) # ⚠️ BDD + 4 patches GraphQL obligatoires feat/meeting-triage-operationnel # REU-02,07,08,10,11 : triage opé refonte, création inline, import, pré-remplissage, cerclesOnly feat/meeting-gouvernance-step # REU-03,GOUV-09,10,11,12,13 : étape gouvernance + fixes lecture seule + évolutions dans Traités Phase 4 — Prochains pas (Juillet, semaine 3) feat/next-steps-base # PP-01,02 : table BDD + page Prochains pas feat/next-steps-meeting # REU-05,06 : PP en réunion + layout Traités feat/next-steps-enriched # PP-03 à 08 : contrainte UNIQUE, saveNextStep, filtres, labels, fixes v12 Phase 5 — Tension opérationnelle enrichie (Juillet, semaine 4) feat/tension-authority-member # TENS-07,08,09 : authorityCircleId + memberId + BDD + GraphQL + UI + auto-remplissage # ⚠️ 4 fichiers GraphQL à patcher manuellement # REU-09 : membre dans "Traités" # PP-05,06 : filtres PP par mes rôles + assignés Phase 6 — Gouvernance asynchrone (Août, semaines 1-2) feat/governance-async-bdd # ASYNC-01 : tables governance_vote + governance_vote_token + permissions feat/governance-async-backend # ASYNC-02,03,04,05,06 : routes + trigger + crons feat/governance-async-frontend # ASYNC-07 à 13 : UI vote + asyncStatus + boutons + localStorage + filtres Phase 7 — Emails enrichis & Admin (Août, semaine 3) feat/emails-crons # EMAIL-01 à 07 : toutes les notifications + CR enrichi + flag summarySent + fix URLs crons feat/admin-dashboard # ADM-01,02,03,04 : tableau admin + impersonation + plans + export ISO feat/import-glassfrog # IMP-01 : importeur Glassfrog feat/integrations # INT-01,02 : Excalidraw + Meet UdN Phase 8 — Parité & Migration (Août, semaine 4 + Septembre) chore/parity-check # Vérification feature par feature vs UdN # Tests de non-régression complets (plan de test v12) chore/migration-script # Script SQL de migration BDD UdN → Yocoop # Tests sur environnement de staging chore/migration-production # Bascule finale (dimanche soir) # Monitoring post-migration Features proposables à Godefroy (pull requests) Ces features sont suffisamment génériques pour être proposées en PR upstream : Priorité haute — PR à ouvrir rapidement ORG-01 : Distinction visuelle cercle vs rôle — amélioration UX universelle TENS-01 : Types de tension (opé/gouv) — logique métier utile à tous GOUV-07 : Renommage Décision → Règle commune — plus explicite PP-01+02 : Table next_step + page Prochains pas — feature manquante dans le core EMAIL-02+03 : Rappel J-1 + CR réunion — fonctionnalité très demandée Priorité moyenne — PR après stabilisation GOUV-09 : Sauvegarde evolutionsData — fix bug important GOUV-10 : Tensions gouvernance validées lecture seule — UX cohérente ASYNC-01 à 13 : Gouvernance asynchrone complète — feature majeure REU-01 : Nouveaux types d'étapes — enrichissement réunions TENS-07 : Tension opé enrichie (autorité + responsable) — valeur métier forte Comment préparer une PR pour Godefroy Code propre, en anglais Textes UI via i18n (en.json + fr.json) Handlers avec préfixe handle Pas de hardcoding Test manual documenté Description claire du problème résolu Points d'attention techniques pour Yocoop Ce qu'on fait différemment de l'UdN (bonnes pratiques) i18n systématique — tout texte UI passe par fr.json + en.json Codegen local — WSL2 + nhost dev pour régénérer graphql.generated.ts proprement Branches feature/ — jamais committer directement sur main Tests avant merge — plan de test à jour pour chaque feature Handlers handle prefix — respecter les conventions RoleBase Chakra UI only — pas de CSS brut dans le webapp Ce qu'on garde du travail UdN Toute la logique métier est documentée dans les MD v1→v13 Les patches GraphQL sont documentés (on sait exactement quoi modifier) Les permissions Hasura sont documentées (filtres exacts) Les bugs connus et leurs solutions sont documentés Risques à anticiper Risque Mitigation Godefroy change des fichiers qu'on a aussi modifiés Merge conflicts → résoudre manuellement Codegen local génère un fichier différent de celui patché manuellement Vérifier diff + adapter BDD UdN vs BDD Yocoop désynchronisées Script migration exhaustif avec rollback Features UdN non testées sur Yocoop avant migration Plan de test complet Phase 8 Document généré le 30/05/2026 — RoleBase Yocoop — À utiliser avec Claude Code sur le VPS perso