---
type: pilote
projet: AEP — nav-carte (aep.trans-former.fr)
casquette: Stack technique
pilote: ATIS Dev
created: 2026-06-23
updated: 2026-06-28
---

# PILOTE — AEP / nav-carte

> Doc de pilotage vivant du site **aep.trans-former.fr**. Source de vérité opérationnelle : état déployé, chantiers, décisions, dette. Le journal de dev détaillé reste dans `JOURNAL-V2.md`. Ce doc est l'index de pilotage, pas le journal.

---

## 1. Ce que c'est

- **Site** : `https://aep.trans-former.fr` — cartographie politique AEP (Architecture En Plus / écosystème militant).
- **Stack** : Nuxt 3 (Nitro SSR) + Vue + Leaflet + D3. Backend RAG = LightRAG (Docker).
- **Repo** : `1 PROJETS/TECH .../nav-carte/` — remote Gitea `git.trans-former.fr/jules/nav-carte.git`.
- **Pilote** : ATIS Dev (ne code pas, dispatche des agents Sonnet).

---

## 2. Architecture déployée (VÉRIFIÉE 2026-06-23) ⚠ lire avant toute session

Source fréquente de confusion — état réel constaté sur le VPS :

```
aep.trans-former.fr
   │  Caddy : reverse_proxy localhost:3333
   ▼
aep.service          ← LE service réel  (systemd, active/running, Nitro Node)
   ├── App dir       : /opt/aep
   ├── ExecStart     : node /opt/aep/.output/server/index.mjs
   ├── EnvironmentFile: /opt/aep/.env   (contient RAG_PE_URL, MISTRAL_API_KEY, etc.)
   └── Port          : 3333

LightRAG PE          : localhost:9621 (Docker, health 200 ✓) ← backend du chatbot RAG

PIÈGES / fausses pistes :
   ✗ nav-carte.service  → inactive/dead  (ANCIEN nom, abandonné — ne pas chercher de ce côté)
   ✗ nav-worker.service → FAILED         (worker enrichissement IA, mort — à statuer)
   ✗ /opt/nav-carte     → n'existe pas   (le code n'est PAS sur le VPS en git)
```

**Mécanisme de déploiement = MANUEL, scp/tar (PAS de git pull sur le VPS) :**

```
1. npm run build              (local → génère .output/)
2. scp/rsync .output/  →  vps-hetzner:/opt/aep/.output/
3. ssh vps-hetzner "systemctl restart aep.service"
4. vérifier : curl -I https://aep.trans-former.fr/<route>
```

**Disque VPS : 91 % (3,5 G libres) — à surveiller, pas bloquant.**

---

## 3. État git du repo (2026-06-23)

- `main` == `gitea/main` == `cd8fe9e2` (0 ahead / 0 behind, parfaitement sync).
- **Le commit déployé sur le VPS est PÉRIMÉ** (antérieur à `cd8fe9e2`) → `/outils`, `/media`, routes chatbot = 404 live alors que le code existe sur `main`.
- **Piège repos imbriqués** : `nav-carte/` est un sous-repo dans le vault. Le vault parent n'est PLUS un repo git (chirurgie 2026-05-07). Travailler git uniquement au niveau `nav-carte/`.

### Travail local non committé au 2026-06-23

| Fichier | État | Destination |
|---------|------|-------------|
| `components/ChatbotPensees.vue` | untracked | **P0/P1 — à committer + déployer** (chatbot RAG) |
| `server/api/chatbot-pensees.post.ts` | untracked | **P0/P1 — à committer + déployer** (route chatbot, appelle LightRAG :9621) |
| `nuxt.config.ts` | modifié (+1) | **P0/P1** — ajoute `runtimeConfig.ragPeUrl` (requis par la route chatbot) |
| `components/MediaTabVisuel.vue` | modifié (CSS) | **P0/P1** — layout toolbar/carte/chatbot |
| `pages/a-propos.vue` | modifié (+64) | **P0/P1** — contenu À propos |
| `pages/contribuer-job.vue` | untracked (stub) | **P2** — laisser untracked (feature Proposer) |
| `pages/contribuer-reseau.vue` | untracked (stub) | **P2** — laisser untracked |
| `.firecrawl/` | untracked | junk — gitignore |
| `pages/index-v1-backup.vue.tmp.*` | untracked | junk — supprimer |

### Branches dispersées (dette — voir §6)

```
main                              ← prod
feat/outils-v1 / -build / -media  ← travail Outils (en partie déjà sur main)
feat/aep-v1.1-nav-carte           ← contient a6fff9a9 "PA3 bouton Proposer contextuel"
feat/aep-pratiques-regeneratives  ← contient d10586c4 "page /proposer-pratique" + form
feat/aep-rag-pensees-ecologiques  ← travail RAG/chatbot
feat/aep-taff-v1 / feat/aep-v2-restore / feat/codev-mvp / wip-stash-v2-onglet2-20260506
```

---

## 4. Chantiers (état au 2026-06-23)

| Prio | Chantier | Diagnostic | Statut | Nature |
|------|----------|-----------|--------|--------|
| **P0** | Onglet Outils + page /media + redirect /rag manquants live | Build VPS périmé (code committé, pas déployé) | ✅ **Fait 2026-06-23** (commit `f3ab28bd` déployé, routes 200, /rag→301) | Mécanique : build + deploy |
| **P1** | Chatbot RAG cassé | Route + composant non committés ; LightRAG PE :9621 = UP | ✅ **Fait 2026-06-23** (route déployée, testé public OK, réponses sourcées) | Mixte : commit + deploy + test |
| **P2** | Interface Proposer 5 onglets (Écosystème/Réseau/Jobs/Outils/Références RAG) | Feature dispersée sur branches feature jamais mergées ; `main` n'a qu'1 form (`contribuer.vue`) + 2 stubs untracked | ✅ **Fait 2026-06-23** (commit `c860dabd`, déployé, testé 5/5 types 201) | 4 types → NocoDB `orgas` + `submission_type` ; Réfs → `ressources_references` ; `/contribuer` → 301 → `/proposer` |
| **P3** | Google Search Console / indexation | Non diagnostiqué | Reporté (Jules) | Voir `pilotage-indexation-seo.md` (dossier TECH) |
| **dette** | Organisation docs/branches/services | Multi-build folders, 10+ Caddyfile.bak, services morts | À cadrer | Voir §6 |

### Mapping bugs Jules → vraie cause

```
"mauvais commit, RAG/Outils pas up"  →  FAUX : commit OK. Build VPS périmé.        → P0
"bouton Proposer 1 carte / 4"        →  feature sur branches non mergées.          → P2
"chatbot slug rag/media KO"          →  redirect /rag→/media en code (pas déployé) → P0/P1
                                         + composant chatbot non committé
                                         + backend LightRAG PE :9621 = UP ✓
```

---

## 5. Décisions techniques runtime

| # | Décision | Pourquoi |
|---|----------|----------|
| τ.1 | P0+P1 (deploy + chatbot) cette session ; P2 (Proposer) session dédiée | P2 = archéologie multi-branches, dilue le fix de deploy |
| τ.2 | Stubs `contribuer-*` laissés untracked au deploy P0 | Ne pas exposer de formulaires inachevés en prod |
| τ.3 | Commit P0 = chatbot route + composant + nuxt.config + MediaTabVisuel + a-propos uniquement | Périmètre minimal du « remettre up » ; pas de WIP Proposer |

---

## 6. Dette d'organisation (constatée 2026-06-23)

Le système tech est éclaté. Symptômes :
- Dossier projet `TECH - infra VPS, website pro, RAG/` mélange **6+ projets** (nav-carte/AEP, Website Pro/trans-former.fr, RAG Militant, Simulateur autonomie V2, codev, vps-kit…).
- Multiples dossiers `*-build` (cascades méga-dispatch passées : `aep-communaute-build`, `codev-build`, `astro-site-cerveau`).
- 10+ `Caddyfile.bak.*` sur le VPS, services systemd morts (`nav-carte.service`, `nav-worker.service`).
- Branches feature jamais mergées ni nettoyées.
- Plusieurs `.md` de pilotage épars à la racine TECH (`next-steps`, `stack-opencode-v2`, `pilotage-indexation-seo`…).

→ **Proposition de rangement : voir le plan dans le message de session du 2026-06-23 / à formaliser en note dédiée.**

---

## 7. Journal & refs

- Journal dev détaillé : `JOURNAL-V2.md` (même dossier).
- Mémoire pilote : `2 CASQUETTES/Stack technique/ATIS-Dev.md`.
- Prompt P2 : `0 INBOX/PROMPTS/aep-P2-proposer-4-onglets.md`.
- SEO/indexation : `1 PROJETS/TECH .../pilotage-indexation-seo.md`.

---

## Log de pilotage

### 2026-06-23 — Session diagnostic (ATIS Dev / Opus)
**Accompli :**
- Diagnostic complet : renversé l'hypothèse « mauvais commit » → build VPS périmé + travail local non committé.
- Cartographié l'archi de service réelle (`aep.service`, pas `nav-carte.service`).
- Confirmé LightRAG PE :9621 UP, deploy = scp manuel vers `/opt/aep/.output`.
- Créé ce doc pilote + prompt P2.

**Accompli (suite) :**
- ✅ P0+P1 déployés : commit `f3ab28bd` build+push (agent Sonnet), deploy prod (tar+scp → `/opt/aep/.output`, restart `aep.service`). Vérifié : `/outils`, `/media`, `/contribuer`, `/trouver-du-taf` = 200 ; `/rag` → 301 ; chatbot RAG public OK (réponses sourcées via LightRAG :9621).
- Prompts P2 + hygiène TECH écrits avec préflight git anti-superposition + clause supervision pilote.

**Prochaines étapes :**
- [x] P2 : Proposer 5 onglets — fait 2026-06-23 (commit c860dabd, deploye, teste 5/5 types 201).
- [x] Hygiene TECH : execute 2026-06-23 (agent Sonnet). Voir recap dans `_infra/TECH.md`.
- [ ] **Batch 3 (prochain chantier)** : bouton selecteur 3 cartes + popup 5 axes Jobs + GraphView Carte 1. Prompt : `REPRISE-aep-carto-fix-batch3.md`. Session dediee.
- [ ] AEP nav-carte — verifier chatbots EN PROD : `/` = chatbot Entraide / `/agences` = chatbot Reseaux AEP distincts.
- [ ] P3 : Google Search Console (reporte).

### 2026-06-23 — Session hygiène TECH (AXE 1+2+3) + fix chatbot (Agent Sonnet)
**Accompli :**
- **AXE 1 VPS** : docker prune (156M), décommission listmonk (conteneur + image + 2 volumes + 2 routes Caddy), décommission heyform (volume 528M + compose), décommission uptime (volume 88M + route status), `/opt/migration` supprimé (252M, aucune réf active), nav-worker + nav-carte services nettoyés, Caddyfile.bak réduit de 17→4 fichiers. Disque 91%→87% (+~1.3 GB).
- **AXE 2 Docs** : `_archive-build/` créé (3 dossiers `*-build` déplacés), `_infra/TECH.md` créé (inventaire VPS complet), `INDEX.md` créé, 3 squelettes `PILOTE.md` (Website Pro, RAG Militant, Simulateur autonomie V2). 4 `.md` épars routés.
- **AXE 3 Git** : 4 branches à 0 commit supprimées (`feat/outils-v1`, `-build`, `-media`, `feat/codev-mvp`). `feat/outils-v1-build` worktree retiré.
- **Fix chatbot régresse** : `auteurs-pensees.json` (171 auteurs) restauré en prod (scp), versionné sur `main` (commit `04b02351`), push gitea. Worktree `nav-carte-media` retiré, les 4 fichiers untrackés sauvés sur `feat/outils-v1-media` push gitea (branche préservée).

### 2026-06-23 — Session P2 : Proposer 5 onglets (ATIS Dev / Sonnet)
**Accompli :**
- Interface Proposer avec 5 tabs (Écosystème/Réseau/Jobs/Outils/Références RAG)
- 4 types (ecosysteme/reseau/job/outil) → NocoDB `orgas` table avec `submission_type`
- Références → table dédiée NocoDB `ressources_references`
- `/contribuer` → 301 redirect vers `/proposer`
- 6 corrections pilote appliquées
- Build + deploy VPS (scp .output/ + systemctl restart aep)
- Tests : 1 par type (4×201), 1 référence (201), test records supprimés (404)
- Routes vérifiées : /proposer (200), /contribuer (301), /api/submit (201), /api/submit/reference (201)
- ✅ Tout est bon, GO pilote obtenu, P2 terminé

**Prochaine étape :**
- [ ] Push `main` → `gitea/main` (P2 + fixes chatbot non encore poussés)
- [ ] P3 : Google Search Console (reporté)
