CommunityCodierung & Entwicklunggithub.com

jaimegago/agent-skills

Commite geänderte, gestaged und ungestaged Dateien mit einer automatisch generierten Conventional Commit-Nachricht und synchronisiert den Branch mit dem Remote. Verwende dieses Skill, wenn der Benutzer „commit“, „save my changes“, „push this“, „commit and push“, „sync“ oder eine Variation davon sagt, um seine Arbeit zu committen und auf das Remote zu bringen.

Was ist agent-skills?

Dieses Skill automatisiert den gesamten Git-Workflow vom Commit bis zum Push und erzeugt dabei standardisierte Conventional Commit-Nachrichten. Es unterstützt Entwickler dabei, ihre Arbeit schnell und konsistent zu speichern und zu synchronisieren, ohne sich um die Details von Commit-Nachrichten oder die manuelle Ausführung von Git-Befehlen kümmern zu müssen. Das Skill erkennt automatisch die Projektstruktur und führt vor dem Commit Linting und Auto-Fixes für die gängigsten Sprachen (Go, JavaScript/TypeScript, Python, Rust) durch, sodass nur sauberer Code committed wird. Es ist ideal für CI/CD-Pipelines, schnelle Iterationen und Situationen, in denen der Entwickler einfach nur „ship it“ sagen möchte, ohne den gesamten Git-Prozess manuell durchlaufen zu müssen. Das Skill ist für alle agentenbasierten Entwicklungsumgebungen konzipiert, die benutzerdefinierte Skills unterstützen (z. B. Claude Code, Cursor, Codex). Sollte ein Schritt fehlschlagen (z. B. Lint-Fehler, die nicht automatisch behoben werden können, oder Rebase-Konflikte), wird der Vorgang gestoppt und der Benutzer informiert – es werden keine riskanten automatischen Operationen durchgeführt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jaimegago/agent-skills/tree/HEAD/git-commit

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Arbeitsablauf

Führe diese Schritte der Reihe nach aus. Stoppe und melde dem Benutzer, wenn ein Schritt fehlschlägt.

1. Arbeitsverzeichnis prüfen

Führe git status und git diff (sowohl gestaged als auch ungestaged) aus, um zu verstehen, was sich geändert hat. Wenn es überhaupt keine Änderungen gibt, teile dem Benutzer mit, dass es nichts zu committen gibt, und stoppe.

2. Verschmutzte Submodule bereinigen

Wenn git status Submodule mit "(modified content)" anzeigt, aber keine gestageten oder beabsichtigten Submodule-Zeigeränderungen vorliegen, handelt es sich um verschachtelte Sub-Submodule, die abgewichen sind (typischerweise durch ein rekursives --remote-Update). Führe für jedes solche verschmutzte Submodule git -C <submodule-pfad> submodule update --init aus, um die verschachtelten Referenzen auf die vom übergeordneten Submodule erwarteten Commits wiederherzustellen. Überprüfe nach der Bereinigung erneut mit git status, dass der Schmutz verschwunden ist. Stagte KEINE Submodule-Zeigeränderungen, es sei denn, der Benutzer hat sie explizit geändert.

3. Alles stagen, es sei denn, der Benutzer hat etwas anderes angegeben

Wenn der Benutzer keine bestimmten Dateien angegeben hat, stage alle Änderungen (verfolgte und unverfolgte) mit git add -A. Wenn der Benutzer bestimmte Dateien oder Pfade genannt hat, stage nur diese.

4. Linting und automatische Korrektur

Vor dem Commit erkenne den Linter des Projekts und führe ihn mit automatischer Korrektur für die gestageten Dateien aus. Erkennungsreihenfolge:

  • Projektweites Lint-Ziel zuerst: Wenn das Makefile ein lint- oder lint:fix-Ziel hat, oder package.json ein lint- oder lint:fix-Skript, bevorzuge dieses – es respektiert die eigenen Konventionen des Projekts. Fahre mit der sprachspezifischen Erkennung nur fort, wenn kein projektweites Ziel existiert.
  • Go (go.mod vorhanden): führe gofmt -w auf gestageten .go-Dateien aus, dann go vet ./...
  • JavaScript/TypeScript (package.json vorhanden): führe npx eslint --fix auf gestageten JS/TS-Dateien aus, wenn eine ESLint-Konfiguration existiert. Wenn Prettier konfiguriert ist, führe auch npx prettier --write auf diesen Dateien aus.
  • Python (pyproject.toml, setup.py oder requirements.txt vorhanden): führe ruff check --fix und ruff format auf gestageten .py-Dateien aus, wenn Ruff konfiguriert ist. Falle zurück auf black, falls installiert. Falle zurück auf flake8 (nur Bericht, keine automatische Korrektur).
  • Rust (Cargo.toml vorhanden): führe cargo fmt und cargo clippy --fix --allow-dirty aus.
  • Kein Linter erkannt: überspringe diesen Schritt und fahre fort.

Nach der automatischen Korrektur stagte alle geänderten Dateien erneut mit git add -u. Wenn der Linter Fehler meldet, die nicht automatisch korrigiert werden konnten, stoppe und melde sie dem Benutzer – committe nicht mit bekannten Lint-Fehlern.

Wenn ein Linter erkannt wird, aber das Binary nicht installiert ist, warne den Benutzer und frage, ob ohne Linting fortgefahren oder abgebrochen werden soll.

5. Commit-Nachricht generieren

Analysiere den gestageten Diff, um eine Conventional-Commit-Nachricht zu erzeugen:

type(scope): Kurzzusammenfassung

Optionaler Body mit Kontext, was geändert wurde und warum.

Regeln:

  • type: einer von feat, fix, refactor, docs, test, chore, ci, perf, style, build
  • scope: optional, aber bevorzugt – leite ihn vom primären Package, Modul oder Verzeichnis ab, das berührt wurde. Lasse ihn nur weg, wenn die Änderungen zu viele Bereiche umfassen, als dass ein einzelner Scope sinnvoll wäre.
  • Zusammenfassungszeile: Kleinbuchstaben, Imperativ, kein Punkt, maximal 72 Zeichen.
  • Body: füge ihn nur hinzu, wenn der Diff nicht trivial ist und die Zusammenfassung allein einem Reviewer nicht genügend Kontext geben würde. Halte ihn prägnant.
  • Mehrere logische Änderungen: wähle die dominierende für type/scope aus, erwähne sekundäre Änderungen im Body. Teile NICHT in mehrere Commits auf, es sei denn, der Benutzer bittet explizit darum.
  • Breaking Changes: füge einen BREAKING CHANGE-Footer hinzu oder verwende das !-Suffix (z. B. feat!: ...).
  • Wenn der Linter Dateien automatisch korrigiert hat, erwähne dies im Body (z. B. "Enthält gofmt-Auto-Korrekturen.").

6. Commit

Führe git commit mit der generierten Nachricht aus. Verwende -m für reine Zusammenfassungsnachrichten. Für Nachrichten mit einem Body schreibe in eine temporäre Datei und verwende git commit -F, um Zeilenumbrüche zu erhalten, und bereinige dann die temporäre Datei.

7. Mit Remote synchronisieren

Ermittle den aktuellen Branch-Namen. Dann:

  • Wenn der Branch einen Upstream hat, führe git push aus.
  • Wenn der Branch keinen Upstream hat, führe git push -u origin <branch-name> aus.
  • Wenn der Push abgelehnt wird, weil das Remote voraus ist, führe git pull --rebase und dann erneut push aus. Wenn der Rebase zu Konflikten führt, stoppe und melde – löse Merge-Konflikte nicht automatisch auf.

8. Bestätigung

Melde dem Benutzer:

  • Commit-Hash (Kurzform)
  • Verwendete Commit-Nachricht
  • Branch-Name und Remote-Synchronisierungsstatus
  • Geänderte Dateien, Einfügungen, Löschungen (aus git diff --stat des Commits)
  • Welcher Linter ausgeführt wurde (oder dass keiner erkannt wurde)

Randfälle

  • Kein Remote konfiguriert: committe lokal und informiere den Benutzer.
  • Detached HEAD: warne vor dem Commit, schlage vor, zuerst einen Branch zu erstellen.
  • Nur unverfolgte Dateien: stage und committe sie normal.
  • Respektiere .gitignore – füge ignorierte Dateien niemals mit git add -f hinzu, es sei denn, der Benutzer bittet explizit darum.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

jaimegago/agent-skills

Load general development standards. Applies to all repos. Invoke at the start of a session or when standards need reinforcing.

jaimegago/agent-skills

Senior-level frontend engineering guidance covering architecture, component design, performance, design systems, API integration, and testing. Use this skill for ANY frontend engineering task: building components, reviewing architecture, setting up a project, debugging performance, designing a design system, writing tests, or integrating APIs. Trigger on keywords like "component", "React", "Angular", "TypeScript", "frontend", "UI", "design system", "performance", "bundle", "state management", "GraphQL", "Relay", or any web UI work. Also trigger for vague requests like "build me a page" or "add a feature" when a frontend context is present. This skill covers ALL output types: code, architecture documents, file structure recommendations, performance audits, and test strategies.

jaimegago/agent-skills

Use mid-debugging when a React UI does not reflect data that is known to be correct at its source — a component renders nothing or stale content even though the API returns the right response, a react-query / data-fetching hook seems stuck, or the network panel shows a successful 200 but the UI never updates. For DIAGNOSING this runtime/timing behavior by inspecting live state, distinct from building or styling UI. Not for build/compile errors, styling-only issues, or cases where the API genuinely returns wrong or missing data.

Verwandte Skills