Sync новых требований в openspec/specs/: web-ui («Действия обновляют интерфейс на месте») и review («Петлевые действия ревью обновляют экран на месте»). Change перемещён в changes/archive/2026-07-04-htmx-action-swap. Конвенция web-ui.md актуализирована: сняты маркеры «будем» по реализованному. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Конвенции кода
Кросс-каттинг правила того, как мы пишем код (логирование, ошибки,
именование) — в отличие от docs/specs/ и openspec/specs/, которые
описывают, что система делает.
Конвенции не переносятся в OpenSpec: это не capability. Короткие
инварианты дублируются в CLAUDE.md (агент читает его
всегда) и кратко в openspec/config.yaml → context (подмешивается в
генерацию артефактов); детали — здесь. Обоснование «почему» — в docs/adr/.
Записи
- logging.md — логирование: уровни, поля, что не логируем.
- config.md — конфигурация: TOML, секреты через деплой (Ansible+Vault), валидация на старте.
- errors.md — ошибки: stdlib, обёртка
%w,errors.Is/As, трансляция на внешней границе. - database.md — БД и идентификаторы: TEXT ULID PK через
internal/ident(без AUTOINCREMENT), lowercase + нормализация на границах, естественные ключи у деталей. - web-ui.md — веб-UI на htmx: единый партиал = страница = фрагмент,
ветвление
isHTMX, деградация без JS, ошибка = 200 + фрагмент, самозавершающийся поллинг, вендоринг/кэш статики.