How to contribute
to CareEZ

Bug reports, translations, clinical accuracy review, and docs all welcome. This guide covers the PR process, commit format, and test requirements.


PR process — step by step

Clinical changes require extra care. Any PR that modifies triage logic, IDDSI level classification, aspiration risk scoring, or escalation thresholds must include a Clinical Impact section in the PR description. Tag @careez-clinical for mandatory review.


Conventional Commits — required

All commits must follow Conventional Commits 1.0. The format is <type>(<scope>): <description>.

# Types
feat      # new feature or capability
fix       # bug fix
docs      # documentation only
i18n      # translation or locale change
clinical  # clinical content, triage logic, IDDSI rules
refactor  # code change — no behaviour change
test      # adding or fixing tests
chore     # build, deps, config — no production code

# Scope (optional but encouraged)
api       # Cloudflare Worker / API layer
assessor  # care-food-assessor package
screener  # dysphagia-screener package
recipe    # recipe-modifier package
cantonese | tagalog | bahasa | vietnamese | thai

# Examples
feat(tagalog): add IDDSI level 4 descriptor translations
fix(assessor): correct minced-moist boundary check for level 5
clinical(screener): update aspiration risk threshold per FEES 2024 study
i18n(vietnamese): initial locale scaffolding
docs: add IDDSI framework reference links to README

Breaking changes: append ! after the type and add a BREAKING CHANGE: footer in the commit body.


What must pass before merging

General (all PRs)

Clinical content changes

Translation / i18n PRs

API / Worker changes


Contributor Covenant 2.1

CareEZ repositories are governed by the Contributor Covenant 2.1. All contributors, maintainers, and community members are expected to uphold it.

Instances of unacceptable behaviour may be reported to [email protected]. All reports are reviewed confidentially. Maintainers are obligated to respect the privacy and security of reporters.

← Back to Open Source    Join Discussions ↗