W poście #2 i #3 wspomnieliśmy skills jako jedną z warstw rozszerzeń Claude Code. Teraz zajmiemy się nimi szczegółowo.
Czym jest skill
Skill to zapisany prompt — plik tekstowy z instrukcjami, który Claude Code wstrzykuje do kontekstu na żądanie. Gdy użytkownik pisze /review, agent dostaje do przeczytania zestaw instrukcji i od tej chwili postępuje według nich: sprawdza diff, szuka problemów, raportuje wyniki. Skill to tekst, który model czyta i wykonuje — jak szczegółowe zlecenie na kartce.
Narzędzie MCP działa inaczej: to kod uruchomiony po stronie zewnętrznego serwera lub programu. Model generuje wywołanie (np. search_web(query="Claude skills")), serwer MCP wykonuje zapytanie do prawdziwego API wyszukiwarki i odsyła wynik. Agent nie zna implementacji — dostaje gotowy rezultat. Skill mówi agentowi jak myśleć i działać; MCP daje mu dostęp do zewnętrznych możliwości.
Wbudowane skills Claude Code
Claude Code ma kilka wbudowanych skills:
| Skill | Slash command | Co robi |
|---|---|---|
| init | /init | Inicjalizuje CLAUDE.md dla projektu |
| review | /review | Code review pull requestu |
| security-review | /security-review | Audyt bezpieczeństwa pending changes |
| simplify | /simplify | Przegląd kodu pod kątem jakości i powtórzeń |
| update-config | /update-config | Konfiguracja settings.json (hooks; permissions) |
| claude-api | /claude-api | Budowanie/debugging aplikacji z Claude API |
Anatomia skilla
Skill to plik Markdown z frontmatterem i treścią instrukcji. Frontmatter definiuje dwa pola: name (nazwa używana jako slash command) i description (krótki opis triggera — pojawia się na liście dostępnych skills w kontekście). Reszta pliku to instrukcje:
---
name: incident-postmortem
description: Użyj gdy użytkownik prosi o postmortem, analizę incydentu lub raport awarii
---
# incident-postmortem
1. Zapytaj o incydent: kiedy, jakie systemy, ile trwał, kto był zaangażowany
2. Zbierz materiały: przeczytaj logi z `logs/`, alerty z `alerts/`, notatki z kanału incydentowego
3. Odtwórz oś czasu: każde zdarzenie z timestampem i odpowiedzialną osobą/systemem
4. Znajdź przyczynę źródłową (root cause) — stosuj metodę "5 Why":
- Nie poprzestaj na "serwer padł" — pytaj dlaczego padł, dlaczego nie było failover, dlaczego alerty nie zadziałały
5. Wygeneruj postmortem wg struktury:
- Podsumowanie (2-3 zdania dla managementu)
- Oś czasu
- Root cause
- Impact (ilu użytkowników, ile czasu, czy były straty finansowe)
- Action items: konkretne zadania z właścicielem i deadline
6. Zapisz jako `postmortems/{{YYYY-MM-DD}}-{{slug}}.md`
## Constraints
- Action items muszą mieć właściciela i datę — bez tego to nie action item
- Nie szukaj winnych — skup się na systemach i procesach, nie osobach
- Sekcja "Co poszło dobrze" jest obowiązkowa — nawet w najgorszym incydencie
Dwa tryby uruchamiania
Skill może być uruchomiony na dwa sposoby:
Slash command — użytkownik jawnie wpisuje /database-migration. Zawsze działa.
Auto-trigger — model sam decyduje o załadowaniu skilla, gdy rozpozna pasujący kontekst. Pole description w frontmatterze to właśnie warunek triggera. Jeśli opis brzmi "użyj gdy użytkownik prosi o migrację bazy danych", model załaduje skill przy pasującym zapytaniu — bez /.
Oba tryby mogą działać równolegle: jeden skill może być wywołany jawnie slash commandem i jednocześnie auto-triggerować się na podstawie kontekstu.
Jak skills trafiają do kontekstu
Skills nie są ładowane do kontekstu na starcie sesji. W prompcie systemowym pojawia się jedynie lista dostępnych skills — same nazwy z krótkimi opisami triggerów. Pełna treść skilla jest wstrzykiwana dopiero w momencie wywołania.
Dzięki temu posiadanie dziesiątek zdefiniowanych skills kosztuje minimalnie — opis każdego skilla jest obcinany do 1 536 znaków, więc lista samych nazw i opisów to relatywnie mały overhead. Token overhead właściwej treści rośnie dopiero w momencie faktycznego użycia skilla.
Gdzie umieścić skill
Skills żyją w katalogach konfiguracji Claude Code:
- Projekt:
.claude/skills/<nazwa>/SKILL.md— skill dostępny tylko w tym projekcie - Globalny:
~/.claude/skills/<nazwa>/SKILL.md— skill dostępny we wszystkich projektach
Struktura katalogu wygląda tak:
.claude/
└── skills/
├── incident-postmortem/
│ └── SKILL.md
└── weekly-report/
└── SKILL.md
Katalog skilla może zawierać dodatkowe pliki, do których SKILL.md odwołuje się w instrukcjach:
.claude/
└── skills/
├── incident-postmortem/
│ └── SKILL.md
└── weekly-report/
├── SKILL.md
└── report-template.md ← szablon raportu
Typowe dodatkowe pliki:
- Szablon dokumentu — plik Markdown z gotową strukturą, którą skill wypełnia danymi. Agent dostaje instrukcję "wypełnij szablon z
report-template.md" zamiast generować strukturę za każdym razem od nowa. - Przykładowy output — jeden lub kilka plików
example-*.mdpokazujących, jak powinien wyglądać wynik. Few-shot examples wbudowane w skill, nie w prompt. - Konfiguracja — plik
config.yamlz parametrami (np. lista odbiorców raportu, progi alertów), które skill odczytuje zamiast pytać użytkownika za każdym razem.
Praktyczny przykład: skill weekly-report
Skill dla account managera, który co tydzień raportuje status klientów. Katalog skilla:
.claude/
└── skills/
└── weekly-report/
├── SKILL.md
└── report-template.md
report-template.md — szablon, który skill wypełnia:
# Weekly Account Report — {{tydzień}}
## Podsumowanie tygodnia
{{1-2 zdania co się wydarzyło}}
## Status klientów
| Klient | Stan | Następny krok | Termin |
|--------|------|---------------|--------|
| ... | ... | ... | ... |
## Ryzyka i eskalacje
{{lista ryzyk wymagających uwagi managera}}
## Plan na przyszły tydzień
{{top 3 priorytety}}
SKILL.md — instrukcje dla agenta:
---
name: weekly-report
description: Użyj gdy użytkownik prosi o raport tygodniowy, status klientów lub weekly update
---
# weekly-report
1. Zapytaj użytkownika o tydzień (domyślnie: bieżący, pon-pt)
2. Zbierz dane z dostępnych źródeł:
- Przeczytaj notatki ze spotkań z katalogu `notes/` z tego tygodnia
- Sprawdź otwarte zadania w `tasks/open.md`
- Jeśli dostępne: pobierz komentarze z CRM przez narzędzie MCP
3. Wypełnij szablon z pliku `report-template.md`:
- Status każdego aktywnego klienta: zielony (OK) / żółty (wymaga uwagi) / czerwony (ryzyko)
- Następny krok musi być konkretny: kto, co, kiedy
- Ryzyka: tylko to, co wymaga decyzji lub eskalacji — nie informacji
4. Zapisz raport jako `reports/weekly-{{YYYY-WW}}.md`
5. Pokaż użytkownikowi przed zapisem — zapytaj czy coś uzupełnić
## Constraints
- Status "czerwony" zawsze wymaga wpisu w sekcji Ryzyka
- Nie generuj "następnych kroków" w stylu "monitorować sytuację" — to nie jest krok
- Jeśli brak notatek za dany tydzień — wyraźnie zaznacz luki, nie wypełniaj domysłami
Popularne skills
Społeczność Claude Code tworzy i udostępnia skills na GitHubie. Kilka wartych uwagi:
| Skill | Kategoria | Opis |
|---|---|---|
/security-review | Kod | Audyt bezpieczeństwa zmian na bieżącej gałęzi. Analizuje diff pod kątem OWASP Top 10: injection; wycieki danych; błędy autentykacji. |
/debug | Kod | Systematyczne debugowanie: zbiera stack trace; izoluje zmienne; proponuje hipotezy od najbardziej do najmniej prawdopodobnej; uruchamia testy weryfikujące każdą. |
/deploy-check | DevOps | Przed deployem sprawdza gotowość: testy; zmienne środowiskowe; migracje bazy; otwarte TODO w zmienionym kodzie. Zatrzymuje deploy jeśli coś nie gra. |
/meeting-insights-analyzer | Komunikacja | Przetwarza surowe notatki ze spotkania na ustrukturyzowany dokument: decyzje; action items z właścicielami i deadlines; otwarte pytania. |
/exec-summary | Zarządzanie | Skraca długi raport lub dokument do jednostronicowego executive summary: teza; kluczowe dane; rekomendacja; ryzyka. Format dostosowany do odbiorcy (zarząd; inwestor; klient). |
/deal-review | Sprzedaż | Analiza szansy sprzedażowej przed spotkaniem: czyta historię kontaktu z CRM; identyfikuje obiekcje; sugeruje argumenty i pytania odkrywające potrzeby klienta. |
/proposal | Sprzedaż | Generuje ofertę handlową na podstawie notatek z rozmów z klientem: wypełnia szablon oferty; dopasowuje język do branży klienta; kalkuluje ROI z podanych danych. |
/invoice-check | Finanse | Weryfikuje fakturę przed zatwierdzeniem: sprawdza zgodność z zamówieniem; poprawność stawki VAT; limity budżetowe; flaguje anomalie do ręcznego przeglądu. |
/contract-review | Prawo | Wstępny przegląd umowy: wypisuje zobowiązania; terminy; kary umowne; klauzule ograniczające odpowiedzialność. Przyspiesza pierwszy przegląd — nie zastępuje prawnika. |
/gdpr-check | Compliance | Sprawdza nową funkcjonalność lub proces pod kątem RODO: identyfikuje przetwarzane dane osobowe; podstawy prawne; obowiązki informacyjne; ryzyka. |
/job-description | HR | Tworzy ogłoszenie o pracę na podstawie briefu od managera: wymagania; zakres obowiązków; benefity. Dba o neutralność językową i eliminuje dyskryminujące sformułowania. |
/interview-scorecard | HR | Na podstawie opisu stanowiska generuje kartę oceny rozmowy kwalifikacyjnej: kryteria oceny; pytania behawioralne; skale dla każdej kompetencji. |
/rfp-response | Sprzedaż | Odpowiadanie na zapytania ofertowe: analizuje wymagania RFP; mapuje je na możliwości firmy; generuje draft odpowiedzi wg szablonu. |