19 lines
1.2 KiB
Markdown
19 lines
1.2 KiB
Markdown
# Конвенции кода
|
|
|
|
Кросс-каттинг правила того, **как** мы пишем код (логирование, ошибки,
|
|
именование) — в отличие от `docs/specs/` и `openspec/specs/`, которые
|
|
описывают, **что** система делает.
|
|
|
|
Конвенции **не** переносятся в OpenSpec: это не capability. Короткие
|
|
инварианты дублируются в [CLAUDE.md](../../CLAUDE.md) (агент читает его
|
|
всегда) и кратко в `openspec/config.yaml` → `context` (подмешивается в
|
|
генерацию артефактов); детали — здесь. Обоснование «почему» — в `docs/adr/`.
|
|
|
|
## Записи
|
|
|
|
- [logging.md](logging.md) — логирование: уровни, поля, что не логируем.
|
|
- [config.md](config.md) — конфигурация: TOML, секреты через деплой
|
|
(Ansible+Vault), валидация на старте.
|
|
- [errors.md](errors.md) — ошибки: stdlib, обёртка `%w`, `errors.Is`/`As`,
|
|
трансляция на внешней границе.
|