Ctrl K
ComunidadGuías…

CONTRIBUTING.md

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

Archivo original ↗Preguntar a KiBot
# Contributing to ReMind

Спасибо за интерес к проекту.

Этот документ задает единые правила для вкладов в код, документацию и процессы ReMind.

Связанные документы:

- `GOVERNANCE.md`
- `SECURITY.md`
- `CODE_OF_CONDUCT.md`

## Scope

Мы принимаем вклад в:

- backend (`routes/`, `services/`, `utils/`, `ai_engine/`);
- frontend (`src/`, `public/`);
- инфраструктуру (`Dockerfile`, `docker-compose.yml`, `.github/`);
- документацию (`README.md`, policy-файлы).

## Before You Start

Перед началом работы:

1. Проверьте открытые issues и PR, чтобы не дублировать работу.
2. Если изменение заметно меняет поведение, сначала откройте issue с предложением.
3. Для security-проблем не создавайте публичный issue, используйте `SECURITY.md`.

## Local Setup

```bash
git clone https://github.com/ReNothingg/ReMind.git
cd ReMind
python -m venv .venv
source .venv/bin/activate  # Windows: .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
npm ci
cp .env.example .env       # Windows: Copy-Item .env.example .env
```

## Branching Strategy

- Базовая ветка: `main`
- Именование feature-веток:

1. `feat/<short-description>`
2. `fix/<short-description>`
3. `chore/<short-description>`

Примеры:

- `feat/session-sharing`
- `fix/csrf-token-validation`

## Commit Convention

Используйте Conventional Commits:

- `feat: add session slug validation`
- `fix: prevent empty chat payload`
- `docs: improve local setup section`
- `refactor: simplify auth response mapping`
- `chore: update github templates`

Желательно держать commit атомарным: один commit = одно логическое изменение.

## Code Style

### Python

- Пишите явный, безопасный и читаемый код.
- Не ослабляйте валидацию входных данных и security checks.
- Для ошибок API используйте согласованные форматы ответов.
- Старайтесь не смешивать рефакторинг и функциональные изменения в одном PR.

### Frontend (TypeScript/React)

- Следуйте текущей структуре компонентов/хуков.
- Не добавляйте тяжелые зависимости без обоснования.
- Проверяйте состояния загрузки/ошибок и сценарии guest/auth режимов.

## Required Checks Before PR

Минимальный pre-PR чек:

```bash
npm run build
python -m py_compile main.py app_factory.py routes/api.py utils/auth.py
```

Если меняли Docker/infra, дополнительно:

```bash
docker compose config
```

## Pull Request Rules

Каждый PR должен содержать:

1. Понятное описание проблемы и решения.
2. Ссылку на issue (если есть).
3. Описание рисков и обратной совместимости.
4. Список того, что протестировано.
5. Скриншоты/видео для заметных UI-изменений.

Рекомендация по размеру PR:

- до ~400 строк чистых функциональных изменений (если возможно);
- большие PR делите на серию логических частей.

## Security and Sensitive Data

- Никогда не коммитьте `.env`, ключи API, сертификаты, приватные токены.
- Не логируйте чувствительные данные пользователей.
- Для security-уязвимостей используйте private disclosure flow (`SECURITY.md`).

## Review Expectations

- Все изменения проходят code review.
- Поддерживается принцип: минимум один approve перед merge.
- Запрещено force-push в `main`.

## Changelog Discipline

- Если изменение затрагивает security/infra, отдельно укажите impact в PR.