11 KiB
G — Prompt dev final NAV V2
⚠ CE PROMPT EST MAINTENANT SPLITTÉ EN 3 SESSIONS DÉDIÉES Voir plus bas le statut d'avancement et les prompts de reprise.
État d'avancement (dernière MAJ : 2026-04-14)
[✓] Session 1 — Setup + Fondations (terminée 2026-04-14)
├── VPS setup (token nav-v2-worker, crawl4ai 0.8.6, .env)
├── Schéma NocoDB (organisations +19 champs, stats_usage créée)
├── Parsing A-biblio (93 entités, 72 géocodées)
├── Taxonomie révisée (10 fonctions, 3 échelles)
├── Palette figée (palette-nav-v2.md)
└── 96 fiches importées (bypass modération), 3 réservées test pipe IA
[⏸] Session 2 — Front (à lancer)
→ Prompt : H-prompt-session-2-front.md
→ Durée : 6-8h
→ Étapes : carte Leaflet + sidebar + fiche + formulaire soumission
[⏸] Session 3 — IA + Deploy (à lancer après S2)
→ Prompt : I-prompt-session-3-ia-deploy.md
→ Durée : 6-8h
→ Étapes : worker Mistral Nemo + chatbot + bandeau + /a-propos + deploy
Décisions validées Session 1
- Palette : A sobre institutionnel + bleu nuit #1a2238 à 60% opacité partout (cf.
palette-nav-v2.md) - Taxonomie :
- Échelle (3) : National / Régional (inclut Départemental) / Local
- Territoire : Métropole + 5 DOM-TOM (enrichissement ultérieur)
- Fonctions (10) : Juridique, Technique, Économique, Administratif, Chantier, Comptabilité, Développement (ex-Prospection), Formation (nouveau), Gestion d'agence (ex-RH élargi), Santé mentale
- Liberapay :
liberapay.com/trans-former.fr, transparence origine dans/a-propos - From email modération :
contact@trans-former.fr - Seed : bypass pour 96 fiches, 3 réservées test pipe IA en S3 (CNOA National, Archireport, Collectif Fil)
- Circuit breaker 20€ dépassé → bandeau "manque de fonds" + pédagogie "1€ = N requêtes"
- CNOA : 1 fiche National + 13 CROA Régional (antennes pins secondaires reportées V3)
Points ouverts (cf. JOURNAL-V2.md)
- Rate limit chatbot (Session 2) : fichier JSON vs Redis
- Seuil email modération (Session 3) : reco 5 fiches pending
- Facteur CO2eq : 0.052 (RTE FR) ou 0.055 (ADEME 2024)
- MCP nocodb à reconfigurer (URL de base incorrecte)
- Conflit
richaprès install crawl4ai : vérifier si lightrag impacté
⬇ PROMPT ORIGINAL CI-DESSOUS ⬇
Conservé pour référence. Ne PAS relancer en bloc — utiliser H et I pour les sessions suivantes.
À lancer en session Claude Code dédiée, modèle Opus, avec autorisation de déléguer à des sous-agents Sonnet. Autonomie : 7/10 (2 checkpoints Jules : validation palette + review fiche seed test). Durée estimée : 20-28h (worker + front + deploy + tests). Prérequis humains : Mistral key créée, Liberapay créé, ssh vps-hetzner OK.
Mission
Coder NAV V2 à partir des specs produites. La V2 ajoute à la V1 existante :
- Carte de France interactive (Leaflet + OSM)
- Sidebar filtres (échelle + fonction)
- Page fiche détaillée partageable (
/fiche/[id]) - Worker IA async qui enrichit les soumissions (Mistral Nemo)
- Chatbot recherche sémantique (Mistral Small)
- Filtre éthique commentaires
- Bandeau bas stats (coût IA + dons + activité)
- Onglets territoire (Métropole / Outre-mer)
Stack : Nuxt 3 + Tailwind + Leaflet + NocoDB + Mistral direct + Resend.
Fichiers de référence (à LIRE en premier)
Tous dans C:\Users\jules\Dropbox\ATIS - IPCJRA\0 INBOX\NAV-V2-recherches\ :
A-biblio-ecosysteme-archi.md— 94 entités seed à importerB-provider-ia-souverain.md— Mistral Nemo + Small, circuit breaker 20€/moisC-systeme-dons.md— Liberapay widgetE-spec-frontend.md— Wireframes ASCII, 28 composants, routes, statesF-spec-pipe-collaboration.md— Schéma DB, prompts IA, endpoints, fallbacksVPS-check.md— NocoDB 0.301.5, Resend SMTP, crawl4ai à installer
Fichier V1 existant :
1 PROJETS/TECH - infra VPS, website pro, RAG/nav-carte/(code Nuxt V1)
Credentials & endpoints
VPS : ssh vps-hetzner (port 4422)
NocoDB : http://localhost:8070 (interne VPS)
Base : pipilvsi7dibo80
Table orgas : m08t7g5v4wch6wb
Table avis : m4hub7cdutgec47
Token V1 : e9rUEwfUrE7mo_am0QAytwM0vCbwh4o0sisZIbHl
→ Créer un NOUVEAU token "nav-v2-worker" au premier démarrage
Mistral : api.mistral.ai (key Scale, stockée côté Jules)
Resend : smtp.resend.com:465 (password dans /opt/vps-kit/.env)
Deploy : /opt/nav-carte/ (systemd nav-carte.service)
Domaine : nav.trans-former.fr
Arbitrages tranchés (ne pas remettre en cause)
Taxonomie :
- Échelle (mono, obligatoire) : National / Régional / Départemental / Local
- Fonction (multi 1-5, ordre=priorité) : Juridique / Technique / Économique / Administratif / Chantier / Comptabilité / Prospection / RH / Santé mentale
- Territoire (séparé) : Métropole + 5 DOM-TOM
UX :
- Fiche = page dédiée
/fiche/[id] - Chatbot = bottom-sheet (mobile ET desktop)
- Onglets territoire = toggle Métropole/Outre-mer → sous-onglets DOM-TOM
- Formulaire = HTML custom Nuxt (pas Tally)
- Libs UI : Headless UI + Tailwind
- Filtres encodés dans URL (
?echelle=...&fonctions=...&territoire=...) - Filtrage côté client (< 300 fiches)
Stack IA :
- Mistral Nemo pour worker enrichissement + filtre éthique commentaires
- Mistral Small pour chatbot recherche
- Circuit breaker 20€/mois (table
stats_usage+ check avant chaque call) - Chat completions API classique, pas Mistral Agents
Système don :
- Liberapay (widget embed dans bandeau bas)
- URL : liberapay.com/nav-archi (à confirmer avec Jules)
Étapes
Étape 0 — Setup (30 min)
- SSH VPS, vérifier NocoDB + Resend
- Créer un token NocoDB dédié "nav-v2-worker"
- Installer crawl4ai :
docker run ... crawl4aiOUpip install crawl4aiselon l'environnement VPS - Demander à Jules :
- La Mistral API key (stockée en
.envsur VPS, jamais commitée) - L'URL Liberapay finale
- La Mistral API key (stockée en
- CHECKPOINT Jules : proposer 3 palettes design (sobre / chaleureux / moderne) avec mockups colorés → validation
Étape 1 — Schéma NocoDB (30 min)
- Étendre la table orgas avec les nouveaux champs (cf. F §2)
- Créer table
stats_usage(circuit breaker IA) - Créer table
scrape_queuesi besoin - Test : insert/update via API token
Étape 2 — Front carte + sidebar (3-4h)
- Installer vue-leaflet, Headless UI
- Composants :
NavMap,NavSidebar,EchelleFilter,FonctionFilter,TerritoireToggle - Wrapper Leaflet dans
<ClientOnly>(SSR Nuxt) - Géocoder les 94 fiches seed (Nominatim, batch script)
- Filtres encodés dans URL
- Responsive : drawer mobile, sidebar 320px desktop
Étape 3 — Page fiche + commentaires (2-3h)
- Route
/fiche/[id]avec SSR - Composants :
FicheDetail,CommentSection,CommentForm - API :
GET /api/fiche/[id],POST /api/comment - Filtre éthique commentaire sync (Mistral Nemo, < 2s)
- Meta SEO (title, description, og:image)
- Bouton retour carte avec restauration filtres (query params)
Étape 4 — Worker IA enrichissement (4-5h)
- Script Node.js
worker/enrich.js(cron systemd toutes les 5 min) - Pipeline : fetch pending → scrape (crawl4ai, timeout 3min) → Mistral Nemo → update NocoDB
- Prompts exacts de F §3
- Troncature contenu scrapé à 4k tokens avant prompt
- Logs usage → table
stats_usage - Circuit breaker 20€ (check avant chaque call)
- Email Jules (Resend) quand N fiches en attente modération
- Fallback scrape échoué : flag
scrape_failed, review manuel
Étape 5 — Chatbot recherche (3-4h)
- Composant
ChatbotSheet(bottom-sheet, Headless UI) - Message onboarding (texte exact de E §6)
- Template requête (besoin / thématique / lieu)
- API
POST /api/chatbot: Mistral Small + contexte JSON fiches - Rate limit : 10 req/IP/jour (stockage fichier JSON ou Redis)
- Affichage résultats : fiches + explication 1-2 lignes
Étape 6 — Formulaire soumission (2h)
- Composant
SubmitModalou page/contribuer - Validation Zod côté client + serveur
- Champs : nom, URL, desc, échelle, fonctions (1-5), territoire, ville, email
- Message post-submit (E §9)
- Rate limit : 3/IP/jour
Étape 7 — Bandeau bas + Liberapay (1-2h)
- Composant
BandeauBas - Gauche : data depuis
stats_usage(coût mois, tokens, carbone estimé) - Milieu : bouton "Soutenir NAV" → Liberapay
- Droite : compteurs semaine (dons, nouvelles fiches, requêtes)
- Carbone estimé : kWh × 0.052 kg CO2eq/kWh (facteur FR RTE)
Étape 8 — Page /a-propos (1h)
- Contenu : NAV, souveraineté, gouvernance, transparence
- Badges "IA souveraine", "Hébergé en France", "Zéro cookie US"
- Lien vers formulaire + Liberapay
Étape 9 — Deploy + tests (2-3h)
- Build production
- Deploy via git pull + pm2/systemd restart
- Vérifier DNS, HTTPS (Caddy déjà config)
- CHECKPOINT Jules : soumettre une fiche test → vérifier pipeline IA → valider → voir sur carte
- Tester chatbot avec requête réelle
- Tester mobile (iOS Safari + Android Chrome)
Étape 10 — Import seed 94 fiches (1h)
- Script import : parser
A-biblio-ecosysteme-archi.md - Pour chaque entité : créer en NocoDB avec status
published(bypass modération pour seed) - Géocoder ville via Nominatim
- Vérifier que les marqueurs apparaissent sur la carte
Délégation
Tu peux (et dois) déléguer les sous-tâches indépendantes à des sous-agents Sonnet. Exemples :
- Sonnet 1 : setup NocoDB (étape 1) + géocoding seed
- Sonnet 2 : composants front carte + sidebar (étape 2)
- Sonnet 3 : worker IA (étape 4)
- Sonnet 4 : chatbot (étape 5)
Toi (Opus) = pilote :
- Arbitrages design + UX
- Checkpoints Jules
- Assemblage final + deploy
- Debug quand ça coince
Règles
- Mobile-first, testé à chaque étape
- Français avec accents partout (UI + code comments)
- Pas de Google Fonts externe (self-hosted ou system font)
- Pas de librairie UI lourde (Vuetify, Quasar) — Tailwind + Headless UI uniquement
- Commits atomiques par étape (ex:
feat(front): carte Leaflet + sidebar filters) - Secrets via
.envsur VPS, jamais dans le code - Si un point bloque > 30 min → reporter dans le journal de session et demander Jules
- Tester le pipeline IA complet sur 1 fiche avant de scaler
Output attendu
- V2 déployée sur nav.trans-former.fr
- 94 fiches seed visibles sur la carte
- Worker IA qui tourne (cron 5 min)
- Chatbot fonctionnel
- Bandeau bas avec stats en temps réel
- Liberapay relié
- Journal de session
/1 PROJETS/TECH - infra VPS.../nav-carte/JOURNAL-V2.mdavec :- Temps passé par étape
- Décisions techniques prises
- Points bloquants rencontrés
- TODOs V3
Questions ouvertes (à trancher par Jules AVANT lancement)
- Palette design : sobre / chaleureux / moderne ? (checkpoint étape 0)
- URL Liberapay finale :
nav-archioutrans-former? - From email modération :
newsletter@trans-former.fr(existant Resend) ou créernav@trans-former.fr? - Seed fiches : bypass modération IA pour les 94 (publication directe) ou les passer dans la pipe pour tester ? → Reco : bypass pour rapidité, passer 2-3 fiches dans la pipe en test