← назад к методологии · уровень 0 из 3 (нижняя ступень)

Что это

Уровень 0 — спецификация, восстановленная из существующего кода без бизнес-брифа. Не целевое проектирование, а снимок «как сейчас»: что реально лежит в репозитории — таблицы, эндпоинты, статусы, интеграции, проверки. Это отправная точка, когда сервис уже есть, а описания нет.

Остальные уровни (1 Слоёный, 2 Use Case Pattern, 3 DDD + Hexagonal) — это куда движемся от бизнес-брифа. Уровень 0 — это откуда стартуем, если кода уже много, а спеки никакой.

Когда подходит

  • Brownfield-сервис в проде, бизнес-брифа и спеки нет — нужен онбординг.
  • Перед миграцией на UCP: сначала зафиксировать «как сейчас», потом решать, куда расти.
  • Аудит чужого/унаследованного кода: структурированное описание вместо россыпи README.

Как получается

Спеку Уровня 0 генерирует скилл ucp-spec-tier-0 — читает Java-исходники, миграции, application.yml, OpenAPI, тесты и собирает спеку в том же формате, что и проектируемая:

  • Только факт из кода. Скилл не выдумывает агрегаты, акторов, цели команд или типы Context Mapping там, где их нет, и не классифицирует код как «правильный/неправильный».
  • not-declared для пробелов. Чего в коде не выражено (актор команды, идемпотентность, SLA, владелец данных) — помечается литералом not-declared. Это явный gap-сигнал, а не пустота: подсвечивает, что уточнить при миграции.
  • Наблюдаемая архитектура — прозой. Если в коде есть usecase-pattern/агрегаты/порты, скилл отмечает это как кандидата на Уровень 2/3 при миграции, но сам as-is остаётся level: 0.
  • level: 0 во frontmatter, заголовок несёт (Уровень 0, as-is).

Что фиксируется в спеке

Та же раскладка, что на любом уровне: корень контекста + по файлу на домен-юнит в aggregates/. Глубину разделов диктует код: для anemic-модели §Доменная модель = таблицы из миграций; §Доменные события — пометка «не публикует», если KafkaTemplate.send/@SendTo не найдены. Техника (схема БД, стек, топики) — в §Техническая реализация.

Куда дальше

Уровень 0 — не место для жизни, а точка отсчёта. Дальше команда:

  1. Читает as-is спеку для онбординга — что сервис реально делает.
  2. Заменяет not-declared на реальные бизнес-факты (уже с брифом).
  3. Через ucp-spec-design переводит спеку на целевой уровень — 1 Слоёный, 2 Use Case Pattern или 3 DDD + Hexagonal — и постепенно подтягивает код.

Что почитать рядом

  • Use Case Pattern (методология) — уровни зрелости в общей картине.
  • Формат Use Case спецификации — единый формат для всех уровней.
  • Скиллы UCP — каталог и установка — где живёт ucp-spec-tier-0.