| name | professional-commit-workflow |
| description | Erstellt professionelle Git-Commits mit automatischen Pre-Commit-Checks für Java, Python, React und Dokumentation. Generiert Emoji Conventional Commit-Nachrichten und analysiert Staging-Status. Atomare Commits nach Best Practices. |
Professional Commit Workflow
Overview
Dieser Skill automatisiert den kompletten Git-Commit-Workflow mit professionellen Qualitätschecks und konventionellen Commit-Nachrichten. Er ersetzt den /commit Command mit einem wiederverwendbaren, distribuierbaren Skill.
Special Features:
- ✅ Automatische Projekterkennung (Java, Python, React, Dokumentation)
- ✅ Pre-Commit-Validierung mit projektspezifischen Tools
- ✅ Emoji Conventional Commits (✨ feat, 🐛 fix, 📚 docs, etc.)
- ✅ Intelligente Staging-Analyse mit automatischem Add
- ✅ Atomare Commit-Empfehlungen bei mehreren logischen Änderungen
- ✅ Performance-optimiert durch modulare Validator-Architektur
Prerequisites
Required:
- Git (version 2.0+)
- Python 3.8+
Optional (für spezifische Validierungen):
- Java: Maven oder Gradle
- Python: ruff, black, pytest, mypy
- React/Node.js: npm/pnpm/yarn/bun, ESLint, Prettier
- Docs: LaTeX, markdownlint, AsciiDoc
# Python dependencies installieren
pip install -r requirements.txt --break-system-packages
Usage Workflow
User initiiert Commit: "Erstelle einen Commit" oder "Commit die Änderungen"
Optionen erkennen:
--no-verify: Überspringt Pre-Commit-Checks--skip-tests: Überspringt nur Tests--force-push: Force Push nach Commit (Vorsicht!)
Projekt-Detection ausführen:
python scripts/project_detector.pyErkennt automatisch:
- Java (Maven: pom.xml, Gradle: build.gradle)
- Python (pyproject.toml, requirements.txt, setup.py)
- React/Node.js (package.json mit react/next/vite)
- Dokumentation (*.tex, *.md, *.adoc)
Pre-Commit-Validierung (falls nicht
--no-verify):python scripts/main.py --validate-onlyFührt projektspezifische Checks aus:
- Java: Build, Tests, Checkstyle, SpotBugs
- Python: Ruff, Black, pytest, mypy
- React: ESLint, Prettier, TypeScript, Build
- Docs: LaTeX compile, markdownlint
Staging-Analyse:
python scripts/git_analyzer.py --analyze-staging- Prüft
git statusfür gestakte Dateien - Fügt automatisch Änderungen hinzu falls nötig
- Zeigt Übersicht der zu committenden Dateien
- Prüft
Diff-Analyse:
python scripts/git_analyzer.py --analyze-diff- Analysiert
git difffür logische Änderungen - Erkennt mehrere Features/Fixes in einem Commit
- Empfiehlt Aufteilung bei Bedarf
- Analysiert
Commit-Message generieren:
python scripts/commit_message.py --generate- Erkennt Commit-Typ aus Änderungen
- Generiert Emoji Conventional Commit
- Deutsche, imperative Beschreibung
- Format:
<emoji> <type>: <beschreibung>
Commit erstellen:
git commit -m "$(python scripts/commit_message.py --output)"- WICHTIG: Keine "Co-Authored-By" oder "Generated with" Zusätze
Optional: Push anbieten:
git push origin <branch>
Main Script Usage
# Standard-Commit-Workflow
python scripts/main.py
# Nur Validierung (kein Commit)
python scripts/main.py --validate-only
# Checks überspringen
python scripts/main.py --no-verify
# Tests überspringen
python scripts/main.py --skip-tests
# Mit Force-Push
python scripts/main.py --force-push
Output Structure
Erfolgreicher Workflow:
✓ Projekt erkannt: React/TypeScript
✓ Pre-Commit-Checks bestanden (3/3)
✓ ESLint: 0 Fehler
✓ TypeScript: Kompilierung erfolgreich
✓ Build: Erfolgreich
✓ Staging-Analyse: 5 Dateien bereit
✓ Commit-Typ erkannt: feat
✓ Commit erstellt: ✨ feat: User Dashboard mit Metriken hinzugefügt
Bei Validierungs-Fehlern:
✗ Pre-Commit-Checks fehlgeschlagen (1/3)
✓ ESLint: 0 Fehler
✗ TypeScript: 2 Fehler gefunden
- src/components/Dashboard.tsx:12 - Type 'string' is not assignable to type 'number'
✓ Build: Erfolgreich
❌ Commit abgebrochen. Bitte Fehler beheben oder --no-verify verwenden.
Configuration
commit_types.json
Definiert Emoji-Mappings für Conventional Commits:
{
"feat": {"emoji": "✨", "description": "Neue Funktionalität"},
"fix": {"emoji": "🐛", "description": "Fehlerbehebung"},
"docs": {"emoji": "📚", "description": "Dokumentation"}
}
validation_rules.json
Projektspezifische Validierungs-Regeln:
{
"java": {
"build": true,
"tests": true,
"checkstyle": true
},
"python": {
"ruff": true,
"black": true,
"pytest": true,
"mypy": true
}
}
Error Handling
Validierungs-Fehler:
- Zeige detaillierte Fehlermeldung
- Biete
--no-verifyOption an - Verweise auf docs/troubleshooting.md
Git-Fehler:
- Prüfe Git-Status (untracked, conflicts)
- Verweise auf Git-Troubleshooting
- Biete manuelle Kommandos an
Tool nicht gefunden:
- Graceful degradation (überspringen)
- Warne User über fehlende Validierung
- Empfehle Tool-Installation
Best Practices
Atomare Commits:
- ✅ Jeder Commit = Eine logische Einheit
- ✅ Trenne Features, Fixes, Refactorings
- ❌ Keine "WIP" oder "misc changes" Commits
Aussagekräftige Nachrichten:
- ✅ Beschreibe "Was" und "Warum", nicht "Wie"
- ✅ Imperative Form: "Füge hinzu", nicht "Hinzugefügt"
- ✅ Erste Zeile ≤ 72 Zeichen
- ❌ Keine automatischen Signaturen
Code-Qualität:
- ✅ Alle Checks bestanden vor Commit
- ✅ Tests laufen durch
- ✅ Build erfolgreich
- ❌ Keine Debug-Ausgaben oder auskommentierter Code
Vollständige Guidelines: docs/best-practices.md
References
- Pre-Commit-Checks: Detaillierte Check-Beschreibungen
- Commit-Types: Alle Emoji-Typen mit Beispielen
- Best Practices: Umfassende Git-Commit-Best-Practices
- Troubleshooting: Fehlerbehebung für häufige Probleme