Claude Code

AI asistent pre vývojárov

Slash CommandsAgent SkillsSubagentsHooks

Lukas DobranskyLukas Dobransky

Agenda

09:00 - 10:30Úvod a základy
10:45 - 12:00Slash Commands
13:00 - 14:30Agent Skills
14:45 - 16:00Subagents
16:15 - 17:15Hooks
17:15 - 18:00Integrácia & Q&A

Blok 1

Úvod a základy

09:00 - 10:30

Prečo AI-asistované kódenie?

55%rýchlejšie dokončenie úlohGitHub Copilot štúdia, 2023
45-50%zrýchlenie dokumentácieMcKinsey, 2024
76%vývojárov používa/plánuje AIStack Overflow Survey, 2024

AI assisted coding

Bez setupu

  • AI nepozná váš projekt
  • Generický kód "z internetu"
  • Opakujete inštrukcie
  • Manuálna koordinácia
  • Nekonzistentný výstup

S plnym setupom

  • AI pozná architektúru
  • Kód podľa vašich konvencií
  • Pravidlá načítané automaticky
  • Automatizované workflow
  • Konzistentný s codebase

Čo setup prináša?

VrstvaČo rieši
Memory (CLAUDE.md)AI pozná projekt, konvencie, architektúru
CommandsOpakovateľné úlohy jedným príkazom
SkillsŠpecializované znalosti aktivované automaticky
SubagentsDelegovanie úloh, optimalizácia kontextu
HooksAutomatické akcie (linting, formátovanie)

Rovnaká úloha, iný výsledok

Úloha: "Pridaj endpoint pre získanie používateľa"

Bez setupu:
  → Generický REST endpoint
  → Iný štýl ako zvyšok kódu
  → Chýba validácia, error handling
  → Nekonzistentné pomenovanie

S plným setupom:
  → Vie že používate NestJS + Prisma
  → Dodržuje existujúce patterny (DTO, Guards)
  → Pridá validáciu podľa projektu
  → Konzistentné s ostatnými endpointmi
  → Vie kde sú testy, pridá ich

Výsledky

MetrikaBez setupuS plnym setupom
Potreba revíziíTakmer vždyMinimálna
Konzistencia s codebaseNáhodnáVysoká
Dodržanie konvenciíGenerickéProjektové
Opakovanie inštrukciíKaždá sessionNikdy

Čo je Claude Code?

CLI nástroj

  • Beží priamo v termináli
  • Prístup k súborom a príkazom
  • Integruje sa s vaším workflow
  • Plná kontrola nad operáciami

Nie je to chatbot

  • Vykonáva reálne akcie
  • Edituje súbory
  • Spúšťa príkazy
  • Pracuje s git

Inštalácia

# Inštalácia cez npm
npm install -g @anthropic-ai/claude-code

# Alebo cez Homebrew (macOS)
brew install claude-code

# Overenie inštalácie
claude --version

Prvé spustenie

# Spustenie v aktuálnom adresári
claude

# Spustenie s konkrétnou úlohou
claude "Vysvetli štruktúru tohto projektu"

# Spustenie v inom adresári
claude --cwd /path/to/project

Základné príkazy

/helpZobrazí nápovedu
/clearVymaže históriu konverzácie
/contextVizualizuje využitie kontextu
/costŠtatistiky použitia tokenov
/compactKomprimuje konverzáciu

CLAUDE.md - Pamäť projektu

# Projekt: E-commerce API

## Štruktúra
- src/controllers/ - API endpointy
- src/services/ - Business logika
- src/models/ - Databázové modely

## Konvencie
- Používame TypeScript strict mode
- Testy v Jest
- ESLint + Prettier pre formátovanie

## Dôležité
- Nikdy necommituj .env súbory
- Pred pushom spusti testy

Inicializácia: /init

Kvalita výstupu závisí od kontextu

Bez pravidiel

// Generický kód
const fetchUsers = async () => {
  const response = await
    fetch('/api/users');
  return response.json();
}

S CLAUDE.md

// Váš štýl a konvencie
const fetchUsers = async ():
  Promise<User[]> => {
  const { data } = await apiClient
    .get<UserResponse>('/users');
  return userMapper.toDomain(data);
}

Claude vie: apiClient wrapper, strict TypeScript, mapper pattern, Response typy

Hierarchia CLAUDE.md

~/.claude/CLAUDE.md              # Tvoj osobný štýl (všade)
│
├── projekt/CLAUDE.md            # Pravidlá projektu
│   │
│   ├── src/CLAUDE.md            # Frontend špecifiká
│   │   └── components/CLAUDE.md # Component guidelines
│   │
│   ├── api/CLAUDE.md            # Backend konvencie
│   │
│   └── tests/CLAUDE.md          # Testing pravidlá

Claude automaticky načíta relevantné súbory podľa working directory

LAB 1: Prvé kroky

  1. Nainštalujte Claude Code
  2. Spustite claude v projekte
  3. Vytvorte CLAUDE.md pomocou /init
  4. Skúste základné príkazy

15 minút

Blok 2

Slash Commands

10:45 - 12:00

Čo sú Slash Commands?

Vlastné príkazy definované v Markdown súboroch

  • Často používané prompty
  • Projektové workflow
  • Zdieľanie s tímom

Umiestnenie príkazov

TypCestaRozsah
Projektové.claude/commands/Tento projekt
Osobné~/.claude/commands/Všetky projekty

Jednoduchý príkaz

.claude/commands/review.md

Skontroluj tento kód z hľadiska:
- Bezpečnostných zraniteľností
- Výkonnostných problémov
- Porušení štýlu kódu
- Chýbajúceho error handlingu

Poskytni konkrétne návrhy na zlepšenie.

Použitie: /review

Frontmatter

---
description: Vytvorí git commit s AI message
allowed-tools: Bash(git add:*), Bash(git commit:*)
argument-hint: [message]
model: claude-3-5-haiku-20241022
---

Vytvor git commit s message: $ARGUMENTS

Ak nie je zadaná message, vygeneruj ju
na základe zmien v git diff.

Argumenty

$ARGUMENTS

Fix issue #$ARGUMENTS

/fix-issue 123 urgent

→ "123 urgent"

$1, $2, $3...

Review PR #$1 s prioritou $2

/review-pr 456 high

→ "PR #456 s prioritou high"

Bash execution

Prefix ! spustí bash príkaz

---
allowed-tools: Bash(git:*)
description: Vytvorí commit na základe zmien
---

## Kontext

- Git status: !`git status`
- Git diff: !`git diff HEAD`
- Aktuálna vetva: !`git branch --show-current`
- Posledné commity: !`git log --oneline -5`

## Úloha

Vytvor commit message na základe vyššie uvedených zmien.

Referencie na súbory

---
description: Porovná dva súbory
argument-hint: [súbor1] [súbor2]
---

Porovnaj tieto dva súbory a vysvetli rozdiely:

Súbor 1: @$1
Súbor 2: @$2

Zameraj sa na:
- Štrukturálne zmeny
- Logické rozdiely
- Potenciálne problémy

Priklad: /deploy

---
description: Deploy na zvolené prostredie
allowed-tools: Bash(npm:*), Bash(docker:*), Bash(kubectl:*)
argument-hint: [staging|production]
---

## Kontext
- Prostredie: $1
- Aktuálna vetva: !`git branch --show-current`
- Posledný commit: !`git log --oneline -1`

## Úloha
1. Skontroluj, že všetky testy prechádzajú
2. Buildni aplikáciu pre $1
3. Nasaď na $1 prostredie
4. Over, že deployment prebehol úspešne

LAB 2: Vlastný príkaz

Vytvorte prikaz /deploy:

  1. Vytvorte subor .claude/commands/deploy.md
  2. Pridajte frontmatter s description a argument-hint
  3. Použite bash execution pre git info
  4. Definujte kroky deploymentu

20 minút

Blok 3

Agent Skills

13:00 - 14:30

Skills vs Commands

CommandsSkills
AktiváciaManuálna (/príkaz)Automatická (Claude rozhodne)
ŠtruktúraJeden súborAdresár + SKILL.md
KomplexitaJednoduché promptyKomplexné workflow
SúboryJeden .mdViac súborov, skripty

Štruktúra Skill

.claude/skills/
└── code-review/
    ├── SKILL.md          # Povinný - hlavný súbor
    ├── SECURITY.md       # Bezpečnostný checklist
    ├── PERFORMANCE.md    # Výkonnostné vzory
    └── scripts/
        └── run-linters.sh

SKILL.md

---
name: code-review
description: >
  Kontroluje kód z hľadiska kvality, bezpečnosti
  a best practices. Použi pri review kódu alebo
  keď používateľ pýta "skontroluj tento kód".
allowed-tools: Read, Grep, Glob
---

# Code Review

## Inštrukcie
1. Analyzuj kód na bezpečnostné problémy
2. Skontroluj výkonnostné vzory
3. Over dodržiavanie štýlu

## Dodatočné zdroje
- Pre bezpečnosť pozri [SECURITY.md](SECURITY.md)
- Pre výkon pozri [PERFORMANCE.md](PERFORMANCE.md)

Frontmatter možnosti

nameNázov skill (povinné)
descriptionKedy použiť (povinné)
allowed-toolsPovolené nástroje
modelŠpecifický model
contextfork - samostatný kontext
hooksLifecycle hooks

Progressive Disclosure

Udržujte SKILL.md krátky, detaily v oddelených súboroch

## Prehľad
[Základné inštrukcie tu]

## Dodatočné zdroje
- Pre API detaily pozri [reference.md](reference.md)
- Pre príklady pozri [examples.md](examples.md)

## Utility skripty
Pre validáciu spusti:
```bash
python scripts/validate.py input.txt
```

Obmedzenie nástrojov

---
name: safe-reader
description: Číta súbory bez možnosti úprav
allowed-tools: Read, Grep, Glob
---

Analyzuj kód, ale nevykonávaj žiadne zmeny.
Poskytni len analýzu a odporúčania.

Claude môže použiť len Read, Grep, Glob

Priklad: PDF Skill

.claude/skills/pdf-processing/
├── SKILL.md
├── FORMS.md
├── REFERENCE.md
└── scripts/
    ├── fill_form.py
    └── validate.py

PDF Skill - SKILL.md

---
name: pdf-processing
description: >
  Extrahuje text, vypĺňa formuláre, spája PDF.
  Použi pri práci s PDF súbormi.
allowed-tools: Read, Bash(python:*)
---

# PDF Processing

## Quick start
```python
import pdfplumber
with pdfplumber.open("doc.pdf") as pdf:
    text = pdf.pages[0].extract_text()
```

Pre vypĺňanie formulárov pozri [FORMS.md](FORMS.md)
Pre API referenciu pozri [REFERENCE.md](REFERENCE.md)

LAB 3: Code Review Skill

Vytvorte skill pre code review:

  1. Vytvorte .claude/skills/code-review/
  2. Vytvorte SKILL.md s frontmatter
  3. Pridajte CHECKLIST.md s review bodmi
  4. Otestujte: "Skontroluj tento kod"

25 minút

Blok 4

Subagents

14:45 - 16:00

Čo sú Subagents?

Špecializovaní AI asistenti s vlastným kontextom

  • Vlastný system prompt
  • Obmedzené nástroje
  • Nezávislé permissions
  • Izolácia kontextu

Prečo izolácia kontextu?

Bez subagentov

  • Celá história konverzácie
  • Všetky načítané súbory
  • Všetky výsledky príkazov
  • Kontext rastie s každou úlohou

→ Blíži sa k limitu 200K

So subagentmi

  • Čistý štart - len system prompt
  • Načíta len čo potrebuje
  • Vráti zhrnutie, nie históriu
  • Hlavný agent zostáva "čistý"

→ Kontext pod kontrolou

Ako subagent setri kontext

Hlavný agent (Sonnet):
├── História: 50 správ konverzácie
├── Súbory: 20 načítaných súborov
└── "Potrebujem nájsť všetky API endpointy"
    │
    └── Subagent Explore (Haiku):
        ├── Čistý štart (0 histórie)
        ├── Číta len relevantné súbory
        └── Vracia: "Našiel som 12 endpointov v /api/*"
            │
            └── Do hlavného kontextu: len výsledok (~100 tokenov)
                NIE: celá história hľadania (~10K+ tokenov)

Kedy použiť subagenta?

ÚlohaSubagentPrečo
Hľadanie v kódeExplore (Haiku)Read-only, lacnejší model stačí
Spúšťanie testovCustom (Haiku)Výstup testov je veľký, vráti len zhrnutie
Analýza errorovCustom (Sonnet)Stack trace neplní hlavný kontext
DokumentáciaCustom (Haiku)Jednoduchá úloha, nepotrebuje históriu

Built-in Subagents

AgentÚčelModel
ExplorePrehľadávanie kódu (read-only)Haiku
PlanPlánovanie implementácieInherit
general-purposeKomplexné multi-step úlohyInherit

Vytvorenie subagenta

Interaktívne: /agents

Alebo manualne:

# Projektové
.claude/agents/my-agent.md

# Osobné (všetky projekty)
~/.claude/agents/my-agent.md

Štruktúra subagenta

---
name: code-reviewer
description: >
  Expert na code review. Použi proaktívne
  po zmenách v kóde.
tools: Read, Grep, Glob, Bash
model: sonnet
---

Si senior code reviewer zameraný na kvalitu
a bezpečnosť kódu.

Pri invokácii:
1. Spusti git diff pre posledné zmeny
2. Analyzuj zmenené súbory
3. Poskytni feedback podľa priority

Frontmatter možnosti

nameIdentifikátor (povinné)
descriptionKedy delegovať (povinné)
toolsPovolené nástroje
disallowedToolsZakázané nástroje
modelsonnet, opus, haiku, inherit
permissionModedefault, acceptEdits, dontAsk...

Permission Modes

defaultŠtandardné permission prompty
acceptEditsAuto-accept file edits
dontAskAuto-deny prompty
bypassPermissionsPreskočí všetky kontroly
planRead-only režim

Priklad: Test Runner

---
name: test-runner
description: >
  Spúšťa testy a analyzuje výsledky.
  Použi po implementácii novej funkcie.
tools: Bash, Read, Grep
model: haiku
---

Si expert na testovanie softvéru.

Pri invokácii:
1. Identifikuj testovací framework
2. Spusti relevantné testy
3. Analyzuj výsledky
4. Navrhni opravy pre failing testy

Report formátuj:
- Passing: [počet]
- Failing: [počet]
- Pre každý fail: príčina + návrh

Background Execution

# Claude rozhodne automaticky
"Spusti testy na pozadí"

# Alebo počas behu: Ctrl+B

Background agenti:

  • Bežia paralelne
  • Dedia permissions
  • Auto-deny nové permission requesty

Priklad: Debugger

---
name: debugger
description: >
  Debugovací špecialista pre errors a test failures.
  Použi proaktívne pri problémoch.
tools: Read, Edit, Bash, Grep, Glob
---

Si expert debugger špecializujúci sa na root cause analysis.

Proces:
1. Zachyť error message a stack trace
2. Identifikuj kroky k reprodukcii
3. Izoluj miesto zlyhania
4. Implementuj minimálny fix
5. Over riešenie

Pre každý problém poskytni:
- Root cause vysvetlenie
- Dôkazy podporujúce diagnózu
- Konkrétny code fix
- Testovací prístup

LAB 4: Test Runner Agent

Vytvorte subagenta pre spúšťanie testov:

  1. Vytvorte .claude/agents/test-runner.md
  2. Definujte tools: Bash, Read, Grep
  3. Nastavte model na haiku (rýchlejší)
  4. Otestujte: "Spusti testy pomocou test-runner"

20 minút

Blok 5

Hooks

16:15 - 17:15

Čo sú Hooks?

Shell príkazy, ktoré sa spúšťajú pri špecifických udalostiach

  • Deterministická kontrola
  • Automatická exekúcia
  • Validácia a formátovanie

Hook Events

PreToolUsePred použitím nástroja (môže blokovať)
PostToolUsePo použití nástroja
NotificationPri notifikácii od Claude
StopKeď Claude skončí odpoveď
UserPromptSubmitPo odoslani promptu

Konfigurácia hooks

Interaktívne: /hooks

Alebo v settings.json:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write \"$FILE_PATH\""
          }
        ]
      }
    ]
  }
}

Matcher syntax

# Konkrétny tool
"matcher": "Bash"

# Viac tools (regex)
"matcher": "Edit|Write"

# Všetky tools
"matcher": "*"

# Prázdny = všetky
"matcher": ""

Auto-formatting Hook

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | { read f; if echo \"$f\" | grep -q '\\.ts$'; then npx prettier --write \"$f\"; fi; }"
          }
        ]
      }
    ]
  }
}

File Protection Hook

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "python3 -c \"import json,sys; d=json.load(sys.stdin); p=d.get('tool_input',{}).get('file_path',''); sys.exit(2 if any(x in p for x in ['.env','credentials','.git/']) else 0)\""
          }
        ]
      }
    ]
  }
}

Exit code 2 = blokuj operáciu

Custom Notification Hook

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude caka na vstup\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Bash Logging Hook

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '\"\\(.tool_input.command) - \\(.tool_input.description // \"No desc\")\"' >> ~/.claude/bash-log.txt"
          }
        ]
      }
    ]
  }
}

Exit Codes

0Úspech - pokračuj
1Chyba (ale pokračuj)
2Blokuj operáciu + feedback

LAB 5: Linting Hook

Vytvorte hook pre automatický linting:

  1. Spustite /hooks
  2. Vyberte PostToolUse
  3. Matcher: Edit|Write
  4. Prikaz pre eslint/prettier

15 minút

Blok 6

Integracia & Best Practices

17:15 - 18:00

Kombinácia features

Projekt/
├── .claude/
│   ├── CLAUDE.md           # Pamäť projektu
│   ├── commands/
│   │   ├── deploy.md       # /deploy
│   │   └── commit.md       # /commit
│   ├── skills/
│   │   └── code-review/    # Auto-review
│   └── agents/
│       └── test-runner.md  # Test subagent
├── .claude/settings.json   # Hooks
└── src/

Workflow: Feature Development

  1. Plánovanie: /plan alebo Plan agent
  2. Implementácia: Claude Code + CLAUDE.md
  3. Review: Code Review skill (automaticky)
  4. Testy: Test Runner subagent
  5. Format: Hooks (automaticky)
  6. Commit: /commit
  7. Deploy: /deploy staging

Best Practices

CLAUDE.md

Udržujte aktuálny a stručný

Commands

Pre často opakované akcie

Skills

Pre komplexné, automatické workflow

Subagents

Pre izolované, špecializované úlohy

Hooks

Pre deterministické, vždy-spustiť akcie

Bezpečnostné odporúčania

  • Nikdy necommitujte API kľúče
  • Používajte file protection hooks
  • Limitujte tools v subagentoch
  • Reviewujte hook skripty
  • bypassPermissions len keď viete čo robíte

Tipy pre produktivitu

  • /compact keď kontext narastie
  • /context pre monitoring
  • Background agents pre dlhé úlohy
  • Haiku model pre rýchle úlohy
  • Zdieľajte commands a skills s tímom

Zdroje

Ďakujem!

Otázky?

Lukas Dobransky
Lukas Dobransky
Co-founder @ CaskCoded
AI Workflows & Automation
LinkedIn QR