Stevens / Ivan Issue Report

PR #846 — IX-SIT67: update header

Ссылка: https://bitbucket.org/stevens_edu/stevens_main_nextjs/pull-requests/846 Jira (PR-задача): IX-SIT67 — update header Jira (parent / спека): https://cpcs.atlassian.net/browse/ICUS-220 Репозиторий: stevens_edu/stevens_main_nextjs

🚨 Особый статус

Header прямо упомянут в письме Alexis Watson (29.04.2026) как пример проблемы:

"we're also noticing some deliverables (such as the header) that deviate considerably from spec and require revisiting"

Это значит, что разбор PR #846 — критический для встречи. От него зависит главный аргумент письма.

Спека и материалы (в spec/)

  • Site_Header_User_Stories_v2.docx — User stories: 4 фичи (Sticky Desktop, Sticky Mobile, CTA buttons Desktop, CTA buttons Mobile) + HTML data attributes для аналитики.
  • mockups-v3/ — мокапы v3:
    • Site Header v03 Full.png — desktop full + sticky + mobile + search states
    • Site Header v03 Mobile.png — mobile collapsed
    • Site Header v03 Mobile Search.png — mobile с открытым поиском
    • Site Header v03 Sticky.png — sticky-варианты на десктопе
    • Site Header v03 Page.png — пример встраивания на странице
    • Site Header v03.pdf — то же в PDF

Метаданные вложений (Europe/Warsaw)

ФайлКогда добавленРазмер
mockups v3.zip2026-04-16, 12:16~2.9 MB
Site_Header_User_Stories_v2.docx2026-04-20, 14:24~21 KB

Важная деталь именования:

  • User stories — v2 → значит, была хотя бы одна версия раньше.
  • Mockups — v3 → значит, было хотя бы 2 предыдущих версии.

Это меняет картину vs PR #837 (где спека была единая и заранее):

  • Для header спека итерировалась.
  • К моменту 16.04 / 20.04 она ещё уточнялась.
  • PR открыт раньше этих дат (нужно установить точно по комментариям/таймлайну) → часть работы могла идти по более ранним версиям спеки.

Это смягчающее обстоятельство для нас. Но не оправдание полностью — нужно посмотреть, когда конкретно Иван коммитил, и какие версии спеки были на тот момент. Если основные коммиты после 20.04 — оправдания нет. Если до — есть аргумент "спека менялась".

Ключевые требования спеки (User Stories v2)

Desktop

  • Sticky header (position:sticky или fixed) — не уезжает при скролле
  • 1280 / 1440 / 1920 px корректно
  • CTA buttons: Request Info, Visit Campus, Apply (именно в этом порядке)
  • Выделены визуально как кнопки (по мокапу — жёлтые)
  • WCAG AA contrast (≥4.5:1)
  • Кнопки видны и кликабельны и в default, и в sticky состоянии

Mobile

  • Sticky на 375 / 390 / 414 / 430 px
  • Не перекрывает поле ввода при открытой клавиатуре (тест на iOS Safari + Android Chrome)
  • CTA в header (или через hamburger)
  • Touch target ≥ 44×44 px (WCAG 2.5.5)

HTML Data Attributes (для аналитики)

  • На каждой CTA: data-cta (например, request-info / visit-campus / apply) + data-location="header"
  • Имена/значения согласованы dev + analytics + QA до реализации
  • Lowercase, hyphenated
  • Присутствуют в default и sticky, на desktop и mobile
  • Атрибуты доходят до analytics-слоя (GTM/GA4)

Структура папки

  • screenshots/ — скриншоты комментариев из PR
  • spec/ — спецификация (User Stories docx + mockups)
  • comments.md — расшифровка комментариев + наш разбор
  • summary.md — итоговая позиция

Статус

  • Спека и мокапы получены и сохранены
  • Разобраны требования спеки
  • PR открыт 2026-04-22 (после стабилизации v2/v3 спеки)
  • Все 11 значимых комментариев расшифрованы
  • Сформирована позиция → см. summary.md
  • Найти предыдущий header PR (если для встречи нужна позиция по нему)

Финальный результат разбора

  • 11 значимых замечаний за 8 дней
  • 8 из 11 — наши self-QA промахи (визуальные расхождения, регрессии, не сверено с мокапом)
  • 3 из 11 — пробелы в спеке (sticky-1024+ / alignment magnifier-X / data-cta stability) → защитные аргументы для встречи
  • 🚨 PR #846 = header, упомянутый в письме Alexis — главный артефакт того тезиса
  • Реактивность Ивана хорошая — фиксит в день/на следующий день. Проблема — слишком много долетает до ревьюера

Что критично проверить (нужны скрины комментариев)

  1. Sticky behavior — реализован ли вообще, корректно ли (особенно mobile + клавиатура)?
  2. CTA buttons — все три? в правильном порядке? стилизованы как в мокапе (жёлтые)?
  3. WCAG contrast / touch targets — проверены?
  4. HTML data attributes — есть ли data-cta и data-location? согласованы ли значения?
  5. Iteration timeline — когда что коммитилось vs когда обновлялась спека?

Screenshots (25)

01_pr-opened-2026-04-22.png
01_pr-opened-2026-04-22.png
02_michael_info-for-center-justified.png
02_michael_info-for-center-justified.png
03_ivan-resolved-5-commits.png
03_ivan-resolved-5-commits.png
04_michael_menu-wraps-1024-1091px.png
04_michael_menu-wraps-1024-1091px.png
05_michael_mobile-logo-spec.png
05_michael_mobile-logo-spec.png
06_michael_mobile-logo-feature-branch.png
06_michael_mobile-logo-feature-branch.png
07_ivan-resolved-mobile-logo.png
07_ivan-resolved-mobile-logo.png
08_michael_dark-mode-yellow-buttons-contrast.png
08_michael_dark-mode-yellow-buttons-contrast.png
09a_michael_cta-duplication-comment.png
09a_michael_cta-duplication-comment.png
09b_michael_cta-duplication-screenshot.png
09b_michael_cta-duplication-screenshot.png
09c_ivan-3-commits.png
09c_ivan-3-commits.png
10_michael_sticky-clarification-with-spec-author.png
10_michael_sticky-clarification-with-spec-author.png
11_michael_3-sticky-issues-after-fix.png
11_michael_3-sticky-issues-after-fix.png
12a_michael_search-4-issues-spec.png
12a_michael_search-4-issues-spec.png
12b_michael_search-4-issues-feature.png
12b_michael_search-4-issues-feature.png
13a_ivan_alignment-question.png
13a_ivan_alignment-question.png
13b_michael-confused-ivan-clarifies.png
13b_michael-confused-ivan-clarifies.png
13c_alignment-issue-detail.png
13c_alignment-issue-detail.png
14a_michael_jay-designer-alignment-clarification.png
14a_michael_jay-designer-alignment-clarification.png
14b_alignment-green-line-closeup.png
14b_alignment-green-line-closeup.png
14c_ivan-fixed-aligned.png
14c_ivan-fixed-aligned.png
15a_michael_data-cta-stability.png
15a_michael_data-cta-stability.png
15b_ivan_we-have-id.png
15b_ivan_we-have-id.png
15c_ivan_confusing-name.png
15c_ivan_confusing-name.png
15d_michael_use-sys-id-for-stability.png
15d_michael_use-sys-id-for-stability.png