## Pourquoi c'est important

Mettre en place un programme de divulgation des vulnérabilités implique de parcourir sept sections de configuration, de générer une security.txt et de publier un portail de signalement public. Un agent IA peut piloter l'ensemble de ce flux pour vous via les outils MCP de Kit — vous décrivez ce que vous voulez, l'agent lit le schéma, écrit la configuration et demande votre validation avant que quoi que ce soit ne passe en ligne.

C'est le volet **construction** des outils CSIRT. La page [Intégration IA](/docs/ai-integration-vdp) couvre les outils de *triage* du quotidien (sévérité, doublons, réponses aux chercheurs). Cette page couvre les quatre outils qui montent un programme à partir de rien.

L'agent est un copilote, pas un autopilote. Il peut lire l'état de votre programme, rédiger une configuration complète et la réécrire — mais la mise en ligne, le démarrage d'un essai, la définition des montants de primes et la modification des textes juridiques attendent tous un « oui » humain explicite. Capturer une carte de paiement n'est jamais quelque chose que l'agent fait.

## Le flux de zéro à la mise en ligne

Quatre outils, dans l'ordre. L'agent parcourt la chaîne et `csirt_get_setup_guide` lui indique toujours le prochain à appeler.

| Étape | Outil | Ce qui se passe |
|------|------|-------------|
| 1. S'orienter | `csirt_get_setup_guide` | Indique l'état actuel, le schéma de configuration, les valeurs par défaut recommandées et le `next_tool` exact à appeler. Fonctionne même sur un compte tout neuf sans programme. |
| 2. Créer | `csirt_create_program` | Crée le VDP au statut **Brouillon** avec des valeurs par défaut sensées. Offre gratuite. Idempotent — un second appel renvoie le même programme. |
| 3. Configurer | `csirt_configure_program` | Définit n'importe quel sous-ensemble des sept sections de configuration en un seul appel. À répéter autant que nécessaire. |
| 4. Activer | `csirt_activate_program` | Publie le portail public et commence à accepter de vrais rapports. Nécessite une confirmation humaine ainsi qu'un périmètre et un contact security.txt configurés. |

Une conversation typique :

```
"Mettez en place un programme de divulgation des vulnérabilités pour nous. Le périmètre est
 app.acme.com et api.acme.com, l'e-mail de réception security@acme.com. Pas de primes pour l'instant."
```

L'agent appelle `csirt_get_setup_guide`, constate qu'aucun programme n'existe, en crée un, configure le périmètre et le contact security.txt, puis s'arrête et vous demande de confirmer avant la mise en ligne.

## Étape 1 — S'orienter avec le guide de configuration

`csirt_get_setup_guide` est le point d'entrée et l'outil auquel l'agent revient entre les étapes. Il ne mène jamais à une impasse :

- **Aucun programme encore** — renvoie `program_exists: false`, une proposition de valeur, le `config_schema` complet, les `recommended_defaults` et `next_tool: "csirt_create_program"`.
- **Le programme existe** — renvoie le statut, le nombre de rapports, la conformité SLA, une `config_checklist` (chaque élément annoté avec l'outil qui le corrige) et le prochain outil à appeler.

Comme le schéma et les valeurs par défaut accompagnent la réponse, l'agent peut construire une configuration complète et valide sans deviner les noms de champs. Les clés reflètent exactement `csirt_get_program`, si bien que les mêmes structures fonctionnent pour la lecture, la modification et la réécriture.

## Étape 2 — Créer le programme

`csirt_create_program` crée le VDP au statut **Brouillon** sur l'offre gratuite. Aucun abonnement requis.

| Paramètre | Requis | Description |
|-----------|----------|-------------|
| `name` | Non | Nom du programme. Par défaut `<Compte> VDP`. |
| `disclosure_policy` | Non | Texte de la politique de divulgation coordonnée (markdown). Pré-rempli avec une formulation Safe Harbor si omis. |

Il est **idempotent** : si un programme existe déjà, l'outil renvoie celui-ci au lieu d'en créer un doublon. La réponse inclut la `config_checklist` et `next_tool: "csirt_configure_program"`.

> [!NOTE]
> Créer un programme ne le rend **pas** public. Un programme au statut brouillon n'accepte aucun rapport et reste invisible au public tant que vous ne l'activez pas — mais vous pouvez le prévisualiser vous-même à tout moment (voir ci-dessous).

## Étape 3 — Configurer le programme

`csirt_configure_program` définit n'importe quel sous-ensemble des sept sections de configuration en un seul appel. Les clés et les structures de champs reflètent `csirt_get_program` et `csirt_get_setup_guide`, si bien qu'un aller-retour lecture → modification → réécriture est sans perte.

> [!IMPORTANT]
> **Tous les montants monétaires sont en centimes.** Une prime de 500 $ vaut `50000`. Cela s'applique à la grille des primes et au paiement minimum.

| Section | Clé | Ce qu'elle définit |
|---------|-----|-------------|
| Périmètre | `scope_config` | `in_scope_targets[]`, `out_of_scope_categories[]`, `excluded_vuln_types[]`. **Requis avant l'activation.** |
| Grille des primes | `bounty_matrix_config` | `tiers: [{severity, min_cents, max_cents}]` pour informational/low/medium/high/critical/super_critical. |
| SLA | `sla_config` | `acknowledgment_hours`, `resolution_targets {severity => hours}`. |
| Triage | `triage_config` | `default_assignee_id`, `escalation_severities[]`, `dedup_enabled`, `require_retest`, `max_appeals`, `auto_assign_on_call`. |
| Versements | `disbursement_config` | `supported_payment_methods[]`, `require_tax_docs`, `require_agreement`, `min_payout_cents`, `currency`. |
| Spam | `spam_config` | `max_reports_per_window`, `window_seconds`, `block_duration_seconds`, `cleanup_interval_seconds`. |
| security.txt | `security_txt_config` | `contact_email` (l'adresse de réception publique — **requise avant l'activation**), `expires_days`, `policy_url`, `acknowledgments_url`, `hiring_url`, `encryption_url`. |

Vous pouvez appeler cet outil autant de fois que vous le souhaitez tant que vous êtes au statut Brouillon. La réponse indique quelles sections ont changé, si le programme est désormais `activatable`, les éventuels `activation_blockers` restants et le prochain outil.

Pour la signification complète de chaque champ, consultez [Configurer votre programme](/docs/configuring-your-program), qui documente ces mêmes sept sections dans l'interface web.

### Prévisualiser le portail au statut brouillon

Vous n'avez pas besoin d'activer pour voir le portail. Chaque outil de configuration renvoie une `portal_preview_url` — le portail rendu exactement tel que les chercheurs le verront, avec une bannière de prévisualisation. Cela fonctionne tant que le programme est encore au statut brouillon :

- **Membres du compte uniquement.** Ouvrez le lien en étant connecté à Kit. Si vous êtes déconnecté, le lien vous envoie vers la page de connexion puis vous y ramène ; les visiteurs qui ne sont pas membres de votre compte reçoivent une 404, si bien que le brouillon reste invisible au public.
- **Toujours sur le domaine Kit.** Un domaine de sécurité personnalisé (par exemple `vdp.yourcompany.com`) ne commence à servir le portail qu'après l'activation — votre connexion Kit ne se reporte pas sur votre propre domaine, si bien que le lien de prévisualisation utilise toujours l'URL `kit`.

Demandez à l'agent « montre-moi un aperçu de ma page VDP » et il vous fournira ce lien.

## Étape 4 — Activer (mise en ligne)

`csirt_activate_program` met le VDP en ligne : il publie le portail de signalement public et commence à accepter de vrais rapports de chercheurs et les compteurs SLA.

Cet outil est **soumis à validation humaine**. L'agent décrira précisément ce que signifie la mise en ligne et attendra votre confirmation explicite avant de l'appeler.

Il **refuse aussi d'activer** tant que deux éléments ne sont pas définis :

- **Périmètre** — au moins une cible dans le périmètre (`scope_config.in_scope_targets`).
- **Contact security.txt** — un e-mail de réception (`security_txt_config.contact_email`).

Si l'un des deux manque, l'outil renvoie les blocages précis (ainsi que la `preview_url` du brouillon) et renvoie l'agent vers `csirt_configure_program` avec la section à corriger. Une fois en ligne, la réponse inclut l'URL publique `portal_url` — votre domaine de sécurité personnalisé lorsqu'il en existe un, sinon l'URL Kit. Vous pouvez ensuite mettre le programme en pause, mais le passage au public est ce qu'une activation garantit qu'un humain a approuvé.

## Démarrer un essai gratuit

Les versements de primes, le pipeline de triage complet et les versements vivent dans le **module complémentaire VDP** (49 $/mois). Pour les évaluer, l'agent peut démarrer un essai gratuit :

`csirt_start_trial` démarre un **essai VDP gratuit de 30 jours**. Il est **sans carte et auto-résiliable** — aucune coordonnée de paiement n'est capturée et il se termine de lui-même — il est donc sans risque de le lancer après un seul « oui » humain.

> [!CAUTION]
> L'agent ne capture **jamais** de carte de paiement. Le paiement reste dans l'interface web. Pour un véritable abonnement, l'agent vous renvoie vers la [page des tarifs](/account/billing) — il ne prend pas (et ne peut pas prendre) de coordonnées de carte.

Si le VDP est déjà actif, l'outil d'essai indique qu'aucun essai n'est nécessaire. Après le démarrage d'un essai, l'agent revient généralement à `csirt_configure_program` pour définir la grille des primes.

## Automatique vs. confirmé par un humain

| L'agent fait automatiquement | Attend un « oui » humain | Jamais réalisable par l'agent |
|------------------------------|-------------------------|------------------------|
| Lire l'état du programme et le schéma de configuration | **Activation** (mise en ligne / publication du portail) | Capturer une carte de paiement |
| Rédiger une configuration complète à partir de votre intention | **Démarrer un essai** | Véritable paiement |
| Écrire des sections de configuration (périmètre, SLA, triage, spam, security.txt) | Définir les **montants des primes** | — |
| Créer le programme au statut brouillon (idempotent, gratuit) | Modifier les **textes juridiques Safe Harbor / divulgation** | — |

L'agent rassemble librement le contexte et prépare les modifications, mais les décisions à conséquences réelles — publication au monde entier, dépenses et langage juridique — passent toujours par vous.

## En bref

- [ ] Si vous utilisez un client MCP externe, assurez-vous que la connexion a obtenu l'autorisation **CSiRT — Read & write** sur l'écran de consentement — les outils de configuration sont des outils d'écriture
- [ ] Demandez à l'agent de « mettre en place un VDP » — il commence par `csirt_get_setup_guide`
- [ ] Confirmez que le programme a été créé au statut Brouillon (offre gratuite, sans frais)
- [ ] Fournissez le périmètre (cibles dans le périmètre) et un e-mail de réception pour security.txt
- [ ] Vérifiez les montants de la grille des primes avant de les approuver (les montants sont en centimes)
- [ ] Donnez un « oui » explicite avant que l'agent n'appelle `csirt_activate_program`
- [ ] Vérifiez l'URL publique `portal_url` renvoyée après l'activation
- [ ] Si vous évaluez des fonctionnalités payantes, approuvez `csirt_start_trial` (sans carte, 30 jours)

## Et ensuite ?

- [Configurer votre programme](/docs/configuring-your-program) — référence champ par champ pour les sept sections de configuration
- [Intégration IA](/docs/ai-integration-vdp) — les outils IA du volet triage (sévérité, doublons, réponses aux chercheurs)
- [Configuration de security.txt](/docs/security-txt-setup) — conformité RFC 9116 et vérification
- [Connexion des assistants IA](/docs/connecting-ai-assistants) — connecter un client MCP externe et gérer les scopes