## Por qué es importante

Poner en marcha un programa de divulgación de vulnerabilidades implica recorrer siete secciones de configuración, generar un security.txt y publicar un portal de informes público. Un agente de IA puede dirigir todo ese flujo por ti mediante las herramientas MCP de Kit: tú describes lo que quieres, el agente lee el esquema, escribe la configuración y pide tu visto bueno antes de que algo entre en producción.

Este es el lado de **construcción** de las herramientas de CSIRT. La página [Integración con IA](/docs/ai-integration-vdp) cubre las herramientas de *triaje* del día a día (severidad, duplicados, respuestas a investigadores). Esta página cubre las cuatro herramientas que levantan un programa desde cero.

El agente es un copiloto, no un piloto automático. Puede leer el estado de tu programa, redactar una configuración completa y escribirla de vuelta, pero la puesta en producción, el inicio de una prueba, la fijación de los montos de recompensa y la edición de textos legales esperan todos un "sí" humano explícito. Capturar una tarjeta de pago nunca es algo que haga el agente.

## El flujo de cero a producción

Cuatro herramientas, en orden. El agente recorre la cadena y `csirt_get_setup_guide` siempre le indica la siguiente que debe llamar.

| Paso | Herramienta | Qué ocurre |
|------|------|-------------|
| 1. Orientarse | `csirt_get_setup_guide` | Informa del estado actual, el esquema de configuración, los valores predeterminados recomendados y el `next_tool` exacto que llamar. Funciona incluso en una cuenta recién creada sin programa. |
| 2. Crear | `csirt_create_program` | Crea el VDP en estado **Borrador** con valores predeterminados sensatos. Nivel gratuito. Idempotente: ejecutarla dos veces devuelve el mismo programa. |
| 3. Configurar | `csirt_configure_program` | Define cualquier subconjunto de las siete secciones de configuración en una sola llamada. Repítela cuantas veces necesites. |
| 4. Activar | `csirt_activate_program` | Publica el portal público y empieza a aceptar informes reales. Requiere confirmación humana y un alcance y un contacto de security.txt configurados. |

Una conversación típica:

```
"Configura un programa de divulgación de vulnerabilidades para nosotros. El alcance es
 app.acme.com y api.acme.com, el correo de entrada security@acme.com. Sin recompensas por ahora."
```

El agente llama a `csirt_get_setup_guide`, ve que no existe ningún programa, crea uno, configura el alcance y el contacto de security.txt, y luego se detiene y te pide confirmación antes de la puesta en producción.

## Paso 1 — Orientarse con la guía de configuración

`csirt_get_setup_guide` es el punto de entrada y la herramienta a la que el agente regresa entre pasos. Nunca llega a un callejón sin salida:

- **Aún no hay programa**: devuelve `program_exists: false`, una propuesta de valor, el `config_schema` completo, los `recommended_defaults` y `next_tool: "csirt_create_program"`.
- **El programa existe**: devuelve el estado, el conteo de informes, el cumplimiento de SLA, un `config_checklist` (cada elemento anotado con la herramienta que lo soluciona) y la siguiente herramienta que llamar.

Como el esquema y los valores predeterminados viajan con la respuesta, el agente puede construir una configuración completa y válida sin adivinar nombres de campos. Las claves reflejan exactamente `csirt_get_program`, así que las mismas estructuras sirven para leer, editar y escribir de vuelta.

## Paso 2 — Crear el programa

`csirt_create_program` crea el VDP en estado **Borrador** en el nivel gratuito. No requiere suscripción.

| Parámetro | Obligatorio | Descripción |
|-----------|----------|-------------|
| `name` | No | Nombre del programa. Por defecto `<Cuenta> VDP`. |
| `disclosure_policy` | No | Texto de la política de divulgación coordinada (markdown). Se rellena previamente con texto de puerto seguro (Safe Harbor) si se omite. |

Es **idempotente**: si ya existe un programa, la herramienta devuelve ese en lugar de crear un duplicado. La respuesta incluye el `config_checklist` y `next_tool: "csirt_configure_program"`.

> [!NOTE]
> Crear un programa **no** lo hace público. Un programa en borrador no acepta informes y es invisible para el público hasta que lo actives, pero puedes previsualizarlo tú mismo en cualquier momento (ver más abajo).

## Paso 3 — Configurar el programa

`csirt_configure_program` define cualquier subconjunto de las siete secciones de configuración en una sola llamada. Las claves y estructuras de campos reflejan `csirt_get_program` y `csirt_get_setup_guide`, así que un ciclo leer → editar → escribir de vuelta es sin pérdidas.

> [!IMPORTANT]
> **Todos los montos monetarios están en céntimos.** Una recompensa de $500 es `50000`. Esto aplica a la matriz de recompensas y al pago mínimo.

| Sección | Clave | Qué define |
|---------|-----|-------------|
| Alcance | `scope_config` | `in_scope_targets[]`, `out_of_scope_categories[]`, `excluded_vuln_types[]`. **Obligatorio antes de la activación.** |
| Matriz de recompensas | `bounty_matrix_config` | `tiers: [{severity, min_cents, max_cents}]` para informational/low/medium/high/critical/super_critical. |
| SLA | `sla_config` | `acknowledgment_hours`, `resolution_targets {severity => hours}`. |
| Triaje | `triage_config` | `default_assignee_id`, `escalation_severities[]`, `dedup_enabled`, `require_retest`, `max_appeals`, `auto_assign_on_call`. |
| Pagos | `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` (la dirección de entrada pública: **obligatoria antes de la activación**), `expires_days`, `policy_url`, `acknowledgments_url`, `hiring_url`, `encryption_url`. |

Puedes llamar a esta herramienta tantas veces como quieras mientras estés en Borrador. La respuesta informa de qué secciones cambiaron, si el programa ya es `activatable`, los `activation_blockers` restantes y la siguiente herramienta.

Para el significado completo de cada campo, consulta [Configura tu programa](/docs/configuring-your-program), que documenta estas mismas siete secciones en la interfaz web.

### Previsualizar el portal en borrador

No hace falta activar para ver el portal. Cada herramienta de configuración devuelve una `portal_preview_url`: el portal renderizado exactamente como lo verán los investigadores, con un banner de previsualización. Funciona mientras el programa sigue en borrador:

- **Solo miembros de la cuenta.** Abre el enlace con la sesión iniciada en Kit. Si tienes la sesión cerrada, el enlace te lleva a la página de inicio de sesión y de vuelta; los visitantes que no son miembros de tu cuenta reciben un 404, así que el borrador permanece invisible para el público.
- **Siempre en el dominio de Kit.** Un dominio de seguridad personalizado (por ejemplo `vdp.yourcompany.com`) solo empieza a servir el portal tras la activación: tu sesión de Kit no se traslada a tu propio dominio, así que el enlace de previsualización siempre usa la URL de `kit`.

Pídele al agente "muéstrame una vista previa de mi página de VDP" y te facilitará este enlace.

## Paso 4 — Activar (puesta en producción)

`csirt_activate_program` pone el VDP en producción: publica el portal de informes público y empieza a aceptar informes reales de investigadores y los relojes de SLA.

Esta herramienta está **sujeta a aprobación humana**. El agente describirá exactamente qué significa la puesta en producción y esperará tu confirmación explícita antes de llamarla.

También **se niega a activar** hasta que estén definidas dos cosas:

- **Alcance**: al menos un objetivo dentro del alcance (`scope_config.in_scope_targets`).
- **Contacto de security.txt**: un correo de entrada (`security_txt_config.contact_email`).

Si falta alguno, la herramienta devuelve los bloqueos concretos (más la `preview_url` del borrador) y remite al agente de vuelta a `csirt_configure_program` con la sección que corregir. Una vez en producción, la respuesta incluye la `portal_url` pública: tu dominio de seguridad personalizado cuando hay uno configurado o, de lo contrario, la URL de Kit. Más adelante puedes pausar el programa, pero el acto de hacerlo público es lo que la activación garantiza que un humano aprobó.

## Iniciar una prueba gratuita

Los pagos de recompensas, el pipeline de triaje completo y los desembolsos viven en el **complemento VDP** ($49/mes). Para evaluarlos, el agente puede iniciar una prueba gratuita:

`csirt_start_trial` inicia una **prueba gratuita de VDP de 30 días**. Es **sin tarjeta y autocancelable**: no se capturan datos de pago y termina por sí sola, así que es seguro ejecutarla tras un único "sí" humano.

> [!CAUTION]
> El agente **nunca** captura una tarjeta de pago. El pago se queda en la interfaz web. Para una suscripción real, el agente te envía a la [página de precios](/account/billing): no toma (ni puede tomar) datos de tarjeta.

Si el VDP ya está activo, la herramienta de prueba informa de que no hace falta ninguna prueba. Tras iniciar una prueba, el agente suele volver a `csirt_configure_program` para definir la matriz de recompensas.

## Automático vs. confirmado por un humano

| El agente lo hace automáticamente | Espera un "sí" humano | Nunca lo puede hacer el agente |
|------------------------------|-------------------------|------------------------|
| Leer el estado del programa y el esquema de configuración | **Activación** (puesta en producción / publicación del portal) | Capturar una tarjeta de pago |
| Redactar una configuración completa a partir de tu intención | **Iniciar una prueba** | Pago real |
| Escribir secciones de configuración (alcance, SLA, triaje, spam, security.txt) | Fijar los **montos de recompensa** | — |
| Crear el programa en borrador (idempotente, gratuito) | Editar los **textos legales de puerto seguro (Safe Harbor) / divulgación** | — |

El agente reúne contexto y prepara cambios con libertad, pero las decisiones con consecuencias reales —publicar al mundo, gastar dinero y el lenguaje legal— siempre pasan por ti.

## En resumen

- [ ] Si usas un cliente MCP externo, asegúrate de que a la conexión se le concedió **CSiRT — Read & write** en la pantalla de consentimiento: las herramientas de configuración son herramientas de escritura
- [ ] Pide al agente que "configure un VDP": empieza con `csirt_get_setup_guide`
- [ ] Confirma que el programa se creó en Borrador (nivel gratuito, sin cargo)
- [ ] Proporciona el alcance (objetivos dentro del alcance) y un correo de entrada para security.txt
- [ ] Revisa los montos de la matriz de recompensas antes de aprobarlos (los montos están en céntimos)
- [ ] Da un "sí" explícito antes de que el agente llame a `csirt_activate_program`
- [ ] Verifica la `portal_url` pública que se devuelve tras la activación
- [ ] Si evalúas funciones de pago, aprueba `csirt_start_trial` (sin tarjeta, 30 días)

## Y ahora qué

- [Configura tu programa](/docs/configuring-your-program) — referencia campo por campo de las siete secciones de configuración
- [Integración con IA](/docs/ai-integration-vdp) — las herramientas de IA del lado del triaje (severidad, duplicados, respuestas a investigadores)
- [Configuración de security.txt](/docs/security-txt-setup) — cumplimiento de RFC 9116 y verificación
- [Conexión de asistentes de IA](/docs/connecting-ai-assistants) — conectar un cliente MCP externo y gestionar scopes