# Skills-Leitfaden

Skills sind Komponenten der Wissensebene in Claude Code, die Claude fachspezifisches Know-how und Orientierung bereitstellen. Anders als Befehle, die manuell aufgerufen werden müssen, werden Skills automatisch anhand des Aufgabenkontexts aktiviert.

## Was sind Skills?

Skills sind professionelle Wissensmodule, die in `SKILL.md`-Dateien gespeichert werden:

- **Automatische Aktivierung**: Claude verwendet passende Skills automatisch anhand des Aufgabenkontexts

- **Fachwissen**: Liefert Best Practices und Orientierung für bestimmte Fachgebiete

- **Erweiterbar**: Erstellen Sie eigene Skills, um spezifische Anforderungen abzudecken

- **Kontextbewusst**: Wird nur in relevanten Szenarien aufgerufen

### Skills vs. Befehle vs. Agents

| Komponente | Auslöser | Zweck |
|-----------|---------|---------|
| **Befehle** | Manueller Aufruf durch den Benutzer (`/command`) | Bestimmte Aufgaben ausführen |
| **Skills** | Automatisch aktiviert | Fachwissen bereitstellen |
| **Agents** | Delegierte Aufrufe | Komplexe Workflows bearbeiten |

## Integrierte Skills verwenden

Claude-Code-Plugins enthalten in der Regel mehrere integrierte Skills. Wenn Ihre Aufgabe zur Beschreibung eines Skills passt, verwendet Claude diesen automatisch.

### Beispiel: Code-Review

Wenn Sie sagen „Helfen Sie mir bitte, diesen Code auf Sicherheitsprobleme zu prüfen“, wendet Claude automatisch das Wissen des entsprechenden Skills für die Prüfung an, sofern ein Plugin mit einem Skill für Sicherheitsprüfungen installiert ist.

### Verfügbare Skills anzeigen

Skills werden in der Regel mit Plugins installiert:

```bash
# Install plugin (plugins may contain multiple Skills)
/plugin install plugin-name@marketplace
```

## Eigene Skills erstellen

### Grundstruktur

Der einfachste Skill benötigt nur eine `SKILL.md`-Datei:

```bash
my-skill/
└── SKILL.md
```

### Format der SKILL.md

```markdown
---
name: Code Style Guide
description: Use this skill when the user asks about "code style", "naming conventions", "code formatting", or discusses coding standards
version: 1.0.0
---

# Code Style Guide

## Naming Conventions

- Variables use camelCase
- Constants use UPPER_SNAKE_CASE
- Classes use PascalCase
- Private members use underscore prefix

## Formatting Rules

- Use 2 spaces for indentation
- Line width should not exceed 80 characters
- Use trailing commas

## Best Practices

- Functions should have single responsibility
- Avoid deep nesting
- Use meaningful variable names
```

### Frontmatter-Felder

| Feld | Erforderlich | Beschreibung |
|-------|----------|-------------|
| `name` | Ja | Name des Skills |
| `description` | Ja | Beschreibung der Auslösebedingung (entscheidend!) |
| `version` | Nein | Versionsnummer |

### Wirksame Beschreibungen verfassen

Das Feld „description“ bestimmt, wann ein Skill aktiviert wird, und sollte konkrete Auslösephrasen enthalten:

**Gutes Beispiel**:
```yaml
description: Use this skill when the user asks to "create a hook", "add a PreToolUse hook", "validate tool use", or mentions hook events
```

**Schlechtes Beispiel**:
```yaml
description: Guide about hooks  # Too vague
```

## Vollständige Skill-Struktur

Für komplexe Skills können Sie weitere Ressourcen einbinden:

```bash
my-skill/
├── SKILL.md           # Main knowledge document
├── references/        # Detailed references
│   ├── patterns.md    # Design patterns
│   └── advanced.md    # Advanced techniques
├── examples/          # Example code
│   ├── basic.ts       # Basic example
│   └── advanced.ts    # Advanced example
└── scripts/           # Helper scripts
    └── validate.sh    # Validation script
```

### Ressourcen referenzieren

Verweisen Sie in der SKILL.md auf weitere Ressourcen:

```markdown
---
name: API Development Guide
description: Use when the user asks about "API design", "REST interfaces", "API best practices"
version: 1.0.0
---

# API Development Guide

See @references/patterns.md for detailed API design patterns

## Quick Example

See @examples/basic.ts for basic usage
```
## Skills in Plugins verwenden

### Verzeichnisstruktur

Skills gehören in das Verzeichnis `skills/` des Plugins:

```bash
my-plugin/
├── .claude-plugin/
│   └── plugin.json
├── commands/          # Command layer
├── agents/            # Agent layer
└── skills/            # Knowledge layer
    ├── code-style/
    │   └── SKILL.md
    └── api-docs/
        ├── SKILL.md
        └── references/
```

### Skills in Befehlen referenzieren

Befehle können explizit auf Skill-Wissen verweisen:

```markdown
---
description: Generate standards-compliant API documentation
argument-hint: [api-file]
---

Generate API documentation for @$1.

Use the api-docs skill to ensure documentation includes:
- Complete endpoint descriptions
- Parameter specifications
- Response formats
- Error codes
- Usage examples
```

## Praxisbeispiele

### Beispiel 1: Projektstandards-Skill

```markdown
---
name: Project Standards
description: Use when the user asks about "project structure", "file organization", "directory conventions"
version: 1.0.0
---

# Project Standards

## Directory Structure

\`\`\`
src/
├── components/    # React components
├── hooks/         # Custom Hooks
├── services/      # API services
├── utils/         # Utility functions
└── types/         # TypeScript types
\`\`\`

## File Naming

- Components: PascalCase (e.g., `UserProfile.tsx`)
- Utilities: camelCase (e.g., `formatDate.ts`)
- Constants: UPPER_SNAKE_CASE (e.g., `API_ENDPOINTS.ts`)

## Import Order

1. React related
2. Third-party libraries
3. Internal modules
4. Type definitions
5. Style files
```

### Beispiel 2: Git-Workflow-Skill

```markdown
---
name: Git Workflow
description: Use when the user asks about "branch strategy", "commit conventions", "Git process"
version: 1.0.0
---

# Git Workflow Standards

## Branch Naming

- Features: `feature/description`
- Fixes: `fix/description`
- Hotfixes: `hotfix/description`

## Commit Message Format

\`\`\`
<type>(<scope>): <subject>

<body>

<footer>
\`\`\`

### Type Values

- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation update
- `style`: Code formatting
- `refactor`: Refactoring
- `test`: Testing
- `chore`: Build/tooling
```

### Beispiel 3: Security-Review-Skill

```markdown
---
name: Security Review
description: Use when the user asks about "security check", "vulnerability scan", "security best practices", or reviewing code security
version: 1.0.0
---

# Security Review Guide

## Common Vulnerability Checks

### SQL Injection
- Check for parameterized queries
- Avoid string concatenation in SQL

### XSS Attacks
- Check if user input is escaped
- Use CSP headers

### Sensitive Data
- Ensure passwords are not stored in plaintext
- Don't hardcode API keys
- Check logs for sensitive data leaks

## Review Checklist

- [ ] Input validation
- [ ] Output encoding
- [ ] Authentication mechanism
- [ ] Authorization checks
- [ ] Encryption usage
- [ ] Error handling
```

## Bewährte Praktiken

### 1. Klare Trigger-Beschreibungen

Verwenden Sie spezifische Trigger-Phrasen statt vager Beschreibungen:

```yaml
# Good
description: Use when the user asks about "create component", "React component template", "component best practices"

# Bad
description: React component related
```

### 2. Strukturiertes Wissen

Organisieren Sie Wissen in klare Hierarchien:

- Überschriftsebenen verwenden

- Codebeispiele bereitstellen

- Checklisten einbeziehen

### 3. Aktuell halten

- Skill-Inhalte regelmäßig aktualisieren

- Versionsnummern bilden Änderungen ab

- Wichtige Updates dokumentieren

### 4. Modulares Design

- Jeder Skill konzentriert sich auf ein Fachgebiet

- Verzeichnis references für detaillierte Materialien verwenden

- Praxisbeispiele bereitstellen

## Skills debuggen

Wenn ein Skill nicht wie erwartet aktiviert wird:

1. **Beschreibung prüfen**: Stellen Sie sicher, dass die Trigger-Phrasen mit der Benutzereingabe übereinstimmen

2. **Format überprüfen**: Stellen Sie sicher, dass das YAML-Frontmatter korrekt formatiert ist

3. **Trigger testen**: Verwenden Sie exakt die Phrasen aus der Beschreibung

## Nächste Schritte

- [Plugin-System](/docs/advanced/plugins) – Vollständige Plugin-Entwicklung kennenlernen

- [MCP-Server](/docs/advanced/mcp) – Werkzeugfähigkeiten von Claude erweitern

- [CLI-Tipps](/docs/usage/cli-tips) – Effizienz auf der Kommandozeile verbessern