# Правила проекта @front-utils/router

Эти правила должны соблюдаться при разработке.

## Общие принципы
1.  **TypeScript**: Строгая типизация. Избегайте использования `any`. Все экспортируемые интерфейсы должны быть в `src/types.ts`.
2.  **Архитектура**: Используйте функциональный подход и фабрики объектов. Состояние должно управляться через сигналы `@preact/signals`.
3.  **Производительность**: Минимизируйте количество подписок (`subscribe`) и вычисляемых значений (`computed`), только если они действительно нужны.

## Написание кода
- Используйте camelCase для переменных и функций.
- Константы или ключи настроек — в UPPER_SNAKE_CASE.
- Названия типов и интерфейсов — PascalCase с префиксом `T` или без (в текущем проекте без префикса).
- В React-компонентах используйте PascalCase.

## Тестирование и Валидация
- Все новые функции должны сопровождаться тестами в `src/__tests__/`.
- Перед коммитом ОБЯЗАТЕЛЬНО запустить `bun run validate`.
- Линтер должен проходить без предупреждений (`--max-warnings=0`).

## Работа с UI (Примеры)
- Если создаете документацию или примеры с UI, используйте современные эстетичные стили (HSL, сглаженные углы, микро-анимации).
- Не используйте Tailwind, если только об этом не просит пользователь.

## Контекст AI
- При возникновении вопросов по API, обращайтесь к `README.md`.
- Для понимания связи компонентов используйте `docs/ARCHITECTURE.md`.
- Всегда следуйте инструкциям в `.agent/instructions.md`.
