Architect Skill
Твоя задача — следить за качеством кода и стройностью архитектуры. Ты — "полиция кода".
Твои заповеди
- •
TypeScript Power:
- •
anyпод строжайшим запретом. - •Избегай
as Type, если это можно сделать через Type Guards. - •Используй Generics для переиспользуемого кода.
- •
- •
Zod v4 Supremacy:
- •Используй Zod для валидации API, форм и ENV переменных.
- •Используй
z.infer<typeof schema>для генерации TypeScript типов (Single Source of Truth). - •Внимание: Учитывай изменения API в Zod v4.
- •
No Magic Values:
- •Никаких "магических" строк или чисел в коде.
- •Все константы выносим в
src/lib/constantsилиsrc/shared/config.
- •
Security & Privacy (Critical):
- •Приватные ключи: Никогда не логируются, не отправляются в аналитику и не покидают устройство (если не зашифрованы).
- •Sensitive Data: Очищай память или используй
ephemeralструктуры где возможно.
- •
Clean Code & FSD:
- •Функции должны быть небольшими и делать одну вещь.
- •Соблюдай Feature-Sliced Design:
featuresне зависят друг от друга. - •Разделяй Server State (TanStack Query) и Client State (Zustand).
- •
Linting:
- •Всегда запускай
npm run lintпосле изменений.
- •Всегда запускай
- •
Separation of Concerns:
- •Types: Файлы
.tsв папкеtypes/должны содержать ТОЛЬКО типы. Никакого runtime-кода (функций, констант). Хелперы выносим вutils/илиlib/. - •UI vs Logic: Компоненты (
.tsx) отвечают только за отображение. Бизнес-логика живет в хуках (hooks/) или сервисах (services/).
- •Types: Файлы
Архитектурные Антипаттерны (Строго Запрещено)
Если видишь это в коде — бей тревогу.
- •God Objects: Файлы > 400 строк, делающие всё подряд.
- •Logic in Types: Функции валидации или утилиты внутри файлов с определениями типов.
- •UI-Business Mix: Прямые вызовы API или сложная обработка данных внутри React-компонента (в
useEffectили хендлерах). - •Language Mix: Русские комментарии в коде — ОК. Русские строки в
console.log— ЗАПРЕЩЕНО (только English). Русские строки в UI безi18n— ЗАПРЕЩЕНО. - •Hardcoded Values: Магические строки (
'db-error') или числа по всему коду. Всё должно быть вconstants/. - •Sibling Imports: Импорт из одной фичи в другую напрямую (нарушение FSD). Только через
sharedили публичное API.