# Правила работы с репозиторием Bare Перед любой работой прочитай `docs/philosophy.md` и `docs/architecture.md`. Всё в них — принятые решения, а не предложения. ## Жёсткие ограничения - Клиент: HTML, CSS, vanilla JS, нативные браузерные API. Никаких фреймворков, npm-зависимостей и сборки — ES-модули как есть. - Сервер: Go, стандартная библиотека. Допущены ровно три прямые зависимости: `github.com/SherClockHolmes/webpush-go`, `modernc.org/sqlite`, `golang.org/x/crypto` (argon2). Транзитивные — допускаются. Ничего сверх — без обсуждения. - Криптография на клиенте: только WebCrypto, строго по `docs/crypto.md` — константы и порядок операций не менять. - Клиент без inline-стилей, inline-скриптов и `innerHTML`: CSP `default-src 'self'` без исключений. - Деплой: `ssh xmatic`, `bare.xmatic.team`, `127.0.0.1:8411`, по `docs/deploy.md`. ## Спецификации `docs/crypto.md`, `docs/protocol.md`, `docs/storage.md`, `docs/ui.md` — обязательны к исполнению наравне с ADR. Порядок работ — `docs/plan.md`. Расхождение кода и документа чинится через ADR, не молча. ## Процесс - Новые фичи и зависимости по умолчанию отклоняются. Порядок: обсуждение → ADR → код. - Любое изменение архитектуры — через новый ADR в `docs/decisions/` (формат: контекст / решение / следствия). - Простота важнее функций. Сомневаешься — не добавляй. ## Документация Язык — русский. Стиль — сжатый и декларативный: короткие утвердительные абзацы, без маркетинговой воды и канцелярита.