CartoGroov
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/ MDvXXet à 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 dansfr.json(102 valeurs, accords de genre inclus ;en.jsoninchangé ; 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.jsonest désormais dansYOCOOP_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 (voirrolebase-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 |
| — | — | — | ❌ 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.tsproprement - Branches feature/ — jamais committer directement sur main
- Tests avant merge — plan de test à jour pour chaque feature
- Handlers
handleprefix — 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
Embarquement CartoGroov
Diag
Embarquement équipe
Interface graphique
Organisation : role / cercle, indicateur / cheklist / noters / politiques
Tensions opé / gouv
Projets
Prochains pas
Paramètre de l'organisation
Réunion : modèle et déroulé
Mails paramétrage
Les différentes étapes