# Конвенции кода Кросс-каттинг правила того, **как** мы пишем код (логирование, ошибки, именование) — в отличие от `docs/specs/` и `openspec/specs/`, которые описывают, **что** система делает. Конвенции **не** переносятся в OpenSpec: это не capability. Короткие инварианты дублируются в [CLAUDE.md](../../CLAUDE.md) (агент читает его всегда) и кратко в `openspec/config.yaml` → `context` (подмешивается в генерацию артефактов); детали — здесь. Обоснование «почему» — в `docs/adr/`. ## Записи - [logging.md](logging.md) — логирование: уровни, поля, что не логируем.