## Dlaczego to ważne

Uruchomienie programu ujawniania podatności (VDP) oznacza przejście przez siedem sekcji konfiguracji, wygenerowanie pliku security.txt i opublikowanie publicznego portalu zgłoszeń. Agent AI może poprowadzić cały ten proces za Ciebie poprzez narzędzia MCP w Kit — opisujesz, czego chcesz, agent czyta schemat, zapisuje konfigurację i prosi o Twoją akceptację, zanim cokolwiek zostanie opublikowane.

To strona **budowania** narzędzi CSIRT. Strona [Integracja z AI](/docs/ai-integration-vdp) opisuje codzienne narzędzia *triażu* (ważność, duplikaty, odpowiedzi do badaczy). Ta strona opisuje cztery narzędzia, które uruchamiają program od zera.

Agent jest copilotem, nie autopilotem. Może odczytać stan Twojego programu, przygotować pełną konfigurację i zapisać ją z powrotem — ale upublicznienie programu, rozpoczęcie okresu próbnego, ustawienie kwot nagród i edycja tekstów prawnych czekają na wyraźne ludzkie „tak". Zapisanie danych karty płatniczej nigdy nie jest czymś, co robi agent.

## Przepływ od zera do działania

Cztery narzędzia, po kolei. Agent przechodzi przez łańcuch, a `csirt_get_setup_guide` zawsze wskazuje mu kolejne do wywołania.

| Krok | Narzędzie | Co się dzieje |
|------|------|-------------|
| 1. Orientacja | `csirt_get_setup_guide` | Raportuje bieżący stan, schemat konfiguracji, zalecane wartości domyślne i dokładne `next_tool` do wywołania. Działa nawet na świeżym koncie bez programu. |
| 2. Utworzenie | `csirt_create_program` | Tworzy VDP w statusie **Draft** z sensownymi wartościami domyślnymi. Plan darmowy. Idempotentne — dwukrotne wywołanie zwraca ten sam program. |
| 3. Konfiguracja | `csirt_configure_program` | Ustawia dowolny podzbiór siedmiu sekcji konfiguracji w jednym wywołaniu. Powtarzaj wedle potrzeby. |
| 4. Aktywacja | `csirt_activate_program` | Publikuje publiczny portal i zaczyna przyjmować prawdziwe zgłoszenia. Wymaga potwierdzenia przez człowieka oraz skonfigurowanego zakresu i kontaktu security.txt. |

Typowa rozmowa:

```
"Skonfiguruj dla nas program ujawniania podatności. Zakres to app.acme.com
 i api.acme.com, e-mail przyjmujący zgłoszenia security@acme.com. Na razie bez nagród."
```

Agent wywołuje `csirt_get_setup_guide`, widzi, że program nie istnieje, tworzy go, konfiguruje zakres i kontakt security.txt, po czym zatrzymuje się i prosi o potwierdzenie przed opublikowaniem programu.

## Krok 1 — Orientacja z przewodnikiem konfiguracji

`csirt_get_setup_guide` to punkt wejścia i narzędzie, do którego agent wraca między krokami. Nigdy nie prowadzi w ślepy zaułek:

- **Jeszcze nie ma programu** — zwraca `program_exists: false`, opis korzyści, pełny `config_schema`, `recommended_defaults` oraz `next_tool: "csirt_create_program"`.
- **Program istnieje** — zwraca status, liczbę zgłoszeń, zgodność z SLA, `config_checklist` (każdy element opatrzony narzędziem, które go naprawia) oraz kolejne narzędzie do wywołania.

Ponieważ schemat i wartości domyślne są zwracane razem z odpowiedzią, agent może zbudować pełną, poprawną konfigurację bez zgadywania nazw pól. Klucze dokładnie odpowiadają `csirt_get_program`, więc te same struktury działają przy odczycie, edycji i zapisie z powrotem.

## Krok 2 — Utworzenie programu

`csirt_create_program` tworzy VDP w statusie **Draft** w planie darmowym. Subskrypcja nie jest wymagana.

| Parametr | Wymagany | Opis |
|-----------|----------|-------------|
| `name` | Nie | Nazwa programu. Domyślnie `<Konto> VDP`. |
| `disclosure_policy` | Nie | Tekst polityki skoordynowanego ujawniania (markdown). Wstępnie wypełniony treścią safe harbor, jeśli pominięty. |

Jest **idempotentne**: jeśli program już istnieje, narzędzie zwraca ten istniejący zamiast tworzyć duplikat. Odpowiedź zawiera `config_checklist` oraz `next_tool: "csirt_configure_program"`.

> [!NOTE]
> Utworzenie programu **nie** czyni go publicznym. Program w wersji roboczej nie przyjmuje zgłoszeń i jest niewidoczny dla publiczności, dopóki go nie aktywujesz — ale w każdej chwili możesz sam wyświetlić jego podgląd (zobacz niżej).

## Krok 3 — Konfiguracja programu

`csirt_configure_program` ustawia dowolny podzbiór siedmiu sekcji konfiguracji w jednym wywołaniu. Klucze i struktury pól odpowiadają `csirt_get_program` i `csirt_get_setup_guide`, więc cykl odczyt → edycja → zapis z powrotem jest bezstratny.

> [!IMPORTANT]
> **Wszystkie kwoty pieniężne są w groszach.** Nagroda 500 $ to `50000`. Dotyczy to macierzy nagród i minimalnej wypłaty.

| Sekcja | Klucz | Co ustawia |
|---------|-----|-------------|
| Zakres | `scope_config` | `in_scope_targets[]`, `out_of_scope_categories[]`, `excluded_vuln_types[]`. **Wymagane przed aktywacją.** |
| Macierz nagród | `bounty_matrix_config` | `tiers: [{severity, min_cents, max_cents}]` dla informational/low/medium/high/critical/super_critical. |
| SLA | `sla_config` | `acknowledgment_hours`, `resolution_targets {severity => hours}`. |
| Triaż | `triage_config` | `default_assignee_id`, `escalation_severities[]`, `dedup_enabled`, `require_retest`, `max_appeals`, `auto_assign_on_call`. |
| Wypłaty | `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` (publiczny adres przyjmujący zgłoszenia — **wymagany przed aktywacją**), `expires_days`, `policy_url`, `acknowledgments_url`, `hiring_url`, `encryption_url`. |

To narzędzie możesz wywoływać dowolną liczbę razy, dopóki jesteś w statusie Draft. Odpowiedź raportuje, które sekcje się zmieniły, czy program jest już `activatable`, jakie pozostały `activation_blockers` oraz kolejne narzędzie.

Pełne znaczenie każdego pola znajdziesz w [Konfiguracja programu](/docs/configuring-your-program), gdzie te same siedem sekcji opisano w interfejsie webowym.

### Podgląd portalu w wersji roboczej

Nie musisz aktywować programu, aby zobaczyć portal. Każde narzędzie konfiguracyjne zwraca `portal_preview_url` — portal wyrenderowany dokładnie tak, jak zobaczą go badacze, z banerem podglądu. Działa, gdy program jest jeszcze w wersji roboczej:

- **Tylko członkowie konta.** Otwórz link, będąc zalogowanym w Kit. Jeśli jesteś wylogowany, link przekieruje Cię na stronę logowania i z powrotem; odwiedzający, którzy nie są członkami Twojego konta, otrzymają 404, więc wersja robocza pozostaje niewidoczna dla publiczności.
- **Zawsze na domenie Kit.** Własna domena bezpieczeństwa (na przykład `vdp.yourcompany.com`) zaczyna udostępniać portal dopiero po aktywacji — Twoje zalogowanie w Kit nie przenosi się na Twoją własną domenę, więc link podglądu zawsze używa adresu URL `kit`.

Poproś agenta „pokaż mi podgląd mojej strony VDP", a poda Ci ten link.

## Krok 4 — Aktywacja (uruchomienie)

`csirt_activate_program` uruchamia VDP: publikuje publiczny portal zgłoszeń i zaczyna przyjmować prawdziwe zgłoszenia badaczy oraz uruchamia liczniki SLA.

To narzędzie jest **kontrolowane przez człowieka**. Agent dokładnie opisze, co oznacza uruchomienie programu, i poczeka na Twoje wyraźne potwierdzenie przed wywołaniem.

**Odmawia też aktywacji**, dopóki nie ustawiono dwóch rzeczy:

- **Zakres** — co najmniej jeden cel w zakresie (`scope_config.in_scope_targets`).
- **Kontakt security.txt** — e-mail przyjmujący zgłoszenia (`security_txt_config.contact_email`).

Jeśli któregoś brakuje, narzędzie zwraca konkretne blokery (wraz z `preview_url` wersji roboczej) i odsyła agenta z powrotem do `csirt_configure_program` z sekcją do poprawy. Po uruchomieniu odpowiedź zawiera publiczny `portal_url` — Twoją własną domenę bezpieczeństwa, jeśli jest skonfigurowana, w przeciwnym razie adres URL Kit. Program możesz później wstrzymać, ale to właśnie upublicznienie jest tym, co aktywacja gwarantuje jako zatwierdzone przez człowieka.

## Rozpoczęcie darmowego okresu próbnego

Wypłaty nagród, pełny pipeline triażu i ich rozliczanie mieszczą się w **dodatku VDP** (49 $/mies.). Aby je sprawdzić, agent może rozpocząć darmowy okres próbny:

`csirt_start_trial` rozpoczyna **darmowy 30-dniowy okres próbny VDP**. Jest **bezkartowy i samoczynnie się kończy** — nie pobiera żadnych danych płatności i wygasa sam — więc można go bezpiecznie uruchomić po jednym ludzkim „tak".

> [!CAUTION]
> Agent **nigdy** nie pobiera karty płatniczej. Płatny zakup pozostaje w interfejsie webowym. Po prawdziwą subskrypcję agent kieruje Cię na [stronę cennika](/account/billing) — nie pobiera (i nie może pobrać) danych karty.

Jeśli VDP jest już aktywny, narzędzie informuje, że okres próbny nie jest potrzebny. Po jego rozpoczęciu agent zwykle wraca do `csirt_configure_program`, aby ustawić macierz nagród.

## Automatycznie vs. potwierdzane przez człowieka

| Agent robi automatycznie | Czeka na ludzkie „tak" | Nigdy niedostępne dla agenta |
|------------------------------|-------------------------|------------------------|
| Odczyt stanu programu i schematu konfiguracji | **Aktywacja** (uruchomienie / publikacja portalu) | Zapisanie danych karty płatniczej |
| Przygotowanie pełnej konfiguracji na podstawie Twojej intencji | **Rozpoczęcie okresu próbnego** | Prawdziwy płatny zakup |
| Zapis sekcji konfiguracji (zakres, SLA, triaż, spam, security.txt) | Ustawienie **kwot nagród** | — |
| Utworzenie programu roboczego (idempotentne, darmowe) | Edycja **tekstów prawnych safe harbor / ujawniania** | — |

Agent swobodnie zbiera kontekst i przygotowuje zmiany, ale decyzje o realnych konsekwencjach — publikacja dla świata, wydawanie pieniędzy i język prawny — zawsze przechodzą przez Ciebie.

## W skrócie

- [ ] Jeśli korzystasz z zewnętrznego klienta MCP, upewnij się, że połączeniu nadano uprawnienie **CSiRT — Read & write** na ekranie zgody — narzędzia konfiguracyjne to narzędzia zapisu
- [ ] Poproś agenta, żeby „skonfigurował VDP" — zacznie od `csirt_get_setup_guide`
- [ ] Potwierdź, że program utworzono w statusie Draft (plan darmowy, bez opłat)
- [ ] Podaj zakres (cele w zakresie) i e-mail przyjmujący zgłoszenia dla security.txt
- [ ] Sprawdź kwoty w macierzy nagród przed zatwierdzeniem (kwoty są w groszach)
- [ ] Daj wyraźne „tak", zanim agent wywoła `csirt_activate_program`
- [ ] Zweryfikuj publiczny `portal_url` zwrócony po aktywacji
- [ ] Jeśli sprawdzasz funkcje płatne, zatwierdź `csirt_start_trial` (bez karty, 30 dni)

## Co dalej

- [Konfiguracja programu](/docs/configuring-your-program) — opis pole po polu dla siedmiu sekcji konfiguracji
- [Integracja z AI](/docs/ai-integration-vdp) — narzędzia AI po stronie triażu (ważność, duplikaty, odpowiedzi do badaczy)
- [Konfiguracja security.txt](/docs/security-txt-setup) — zgodność z RFC 9116 i weryfikacja
- [Łączenie asystentów AI](/docs/connecting-ai-assistants) — podłączenie zewnętrznego klienta MCP i zarządzanie zakresami