Use type(scope): summary for change descriptions:
feat(api): add meal analysis job boundary
fix(mobile): preserve simple view preference
chore(infra): tighten queue alarm defaults
docs(ux): clarify provisional result review
Preferred types are feat, fix, test, docs, refactor, perf, build, ci, and chore. Keep commits focused and never include secrets or customer data.
Use a short, imperative, lowercase summary without a trailing period. Common scopes are mobile, api, admin, contracts, providers, infra, ux, runbooks, and docs.
Add a body when the reason, privacy impact, migration path, or validation is not obvious. Use BREAKING CHANGE: in the footer only for an intentional incompatible contract or operational change. Link work items in a footer if needed, but do not place credentials, personal data, real meal photos, or private incident details in commit text.