CONTRIBUTING.md
Rama main · réplica de lectura del repositorio original.
# Contributing
## Branch model
- **`main`** — stable/production. Protected: changes land only via pull request
with passing CI (Backend + Frontend checks). Force-pushes and deletion are
blocked.
- **`dev`** — integration branch. Day-to-day work happens here.
## Workflow
```bash
# work on dev
git switch dev
git pull
# ...make changes, commit (signed)...
git commit -S -m "your change"
git push
# open a PR into main and let CI gate the merge
gh pr create --base main --head dev --title "…" --body "…"
# when the Backend + Frontend checks are green:
gh pr merge --merge
```
## Local checks (mirror CI)
```bash
# backend
pip install -r requirements-dev.txt
ruff check server tests
pytest -q
# frontend
cd frontend && npm ci && npm run lint && npm run build
```
## Notes
- CI runs on pushes to `main`/`dev` and on PRs (`.github/workflows/ci.yml`),
plus CodeQL security analysis.
- Commits are GPG-signed. If signing fails with "Inappropriate ioctl for
device", run `export GPG_TTY=$(tty)` first.
- Keep PRs focused; the demo (`docker compose -f docker-compose.demo.yml up`)
is handy for eyeballing UI changes with synthetic data.