Conventional Commits
All commits in this project must follow the Conventional Commits specification.
Format
code
<type>[optional scope]: <description> [optional body] [optional footer(s)]
Types
| Type | When to use |
|---|---|
feat | A new feature or capability |
fix | A bug fix |
docs | Documentation changes only |
chore | Maintenance tasks, dependency updates, config changes |
refactor | Code restructuring without behavior change |
test | Adding or updating tests |
perf | Performance improvements |
ci | CI/CD pipeline changes |
style | Formatting changes (Prettier, whitespace) |
build | Build system or dependency changes |
Rules
- •Description: Imperative mood, lowercase, no period at end. Max 72 characters.
- •Scope: Optional. Use module/feature name (e.g.,
feat(import):,fix(charts):). - •Body: Explain what and why, not how. Wrap at 72 characters.
- •Breaking changes: Add
!after type/scope (e.g.,feat!:) and includeBREAKING CHANGE:footer.
Examples
code
feat(import): add EDF file parsing for ResMed AirSense 11 fix(charts): correct AHI rolling average calculation for gaps in data docs: update glossary with flow limitation terminology chore: upgrade vitest to 3.x refactor(storage): extract chunk indexing into separate module test(stats): add edge case tests for Kaplan-Meier with censored data perf(viz): implement LTTB downsampling for time-series rendering ci: add bundle size check to PR workflow