Conventional Commits
- Format commits strictly following Conventional Commits format: `type(scope): subject`.
- Keep the subject line under 50 characters, use the imperative mood, and do not end with a period.
Conventional Commits
- Adhere strictly to Conventional Commits format (e.g., `feat(auth): add google sign-in`, `fix(api): resolve memory leak`).
- Use appropriate semantic types: `feat`, `fix`, `chore`, `docs`, `style`, `refactor`, `test`, `perf`.
- Indicate breaking changes clearly by appending a `!` to the type/scope (e.g., `feat(api)!: drop v1 endpoints`) or in the footer as `BREAKING CHANGE:`.