CommunityCodierung & Entwicklunggithub.com

jksim/agent-skills-jksim

Hält Commits klein und Nachrichten kurz. Verwende vor einem Commit, vor einem Push, wenn sich während einer Fehlerbehebung Commits anhäufen oder wenn der commit-check-Hook warnt.

Was ist agent-skills-jksim?

Diese Skill bringt disziplinierte Commit-Praktiken bei, die für eine saubere, reviewbare Versionsgeschichte sorgen. Sie basiert auf der Goldene Regel 4: Eine Änderung enthält nur die logisch notwendigen Commits. Ein Reviewer liest einen sauberen Commit pro Änderung, nicht eine Historie von Versuchen. Die Skill unterstützt Entwickler, die mit Git arbeiten und sicherstellen möchten, dass ihre Commit-Nachrichten kurz und prägnant sind, und dass Fix-Up-Commits vor dem Push zusammengefasst werden. Sie integriert sich mit dem `commit-check`-Hook, der warnt, wenn die Limits überschritten werden, aber nicht blockiert. Der Prozess umfasst das Schreiben von Betreffzeilen mit maximal 72 Zeichen im Imperativ, das Einhalten von maximal 5 Zeilen im Body, das Zusammenfassen logischer Änderungen in einem einzelnen Commit und das Squashen von Fix-Up-Commits vor dem Push. Die Skill bietet klare Anleitungen für `git commit --fixup`, `git rebase --autosquash` und `git commit --amend`. Sie warnt davor, Commits auf einem bereits geteilten Branch umzuschreiben, und zeigt häufige Rationalisierungen auf, die zu schlechten Commit-Gewohnheiten führen, sowie rote Flaggen, die ein Problem anzeigen. Eine Checkliste zur Überprüfung der Commit-Hygiene ist ebenfalls enthalten.

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

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

Commit-Hygiene

Überblick

Regel 4 von Jarretts Regeln: Eine Änderung hat nur die Commits, die sie logisch benötigt. Ein Reviewer liest einen sauberen Commit pro Änderung, nicht eine Historie von Versuchen. Kommentare sind kurz.

Der commit-check-Hook warnt, wenn eine git commit-Nachricht die Grenzen überschreitet. Er blockiert nicht. Du reparierst den Commit.

Wann verwenden

  • Vor jedem Commit.
  • Vor jedem Push.
  • Wenn du mehr als einen Commit erstellt hast, um ein Problem zu beheben.
  • Wenn der commit-check-Hook warnt.

Ablauf

1. Die Nachricht schreiben

  • Betreff: 72 Zeichen oder weniger. Verwende den Imperativ: "Add rules hook", nicht "Added rules hook".
  • Body: 5 Zeilen oder weniger. Lass ihn weg, wenn der Betreff ausreicht.
  • Sage, was sich geändert hat und warum. Beschreibe nicht jede Datei.
  • Verwende vereinfachtes Englisch. Siehe die Skill simplified-english.

2. Einen Commit pro logischer Änderung erstellen

  • Eine logische Änderung: ein Feature-Ausschnitt, eine Fehlerbehebung oder ein Refactoring, das ein Reviewer als eine Einheit annehmen oder ablehnen kann.
  • Mische kein Refactoring und eine Verhaltensänderung in einem Commit.
  • Committe nicht jeden Versuch. Committe, wenn die Änderung funktioniert und die Tests bestanden werden.

3. Fix-Up-Commits vor dem Push squashen

Ein Fix-Up-Commit korrigiert einen früheren Commit in derselben Änderung. Beispiele: "fix typo", "wip", "address review".

  1. Erstelle den Fix-Up-Commit mit git commit --fixup <sha>.
  2. Squashe ihn ohne Editor: GIT_SEQUENCE_EDITOR=: git rebase -i --autosquash <base>.
  3. Wenn der Rebase bei einem Konflikt stoppt, repariere die Dateien und führe git add <dateien> aus. Führe dann GIT_EDITOR=true git rebase --continue aus. Um abzubrechen, führe git rebase --abort aus.
  4. Führe die Tests erneut aus.
  5. Überprüfe das Ergebnis: git log --oneline <base>..HEAD.

Wenn der letzte Commit der zu korrigierende ist, verwende git commit --amend --no-edit.

Warnung: Schreibe keine Commits um, die bereits auf einem gemeinsamen Branch sind. Frage zuerst den Benutzer. Ein Umschreiben zwingt jedes Teammitglied zum Zurücksetzen.

4. Kommentare kurz halten

  • Schreibe einen Kommentar nur, wenn der Code nicht klar ist.
  • Eine Zeile reicht normalerweise. Sage warum, nicht was.
  • Schreibe keine Änderungshistorie in Kommentare. Git behält die Historie.

Häufige Rationalisierungen

RationalisierungRealität
"Kleine Commits zeigen meinen Fortschritt."Der Reviewer braucht das Ergebnis, nicht den Weg. Squashe die Versuche.
"Eine lange Nachricht gibt mehr Kontext."Lange Nachrichten werden nicht gelesen. Den Kontext in die Spezifikation oder den PR setzen.
"Ich squashe später."Später ist nach dem Push. Squashe vor dem Push.
"Der Hook warnt nur, also ist das Limit optional."Das Limit ist eine Teamregel. Der Hook warnt, damit du es beheben kannst.

Rote Flaggen

  • git log zeigt vor dem Push "wip", "fix", "oops" oder "try again".
  • Mehr als ein Commit für eine Fehlerbehebung.
  • Ein Commit-Body, der jede geänderte Datei auflistet.
  • Kommentare, die wiederholen, was der Code sagt.

Überprüfung

  • Jeder Betreff ist 72 Zeichen oder weniger und verwendet den Imperativ.
  • Jeder Body ist 5 Zeilen oder weniger.
  • git log --oneline <base>..HEAD zeigt einen Commit pro logischer Änderung.
  • Vor dem Push sind keine Fix-Up-Commits übrig.
  • Tests bestehen nach jedem Rebase.

Bekannte Einschränkung: Der Hook prüft git -C <verz> commit oder git -c <schlüssel>=<wert> commit nicht. Er überspringt auch einige Nachrichten, die er nicht lesen kann, z. B. -F <datei>.

Individual skills in this repo

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

Verwandte Skills