Files
nav-carte/V2-cadrage/G-prompt-dev-final.md
2026-04-28 14:00:05 +02:00

11 KiB
Raw Blame History

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 rich aprè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 :

  1. Carte de France interactive (Leaflet + OSM)
  2. Sidebar filtres (échelle + fonction)
  3. Page fiche détaillée partageable (/fiche/[id])
  4. Worker IA async qui enrichit les soumissions (Mistral Nemo)
  5. Chatbot recherche sémantique (Mistral Small)
  6. Filtre éthique commentaires
  7. Bandeau bas stats (coût IA + dons + activité)
  8. 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\ :

  1. A-biblio-ecosysteme-archi.md — 94 entités seed à importer
  2. B-provider-ia-souverain.md — Mistral Nemo + Small, circuit breaker 20€/mois
  3. C-systeme-dons.md — Liberapay widget
  4. E-spec-frontend.md — Wireframes ASCII, 28 composants, routes, states
  5. F-spec-pipe-collaboration.md — Schéma DB, prompts IA, endpoints, fallbacks
  6. VPS-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 ... crawl4ai OU pip install crawl4ai selon l'environnement VPS
  • Demander à Jules :
    • La Mistral API key (stockée en .env sur VPS, jamais commitée)
    • L'URL Liberapay finale
  • 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_queue si 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 SubmitModal ou 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 .env sur 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

  1. V2 déployée sur nav.trans-former.fr
  2. 94 fiches seed visibles sur la carte
  3. Worker IA qui tourne (cron 5 min)
  4. Chatbot fonctionnel
  5. Bandeau bas avec stats en temps réel
  6. Liberapay relié
  7. Journal de session /1 PROJETS/TECH - infra VPS.../nav-carte/JOURNAL-V2.md avec :
    • Temps passé par étape
    • Décisions techniques prises
    • Points bloquants rencontrés
    • TODOs V3

Questions ouvertes (à trancher par Jules AVANT lancement)

  1. Palette design : sobre / chaleureux / moderne ? (checkpoint étape 0)
  2. URL Liberapay finale : nav-archi ou trans-former ?
  3. From email modération : newsletter@trans-former.fr (existant Resend) ou créer nav@trans-former.fr ?
  4. 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