Files
jellybit/docs/conventions/README.md
T
avandClaude Opus 4.8 b524485775 Конвенции: веб-UI на htmx (свопы, поллинг, деградация, ошибки)
Кросс-каттинг правила работы с интерфейсом на htmx: единый партиал =
страница = фрагмент (+инвариант «корень define = элемент с целевым id»),
ветвление обработчика по isHTMX, обязательная деградация без JS,
ошибка на htmx-пути = HTTP 200 + фрагмент, самозавершающийся поллинг
живых обновлений, своп сохраняет контекст / выход = навигация,
различение поверхности полем surface, вендоринг/кэш статики.

Блок «Статус» разделяет уже сделанное (reviewBlockAction, поллинг
progress/seeding) и проектируемое в change htmx-action-swap.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 14:17:54 +03:00

1.7 KiB

Конвенции кода

Кросс-каттинг правила того, как мы пишем код (логирование, ошибки, именование) — в отличие от docs/specs/ и openspec/specs/, которые описывают, что система делает.

Конвенции не переносятся в OpenSpec: это не capability. Короткие инварианты дублируются в CLAUDE.md (агент читает его всегда) и кратко в openspec/config.yamlcontext (подмешивается в генерацию артефактов); детали — здесь. Обоснование «почему» — в 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 + фрагмент, самозавершающийся поллинг, вендоринг/кэш статики.