Stevens / Ivan Issue Report

Stevens IT — Development Workflow Issue

Сбор фактов и подготовка к обсуждению с Антоном и Иваном по поводу претензий со стороны Stevens IT к процессу разработки.

🚨 Обновление 30.04 19:37: Получено второе письмо — от Michael Forbes (Stevens IT), с конкретным примером squashing на PR #846 (произошёл ~2 часа до письма, то есть уже после письма Alexis 29.04). Адресовано Андрею; в копии Tom (iX), Anton, Vincent, Bemin. См. claims/email-michael-2026-04-30.md.

Участники и роли

Расстановка: Stevens — клиент iCrossing (iX). Мы работаем с iX как подрядчики. Tom Napper — менеджер со стороны iX. Внутри нашей команды: Антон — тимлид, Иван — разработчик (коммитит, выполняет задачи), Андрей Голубец — менеджер.

  • Stevens IT (клиент iX): Alexis Watson (автор письма), Vincent, Michael, +2 в копии
  • iCrossing (iX, заказчик для нас): Tom Napper (менеджер)
  • Наша команда (подрядчики iX):
    • Антон — тимлид
    • Иван — разработчик (его коммиты обсуждаются)
    • Андрей Голубец — менеджер (получатель письма, контрактор iX)

Внутреннее обсуждение: Антон + Иван + Андрей. Цепочка эскалации: Stevens → iX (Tom) → мы (Андрей → Антон → Иван).

Ключевые претензии (из письма от 2026-04-29)

  1. Некоторые deliverables (например, header) сильно отклоняются от спецификации и требуют переделки.
  2. В PR #847 использовался commit squashing после того, как ветка была расшарена — это затрудняет ревью инкрементальных изменений.
  3. Просьба не делать rebase после того, как код расшарен — терять историю плохо.
  4. PR с post-deployment задачами должны всегда сопровождаться этими задачами.
  5. Предложение: дробить работу на меньшие батчи, делать internal validation pass до отправки на ревью, возможно использовать AI-tooling.

Структура

  • claims/ — претензии Stevens IT (письма, скриншоты, расшифровки)
  • evidence/ — факты с нашей стороны (git log, blame, контекст коммитов)
  • analysis/ — сопоставление претензий и фактов
  • meeting/ — повестка и вопросы для встречи
  • outcome/ — решения и дальнейшие шаги

Разбираемые PR

  • PR #837 — ICUS-216 Add FAQPageJsonLd for accordion — ✅ разобран. Merged 2026-03-24. 2 обоснованные претензии (Contentful env + конфигурация поля в нарушение спеки ICUS-214, которая была приложена к parent-тикету). Код "looks great", QA прошёл — но спека была у нас и не была выполнена.
  • PR #842 — IX-SIT60 Add schema for youtube — ✅ разобран. OPEN 16+ дней, 4 обоснованные претензии (debug console.log, отсутствие pre-merge tasks, невалидная VideoObject schema, ~700 unsynced entries). Главная иллюстрация письма Alexis — на этом PR сошлись 3 из 4 претензий из письма.
  • PR #832 — IX-SIT60 Add schema for pages — ✅ разобран. OPEN 2+ месяца, 9 замечаний, REQUESTED CHANGES. Концентрирует все 4 пункта письма Alexis. Alexis уже 23.02 (за 2 мес до письма) прямо спрашивал про pre-deployment steps — сигнал был и не отработан.
  • PR #846 — IX-SIT67 update header — ✅ разобран. 🚨 Header — главный артефакт письма Alexis ("deviates from spec"). Открыт 22.04 (после стабилизации v2/v3 спеки). 11 замечаний за 8 дней: 8 наших self-QA промахов (logo, dropdown, регрессия, search-стилизация, дублирование CTA, dark mode), 3 — пробелы в спеке (sticky-1024+, alignment, data-cta stability). Реактивность Ивана хорошая, но слишком много долетает до ревьюера.
  • PR #847 — hotfix FAQPage @id — ✅ разобран. 🚨 Главная находка: commit-after-approve workflow violation (Иван закоммитил TODO "remove when approve PR" — намерение изменить код после approve). Архитектурно решение лучше shortcut Michael (aggregation + @id). Branch reuse — по предложению Michael. Git-история (squash) — на встречу с Иваном завтра.

Статус

  • Получено первое письмо от Alexis Watson (2026-04-29)
  • Разобран PR #837 (ICUS-216 FAQ — merged)
  • Разобран PR #842 (IX-SIT60 YouTube schema)
  • Разобран PR #832 (IX-SIT60 schema for pages)
  • Разобран PR #846 (IX-SIT67 header — упомянут в письме)
  • Разобран PR #847 (FAQPage hotfix — упомянут в письме)
  • Cross-PR паттерны и сводкаanalysis/cross-pr-patterns.md
  • Финализированы вопросы Антону и Ивануmeeting/questions-anton.md, questions-ivan.md
  • Финализирована agendameeting/agenda.md
  • 🌟 БРИФИНГ ДЛЯ ВСТРЕЧИmeeting/briefing.md — единый документ со скринами + фактами + сводкой + планом (часть 1 с Антоном, часть 2 с Иваном). Открывать в Markdown preview.
  • Внутренняя встреча с Антоном и Иваном (завтра) — установить факты по squashing, проговорить процессные изменения
  • (после встречи) Ответ Stevens через Tom — не раньше встречи