Тема
Порядок разработки — приоритеты фазы 1
Статус: план сборки ядра-минимума; выполняется. Дорожная карта задаёт фазы 0–5 (roadmap); здесь — порядок внутри фазы 1: волны, зависимости, критерии готовности. Исполняемый ранбук с прогрессом —
TZ.mdрепозиторияlaravel/cms.rosveb.ru: его волны 0–12 (✅ 2026-07-11) — первый срез волн 0–5 этой страницы, волны 13–23 закрывают волны 2–7 полностью. Принцип приоритетов: безопасность и надёжность встроены в каждую волну (гейт), а не «волна про безопасность» в конце; скорость (кеш) — с волны 4, до первого контента она преждевременна.
Правила порядка
- Контракты раньше реализаций — то, что переживёт годы (интерфейсы
cms/core-contracts, события, схемы данных), пишется и ревьюится первым: менять дёшево, пока нет потребителей. - Каждая волна заканчивается работающим срезом — playground-сайт что-то показывает после каждой волны; «большой взрыв в конце» запрещён.
- Гейт волны: Pest +
cms-testing+ larastan зелёные; security-чек волны пройден;docs/module.mdизменённых пакетов обновлён тем же PR; код соответствует спекам студииspecs/laravel_13(модели/контроллеры/миграции/тесты/anti-hardcode). - Донор раньше чистого листа: задача начинается с чтения донорского кода по пути из реестра.
Волны
Волна 0 — инфраструктура разработки (до кода ядра)
Монорепо (Gitea/GitLab) + Satis + CI (self-hosted runner) · пакеты-заготовки cms/core-contracts, cms/core, cms/testing · playground с path-repos, boost, .mcp.json · эталонный Docker-образ PHP 8.4 · генераторы cms:make:*. Готово, когда: composer test гоняется в CI для пустых пакетов; агент видит playground через MCP.
Волна 1 — контракты и оси (фундамент модульности)
cms/core-contracts: канонические события + FilterBus + интерфейсы репозиториев · три оси: события с порядком, именованные очереди + контракт job, settings-store (кеш групп, SettingSchema) · планировщик через хук ядра. Security-гейт: секреты вне settings (env()-линтер); изоляция сбоя слушателя. Готово, когда: демо-модуль в playground слушает событие, кладёт job, читает настройку — не касаясь ядра.
Волна 2 — модель данных и движок полей
Таблицы ядра (модель данных) · движок полей: декларация → Filament-форма / rules / рендер / JSON-схема · FieldTypeRegistry. Security-гейт: валидация всех типов полей (границы «формы» и «админка» из фильтрации границ); санитизация rich-text; ReDoS-проверка пользовательских rules. Донор: universal/src/app/Cms/ (перекладка в JSONB — решение). Готово, когда: тип контента «вакансии» заводится в админке без кода, CRUD генерируется.
Волна 3 — блоки, ревизии, редактор
BlockRegistry + контракт блока (_v, миграции, контейнеры) · ревизии страниц (Q7: draft/publish/rollback, preview-токен) · drag&drop-редактор (средняя свобода Q9) · barrier-рендер (fallback вместо 500). Security-гейт: {!! !!}-линтер; preview только по подписанному токену. Готово, когда: контент-менеджер собирает страницу из блоков, публикует, откатывает.
Волна 4 — темы и производительность
Контракт темы: каскад + манифест резолва + theme.json → Tailwind · базовая тема + галерея /_gallery · кеш-слои: page-cache, области, настройки + инструменты отладки (cms:cache:inspect, панель «Кеш»). Security-гейт: страница с персональными данными не попадает в общий кеш. Готово, когда: бюджет запросов на демо-странице — зелёный контрактный тест; смена темы из админки работает.
Волна 5 — SEO-база, формы, заявки
SEO-ядро (мета/шаблоны/sitemap/robots/Schema.org — доноры gulaev-dev, er) · конструктор форм (Q8) → лиды → уведомления · меню, виджеты (WidgetRegistry). Security-гейт: полный набор защиты форм (CSRF/honeypot/rate-limit/согласие ПДн); API-граница (конверт, 422, query-builder whitelist). Готово, когда: playground-сайт индексируем (sitemap, мета) и принимает заявку в админку.
Волна 6 — жизненный цикл модулей и центр обновлений (минимум)
Машина состояний модулей + preflight + cms:doctor + health-чеки · cms:upgrade (полный пайплайн) + откат · attack-monitor (обязательный набор парка) + 2FA ролей студии. Security-гейт: все 4 сценария рассогласования дают внятную ошибку, не 500; attack-monitor логирует и блокирует брутфорс в playground-тесте. Готово, когда: установка/выключение/откат модуля из админки проходят на playground; cms:upgrade обновляет playground с бэкапом и health-гейтом.
Волна 7 — первый клиентский сайт (выход фазы 1)
Скелет + профиль установки + тема клиента + модули под заказ (порядок диктует заказ — Q1). Готово, когда: метрики README измеримы на живом сайте («страница без обращения в студию», «обновление за минуты»).
Чего НЕ делать раньше времени
- e-commerce-слои (модель) — фаза 3, по заказу;
- GraphQL, флит-дашборд, мультиязычность-модуль — по потребителю;
- оптимизации сверх бюджета запросов (Octane, ESI) — после реальных цифр Pulse.
Связи
- Roadmap — фазы 0–5; эта страница = развёртка фазы 1.
- Слой 2 — ТЗ волны модулей — что разрабатывать после волн 1–7: состав, предусловия, стыки с ревизиями, гейты.
- DX — петля работы агента в каждой волне.
- Безопасность — источники security-гейтов волн.