# Как помочь проекту

Спасибо за интерес. Больше всего пользы приносят новые сервисы, найденные дыры в покрытии и починка форматов под конкретные клиенты.

## Перед началом

- Поищите похожий issue.
- Для крупных изменений сначала откройте issue, чтобы обсудить подход.
- Не публикуйте свои VPN-конфиги, ключи и адреса серверов.
- Уязвимости сообщайте приватно по [SECURITY.md](SECURITY.md).

## Добавить сервис или домен

1. Найдите категорию в `config/services`, например `marketplaces.json`, или создайте новую с `title` и `description`.
2. Опишите сервис: `name`, `tier` (`lite` или `standard`), `domains`, при наличии `asns` с подстрокой `holder` из RIPE, `cidrs` с `reason`, `apps` с пакетом, версией и датой аудита.
3. Домены берите из реального трафика приложения или сайта. Тестовые, staging и зарубежные зеркала не нужны.
4. Запустите `npm run verify`: схема и holder каждого ASN должны пройти.
5. Запустите `npm run update` и проверьте, что уровни не превысили лимит.

Хостинги, CDN, anti-DDoS и сети операторов целиком не добавляются: они уводят из VPN чужие сайты.

## Локальная разработка

```bash
npm ci
npm run tools
npm run update
npm run lint
npm test
```

Правила кода и структура репозитория описаны в [AGENTS.md](AGENTS.md).

## Pull request

1. Одна задача на один pull request.
2. Объясните, что меняется для пользователя и почему.
3. Для новой логики CIDR и генераторов добавьте тесты.
4. Если меняется поведение или команды, обновите `README.md` и `README_EN.md`.
5. Не коммитьте `dist/`, `cache/` и `.tools/`.

Отправляя изменения, вы соглашаетесь с лицензией [MIT](LICENSE).
