# Auto-publication & garde-fous

> Publiez sans validation manuelle en toute sécurité — les garde-fous déterministes de CiteMe vérifient chaque contenu avant mise en ligne.

Sécurité

L'**auto-publication** permet à un workflow de mettre du contenu en ligne **sans validation manuelle**. Pour éviter de publier à l'aveugle du contenu généré par IA, CiteMe interpose des **garde-fous** : des contrôles automatiques exécutés juste avant chaque publication.

---

## Le bouton auto-publication

Chaque workflow possède un réglage **auto-publication**, activé ou désactivé :

| Réglage | Comportement |
|---------|--------------|
| **Désactivé** (par défaut) | Toute action CMS exige une **[validation humaine](./nodes/approvals)** avant publication. |
| **Activé** | La publication se fait automatiquement, **à condition** que le contenu passe les garde-fous. Si un garde-fou échoue, l'exécution bascule en demande de validation au lieu de publier. |

:::tip La sécurité reste assurée
Activer l'auto-publication ne supprime pas les contrôles : ça les automatise. Un contenu douteux ne passe jamais en silence — il est renvoyé vers vous pour relecture.
:::

---

## Les garde-fous déterministes

Trois garde-fous tournent avant chaque publication. Ils sont **déterministes** (pas d'IA, pas de réseau) : mêmes entrées, même verdict, instantané.

### 1. Schéma (données structurées)

Si le workflow injecte du JSON-LD, le garde-fou vérifie que :

- le bloc est un JSON valide (il doit parser) ;
- il contient bien un attribut `@type`.

Sinon, échec : « JSON-LD invalide » ou « JSON-LD sans @type ».

### 2. Contenu minimal

Le corps généré doit dépasser un **plancher de longueur** — **200 caractères par défaut** (configurable). Cela bloque les sorties tronquées ou vides.

Échec type : « Contenu trop court (120 < 200 caractères) ».

### 3. Sécurité

Le contenu ne doit contenir :

- **aucun marqueur d'injection de prompt** (« ignore previous instructions », « system prompt », « you are now »...) ;
- **aucun secret évident** : clé API OpenAI (`sk-...`), clé AWS (`AKIA...`), bloc de clé privée, numéro de carte bancaire.

Échec type : « Marqueur d'injection détecté » ou « Secret potentiel détecté : OpenAI key ».

---

## Que se passe-t-il en cas d'échec ?

```
Sophia redige  ->  Garde-fous
                      |
            (tout passe)  ->  Publication automatique
                      |
            (un echec)    ->  Demande de validation (vous relisez)
```

Dès qu'**au moins un** garde-fou échoue, le contenu n'est pas publié : l'exécution passe en **En attente de validation** et vous recevez la demande dans votre boîte d'approbations, avec la raison exacte de l'échec.

---

## Et la voix de marque ?

Un quatrième contrôle — le respect du **ton et de la charte** — n'est pas déterministe : c'est un jugement IA, assuré par l'agent **[Élodie](./nodes/ai-agents)**. Placez-la dans le workflow avant la publication pour valider la voix de marque en complément des garde-fous techniques.

---

**Voir aussi :** **[Approbations & notifications](./nodes/approvals)** · **[Exécutions & monitoring](./runs)**
