---
title: "Commit conventions"
description: "Conventional commits with workspace-aware scopes via @vinicunca/commitlint-config."
canonical_url: "https://vinicunca.dev/taman/contributing/commit-conventions"
---
# Commit conventions

> Conventional commits with workspace-aware scopes via @vinicunca/commitlint-config.

```bash
pnpm commit    # czg prompt
```

`.commitlintrc.js` is `export { default } from '@vinicunca/commitlint-config'`.

## Format

```text
type(scope): subject
```

Header max **108** characters. Body must start after a blank line.

## Types

`feat`, `fix`, `perf`, `style`, `docs`, `test`, `refactor`, `build`, `ci`, `chore`, `revert`, `types`, `release`.

cz-git also offers `workflow` in the prompt (`typesAppend`); that value is **not** in `type-enum` — prefer `ci` or `chore` unless you extend the enum.

## Scopes

Allowed: every workspace `package.json` `name` and its unscoped short form (`@vinicunca/vite-config` and `vite-config`), plus `project`, `style`, `lint`, `ci`, `dev`, `deploy`, `other`. Empty scope is allowed.

Prompt aliases (cz-git `:f` etc.): bump deps, chore config, docs typos, README, format.

## Hooks

`lefthook.yml` is still the Lefthook **example file** (commented). Do not expect pre-commit lint from it. `prepare` runs `scripts/prepare-hooks.mjs`.


## Sitemap

See the full [sitemap](https://vinicunca.dev/sitemap.md) for all pages.
