Git commit naming

Conventional commits

A lightweight convention over how to write commit, branch and issue titles. Every title starts with a type, an optional scope, and a short description.

typethe kind of change(scopeoptional area):descriptionshort, imperative summary
fix(auth): refresh session before token expires

Bumps the session expiry handler so tokens refresh while there is still time.

Commit types

featA new feature for the user (A new feature for the consumer).

feat: allow custom markdown docs per element

fixA bug fix for the user.

fix(auth): refresh session before token expires

docsDocumentation-only changes.

docs: document conventional-commit titles

styleChanges that do not affect the meaning of the code (formatting, whitespace, …).

style: align card spacing on narrow screens

refactorA change that neither fixes a bug nor adds a feature.

refactor(explorer): extract sidebar props

perfA change that improves performance.

perf: precompute structure hashes

testAdding or correcting tests.

test: cover markdown url decoding

buildChanges to the build system or external dependencies.

build: bump react-markdown

ciChanges to CI configuration files and scripts.

ci: cache pnpm store between jobs

choreOther changes that do not modify source or test files.

chore: update license headers

Rules

Write an imperative, concise summary

Use the imperative mood (“add”, “fix”, “remove”) as in a command. Keep the description on one line and under about 50 characters when you can.

Break type and scope with a colon

Format every title as type(scope): description. The type and scope must be lowercase; the scope is optional.

Connect commits to the issue

Reference an issue with #123 or fixes #123 when applicable so the issue is linked to the change that implements it.