Communitygithub.com

lguidolin/conventional-commits-and-releases

Verwenden beim Committen, Schreiben einer Commit-Nachricht, Öffnen eines PRs, der squashend gemergt wird, oder beim Konfigurieren von automatischem Versionieren/Changelogs. Schlüsselwörter – Conventional Commits, Release-Please, Semver, feat/fix/chore, Breaking Change, Changelog.

Was ist conventional-commits-and-releases?

Dies ist eine Fähigkeit für KI-Agenten, die sich um die Einhaltung und Durchsetzung von Conventional Commits kümmert, einem standardisierten Format für Commit-Nachrichten. Die Fähigkeit verknüpft Commit-Nachrichten maschinell mit automatischer Versionierung (SemVer) und Changelog-Generierung. Sie definiert gültige Typen wie `feat` (Minor-Bump), `fix` (Patch-Bump) und `docs`/`chore` (kein Bump) und erklärt, dass ein falscher Typ eine falsche öffentliche Version auslösen kann. Der Agent erzeugt zwingend Commit-Nachrichten im Imperativ ohne KI-Attribution (keine `Co-authored-by`-Trailer oder KI-Fußnoten) und validiert PR-Titel und Commit-Inhalte strikt gegen diese Regeln. Die Durchsetzung erfolgt über CI-Checks, die PR-Titel und KI-Attribution blockieren. Die Fähigkeit ist für GitHub-Workflows mit Squash-Merge optimiert und unterstützt Plattformen wie Claude Code, Cursor und Codex.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lguidolin/agent-skills/tree/main/skills/conventional-commits-and-releases

In Ihrer bevorzugten KI fragen

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

Dokumentation

Conventional Commits und Releases

Überblick

Commit-Nachrichten sind eine maschinenlesbare Schnittstelle, nicht nur Prosa. Automatische Versionierung und Changelog-Generierung parsen sie; eine fehlerhafte Nachricht erzeugt eine falsche öffentliche Version oder einen defekten Release. Disziplin im Kleinen (eine wohlgeformte Nachricht) liefert Korrektheit im Großen (korrektes Changelog, richtiger Versionssprung) kostenlos.

Das Format

<typ>(<bereich>): <beschreibung>

TypWirkung / Verwendung
featNeue Funktion – Minor-Bump
fixFehlerbehebung – Patch-Bump
docsNur Dokumentation
choreWartung, Abhängigkeiten, Konfiguration
refactorVerhaltenserhaltende Codeänderung
testNur Tests
ci / buildPipeline-/Build-System-Änderungen
  • Imperativ: „X hinzufügen“, nicht „X hinzugefügt“ oder „X fügt hinzu“.
  • Breaking Changes: feat!: oder ein BREAKING CHANGE:-Footer – löst einen Major-Bump aus.
  • Bereich optional, aber empfohlen: feat(auth):, fix(db):.

Wichtige Details

  • Die Typ↔Version-Verknüpfung bedeutet, dass ein falsch eingetipptes feat vs. fix eine falsche Version ausliefert. Wähle den Typ bewusst: „add“ = neue Funktion, „update“ = Verbesserung bestehender Funktionen, „fix“ = Fehler.
  • Squash-Merge: Der PR-Titel wird zum Commit, der ausgeliefert wird. Er selbst muss ein gültiger Conventional Commit sein, sonst ist der Release falsch.
  • Menschlich verfasste Stimme. Keine KI-/Assistenten-Zuschreibung, keine Co-authored-by-Trailer, keine generierten Fußnoten. Commits lesen sich, als ob ein Mensch sie geschrieben hat.

Häufige Rationalisierungen

AusredeRealität
„Die Nachricht ist eigentlich egal“Sie steuert das Changelog und die Versionsnummer. Sie ist mechanisch wichtig.
„chore ist nah genug für diese Funktion“chore erhöht die Version nicht; Nutzer erhalten Ihre Funktion nicht in einem Release. Verwenden Sie den richtigen Typ.
„Ich korrigiere den PR-Titel später“Beim Squash-Merge ist der Titel zum Zeitpunkt des Merges endgültig. Korrigieren Sie ihn vorher.
„Ein Co-authored-by-Trailer ist harmlos“Die Projektregel verbietet KI-Zuschreibung. Keine Ausnahmen.

Rote Flaggen – STOPP

  • Eine Commit-Nachricht ohne Typ-Präfix
  • Verwendung von chore/docs für etwas, das benutzersichtbares Verhalten hinzufügt oder korrigiert
  • Ein Squash-PR-Titel, der kein gültiger Conventional Commit ist
  • Jegliche KI-Zuschreibung oder Co-authored-by-Zeile

Durchsetzung:

  • PR-Titel – in CI validiert, blockierend (amannn/action-semantic-pull-request). Beim Squash-Merge ist der Titel der ausgelieferte Commit, daher ist dies das entscheidende Tor.
  • KI-Zuschreibung – ein blockierender No AI Attribution-Job lehnt Co-authored-by-Trailer ab, die Claude/Anthropic nennen, sowie Generated with [Claude…]-Fußnoten, sowohl in den Branch-Commits als auch im PR-Text (der Text wird zum Squash-Commit-Text). Menschliche Co-authored-by-Trailer sind nicht betroffen.
  • Branch-Commit-Texte – bewusst nicht gelintet. Squash-Merge verwirft sie, daher erreichen sie nie das Changelog. Wenn Sie zu Merge-Commits wechseln, fügen Sie commitlint hinzu.

Bekannte Lücke: Wenn ein Commit von einem Agentenkonto verfasst wurde, fügt GitHub beim Squash einen Co-authored-by-Trailer hinzu – nachdem der PR-Check durchgelaufen ist. Das obige Tor kann dies nicht sehen. Committen Sie nicht als Agentenidentität.

Vollständige Begründung: Artikel III der Verfassung, gebündelt unter engineering-constitution/references/engineering-constitution.md.

Individual skills in this repo

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

lguidolin/change-hygiene-and-code-craft

Use when writing or refactoring code, structuring a commit or PR, or deciding whether to abstract duplication. Symptoms — mixing reorg with logic changes, a PR doing several things at once, a file growing large, the second copy of similar code, or unsure whether to DRY something up.

lguidolin/cloud-delivery-aks

Use when deploying to Kubernetes or Azure Kubernetes Service (AKS), configuring cloud secrets, setting up progressive rollout/canary, per-PR ephemeral environments, or k8s health probes. Keywords — Kubernetes, AKS, Key Vault, Argo Rollouts, Flagger, canary, blue-green, liveness, readiness, PodDisruptionBudget, HPA, rollback, GHCR.

lguidolin/commit-history-rewrite

Use when an existing repository has messy commit history that needs to conform to conventional commits before adopting release-please, or when intermediate WIP/fixup/merge commits need to be cleaned up.

lguidolin/defense-in-depth-security

Use when handling untrusted input, secrets, authentication/authorization, or dependencies — or threat-modeling a new surface. Keywords — STRIDE, threat model, least privilege, secrets management, supply chain, dependency scanning, input validation, audit log, defense in depth.

lguidolin/designing-before-building

Use when starting a feature, fixing a non-trivial bug, or about to write implementation code — before any code exists. Symptoms you need this: "this is simple, I'll just code it", reaching for the editor before a design is approved, or an idea that hasn't been turned into a spec and plan.

lguidolin/engineering-constitution

Use when starting work in a project that follows the engineering constitution, orienting to its rules, or deciding which engineering practice applies to a task — spec writing, commits, testing, security, deploys, database, or UI work.

lguidolin/graphql-contract-testing

Use when writing a GraphQL query/mutation that the UI and a test will share, or building route/schema contract or smoke tests. Symptoms — copying a query into a test, a test asserting on query text, schema change that didn't break the UI build, or RLS/permission drift. Keywords — graphql-codegen, typed document, contract test, route smoke test.

lguidolin/init-repo-CI

Use when setting up a new repository with conventional commits, release-please, and CI automation, or when retrofitting an existing repository that lacks automated versioning and PR validation workflows.

lguidolin/interface-craft-and-accessibility

Use when building or styling UI — components, layouts, forms, design tokens — or making accessibility decisions. Keywords — a11y, WCAG, keyboard navigation, focus state, contrast, design system, minimalist UI, component reuse, ARIA, semantic HTML.

lguidolin/merge-gates-and-automation

Use when setting up or changing CI, pre-push hooks, or a task runner, or deciding what must pass before merge. Symptoms — tempted to put authoritative checks only in a local hook, skip CI, bypass with --no-verify, or unsure what gates a merge vs. runs locally.

lguidolin/observability-and-slos

Use when adding logging, metrics, tracing, health checks, SLOs, or alerting — or when building a service surface that needs to be operable and debuggable. Keywords — structured logs, OpenTelemetry, correlation id, RED metrics, liveness, readiness, SLI, SLO, error budget, alerting.

lguidolin/performance-and-scale

Use when working on hot paths, list endpoints, pagination, data-access in loops, or public interfaces/schemas. Symptoms — unbounded queries, N+1 access, no latency budget, optimizing without measuring, or changing an interface many consumers depend on. Keywords — pagination, N+1, Hyrum's Law, performance budget, bundle size.

lguidolin/postgres-postgraphile-rls-and-sql

Use when writing PostgreSQL, PostGraphile config, Row-Level Security policies, SQL schema files, or working on the Browser→App→PostGraphile→Postgres data path. Keywords — RLS, SECURITY DEFINER, search_path, pgSettings, grants, roles, GraphQL depth limit, query cost, statement_timeout, SQL file organization.

lguidolin/recording-decisions

Use when a design or architecture decision has been made and needs to be captured — writing a decision record or ADR, updating a decision index, noting a deferred idea, or superseding a past decision. Keywords — ADR, decision record, rationale, rejected alternatives, dependency index.

lguidolin/resilience-and-deploy-safety

Use when planning a deploy, designing a rollback, or responding to an incident or writing a postmortem. Keywords — deploy safety, rollback, immutable artifact, progressive delivery, canary, blast radius, incident response, blameless postmortem, error budget.

lguidolin/ship-it

Use when the user wants to ship work — push, PR, archive decision records, merge, and clean up. Handles the full lifecycle from committing final changes through post-merge cleanup including converting specs/plans to compact decision records.

lguidolin/tests-as-a-control

Use when writing or modifying tests, when a test breaks during a refactor, or when testing permission/role rules. Symptoms — tempted to edit a test to make it pass, testing only the happy path, a deny-test that started passing, flaky tests, or unsure what to assert.

lguidolin/zero-downtime-migrations

Use when changing a database schema where data must survive the change — adding/removing/renaming columns, constraints, indexes, or backfilling. Symptoms — a destructive migration bundled with a code deploy, a NOT NULL column with a backfill, a table-locking UPDATE, or a rename. Keywords — expand/contract, parallel change, backfill, NOT VALID, CREATE INDEX CONCURRENTLY, graphile-migrate.

Verwandte Skills