39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# 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`.
|