---
trigger: always_on
---

# Naming Convention & Typing Rules

- **Nomenclatura Exacta:** El nombre del archivo DEBE coincidir con el componente, hook o servicio principal exportado (Ej: `useSearchClientMutation` en `useSearchClientMutation.ts`).
- **Inglés Obligatorio:** Textos, variables, funciones y UI DEBEN estar en inglés.
- **Comentarios:** No agregar comentarios en el código a menos que la lógica sea excepcionalmente compleja. Si son estrictamente necesarios, usar JSDoc en inglés.
- **Componentes:** `PascalCase.tsx`. Separar contenedores (smart) de componentes puros.
- **Hooks:** `camelCase.ts` con prefijo `use`. Separar queries y mutations.
- **Servicios/Utils:** `camelCase.ts`.
- **Tipado (Regla de ORO):** NUNCA usar `any` o `as any`. Usar validaciones, narrowings o `unknown`.
- **Importaciones compartidas:** Los types vienen de `@battle-racing/br-common-lib`. Si no existen, crearlos allí o en la carpeta `types` si son locales. NUNCA usar `import * as BrCommon`. Importar específicamente.
