Перейти к основному содержимому

Критерии готовности витрины

Зачем нужно

Документ фиксирует минимальные признаки готовности витрины как публичного слоя экосистемы.

Кто использует

  • product;
  • marketing;
  • engineering;
  • QA;
  • support.

Сценарии

  • проверить готовность публичного каталога и лендингов;
  • принять MVP витрины;
  • согласовать источники данных;
  • проверить путь пользователя от интереса к заявке или покупке.

Правила

  • Витрина показывает публичное представление, но не становится источником истины по пользователям, оплатам, преподавателям или учебному прогрессу.
  • Все публикуемые сущности должны иметь статус, источник и правила модерации.
  • SEO-страницы не должны создавать дубли без canonical-правил.
  • Олимпиады, площадки, результаты и документы показываются только после publication в competitions.
  • Learning Workspace roster, raw submissions и закрытые результаты не попадают в витрину.

Интеграции

  • CRM/billing — заявки, покупки, продукты;
  • identity — публичные профили и команды;
  • LMS — курсы и учебные результаты, если они публикуются;
  • competitions — публичные сезоны, площадки, результаты, документы и достижения после publication;
  • management — публичная дорожная карта и факты.

Безопасность

Публичные данные публикуются только при наличии разрешения, статуса публикации и правил скрытия персональной информации.

Готовность

  • каталог показывает актуальные продукты и фильтры;
  • лендинги собираются из управляемых блоков;
  • преподаватели и команда выводятся через публичные профили;
  • отзывы, достижения и факты проходят модерацию;
  • публичная дорожная карта не подменяет LMS roadmap;
  • публичные олимпиады не подменяют competitions lifecycle;
  • SEO-страницы имеют понятные canonical-правила;
  • администратор может управлять публикацией;
  • пользователь может перейти от интереса к заявке или покупке;
  • все внешние данные имеют указанный источник истины.

Детальные критерии

Документация

  • границы домена описаны в scope.md;
  • модель данных описывает pages, page versions, blocks, catalog, collections, profiles, reviews, achievements, facts, forms, redirects и moderation;
  • схема БД содержит constraints, индексы, source refs, moderation и audit;
  • все основные сущности имеют статусные модели;
  • public и admin API разделены;
  • DTO и validation описаны для страниц, blocks, catalog, profiles, reviews, facts, forms и redirects;
  • матрица прав покрывает preview, publication, moderation, SEO, forms и audit;
  • тест-план покрывает unit, integration, e2e, security, SEO и moderation.

Публикация страниц

  • page slug уникален в рамках locale;
  • published page version неизменяема;
  • новая публикация создаёт новую version;
  • publish checklist проверяет blocks, SEO, canonical, forms, facts, moderation и consent;
  • scheduled publication работает через управляемый lifecycle;
  • preview не кешируется публичным CDN и не индексируется;
  • archived page имеет redirect или noindex.

Каталог

  • catalog item имеет source ref или manual owner;
  • public catalog показывает только published items;
  • фильтры строятся по facets, а не по произвольному тексту;
  • manual display override не теряется при source update;
  • collection поддерживает manual, rule-based и hybrid режимы;
  • hidden/archived item не показывается в public catalog;
  • авторизованная витрина объясняет причины рекомендаций и недоступности.

Профили

  • public profile не равен identity account;
  • profile человека имеет consent policy;
  • profile ученика или несовершеннолетнего требует explicit privacy policy;
  • context role не становится глобальной ролью профиля;
  • hidden profile не участвует в списках и блоках;
  • internal status, договорные и операционные данные не выводятся публично.

Отзывы, достижения и факты

  • review требует moderation и consent перед публикацией;
  • rejected/hidden review не участвует в rating aggregate;
  • achievement имеет subject, type, period/date и source;
  • student achievement проходит privacy check;
  • fact имеет source или manual verification owner;
  • computed fact имеет calculation method;
  • expired fact попадает на проверку и не показывается как актуальный без решения.

Формы и CRM

  • public form имеет schema, validation, consent text и spam policy;
  • успешная отправка возвращает neutral success;
  • payload не пишется в application logs;
  • передача в CRM идемпотентна;
  • failed submission можно retry из админки;
  • CRM lead id сохраняется после успешной передачи;
  • duplicate/spam submissions не создают повторные лиды.

SEO

  • published indexable page имеет title, description, canonical и robots policy;
  • sitemap содержит только published indexable pages;
  • noindex/private/hidden/archived pages не попадают в sitemap;
  • redirect не создаёт open redirect, цепочку или цикл;
  • external redirect требует allowlist;
  • canonical conflicts видны SEO-администратору;
  • structured data валидируется для страниц, где используется.

Интеграции

  • product/CRM source updates обновляют catalog read-model;
  • identity отдаёт публично разрешённые профили и editor roles;
  • LMS отдаёт только публичные course/material read-model;
  • competitions отдаёт только опубликованные сезоны, площадки, результаты и документы;
  • task-bank отдаёт только публичные тренировочные материалы;
  • management отдаёт verified aggregate facts;
  • временная недоступность source не ломает опубликованные страницы без fallback.

Безопасность

  • public endpoints не отдают draft, review, scheduled, private и hidden данные;
  • public endpoints не отдают Learning Workspace groups, group participants, raw submissions или unpublished results;
  • admin endpoints требуют permissions;
  • moderation decisions аудируются;
  • publication actions аудируются;
  • form submissions доступны только ограниченным ролям;
  • PII минимизирована и не попадает в events/logs;
  • preview access к private content аудируется;
  • audit logs доступны только storefront.audit.read.

UI

  • public catalog поддерживает search, filters, sorting, collections и empty states;
  • landing page корректно отображает все базовые block types;
  • public profile скрывает запрещённые поля;
  • CMS editor поддерживает page versions, blocks, preview и publish checklist;
  • moderation queue поддерживает approve, reject, needs changes, hide и archive;
  • SEO admin показывает redirects, sitemap, canonical conflicts и missing metadata;
  • form diagnostics показывает status, CRM lead id, retry и ошибку без PII.

MVP acceptance

MVP витрины можно принимать, если работают:

  1. page/version/block model с publication lifecycle;
  2. public page endpoint только для published version;
  3. catalog items с filters и source refs;
  4. collections с ручным порядком;
  5. public profiles с consent/privacy policy;
  6. reviews или facts с moderation;
  7. form submission с CRM handoff и idempotency;
  8. SEO metadata, sitemap и redirects;
  9. CMS preview и publish checklist;
  10. tests из test-plan.md для критичных public/admin/security путей.