Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to Tabularium

Thanks for your interest. Bug reports, documentation fixes, model adapters and
test pages from new kinds of archives are all welcome.

## Before you start

- For anything larger than a small fix, open an issue first so we can agree on
  the approach.
- [AGENTS.md](AGENTS.md) is the contract: the rules, how each is enforced, and
  where the knowledge lives. Verified facts are in [`docs/spec/`](docs/spec/README.md).

## Setup

Follow the [installation guide](docs/guide/installation.md), then run the checks
described in [docs/guide/development.md](docs/guide/development.md):

```bash
scripts/check.sh          # the definition of done: everything CI runs
scripts/check.sh --fast   # invariants only, before every commit
```

A behaviour change adds a test that fails on the previous commit.

## Conventions

- Everything in English: code, comments, docs, commit messages. Existing Italian comments
  are translated when you touch the surrounding code.
- No hard-coded UI strings: every text goes through the i18n dictionaries
  (`frontend/src/i18n/{it,en,fr}.ts`), with the same placeholders in all three.
- Every new API route is protected by the permission layer.
- Never destroy user data implicitly: destructive actions ask for confirmation.
- Model-specific conventions (prompts, coordinates, OTSL, dataset formats) must
  match the model's official repository. Cite it in the PR.
- Update the docs and `CHANGELOG.md` when behaviour changes.

## Adding a model

A model is declared once in `backend/app/models/<id>.py` (serving, training, labels,
cloud); every other surface derives from it. Run `python scripts/surfaces.py --check`
to prove the model is complete everywhere. A model is
marked as verified only after a real run on real pages: say in the PR what you
measured and on which hardware.

## Sharing pages

Please don't attach scans you don't have the right to share. Public-domain
pages are perfect for bug reports.