Files
nav-carte/V2-cadrage/N-prompt-session-taxonomie-carte-unifiee.md
2026-04-28 14:00:05 +02:00

175 lines
7.2 KiB
Markdown

# N — Session : Taxonomie v2 + Carte unifiée AEP
> **À lancer APRÈS déploiement prod V2 stable.**
> Bundle : refonte taxonomie + refonte zone carte + hiérarchie racine/antennes.
> Modèle : Opus pilote + délégation Sonnet.
> Durée estimée : 6-8h.
## Mission
Refonte de l'architecture navigation + taxonomie AEP pour supporter :
1. 2 modes d'usage (Entraide / Pratiques inspirantes) + prévoir 3ème futur (Bibliothèque RAG)
2. Hiérarchie racine/antennes (CNOA/CROA, CAUE, syndicats…)
3. Affichage unifié Métropole + DOM-TOM (plus d'onglet territoire)
## Contexte
- Racine : `nav-carte/`
- Spec Session 2 : `V2-cadrage/H-prompt-session-2-front.md` (bloc État d'avancement)
- Journal : `JOURNAL-V2.md`
- Session 2 livre le front complet (desktop + mobile), déployé en prod
## 3 chantiers
### CHANTIER 1 — Onglets top : modes d'usage
Remplacer les onglets `Métropole | Outre-mer` par :
```
[ 🤝 Entraide ] [ ✨ Pratiques inspirantes ] [ 📚 Bibliothèque RAG ]
actif actif (MVP) disabled (S4+)
```
**Mode Entraide (défaut)** :
- Sidebar : échelle + fonctions (10 actuelles) + territoires
- Types affichés : Institution, Association, Syndicat, Formation, Média
- Logique : "J'ai besoin d'aide, où je trouve ?"
**Mode Pratiques inspirantes** :
- Sidebar : postures (multi-tag) + régions + fonctions secondaires
- Types affichés : Agence, Entreprise
- Logique : "Qui fait des choses qui m'inspirent ?"
**Mode Bibliothèque RAG** :
- Onglet visible mais désactivé (tooltip "à venir")
- Placeholder pour future intégration LightRAG/QMD
URL sync : `?mode=entraide|pratiques|rag`
### CHANTIER 2 — Nouvelle taxonomie
#### Dimension "Type d'organisation" (nouveau, required)
Ajout colonne NocoDB `type_organisation` (enum) :
- `institution` — CNOA, CAUE, ordres
- `association` — UNSFA, CNAJEP, assos thématiques
- `syndicat` — syndicats pro
- `agence` — agences d'archi / entreprises privées
- `formation` — ENSA, écoles
- `media` — AOC, magazines spécialisés
- `autre` — catch-all
Migration : assigner manuellement aux 96 fiches seed (mapping ~30 min, faire en script Python ou UI NocoDB).
#### Dimension "Postures" (nouveau, optional, multi)
Ajout colonne NocoDB `postures` (multi-select) :
- `regenerative` — Pratique régénérative
- `bas-carbone` — Bas carbone
- `cooperative` — SCOP / Coopérative
- `patrimoine` — Patrimoine / réhabilitation
- `ecoconstruction` — Écoconstruction
- `low-tech` — Low-tech
- `participatif` — Habitat participatif
- (liste évolutive — documenter le vocabulaire dans JOURNAL)
**Critères de sélection** (à définir avec Jules) : viser le **vérifiable** (signature charte X, labellisation Y, mention dans source Z) plutôt que le subjectif. Piste pour éviter la "guéguerre" politique.
#### Hiérarchie racine/antennes (cf. prompt L existant)
Ajout `parent_id` (FK nullable) + `is_root` (bool). Mapping CROA→CNOA, CAUE→Réseau CAUE.
### CHANTIER 3 — Carte unifiée (remplace tabs Métropole/Outre-mer)
Layout zone carte :
```
┌─────────────────────────────────┬──────────────┐
│ │ Guadeloupe │
│ │ mini-Leaflet│
│ ├──────────────┤
│ FRANCE MÉTROPOLE │ Martinique │
│ (Leaflet principal) │ mini-Leaflet│
│ ~2/3 largeur zone carte ├──────────────┤
│ │ Guyane │
│ │ mini-Leaflet│
│ ├──────────────┤
│ │ La Réunion │
│ │ mini-Leaflet│
│ ├──────────────┤
│ │ Mayotte │ ← à confirmer Jules (4 ou 5 ?)
│ │ mini-Leaflet│
└─────────────────────────────────┴──────────────┘
```
- Sidebar DOM-TOM à droite : colonne scrollable avec mini-cartes Leaflet (~160-180px hauteur chacune)
- Chaque mini-carte = vue centrée + zoomée sur son territoire avec ses pins propres
- Click sur pin OU card fiche (sidebar gauche) → centre la carte pertinente (principale ou mini)
- Titre au-dessus de chaque mini : "Guadeloupe", etc.
- Responsive mobile :
- Métropole en haut pleine largeur
- Mini-cartes DOM-TOM empilées dessous, scroll vertical
Suppression de `TerritoireTabs.vue` + `OutremerMap.vue` refactoré.
## Livrables
- [ ] Migration schéma NocoDB : `type_organisation`, `postures`, `parent_id`, `is_root`
- [ ] Mapping seed 96 fiches (script ou UI)
- [ ] Composants :
- `ModeTabs.vue` (3 onglets top, RAG disabled)
- `TypeFilter.vue` (selon mode actif)
- `PostureFilter.vue` (mode Pratiques)
- `DomTomSidebar.vue` (mini-cartes droite)
- `FicheRacineHeader.vue`, `BreadcrumbReseau.vue` (hiérarchie, cf. L)
- [ ] Adaptation sidebar selon mode (filtres différents)
- [ ] Adaptation NavMap : layout 2/3 + 1/3 DOM-TOM
- [ ] Pin racine (safran) vs antenne (bleu) sur carte
- [ ] Backward compat : fiches sans type/postures continuent à fonctionner (fallback "autre")
- [ ] Tests manuels : changement mode, filtrage par type/posture, hiérarchie CNOA→CROA, affichage DOM-TOM unifié
## Règles
- Accents français
- Palette stricte (`palette-nav-v2.md`)
- Mobile-first
- Pas de régression S2
- Commits atomiques par chantier (T1, T2, T3)
- Update `JOURNAL-V2.md`
## Délégation (Opus pilote)
| Sous-agent | Tâche | Modèle |
|-----------|-------|--------|
| Sonnet 1 | Migration schéma + mapping seed | Sonnet |
| Sonnet 2 | Onglets top + adaptation sidebar selon mode | Sonnet |
| Sonnet 3 | Carte unifiée (layout + DomTomSidebar) | Sonnet |
| Sonnet 4 (optionnel) | Hiérarchie UI (breadcrumb, bandeau racine) | Sonnet |
Parallélisation : Sonnet 1 d'abord (schéma), puis Sonnet 2+3+4 en parallèle.
## Critère de fin
- 3 onglets visibles, Entraide et Pratiques commutent la logique filtres+types
- Type et Postures filtrables, fiches seed migrées
- Carte unifiée : Métropole + 5 (ou 4) DOM-TOM visibles simultanément
- Hiérarchie fonctionnelle (CNOA → CROA-IDF → retour CNOA)
- Aucune régression S2 (recherche, filtres existants, /fiche, /contribuer)
- `npm run build` clean
- Commits poussés
- JOURNAL V2 à jour
## Questions à trancher avec Jules AVANT dispatch
1. **4 ou 5 DOM-TOM** ? (Guadeloupe, Martinique, Guyane, La Réunion, Mayotte = 5 ; Jules a mentionné 4)
2. **Critères Postures vérifiables** : liste des labels/chartes/sources faisant foi ?
3. **Fonctions du mode Pratiques** : garde-t-on les 10 fonctions ou on simplifie ?
4. **Modération** : fiches type "agence" passent-elles par le même workflow `pending` ou filtre plus strict ?
## Hors scope (Session 3)
- Worker IA enrichissement (parse URL + Mistral)
- Chatbot live
- Bibliothèque RAG (vectorisation + interface query)
- Déploiement final prod post-taxonomie