Skip to content

Conventional Commits

Spotlight uses Conventional Commits for commit messages. This allows us to automatically generate changelogs and determine version bumps.

Commit Message Format

Each commit message should follow this format:

<type>(<scope>): <description>
[optional body]
[optional footer]

Types

TypeDescriptionVersion Bump
featA new featureMinor
fixA bug fixPatch
docsDocumentation only changesPatch
refactorCode change that neither fixes a bug nor adds a featurePatch
perfPerformance improvementPatch
testAdding or updating testsPatch
choreMaintenance tasks, dependencies, etc.Patch
ciCI/CD changesPatch
buildBuild system changesPatch

Breaking Changes

For breaking changes, add ! after the type/scope:

feat!: remove deprecated API
BREAKING CHANGE: The old API has been removed.

This will trigger a major version bump.

Scopes

Scopes are optional but help categorize changes:

  • ui - UI components
  • server - Sidecar server
  • cli - CLI commands
  • electron - Electron app
  • mcp - MCP server

Examples

Terminal window
# New feature
feat(ui): add dark mode toggle
# Bug fix
fix(server): handle empty envelopes correctly
# Breaking change
feat(cli)!: change default port to 8970
# Documentation
docs: update installation guide
# Chore (won't appear in changelog by default)
chore: update dependencies

Changelog Preview

When you open a PR, Craft will automatically generate a preview of how your changes will appear in the changelog. You can also add custom changelog entries in your PR description.

Skipping Changelog

If your PR shouldn’t appear in the changelog (e.g., internal refactoring), you can:

  1. Add the skip-changelog label to your PR