Skills w Claude Code: Jak stworzyć własne komendy /deploy, /review-pr, /fix-issue

Skills w Claude Code: Jak stworzyć własne komendy /deploy, /review-pr, /fix-issue

Wyobraź sobie, że wpisujesz /deploy i Claude Code sam uruchamia testy, buduje aplikację i wypycha na produkcję. Albo /fix-issue 123 – i agent pobiera opis z GitHub, znajduje problem w kodzie i proponuje rozwiązanie.

To nie magia. To Skills – system rozszerzeń Claude Code, który pozwala tworzyć własne komendy dla powtarzalnych workflow.

  1. Czym są Skills
  2. Struktura: folder i plik SKILL.md
  3. Przykład 1: /explain-code z diagramami ASCII
  4. Przykład 2: /fix-issue z GitHub
  5. Frontmatter: kontrola zachowania
  6. Gdzie umieścić Skills
## Czym są Skills

Skills to rozszerzenia możliwości Claude Code. Tworzysz plik SKILL.md z instrukcjami, a Claude dodaje go do swojego arsenału narzędzi.

Możesz wywoływać Skills na dwa sposoby:

  • Bezpośrednio: wpisujesz /nazwa-skill i Claude wykonuje instrukcje
  • Automatycznie: Claude sam rozpoznaje, że Skill pasuje do Twojego pytania

Skills różnią się od CLAUDE.md tym, że ładują się na żądanie, nie przy każdej sesji. To oszczędza kontekst i pozwala mieć dziesiątki specjalistycznych workflow bez obciążania standardowych rozmów.

Claude Code zawiera dwa wbudowane Skills: /simplify (czyści kod po implementacji) i /batch (orkiestruje zmiany na dużą skalę, np. migracje).

Struktura: folder i plik SKILL.md

Każdy Skill to folder z plikiem SKILL.md jako głównym wejściem:

my-skill/
├── SKILL.md           # Główne instrukcje (wymagany)
├── template.md        # Szablon do wypełnienia (opcjonalny)
├── examples/
│   └── sample.md      # Przykładowy output
└── scripts/
    └── validate.sh    # Skrypt do wykonania

Plik SKILL.md ma dwie części:

  1. Frontmatter YAML (między ---) – metadata i konfiguracja
  2. Treść Markdown – instrukcje dla Claude
Podstawowe pola frontmatter
PoleOpisWymagane
nameNazwa Skill (staje się /komendą)Nie*
descriptionOpis – kiedy używaćZalecane
allowed-toolsNarzędzia bez pytania o zgodęNie
modelModel do użyciaNie
disable-model-invocationBlokuj auto-wywołanieNie

*Jeśli pominiesz name, używana jest nazwa folderu.

## Przykład 1: /explain-code z diagramami ASCII

Ten Skill uczy Claude wyjaśniać kod za pomocą analogii i diagramów. Przydatny przy onboardingu nowych członków zespołu.

Utwórz folder:

bash
mkdir -p ~/.claude/skills/explain-code

Utwórz plik ~/.claude/skills/explain-code/SKILL.md:

yaml
---
name: explain-code
description: Wyjaśnia kod z diagramami i analogiami. Używaj gdy ktoś pyta jak coś działa.
---

Gdy wyjaśniasz kod, zawsze:

1. **Zacznij od analogii**: Porównaj kod do czegoś z codziennego życia
2. **Narysuj diagram**: Użyj ASCII art aby pokazać przepływ lub strukturę
3. **Przeprowadź przez kod**: Wyjaśnij krok po kroku co się dzieje
4. **Wskaż pułapkę**: Jaki błąd często popełniają programiści?

Pisz konwersacyjnie. Dla złożonych koncepcji używaj wielu analogii.

Teraz możesz użyć:

/explain-code src/auth/login.ts

Claude przeanalizuje plik i wyjaśni go z diagramem i analogią.

## Przykład 2: /fix-issue z GitHub

Ten Skill automatyzuje naprawianie issues z GitHub. Pobiera opis problemu, znajduje kod i proponuje fix.

Utwórz ~/.claude/skills/fix-issue/SKILL.md:

yaml
---
name: fix-issue
description: Naprawia issue z GitHub na podstawie numeru
argument-hint: [issue-number]
disable-model-invocation: true
---

Napraw issue GitHub numer $0:

1. Pobierz szczegóły issue komendą: `gh issue view $0`
2. Przeanalizuj opis i komentarze
3. Znajdź powiązany kod w repozytorium
4. Zaproponuj rozwiązanie
5. Napisz testy weryfikujące fix
6. Stwórz commit z opisem "fix: resolve #$0"

Użycie:

/fix-issue 123

Claude pobierze issue #123 z GitHub, znajdzie problem i zaproponuje rozwiązanie.

Zmienna $0 to pierwszy argument przekazany do Skill. Możesz używać $1, $2 itd. dla kolejnych argumentów, lub $ARGUMENTS dla wszystkich naraz.

## Frontmatter: kontrola zachowania

Frontmatter pozwala precyzyjnie kontrolować jak Skill się zachowuje:

Zaawansowane opcje frontmatter
PoleWartośćEfekt
disable-model-invocationtrueTylko ręczne wywołanie przez /nazwa
user-invocablefalseUkryj z menu /, tylko auto-invoke
contextforkUruchom w osobnym subagentcie
allowed-toolsRead, Grep, WriteTe narzędzia bez pytania

Przykład Skill dla deploymentu (tylko ręczne wywołanie):

yaml
---
name: deploy
description: Deploy aplikacji na produkcję
disable-model-invocation: true
allowed-tools: Bash
---

Deploy aplikacji:
1. Uruchom testy: `npm test`
2. Zbuduj: `npm run build`
3. Deploy: `./scripts/deploy.sh`
4. Zweryfikuj: `curl -I https://app.example.com`

disable-model-invocation: true zapewnia, że Claude nigdy sam nie odpali deploymentu. Musisz wpisać /deploy explicite.

## Gdzie umieścić Skills

Lokalizacja Skill decyduje o zakresie dostępności:

Lokalizacje Skills
<DataRow cols={["Osobiste", "~/.claude/skills//SKILL.md", "Wszystkie Twoje projekty"]} /> <DataRow cols={["Projektowe", ".claude/skills//SKILL.md", "Tylko ten projekt"]} />
ZakresŚcieżkaDostępność
EnterpriseManaged settingsCała organizacja

Typowa organizacja:

  • Skills uniwersalne (explain-code, review-pr) → ~/.claude/skills/
  • Skills specyficzne dla projektu (deploy, migrate) → .claude/skills/

Skills projektowe możesz commitować do repozytorium i dzielić z zespołem.

Podsumowanie

Skills to potężne narzędzie do kodyfikacji powtarzalnych workflow. Zamiast tłumaczyć Claude'owi jak robić deploy za każdym razem, tworzysz Skill raz i używasz /deploy zawsze.

Jeśli szukasz podobnego systemu w alternatywnym narzędziu, sprawdź artykuł Co to jest OpenClaw?. OpenClaw ma analogiczny system Skills z plikami SKILL.md.

Więcej o konfiguracji projektu dla Claude Code znajdziesz w poprzednim wpisie: Plik CLAUDE.md: Jak sprawić, by AI znało konwencje Twojego zespołu.

Skills w Claude Code: Jak stworzyć własne komendy /deploy, /review-pr, /fix-issue