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
- 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