home / skills / svenja-dev / claude-code-skills / changelog-generator
npx playbooks add skill svenja-dev/claude-code-skills --skill changelog-generatorReview the files below or copy the command above to add this skill to your agents.
---
name: changelog-generator
description: Automatische Release Notes aus Git Commits. Kategorisiert Commits (Features, Fixes, Breaking Changes), wandelt technische Sprache in kundenfreundliche Beschreibungen um. Aktivieren mit /changelog, /changelog v1.2.0..v1.3.0, oder /changelog --week.
triggers:
- /changelog
- changelog erstellen
- release notes
- what changed
- was hat sich geaendert
---
# Changelog Generator
Dieser Skill analysiert die Git-History und erstellt automatisch kundenfreundliche Release Notes.
## Verwendung
```bash
/changelog # Seit letztem Tag
/changelog v1.2.0..v1.3.0 # Zwischen zwei Versionen
/changelog --week # Letzte 7 Tage
/changelog --since=2025-12-01 # Seit Datum
```
## Kategorien und Emojis
| Prefix | Kategorie | Emoji | Kundenfreundlicher Titel |
|--------|-----------|-------|--------------------------|
| `feat:` | Features | ✨ | Neue Funktionen |
| `fix:` | Bug Fixes | 🐛 | Fehlerbehebungen |
| `perf:` | Performance | 🔧 | Verbesserungen |
| `refactor:` | Refactoring | 🔧 | Verbesserungen |
| `BREAKING:` | Breaking Changes | 💥 | Wichtige Aenderungen |
| `security:` | Security | 🔒 | Sicherheit |
| `docs:` | Documentation | 📚 | Dokumentation |
## Workflow
### Schritt 1: Git-History abrufen
```bash
# Seit letztem Tag
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~50")..HEAD --oneline --no-merges
# Zwischen Versionen
git log v1.2.0..v1.3.0 --oneline --no-merges
# Letzte Woche
git log --since="7 days ago" --oneline --no-merges
# Mit Datum und Autor
git log --pretty=format:"%h|%s|%ad|%an" --date=short --since="7 days ago" --no-merges
```
### Schritt 2: Commits kategorisieren
Analysiere jeden Commit und ordne ihn einer Kategorie zu:
```
feat: Add export button → ✨ Features
fix: Resolve login error → 🐛 Bug Fixes
perf: Optimize database queries → 🔧 Verbesserungen
BREAKING: Remove deprecated API → 💥 Wichtige Aenderungen
```
### Schritt 3: Technisch → Kundenfreundlich
Transformiere technische Commit-Messages:
| Technisch | Kundenfreundlich |
|-----------|------------------|
| `feat: Add CSV export to dashboard` | Daten koennen jetzt als CSV-Datei heruntergeladen werden |
| `fix: Resolve null pointer in auth module` | Anmeldeprobleme bei einigen Nutzern behoben |
| `perf: Optimize SQL query for reports` | Berichte laden jetzt deutlich schneller |
| `BREAKING: Remove legacy API v1` | API v1 wird nicht mehr unterstuetzt - bitte auf v2 aktualisieren |
### Schritt 4: Markdown formatieren
## Output-Format
```markdown
## [VERSION] - DATUM
### ✨ Neue Funktionen
- Beschreibung der Funktion (kundenfreundlich)
- Weitere neue Funktion
### 🐛 Fehlerbehebungen
- Problem X wurde behoben
- Stabilitaet bei Y verbessert
### 🔧 Verbesserungen
- Performance-Optimierungen
- Interne Verbesserungen
### 💥 Wichtige Aenderungen
- Beschreibung der Breaking Change
- Migration erforderlich: [Anleitung]
### 🔒 Sicherheit
- Sicherheitsluecke geschlossen
### 📚 Dokumentation
- Dokumentation aktualisiert
```
## Beispiel-Ausgabe
```markdown
## [1.3.0] - 2025-12-26
### ✨ Neue Funktionen
- **Export-Button**: Analyseergebnisse koennen jetzt als Markdown-Datei heruntergeladen werden
- **Chat-Assistent**: Fragen Sie den KI-Assistenten zu Ihren Analyseergebnissen
### 🐛 Fehlerbehebungen
- Anmeldeprobleme bei Google OAuth behoben
- Timeout-Fehler bei grossen Dateien (>5MB) korrigiert
### 🔧 Verbesserungen
- Ladezeiten um 40% reduziert durch optimierte Datenbankabfragen
- Bessere Fehlermeldungen bei ungueltigem Dateiformat
### 🔒 Sicherheit
- Aktualisierung der Stripe-API auf Version 2025-12-15
```
## Git-Befehle Referenz
```bash
# Letzten Tag finden
git describe --tags --abbrev=0
# Alle Tags auflisten
git tag -l --sort=-v:refname
# Commits zwischen Tags
git log v1.2.0..v1.3.0 --oneline --no-merges
# Commits mit Details
git log --pretty=format:"%h|%s|%ad|%an" --date=short HEAD~20..HEAD
# Commits nach Datum
git log --since="2025-12-01" --until="2025-12-26" --oneline
# Breaking Changes finden
git log --grep="BREAKING" --oneline
# Alle feat: Commits
git log --grep="^feat:" --oneline
```
## Konventionen
### Commit-Message-Format (Conventional Commits)
```
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
```
**Types:**
- `feat` - Neue Funktion
- `fix` - Fehlerbehebung
- `perf` - Performance-Verbesserung
- `refactor` - Code-Refactoring ohne Funktionsaenderung
- `docs` - Dokumentation
- `style` - Formatierung (kein Code-Aenderung)
- `test` - Tests hinzugefuegt/geaendert
- `chore` - Build-Prozess, Abhaengigkeiten
- `ci` - CI/CD Konfiguration
**Breaking Changes:**
- `BREAKING CHANGE:` im Footer
- `!` nach Type: `feat!: Remove deprecated API`
## Spezielle Regeln
### Commits ignorieren
Diese Commits werden nicht in den Changelog aufgenommen:
- `chore:` (interne Aenderungen)
- `style:` (nur Formatierung)
- `test:` (nur Tests)
- `ci:` (nur CI/CD)
- Merge-Commits
### Gruppierung
Commits mit gleichem Scope werden gruppiert:
```
feat(auth): Add Google OAuth
feat(auth): Add Magic Link
→ **Authentifizierung**: Google OAuth und Magic Link hinzugefuegt
```
### Mehrsprachigkeit
Der Changelog wird in der Sprache des Projekts erstellt:
- Pruefen: Sprache in README.md oder package.json
- Default: Deutsch fuer fabrikIQ, Englisch fuer andere Projekte
## Integration
### Pre-Release Workflow
1. `/changelog` ausfuehren
2. Output in CHANGELOG.md einfuegen
3. Version in package.json aktualisieren
4. Commit: `chore: Release v1.3.0`
5. Tag: `git tag v1.3.0`
6. Push: `git push && git push --tags`
### Automatische Versionierung
Basierend auf Commit-Types:
- `feat:` → Minor Version (1.2.0 → 1.3.0)
- `fix:` → Patch Version (1.2.0 → 1.2.1)
- `BREAKING:` → Major Version (1.2.0 → 2.0.0)
## Fehlerbehandlung
### Kein Tag vorhanden
```bash
# Fallback: Letzte 50 Commits
git log HEAD~50..HEAD --oneline --no-merges
```
### Keine Conventional Commits
Falls Commits nicht dem Format folgen:
- Commits nach Schlagwoertern kategorisieren (add, fix, update, remove)
- Warnung ausgeben: "Empfehlung: Conventional Commits verwenden"
### Leerer Changelog
Falls keine relevanten Commits gefunden:
- Meldung: "Keine oeffentlichen Aenderungen seit [Version/Datum]"
- Interne Commits (chore, style, test) erwaehnen