Skip to main content

commit-message-format

Define commit message structure and when to include a body. Use when asked to write or review commit messages.

Source facts

Repository
vana-com/data-connect
Last source activity
February 2, 2026 at 07:14
Detected SKILL.md language
English
Stars
26
Forks
7

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
commit-message-format
description
Define commit message structure and when to include a body. Use when asked to write or review commit messages.
# Commit Message Format ## Format Use [Conventional Commits](https://www.conventionalcommits.org/): ``` <type>: <subject> ``` Or with body for complex changes: ``` <type>: <subject> <body> ``` - **type**: `feat`, `fix`, `refactor`, `docs`, `chore`, `ci`, `test`, `perf` - **subject**: imperative mood, lowercase, no period (max 50 chars) - **body**: Only if needed to explain _why_ or _how_ (not what—the code shows that). Wrap at 72 chars. Be brutal about compression. ## When to add body - **Don't**: trivial fixes, obvious refactors, doc updates, config changes where the subject is self-explanatory - **Do**: breaking changes, complex logic, non-obvious design decisions, migration notes **Bad (repeats what the subject already says):** ``` chore(config): declare NEXT_PUBLIC_DISABLE_DARK_MODE env var in turbo.json Adds NEXT_PUBLIC_DISABLE_DARK_MODE to globalEnv to satisfy turbo linting rules ``` **Good (subject is sufficient):** ``` chore(config): declare NEXT_PUBLIC_DISABLE_DARK_MODE env var in turbo.json ``` ## Include affected files in body when unclear If changes span multiple packages/areas or the scope isn't obvious from the subject line, add files to the body: ``` feat: add eslint rules for neutral tailwind enforcement Changes: - packages/eslint-config/package.json – added eslint-plugin-tailwindcss - packages/eslint-config/base.js – integrated plugin and custom rules - packages/eslint-config/rules/ – added no-neutral-colors and prefer-cn Details: - Custom vana-tailwind plugin enforces semantic tokens over hardcoded neutrals - Configured for cn/clsx callees ``` ## Compression means clarity, not erasure Compression = remove fluff, keep signal. Don't sacrifice important context just to fit in fewer lines. Better to write 5 clear lines than 2 cryptic ones. **Bad (too compressed, lost details):** ``` feat: add rules ``` **Good (compressed but complete):** ``` feat: add eslint rules for neutral tailwind enforcement - Integrates eslint-plugin-tailwindcss - Adds custom vana-tailwind plugin with no-neutral-colors rule - Enforces use of semantic tokens over hardcoded neutrals - Configures callees for cn and clsx ``` ## Examples ``` feat: add neutral color codemod with glob parsing ``` ``` fix: resolve type annotation in codemod script ``` ``` docs: update color-system audit documentation ``` ## Why Semantic? Conventional commits enable: - Automated changelog generation (by type) - Semantic versioning (feat → minor, fix → patch) - Clear change categorization in git history - Consistency with Linear issue prefixes (see `linear-task-creation.mdc`)
View on GitHub