# Contributing ## Commit conventions This project uses Conventional Commits. Every commit must have a scope: ```text type(scope): imperative summary ``` The project currently uses these commit types: - `feat`: adds user-visible functionality - `fix`: corrects an incorrect or unsafe behavior - `refactor`: changes internal structure without changing intended behavior - `docs`: changes documentation only - `meta`: changes project conventions, repository metadata, or contribution files - `build`: changes installation, packaging, or deployment integration The project currently uses these scopes: - `apt`: APT and Debian package-manager behavior - `hook`: APT hook configuration and invocation wiring - `zfs`: ZFS selection, snapshot naming, and retention behavior - `conf`: Runtime configuration parameters and defaults - `docs`: README and explanatory documentation Add a new type or scope to this document before using it. Keep commit subjects concise and imperative. Commit bodies should explain the motivation and the resulting behavior, with body lines no longer than 72 characters.