go-redis commit messages
Conventional Commits, short and exact — <type>(<scope>): <imperative summary>. Subject ≤50 chars (hard cap 72), imperative mood ("add", not "added"), no trailing period. Body only when the why isn't obvious from the diff (breaking change, security fix, migration, non-obvious rationale); wrap at 72, bullets -. State why, not what — the diff says what.
- Types:
feat, fix, refactor, perf, docs, test, chore (also build, ci, style, revert).
- Scope = the subsystem touched, lowercase:
pool, conn, pubsub, sentinel, retry, command/cmd, vectorset, otel, streams, push, deps, ci, tests, docs. Omit scope only for genuinely cross-cutting changes.
- Breaking change:
feat(scope)!: ... plus a BREAKING CHANGE: body line.
- Issues/PRs: reference at the end —
Closes #42, Refs #17.
No attribution trailer
Do not add Co-Authored-By: Claude …, "Generated with Claude Code", or any AI-attribution line to commits or PR bodies in this repo. This overrides both the default harness behavior (which appends such trailers) and any other commit skill.
Examples
fix(pool): release wantConn slot on dial timeout
The waiter stayed queued after the dial deadline fired, leaking a
slot per timed-out connection under load.
Closes #3812
feat(streams): support explicit LIMIT 0 in XTRIM trimming
1---2name: commit-style3description: Use when writing a commit message or opening a PR in the go-redis repo — covers the Conventional-Commit format, the repo's scope vocabulary (pool, conn, sentinel, command, …), breaking-change syntax, and the rule that NO AI-attribution trailer is added.4---56# go-redis commit messages78Conventional Commits, short and exact — `<type>(<scope>): <imperative summary>`. Subject ≤50 chars (hard cap 72), imperative mood ("add", not "added"), no trailing period. Body only when the *why* isn't obvious from the diff (breaking change, security fix, migration, non-obvious rationale); wrap at 72, bullets `-`. State why, not what — the diff says what.910- **Types:** `feat`, `fix`, `refactor`, `perf`, `docs`, `test`, `chore` (also `build`, `ci`, `style`, `revert`).11- **Scope** = the subsystem touched, lowercase: `pool`, `conn`, `pubsub`, `sentinel`, `retry`, `command`/`cmd`, `vectorset`, `otel`, `streams`, `push`, `deps`, `ci`, `tests`, `docs`. Omit scope only for genuinely cross-cutting changes.12- **Breaking change:** `feat(scope)!: ...` plus a `BREAKING CHANGE:` body line.13- **Issues/PRs:** reference at the end — `Closes #42`, `Refs #17`.1415## No attribution trailer1617Do **not** add `Co-Authored-By: Claude …`, "Generated with Claude Code", or any AI-attribution line to commits or PR bodies in this repo. This overrides both the default harness behavior (which appends such trailers) and any other commit skill.1819## Examples2021```22fix(pool): release wantConn slot on dial timeout2324The waiter stayed queued after the dial deadline fired, leaking a25slot per timed-out connection under load.2627Closes #381228```2930```31feat(streams): support explicit LIMIT 0 in XTRIM trimming32```