Czerwcowa promocja 1+1: Kup konto Founder, drugie dostaniesz gratis.
Sprzedaż

Sales: Oferta handlowa

Generuje ofertę handlową z kontekstu spotkań. Czyta ustalenia, pyta o brakujące dane — nigdy nie halucynuje cen ani zakresu. Output to plik markdown gotowy do wysłania.

Co robi ten skill

Generuje ofertę handlową z kontekstu notatek ze spotkań. Nigdy nie halucynuje cen — pyta o brakujące dane.

Jak to działa

Zanim cokolwiek napisze, czyta ostatnie trzy spotkania i taguje każdą pozycję: pewne ustalenie, wzmianka bez konkretów lub brak danych. Widzisz gdzie stoisz, zanim jedna liczba trafi do oferty. Czego brakuje — pyta. Czego nie wie z Twoich notatek — nigdy nie wymyśla.

Oferty ze statusem sent, accepted lub rejected są nienaruszone. Nowa wersja zamiast nadpisania.

Co zyskujesz

  • Ofertę, w której każda liczba ma spotkanie jako źródło
  • Tagowanie pewności, żebyś wiedział gdzie są luki przed wysłaniem
  • Historia wersji: v1 do v2 bez utraty tego, co było

Wymaga

sales-meeting-recap — czyta notatki ze spotkań, żeby wyciągnąć scope, ceny i terminy.

Skill file

---
name: sales-offer
description: 'ZAWSZE używaj tego skilla, gdy handlowiec chce wygenerować ofertę handlową dla klienta — nawet jeśli nie pada wprost słowo „oferta". Triggery: "zrób ofertę dla Jana Kowalskiego z dzisiejszego spotkania", "wygeneruj ofertę dla ACME", "draft oferty", "oferta na pierwszy moduł", "przygotuj propozycję dla <klient>", "oferta cenowa", "wycena dla <klient>", "/sales-offer". Skill identyfikuje klienta, czyta ostatnie spotkania (scope, ustalenia cenowe, terminy), dopytuje o brakujące dane — NIGDY nie halucynuje cen ani zakresu — i zapisuje gotowy plik oferty. Status przy generacji zawsze `draft`. Idempotentny: nie nadpisuje wysłanych ofert, tworzy wersję v2.'
argument-hint: "<imię, nazwisko lub firma klienta>"
---

# Sales Offer — generowanie oferty handlowej z kontekstu spotkania

Jesteś asystentem handlowca, który składa ofertę. Czytasz ostatnie spotkania, wyciągasz scope, ceny, terminy, warunki. Czego nie ma — dopytujesz. Niczego nie wymyślasz, w szczególności cen i zakresu.

## Konfiguracja

- `{KLIENCI}` — folder z klientami (domyślnie `Klienci/`)
- `{OFERTY}` — folder na oferty (domyślnie `Oferty/`)
- `{CRM}` — dane kontaktowe klientów (domyślnie `{KLIENCI}/_klienci.csv`)

## Workflow

**Krok 1:** Znajdź workspace i tryb (pełny z `{CRM}` albo degraded).

**Krok 2:** Zidentyfikuj klienta i intencję (temat, warianty A/B, ważność).

**Krok 3:** Wczytaj 3 ostatnie spotkania z `{KLIENCI}/<id>-<slug>/Spotkania/`. Oznacz pewność każdej pozycji: konkret → wprost do oferty; wzmianka → dopytaj; brak → dopisuje user.

**Krok 4:** Dialog uzupełniający — pokaż co masz i czego brakuje, poproś o uzupełnienia.

**Krok 5:** Wygeneruj plik oferty: `{OFERTY}/YYYY-MM-DD-<slug-klienta>-<slug-tematu>.md`

Frontmatter wymagane: `typ: oferta-handlowa`, `data_wystawienia`, `klient`, `kwota_netto`, `waluta`, `ważna_do`, `status: draft`, `wersja: v1`.

Struktura: Kontekst → Zakres prac (tabela netto+VAT+brutto) → Harmonogram (opcja) → Warunki → Ważność → Kontakt.

**Krok 6:** Idempotencja — plik z `sent`/`accepted`/`rejected` → nie nadpisuj, twórz v2.

## Czego NIE robić

- NIE halucynuj cen — każda liczba pochodzi z pewnego ustalenia
- NIE improwizuj danych klienta
- Status to enum — skill ustawia tylko `draft`

Kiedy używać

  • “zrób ofertę dla ACME”
  • “wygeneruj ofertę po spotkaniu”
  • /sales-offer

Jak zainstalować

  1. Pobierz folder skilla przyciskiem Pobierz powyżej lub z GitHub
  2. W Voicie Desktop: przejdź do zakładki Local → znajdź sekcję Skills → kliknij ikonę folderu, żeby otworzyć go w Finderze
  3. Przenieś pobrany folder skilla do tego katalogu
  4. Otwórz nowy czat — skill jest teraz dostępny
  5. Wywołaj naturalnym językiem lub komendą /<nazwa-skilla>

→ Pełny przewodnik: Jak zainstalować skille w Voicie