name: review-architecture description: >- Архитектурное ревью MeTravel: соответствие контрактам CLAUDE.md (ImageCardMedia, UnifiedTravelCard, externalLinks, React Query/Zustand), слои и зависимости, god-файлы, дублирование механизмов; нарушения исправляются. Триггеры: «архитектурное ревью», «проверь архитектуру», «соответствие правилам проекта».
review-architecture
Ревью структуры, не отдельных багов. Scope по умолчанию — весь репозиторий
(без scripts/, public/, конфигов из списка «не трогать»).
Шаги
- Гварды — прогнать
npm run guard:external-links,guard:file-complexity,check:image-architecture(это машинная часть; падения чинить по регламенту агента guard-enforcer). - Контракты CLAUDE.md — делегируй
review-auditor:- прямой
expo-image/Linking.openURL/window.openвне разрешённых мест; - travel-карточки мимо
UnifiedTravelCard; изображения мимоImageCardMedia; - серверный стейт мимо React Query (fetch в компонентах/Zustand), клиентский —
мимо Zustand; новые
anyвapi/,hooks/,stores/.
- прямой
- Структурные запахи — делегируй
review-auditor:- параллельные механизмы одной задачи (две реализации lazy-embed, два кэша,
дублирующиеся утилиты в
utils/vs локальные хелперы); - неправильная высота фикса: special-case в фиче там, где должен быть общий механизм;
- цикличные/обратные зависимости (
components/uiимпортирует фичу,utilsимпортирует компоненты), web-only API в общем коде безPlatform-гейта; - god-файлы >800 LOC (кандидаты на
$split-component— только предложить).
- параллельные механизмы одной задачи (две реализации lazy-embed, два кэша,
дублирующиеся утилиты в
- Чини подтверждённое: мелкое — сразу (с тестами/lint/typecheck); крупное (распил god-файла, слияние механизмов) — не делать молча, предложить план.
- Отчёт: нарушение → контракт, который оно ломает → что сделано/предложено.
Правила
- Гварды не ослаблять (пороги, allowlist'ы) ради зелёного прогона.
- Рефакторинг без изменения поведения; поведение фиксировать тестами до правки.