# J — Prompt Sonnet 2 : Page fiche détaillée + commentaires

> **Lancer APRÈS validation checkpoint étape 2 (Sonnet 1).**
> Peut tourner en **parallèle avec Sonnet 3** (étape 6 contribuer) — pas de conflit attendu sur les fichiers.

## Mission

Construire la page fiche détaillée `/fiche/[id]` + section commentaires modérés.

## Contexte (lis AVANT)

**Racine projet** : `nav-carte/`

Specs (toutes dans `nav-carte/V2-cadrage/`) :
1. Spec session : `H-prompt-session-2-front.md` (section "Étape 3")
2. Wireframes : `E-spec-frontend.md` (page fiche)
3. Pipe collaboration / modération : `F-spec-pipe-collaboration.md` §3 (filtre éthique Mistral Nemo)
4. Palette : `palette-nav-v2.md`
5. Schéma DB : `F-spec-pipe-collaboration.md` §2

Code base :
- `nav-carte/pages/fiche/` (squelette V1 à enrichir)
- `nav-carte/components/OrgCard.vue` (réutilisable pour card en haut)
- `nav-carte/server/routes/` (proxy NocoDB existant)
- Note Sonnet 1 (à lire dans JOURNAL-V2.md) : conventions composants + résolutions de conflits

## Livrables

- [ ] Route SSR : `/fiche/[id]`
- [ ] Composants :
  - `FicheDetail.vue` — affichage complet : nom, `description_enrichie` si dispo sinon `description_user`, tags fonctions, échelle, territoire, URL, localisation (mini-carte Leaflet)
  - `CommentSection.vue` — liste commentaires `moderation_status: approved`, tri chronologique
  - `CommentForm.vue` — formulaire (nom + email + commentaire 50-500 chars) + submit API
- [ ] API endpoints :
  - `GET /api/fiche/[id]` — proxy NocoDB
  - `POST /api/comment` — filtre éthique Mistral Nemo synchrone (timeout 2s, fallback : `moderation_status: pending` si timeout). Cf. F §3.
- [ ] Méta SEO dynamiques : `<title>{nom} — NAV`, description (extrait description), og:image (logo par défaut)
- [ ] Bouton "← retour carte" qui restaure les query params filtres
- [ ] Rate limit POST commentaire : Redis (cf. Sonnet 3 si déjà en place, sinon coordonner)

## Règles

- Accents français
- Palette respectée
- Mobile-first
- Pas de Google Fonts
- Pas de modif schéma NocoDB
- Pas de touche à : carte index, sidebar filtres, formulaire `/contribuer`, worker IA

## Délégation cascade autorisée

Sous-agents Task (Sonnet) pour : recherche pattern Mistral Nemo dans codebase, génération composant isolé, audit V1 fiche.

## Critère de fin

- `npm run dev` charge `/fiche/[id]` pour une fiche seed (ex : id=1)
- Commentaire posté apparaît avec status correct (approved si filtre OK, pending sinon)
- Bouton retour carte préserve filtres URL
- Mobile testé (devtools)
- Commits atomiques

## Doute / blocage

- Mistral Nemo non configuré → POST commentaire = `pending` direct + TODO dans journal
- Spec ambiguë → tranche au plus simple, note dans `JOURNAL-V2.md`
- Blocage dur → STOP + reporte

## Résumé attendu

```
## S2 Étape 3 — [DONE / BLOCKED]

### Livrables
- ✓ ... / ✗ ...

### Décisions
- ...

### À tester
- /fiche/1, /fiche/2, post commentaire, retour carte avec filtres

### Fichiers modifiés / Commits
- ...

### Coordination Sonnet 3
- Rate limit Redis : posé / à poser ?
```
