Закрыты все открытые вопросы проектирования. Пароль не покидает клиент (два ключа из мастера), TOFU для публичных ключей, устройства и конверт, атомарный rekey комнат, регистрация и контакты, схема SQLite и драйвер без cgo, сессии и CSRF, деплой через nginx+systemd, правила пушей, айдентика «Скобы» на системном mono. Иконки PWA в web/icons. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DbCjVfTFq4ZFG8juD45YJ
2.2 KiB
2.2 KiB
Правила работы с репозиторием 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: CSPdefault-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/(формат: контекст / решение / следствия). - Простота важнее функций. Сомневаешься — не добавляй.
Документация
Язык — русский. Стиль — сжатый и декларативный: короткие утвердительные абзацы, без маркетинговой воды и канцелярита.