Contribution guide
> Every developer should know how to contribute within their first hour of reading the codebase.
Contribution guide
Every developer should know how to contribute within their first hour of reading the codebase.
Repository
- Source repo:
- Issue tracker:
- Discussion forum:
Getting started
- Clone the repo.
- Run the one-command setup:
make installornpm installor equivalent. - Run the tests:
make testor equivalent. - Open the app:
make devor equivalent.
[Link to a more detailed setup guide if one exists.]
How we work
Branch naming
<type>/<short-description>
Types: feat/, fix/, refactor/, docs/, chore/
Commit style
We use conventional commits:
<type>(<scope>): <description>
Examples:
feat(export): add CSV paginationfix(api): handle timeout on large exportsdocs: add runbook for queue backlog
Pull requests
- Create a branch from
main(or the current release branch). - Keep PRs small — one logical change when possible.
- Fill out the PR template checklist.
- Request review from at least one person in the relevant
CODEOWNERSgroup. - Merge via squash with a clean commit message.
Code review expectations
- Reviews happen within [N] business hours.
- Authors are responsible for responding to feedback.
- PRs require [N] approvals before merge.
- Docs changes require a docs review (not necessarily from the same person as the code review).
How to update docs
When docs change with code
If your PR touches a behaviour visible to users or operators, update the relevant docs in docs/ within the same PR.
Use this decision tree:
Did this change affect behaviour, contracts, ops, or onboarding?
├── No → no docs change needed (state why in PR)
└── Yes
├── User-visible? → docs/user/ (+ changelog if needed)
├── Builder/operator? → docs/internal/
└── Shared term/diagram? → docs/shared/
When you find stale docs
- Open an issue or PR to fix them.
- If you’re unsure where the truth lives, ask in the PR comments.
- Prefer removing wrong content to leaving it misleading.
Getting help
- Slack / Discord channel:
- Office hours:
- Mentorship / pairing requests: