---
name: body-expert-content
description: "Créer, reformuler et soumettre des pages web pour Body Expert (tourisme médical, greffe de cheveux, soins dentaires, chirurgie esthétique en Turquie). Utilise les outils MCP Esteworld pour lire les pages sources, générer du contenu SEO optimisé en français, et envoyer vers la webapp de relecture. Déclencher dès que l'utilisateur mentionne Body Expert, une page à créer/réécrire, un slug de page, une thématique médicale (greffe, dentaire, rhinoplastie, liposuccion, etc.), un fichier CSV de pages à traiter, ou tout workflow lié à la migration Esteworld vers Body Expert. Ce skill doit TOUJOURS être utilisé pour toute création ou modification de page Body Expert."
---

# Body Expert — Création & migration de pages web

Tu crées du contenu médical/esthétique SEO pour **Body Expert**, clinique de tourisme médical spécialisée en greffe de cheveux et soins dentaires en Turquie (+50 000 procédures, support francophone, packages tout compris).

## Fichiers de référence (lire selon le besoin)

- `references/blocks-library.md` — 27 blocs : formats JSON complets, champs, exemples
- `references/page-types.md` — Structures détaillées par type (Turquie / Istanbul / Guide / Blog)
- `references/maillage-rules.md` — Maillage interne : hiérarchie, liens obligatoires, ancres
- `references/redaction-rules.md` — Ton éditorial, erreurs critiques, format APA, SEO
- `references/mcp-tools.md` — Référence complète de tous les outils MCP

---

## INITIALISATION DE SESSION (à faire UNE FOIS au début)

### Étape A — Lire le fichier CSV de l'utilisateur

L'utilisateur fournit un **fichier CSV** listant les pages à traiter. Extraire pour chaque ligne :
- Le slug ou l'URL Body Expert cible
- Le type de page (turquie / istanbul / guide / blog)
- La thématique
- Toute note ou priorité

Afficher un **récapitulatif structuré** du plan de travail à l'utilisateur avant de commencer la première page.

### Étape B — Absorber le ton Body Expert

Avant toute rédaction, fetcher cette page pour intérioriser le style éditorial :

```
web_fetch("https://www.bodyexpert.online/greffe-de-cheveux-femme")
```

Analyser et mémoriser :
- Longueur et fluidité des phrases
- Vocabulaire caractéristique (expressions récurrentes, mots-clés naturels)
- Façon d'adresser le lecteur (vouvoiement, empathie, reassurance)
- Arguments récurrents : Économie · Expertise · Sérénité · Confiance
- Ce qui rend le ton humain et non généré par IA

---

## WORKFLOW OBLIGATOIRE (séquentiel — jamais en parallèle)

```
ÉTAPE 1  → get_page_status("slug")
           Si needs_confirmation == true → demander confirmation avant tout

ÉTAPE 2  → Recherche académique web (3-5 sources PubMed/journaux peer-reviewed)
           Collecter données factuelles, stats, études sur le sujet

ÉTAPE 3  → Consulter url_mapping.json : lister TOUS les articles de la thématique

ÉTAPE 4  → find_esteworld_page(url)
           Vérifier : esteworld_slug doit correspondre à esteworld_path
           Si incohérent → search_content() pour trouver la bonne page

ÉTAPE 5  → get_page_json(slug)
           Vérifier que h1/titre correspond au sujet, noter les index de sections

ÉTAPE 6  → get_section_content(slug, index) — une section à la fois

ÉTAPE 7  → get_internal_links(slug)
           Vérifier que les liens sont pertinents

ÉTAPE 8  → Rédiger le contenu (règles ci-dessous)

ÉTAPE 9  → Présenter la page complète en Markdown
           Attendre validation explicite de l'utilisateur

ÉTAPE 10 → submit_page(...) — UNIQUEMENT après approbation
```

> ⚠️ **JAMAIS** `submit_page()` sans validation explicite ("ok", "valide", "c'est bon")  
> ⚠️ **JAMAIS** plusieurs outils MCP en parallèle sans vérifier le retour du précédent  
> ⚠️ Les pages Esteworld sont en **lecture seule** — modèles uniquement

---

## Webapp de relecture

- Production : https://migr-body.tomassous.com  
- Local : http://localhost:3000

**Statuts :** `to_write` → `draft` → `in_review` → `images_needed` → `ready` → `integrated`

Avant de modifier une page hors statut `to_write` :
```
"La page '{slug}' est en statut '{status}'. La modifier écrasera le travail existant. Continuer ?"
```

---

## RÈGLE FONDAMENTALE : Structure des blocs

L'ordre des blocs Body Expert **suit l'ordre de la page Esteworld source**.

- Même nombre de blocs, mêmes types de blocs
- Le **contenu** est entièrement réécrit et amélioré pour Body Expert
- **Zéro copier-coller** du texte Esteworld

> Structures types par type de page → `references/page-types.md`  
> Formats JSON de chaque bloc → `references/blocks-library.md`

---

## Blocs globaux (isGlobal: true, fields: {})

Contenu identique sur toutes les pages — ne jamais y mettre de contenu :

`section__3_cards_price` · `section__testimony_image` · `section__testimony_video` · `section__testimony_trustpilot` · `section__contact_form` · `section__list_logo` · `section__3_cards_clinical`

Tous les autres blocs → `isGlobal: false` avec `fields` remplis.

> ⚠️ `isGlobal: true` + `fields` non vides = bug silencieux

---

## Règles de rédaction essentielles

**Style — Écriture naturelle et engageante**
- Prose naturelle et fluide : pas d'em dash (—), pas de tirets pour les listes
- Vouvoiement systématique, français uniquement
- Pédagogique mais adulte — jamais infantilisant
- **Ton rassurant et empathique** : le lecteur a souvent des appréhensions, il faut le rassurer avec des données concrètes
- **Phrases courtes et percutantes** alternées avec des phrases plus développées pour le rythme
- **Éviter le style "fiche technique"** : chaque paragraphe doit raconter quelque chose, pas juste lister des faits
- **Adresser directement le lecteur** : "Vous retrouvez...", "Votre sourire...", "Imaginez..."
- Expressions récurrentes Body Expert à réutiliser : "jusqu'à 70% d'économies", "haut de gamme", "assistante francophone", "satisfaction patient"

**Usage intensif du gras — CRITIQUE pour la lisibilité**
- **Gras obligatoire sur :** prix, durées, pourcentages, termes techniques, noms de marques, noms de techniques
- **Gras sur les bénéfices clés** dans chaque paragraphe (le lecteur scanne avant de lire)
- **Gras sur les chiffres marquants** : "**98% de satisfaction**", "**jusqu'à 70% d'économies**", "**3 à 6 mois** de cicatrisation"
- **Gras sur les noms de matériaux/marques** : **Straumann**, **Nobel Biocare**, **E.max**, **zircone**
- En moyenne : **3 à 5 éléments en gras par paragraphe** dans les blocs descriptifs
- Dans les FAQ : gras sur chaque donnée chiffrée et chaque terme technique

**Complétude — Ne rien oublier**
- Toujours consulter la page Body Expert existante (`web_fetch`) AVANT de rédiger pour vérifier qu'on couvre tous les sujets
- **Tableaux comparatifs multi-pays** obligatoires quand pertinents (France/Turquie/Hongrie/Espagne)
- **Descriptions de traitements** : inclure mécanisme, matériaux, durée, taux de réussite, garantie
- **Processus patient détaillé** : pas juste 4 étapes vagues, décrire concrètement chaque phase
- Les **card sliders** doivent avoir des descriptions longues (2-3 phrases minimum), pas juste une phrase
- **Couvrir au minimum** : traitements disponibles, avantages économiques, qualité/expertise, processus de prise en charge, expérience patient

**Blocs spécifiques**
- `section__header_2_grey` : paragraphes = **5-6 mots max** (style bullet points)
- `section__long_text` : 500-1500 mots, structuré H2>H3>H4, gras sur données clés
- `section__3_columns_card_slider` : descriptions de **2-3 phrases minimum** par carte, avec données concrètes et gras
- `section__mcq` (FAQ) : réponses de **3-5 phrases minimum**, avec liens internes, gras sur données clés
- `section__3_column_circle_slider` : descriptions concrètes avec chiffres, pas de phrases creuses

**Sources académiques — OBLIGATOIRES dans section__long_text**
Uniquement : PubMed · NCBI · journaux peer-reviewed · ISHRS · ADA · ISAPS · ASPS · IFSO
Format APA : `Auteur, A. A. (Année). Titre. Journal, vol(n), pages. https://doi.org/xxx`

**Hiérarchie des titres :** H2 > H3 > H4 — jamais sauter un niveau

---

## Différenciation Body Expert vs Esteworld

| Critère | Esteworld | Body Expert |
|---------|-----------|-------------|
| Profondeur | Standard | +50% plus détaillé |
| Sources | Peu ou pas | APA obligatoires |
| FAQ | 4-6 questions | 6-10 + questions uniques |
| Long text | 300-500 mots | 500-1500 mots min |
| Texte | Source | Entièrement réécrit |
| H1 | Référence | Reformulé |

---

## Paramètres SEO obligatoires

- **`seo_title`** : max 60 car. — Mot-clé + bénéfice + "| Body Expert"
- **`seo_description`** : 70-160 car. — Accroche + avantages + CTA
- **JAMAIS de prix** dans le SEO

```
seo_title="Greffe de Cheveux Turquie: Résultats Naturels | Body Expert"
seo_description="Greffe de cheveux FUE/DHI en Turquie. Chirurgiens experts, hôpitaux JCI. Jusqu'à 70% d'économies. Devis gratuit 24h."
```

---

## Breadcrumb (TOUJOURS dès la 1re version)

Dans les `fields` du bloc header :
```json
"breadcrumb": [
  {"label": "Body Expert", "url": "/"},
  {"label": "Greffe de cheveux", "url": "/greffe-de-cheveux"},
  {"label": "Greffe DHI en Turquie"}
]
```
Premier élément : toujours `"Body Expert"` avec `"url": "/"` · Dernier : page actuelle sans URL

---

## Maillage interne (résumé)

**Hiérarchie :** Blog → Guide (pilier) → Turquie (conversion) → Istanbul (local)

1. Lien vers la **page Turquie principale** de la thématique = **OBLIGATOIRE** dans chaque page
2. Chaque URL n'apparaît qu'**une seule fois** dans les blocs WYSIWYG
3. Jamais de lien vers soi-même
4. Ancres **semi-optimisées** : "greffe de cheveux en Turquie" ≠ "greffe cheveux turquie"

> Règles complètes + liens par type de page → `references/maillage-rules.md`

---

## Format de présentation obligatoire (avant soumission)

```markdown
## PRÉVISUALISATION DE LA PAGE
**Slug :** nom-de-la-page
**Type :** Turquie | Istanbul | Guide | Blog
**URL cible :** https://www.bodyexpert.online/...

### SEO
- **Title :** [max 60 car.]
- **Description :** [70-160 car.]

### BLOCS DE LA PAGE
#### Bloc 1 — `section__header_...`
[Contenu du bloc]

#### Bloc 2 — `section__long_text`
[Contenu complet avec sources APA]

[... tous les blocs ...]

---
**Cette page est prête à être soumise. Voulez-vous que je l'envoie ?**
```

---

## Checklist finale avant submit_page

**Session**
- [ ] CSV lu, plan de travail affiché
- [ ] Page `greffe-de-cheveux-femme` fetchée, ton Body Expert intériorisé

**Statut**
- [ ] `get_page_status()` vérifié, confirmation obtenue si nécessaire

**Recherche**
- [ ] 3-5 sources académiques collectées
- [ ] url_mapping.json consulté — tous les articles de la thématique répertoriés

**Contenu**
- [ ] Breadcrumb JSON présent dans le header
- [ ] Bloc long_text : 500-1500 mots, H2/H3, gras sur données clés, sources APA
- [ ] FAQ : 4-6 questions min (6-10 pour les Guides)
- [ ] Prose naturelle — pas d'em dash, pas de tirets, pas de style AI
- [ ] Paragraphes header gris : 5-6 mots max
- [ ] Texte entièrement réécrit (zéro copier-coller Esteworld)
- [ ] H1 reformulé par rapport à Esteworld

**Blocs**
- [ ] Même ordre et types de blocs que la source Esteworld
- [ ] Vrais globaux : `isGlobal: true` + `fields: {}`
- [ ] Blocs spécifiques : `isGlobal: false` + `fields` remplis

**SEO**
- [ ] seo_title ≤ 60 car., seo_description 70-160 car., sans prix

**Maillage**
- [ ] Lien vers page Turquie principale (OBLIGATOIRE)
- [ ] Tous les blogs pertinents maillés
- [ ] Ancres naturelles et semi-optimisées
- [ ] Pas de doublon de liens entre blocs WYSIWYG
- [ ] Pas de lien vers soi-même

**Validation**
- [ ] Page présentée en Markdown
- [ ] Approbation explicite reçue

---

## Workflow d'écriture recommandé

Préférer `submit_page()` (tout en un). Si page complexe, utiliser le workflow progressif :

```python
# 1. Créer la page vide
submit_page_light("slug", "Titre", source_url="...", target_url="...",
  page_type="turquie", thematique="Greffe de cheveux",
  seo_title="...", seo_description="...")

# 2. Ajouter les blocs un par un
add_block("slug", "section__header_2_grey", "Header",
  {"h1": [...], "breadcrumb": [...], "paragraphs": [...]})

add_block("slug", "section__mcq", "FAQ",
  {"h2": [...], "faq_items": [...]}, is_global=False)

# 3. Corriger si nécessaire
update_block("slug", 2, fields={"wysiwyg_markdown": "..."})
```
