*Read this in [English](CONTRIBUTING.md).* # Contributing to Cortiq Gateway Спасибо за интерес к проекту! Это открытый шлюз, и мы рады контрибьюциям. ## С чего начать 1. Прочитайте [docs/ARCHITECTURE.md](docs/ARCHITECTURE.ru.md) — устройство и дорожная карта. 2. Посмотрите [docs/PROTOCOLS.md](docs/PROTOCOLS.ru.md) и [docs/ROUTING.md](docs/ROUTING.ru.md). 3. Текущая фаза — **Phase 0** (скелет). Хорошие первые задачи помечены `good first issue`. ## Как добавить... - **Новый входящий протокол** — реализуйте трейт `InboundProtocol` в `src/protocols/`, переведите его в/из канонической модели (`ChatRequest`/`ChatResponse`), добавьте флаг в `[protocols]`. Не трогайте провайдеры. - **Нового провайдера** — реализуйте трейт `Provider` в `src/providers/`. Большинство локальных серверов OpenAI-совместимы → часто достаточно переиспользовать `openai.rs`. - **Новую политику роутинга** — расширьте `src/routing.rs` и секцию `[routing.policy]`. Принцип: N протоколов × M провайдеров общаются **только** через каноническую модель — никаких прямых переводов «протокол↔провайдер». ## Стиль и проверки ```bash cargo fmt --all cargo clippy --all-targets -- -D warnings cargo test ``` - Пишите код в стиле окружающего кода. - Секреты — только через `*_env`, никогда в репозиторий. - Новый функционал сопровождайте тестами и обновлением docs/. ## Pull requests - Небольшие, сфокусированные PR. Один PR — одна логическая единица. - В описании: что, зачем, как протестировано. - Линкуйте issue, если есть. ## Лицензия Контрибьюции принимаются под [Apache-2.0](LICENSE).