# Prompt — Transformer un contenu en carte « Caught in a Web »

Joignez ce fichier à une conversation avec une IA en même temps que le document à transformer. Vous pouvez aussi copier l’intégralité du prompt ci-dessous, puis coller le texte, le cours ou les notes après la ligne `CONTENU SOURCE`.

---

## Prompt à donner à l’IA

Tu es chargé de transformer un contenu en carte mentale pédagogique directement importable dans l’application **Caught in a Web**.

Ta réponse finale doit être constituée **uniquement d’un objet JSON valide**, sans introduction, sans conclusion et sans balises Markdown. Ce JSON doit respecter exactement le format et les règles ci-dessous.

### Objectif pédagogique

Construis une carte qui permet de comprendre le contenu par approfondissements successifs : sujet général, grandes parties, notions, puis détails essentiels.

- Résume et hiérarchise le contenu ; ne le recopie pas linéairement.
- Préserve les idées essentielles, les relations logiques et le vocabulaire important.
- N’invente aucune information absente du contenu source.
- Un nœud doit exprimer une seule idée.
- Chaque libellé doit être très court : idéalement un mot-clé, généralement 1 à 3 mots, exceptionnellement 5 mots.
- Évite les phrases, les répétitions et les nœuds purement décoratifs.
- Vise une profondeur de 3 à 5 niveaux, adaptée à la richesse réelle du contenu.
- Regroupe les détails trop fins plutôt que de produire une carte illisible.
- Conserve l’ordre pédagogique ou logique du contenu dans les listes `children`.

### Format JSON obligatoire

```json
{
  "version": 1,
  "title": "Titre clair de la carte",
  "description": "Résumé bref du contenu et de l’angle choisi",
  "category": "Matière ou domaine",
  "level": "Niveau ou public concerné",
  "rootId": "identifiant-racine",
  "nodes": {
    "identifiant-racine": {
      "label": "Sujet principal",
      "children": ["premiere-partie", "deuxieme-partie"]
    },
    "premiere-partie": {
      "label": "Première partie",
      "children": []
    },
    "deuxieme-partie": {
      "label": "Deuxième partie",
      "children": []
    }
  },
  "links": []
}
```

### Règles structurelles impératives

1. `version` vaut toujours le nombre `1`.
2. `title` est un titre humain, fidèle au contenu source.
3. `description`, `category` et `level` sont **obligatoires** :
   - `description` résume en une phrase courte le contenu et l’angle de la carte, idéalement entre 80 et 180 caractères ;
   - `category` indique la matière ou le domaine sous une forme courte, par exemple `Mathématiques`, `Histoire`, `NSI`, `Droit` ou `Médecine` ;
   - `level` indique le niveau, la classe ou le public, par exemple `Première`, `Terminale`, `Licence 1`, `Formation professionnelle` ou `Tous niveaux` ;
   - déduis ces valeurs du document et de son contexte sans inventer de précision absente ; si le niveau est réellement indéterminable, écris `Non précisé` ;
   - ne supprime jamais ces trois champs : l’application les utilise pour présenter la carte dans sa bibliothèque.
4. Les clés de premier niveau sont exactement : `version`, `title`, `description`, `category`, `level`, `rootId`, `nodes` et `links`.
5. `rootId` correspond exactement à une clé présente dans `nodes`.
6. Chaque clé de `nodes` est un identifiant unique, stable et descriptif :
   - lettres minuscules non accentuées, chiffres et tirets uniquement ;
   - aucun espace, accent ou caractère spécial ;
   - chaque identifiant doit respecter l’expression régulière `^[a-z0-9]+(?:-[a-z0-9]+)*$` ;
   - exemples : `revolution-francaise`, `causes-politiques`, `fonction-carre`.
7. Chaque nœud contient exactement :
   - `label`, une chaîne non vide ;
   - `children`, une liste d’identifiants, éventuellement vide.
8. Chaque identifiant cité dans `children` existe dans `nodes`.
9. Un nœud possède au maximum un parent hiérarchique.
10. La structure hiérarchique est un arbre : aucune boucle et aucun nœud orphelin.
11. Tous les nœuds sont accessibles depuis `rootId`.
12. L’ordre des identifiants dans `children` détermine l’ordre pédagogique des branches.
13. Vise généralement 30 à 70 nœuds et ne dépasse pas 90 nœuds. Si la source est très riche, synthétise davantage au lieu d’énumérer tous les détails.

### Liens transversaux

`links` sert uniquement à signaler une relation importante entre deux notions situées dans des branches différentes. Ces liens ne remplacent jamais la hiérarchie.

N’ajoute un lien transversal que si la relation est explicite ou incontestable dans le contenu. Dans le doute, laisse `links` vide. Ne dépasse pas 6 liens transversaux afin de préserver la lisibilité.

Format exact :

```json
{
  "from": "identifiant-source",
  "to": "identifiant-cible",
  "label": "relation courte",
  "type": "cross"
}
```

- `from` et `to` doivent exister dans `nodes` et être différents.
- `label` peut être vide, mais doit rester une chaîne.
- `type` vaut toujours `cross`.
- N’ajoute pas de lien transversal entre un parent et son enfant.

### Contrôle avant réponse

Avant de répondre, vérifie silencieusement que :

- le résultat est du JSON strictement valide, sans commentaire ni virgule finale ;
- les huit champs de premier niveau obligatoires sont présents, notamment `description`, `category` et `level` ;
- tous les identifiants sont uniques et conformes ;
- aucun identifiant ne contient d’accent, d’espace, de soulignement ou de caractère autre que les lettres ASCII minuscules, les chiffres et les tirets ;
- tous les enfants et liens pointent vers des nœuds existants ;
- chaque nœud sauf la racine possède exactement un parent ;
- aucun passage ne dépend d’informations inventées ;
- les libellés sont assez courts pour être projetés en classe ;
- ta réponse ne contient absolument rien en dehors de l’objet JSON final.

### Adaptation à la source

- Si le contenu comporte déjà un plan pertinent, utilise-le comme base sans le reproduire mécaniquement.
- Si le contenu est désordonné, reconstruis une hiérarchie pédagogique cohérente.
- Si plusieurs organisations sont plausibles, choisis celle qui facilite le mieux une présentation progressive.
- Si le contenu est trop pauvre pour une carte détaillée, produis une petite carte fidèle plutôt que d’inventer des branches.
- Si le contenu contient des opinions, hypothèses ou controverses, conserve leur statut dans des libellés courts et ne les présente pas comme des faits établis.

CONTENU SOURCE OU DOCUMENT JOINT :

[UTILISER LE DOCUMENT JOINT OU COLLER ICI LE TEXTE, LE COURS OU LES NOTES À TRANSFORMER]
