# SKILL: Environment Guard (.agent/skills/environment-guard) ## 📌 Objetivo Proteção de integridade entre múltiplos ambientes (Multi-Tenant/Multi-Context). Evitar que uma alteração no layout de um módulo afete negativamente outro. ## 🛡️ Protocolo de Mudança em `src/components/shared` Sempre que o agente precisar editar um componente dentro de `src/components/shared`, ele deve seguir este checklist visual e lógico: 1. **Detecção de Colisão:** * Este componente é usado no RH? Prafrot? GR? * `grep -r "ComponentName" src/features` para mapear o uso. 2. **Variantes em vez de Condicionais:** * **ERRADO:** `if (isPrafrot) { ... }` dentro de um componente compartilhado. * **CORRETO:** Use `tailwind-variants` (TV) para criar intenções visuais puras. * Exemplo: ```javascript const button = tv({ variants: { intent: { prafrot: 'bg-emerald-600', gr: 'bg-indigo-600', rh: 'bg-rose-600' } } }); ``` 3. **Cross-Environment Validation:** * Se alterar o `Modal.jsx`, deve-se validar visualmente (ou via pesquisa de código) se o modal de "Demissão" (RH) e o modal de "Checklist" (Prafrot) continuam funcionais. ## 🚀 Anti-Colisão de Tokens (JWT) * **Identidade Própria:** Certifique-se de que o componente não assume a existência de um `token` global. Ele deve receber o dado necessário ou usar o hook reativo `useApiContract` que já injeta o token correto por contexto. ## ⚠️ Regra de Ouro O componente `shared` deve ser agnóstico ao negócio. O negócio deve configurar o componente via `props`.