wegho-agentes 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/AGENT_WORKFLOW.md +528 -0
- package/.agents/AI_COMPATIBILITY.md +332 -0
- package/.agents/CLI.md +222 -0
- package/.agents/README.md +130 -0
- package/.agents/cli.js +389 -0
- package/.agents/code-auditor-agent.ts +333 -0
- package/.agents/config.ts +145 -0
- package/.agents/context-loader.ts +300 -0
- package/.agents/core/agent-parallelizer.test.ts +94 -0
- package/.agents/core/agent-parallelizer.ts +108 -0
- package/.agents/core/architecture-agent.ts +237 -0
- package/.agents/core/base-agent.ts +311 -0
- package/.agents/core/cache-manager.test.ts +147 -0
- package/.agents/core/cache-manager.ts +184 -0
- package/.agents/core/documentation-agent.ts +183 -0
- package/.agents/core/feedback-collector.ts +207 -0
- package/.agents/core/frontend-agent.ts +210 -0
- package/.agents/core/inventory-agent.ts +582 -0
- package/.agents/core/memory-system.ts +397 -0
- package/.agents/core/quality-agent.ts +268 -0
- package/.agents/core/retry-utility.test.ts +165 -0
- package/.agents/core/retry-utility.ts +140 -0
- package/.agents/core/security-agent.ts +217 -0
- package/.agents/core/workflow-validator.test.ts +171 -0
- package/.agents/core/workflow-validator.ts +158 -0
- package/.agents/domains/README.md +53 -0
- package/.agents/domains/logistics/route-agent.ts +177 -0
- package/.agents/domains/news/cms-agent.ts +158 -0
- package/.agents/domains/news/seo-agent.ts +170 -0
- package/.agents/domains/production/production-control-agent.ts +169 -0
- package/.agents/example-learning-system.js +118 -0
- package/.agents/init.ts +164 -0
- package/.agents/memory/architecture-agent/failures.json +1 -0
- package/.agents/memory/architecture-agent/learnings.json +1 -0
- package/.agents/memory/architecture-agent/specialty.md +31 -0
- package/.agents/memory/architecture-agent/successes.json +16 -0
- package/.agents/memory/cms-agent/failures.json +1 -0
- package/.agents/memory/cms-agent/learnings.json +1 -0
- package/.agents/memory/cms-agent/specialty.md +30 -0
- package/.agents/memory/cms-agent/successes.json +16 -0
- package/.agents/memory/documentation-agent/failures.json +1 -0
- package/.agents/memory/documentation-agent/learnings.json +1 -0
- package/.agents/memory/documentation-agent/specialty.md +33 -0
- package/.agents/memory/documentation-agent/successes.json +16 -0
- package/.agents/memory/frontend-agent/failures.json +1 -0
- package/.agents/memory/frontend-agent/learnings.json +1 -0
- package/.agents/memory/frontend-agent/specialty.md +30 -0
- package/.agents/memory/frontend-agent/successes.json +16 -0
- package/.agents/memory/inventory-agent/failures.json +1 -0
- package/.agents/memory/inventory-agent/inventory/index.json +8 -0
- package/.agents/memory/inventory-agent/inventory/types.json +77716 -0
- package/.agents/memory/inventory-agent/inventory/variables.json +405 -0
- package/.agents/memory/inventory-agent/learnings.json +1 -0
- package/.agents/memory/inventory-agent/specialty.md +129 -0
- package/.agents/memory/inventory-agent/successes.json +30 -0
- package/.agents/memory/production-control-agent/failures.json +1 -0
- package/.agents/memory/production-control-agent/learnings.json +1 -0
- package/.agents/memory/production-control-agent/specialty.md +29 -0
- package/.agents/memory/production-control-agent/successes.json +16 -0
- package/.agents/memory/quality-agent/failures.json +16 -0
- package/.agents/memory/quality-agent/learnings.json +1 -0
- package/.agents/memory/quality-agent/specialty.md +31 -0
- package/.agents/memory/quality-agent/successes.json +1 -0
- package/.agents/memory/reference-repositories.json +271 -0
- package/.agents/memory/route-agent/failures.json +1 -0
- package/.agents/memory/route-agent/learnings.json +1 -0
- package/.agents/memory/route-agent/specialty.md +29 -0
- package/.agents/memory/route-agent/successes.json +16 -0
- package/.agents/memory/security-agent/failures.json +1 -0
- package/.agents/memory/security-agent/learnings.json +1 -0
- package/.agents/memory/security-agent/specialty.md +31 -0
- package/.agents/memory/security-agent/successes.json +16 -0
- package/.agents/memory/seo-agent/failures.json +1 -0
- package/.agents/memory/seo-agent/learnings.json +1 -0
- package/.agents/memory/seo-agent/specialty.md +31 -0
- package/.agents/memory/seo-agent/successes.json +16 -0
- package/.agents/orchestrator.ts +438 -0
- package/.agents/project-discovery-agent.ts +342 -0
- package/.agents/security/pentesting-agent.py +387 -0
- package/.agents/security/python-bridge.ts +193 -0
- package/.agents/security/vulnerability-db.json +201 -0
- package/.agents/task-analyzer-agent.ts +346 -0
- package/.agents/test-init-context.js +67 -0
- package/INSTALL.md +300 -0
- package/LICENSE +21 -0
- package/README.md +315 -0
- package/docs/AGENT_RULES.md +292 -0
- package/docs/BUILD_HISTORY.md +65 -0
- package/docs/DESIGN_SYSTEM.md +256 -0
- package/docs/LEARNING_SYSTEM.md +326 -0
- package/docs/SYMBOLS_TREE.md +182 -0
- package/docs/VERSION.md +6 -0
- package/docs/architecture.md +111 -0
- package/package.json +60 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# Regras Integradas para Agentes
|
|
2
|
+
|
|
3
|
+
Este documento consolida todas as regras que os agentes devem seguir durante o desenvolvimento.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🚨 REGRAS ABSOLUTAS (Aplicam-se a TODOS)
|
|
8
|
+
|
|
9
|
+
### 1. Limite de 500 Linhas
|
|
10
|
+
- ❌ **NUNCA** criar arquivo com mais de 500 linhas
|
|
11
|
+
- ✅ Se exceder: refatorar imediatamente
|
|
12
|
+
- Extrair hooks (lógica de estado)
|
|
13
|
+
- Extrair componentes filhos (UI)
|
|
14
|
+
- Extrair funções para `lib/` ou `utils/` (lógica pura)
|
|
15
|
+
- 🔒 **Bloqueio**: Build não prossegue se houver arquivo > 500 linhas
|
|
16
|
+
|
|
17
|
+
### 2. Não Alucinar
|
|
18
|
+
- ❌ **NUNCA** inventar:
|
|
19
|
+
- APIs que não existem
|
|
20
|
+
- Tabelas do Supabase não criadas
|
|
21
|
+
- Colunas de tabelas inexistentes
|
|
22
|
+
- Variáveis de ambiente não configuradas
|
|
23
|
+
- Rotas não definidas
|
|
24
|
+
- Policies RLS não implementadas
|
|
25
|
+
- Endpoints não existentes
|
|
26
|
+
- Bibliotecas não instaladas
|
|
27
|
+
|
|
28
|
+
### 3. Priorizar Bibliotecas Existentes
|
|
29
|
+
- ✅ **SEMPRE** verificar `package.json` antes de sugerir nova lib
|
|
30
|
+
- ✅ Se sugerir nova biblioteca:
|
|
31
|
+
- Justificar necessidade
|
|
32
|
+
- Listar alternativas
|
|
33
|
+
- Avaliar impacto (bundle size, breaking changes)
|
|
34
|
+
- Plano de validação antes de instalar
|
|
35
|
+
- ❌ **NUNCA** instalar sem aprovação explícita
|
|
36
|
+
|
|
37
|
+
### 4. Fonte de Verdade (Ordem de Prioridade)
|
|
38
|
+
1. **Código + Tipos + Schema + Migrations** do projeto
|
|
39
|
+
2. **Docs Oficiais**: React, TypeScript, Next.js, Supabase, Postgres, MDN, OWASP
|
|
40
|
+
3. **Padrões Web**: WHATWG, W3C
|
|
41
|
+
|
|
42
|
+
### 5. Mudanças Mínimas
|
|
43
|
+
- ✅ Fazer **apenas** o necessário para resolver o problema
|
|
44
|
+
- ❌ **NUNCA** refatorar por estética sem pedido explícito
|
|
45
|
+
- ❌ **NUNCA** alterar arquivos não relacionados à tarefa
|
|
46
|
+
|
|
47
|
+
### 6. Proibido Gambiarra
|
|
48
|
+
- ❌ **NUNCA**:
|
|
49
|
+
- Bypass de tipos (`as any`, `@ts-ignore` sem justificativa)
|
|
50
|
+
- Hack de segurança (desabilitar RLS, CORS geral, CSP)
|
|
51
|
+
- Duplicação de código (sempre extrair para módulo compartilhado)
|
|
52
|
+
- Workarounds que criam dívida técnica
|
|
53
|
+
|
|
54
|
+
### 7. Entregas Obrigatórias
|
|
55
|
+
Ao finalizar qualquer tarefa, **SEMPRE** fornecer:
|
|
56
|
+
- ✅ **Arquivos afetados** (criar/editar/deletar)
|
|
57
|
+
- ✅ **Por quê** (justificativa curta e clara)
|
|
58
|
+
- ✅ **Como validar**:
|
|
59
|
+
- Comandos: `npm run lint`, `npm run build`, `npm test`
|
|
60
|
+
- Fluxo manual: passo a passo no navegador
|
|
61
|
+
|
|
62
|
+
### 8. Tipagem Forte
|
|
63
|
+
- ✅ **Evitar `any`** sempre que possível
|
|
64
|
+
- ✅ Se entrada desconhecida: usar `unknown` + validação (type guard ou Zod)
|
|
65
|
+
- ✅ `any` **APENAS** em boundaries (entrada de API, JSON externo)
|
|
66
|
+
- ❌ **NUNCA** espalhar `any` pelo código
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 🔄 PROCESSO DE 6 PASSOS OBRIGATÓRIOS
|
|
71
|
+
|
|
72
|
+
Toda implementação **DEVE** seguir estas 6 etapas:
|
|
73
|
+
|
|
74
|
+
### Passo 1: Staff Engineer (Arquitetura)
|
|
75
|
+
**Responsável**: Agente de Arquitetura
|
|
76
|
+
|
|
77
|
+
**Ações**:
|
|
78
|
+
- Planejar estrutura técnica
|
|
79
|
+
- Definir quais arquivos criar/modificar
|
|
80
|
+
- Garantir separação de camadas (UI → Hooks → Services → API)
|
|
81
|
+
- Assegurar que estrutura está < 500 linhas por arquivo
|
|
82
|
+
- Documentar decisões arquiteturais (ADR style)
|
|
83
|
+
|
|
84
|
+
**Checklist**:
|
|
85
|
+
- [ ] Estrutura de pastas definida
|
|
86
|
+
- [ ] Separação de responsabilidades clara
|
|
87
|
+
- [ ] Nenhum arquivo > 500 linhas
|
|
88
|
+
- [ ] Decisões documentadas
|
|
89
|
+
|
|
90
|
+
### Passo 2: Front-End Engineer (UI/UX)
|
|
91
|
+
**Responsável**: Agente de Front-End
|
|
92
|
+
|
|
93
|
+
**Ações**:
|
|
94
|
+
- Implementar UI com qualidade
|
|
95
|
+
- Garantir conformidade com `DESIGN_SYSTEM.md`
|
|
96
|
+
- Implementar estados: loading, empty, error
|
|
97
|
+
- Garantir acessibilidade (ARIA, teclado)
|
|
98
|
+
- Otimizar performance (lazy loading, code splitting)
|
|
99
|
+
|
|
100
|
+
**Checklist**:
|
|
101
|
+
- [ ] Componentes < 500 linhas
|
|
102
|
+
- [ ] UI primitives reutilizáveis
|
|
103
|
+
- [ ] Estados de loading/empty/error
|
|
104
|
+
- [ ] Acessibilidade (ARIA labels, contraste)
|
|
105
|
+
- [ ] Performance (next/image, dynamic imports)
|
|
106
|
+
|
|
107
|
+
### Passo 3: Security Engineer (Segurança FE)
|
|
108
|
+
**Responsável**: Agente de Segurança
|
|
109
|
+
|
|
110
|
+
**Ações Front-End**:
|
|
111
|
+
- Validar inputs (Zod/Yup)
|
|
112
|
+
- Sanitizar HTML (`dangerouslySetInnerHTML` apenas com DOMPurify)
|
|
113
|
+
- Verificar proteção de rotas (middleware ou AuthProvider)
|
|
114
|
+
- Garantir nenhuma `service_role` no cliente
|
|
115
|
+
- Verificar variáveis sensíveis nunca em `NEXT_PUBLIC_*`
|
|
116
|
+
|
|
117
|
+
**Checklist**:
|
|
118
|
+
- [ ] Inputs validados (Zod/Yup)
|
|
119
|
+
- [ ] HTML sanitizado (DOMPurify)
|
|
120
|
+
- [ ] Rotas protegidas
|
|
121
|
+
- [ ] Nenhuma key sensível no cliente
|
|
122
|
+
- [ ] XSS/CSRF mitigados
|
|
123
|
+
|
|
124
|
+
### Passo 4: Tech Lead (Integração e Limpeza)
|
|
125
|
+
**Responsável**: Agente de Arquitetura (Tech Lead role)
|
|
126
|
+
|
|
127
|
+
**Ações**:
|
|
128
|
+
- Integrar mudanças com consistência
|
|
129
|
+
- Eliminar código duplicado
|
|
130
|
+
- Modularizar lógica repetida (extrair hooks/utils)
|
|
131
|
+
- Limpar código morto (mover para `/_trash/` com evidências)
|
|
132
|
+
- Atualizar imports/paths
|
|
133
|
+
|
|
134
|
+
**Checklist**:
|
|
135
|
+
- [ ] Código integrado sem duplicação
|
|
136
|
+
- [ ] Lógica extraída para módulos compartilhados
|
|
137
|
+
- [ ] Código morto movido para `/_trash/` com README
|
|
138
|
+
- [ ] Imports atualizados
|
|
139
|
+
- [ ] Build funciona
|
|
140
|
+
|
|
141
|
+
### Passo 5: Database Security Engineer (SQL/RLS)
|
|
142
|
+
**Responsável**: Agente de Segurança (DB role)
|
|
143
|
+
|
|
144
|
+
**Ações**:
|
|
145
|
+
- Verificar RLS ativado em **todas** as tabelas
|
|
146
|
+
- Validar policies (anon/authenticated/owner/admin)
|
|
147
|
+
- Garantir nenhuma policy genérica `USING (true)` em dados sensíveis
|
|
148
|
+
- Criar índices para colunas usadas em policies/filtros
|
|
149
|
+
- Validar SECURITY DEFINER functions (search_path travado)
|
|
150
|
+
|
|
151
|
+
**Checklist**:
|
|
152
|
+
- [ ] RLS ativado em todas as tabelas
|
|
153
|
+
- [ ] Policies definidas e testadas
|
|
154
|
+
- [ ] Índices criados
|
|
155
|
+
- [ ] SECURITY DEFINER seguro
|
|
156
|
+
- [ ] Matriz de acesso documentada
|
|
157
|
+
|
|
158
|
+
### Passo 6: Auditor Final (GO/NO-GO)
|
|
159
|
+
**Responsável**: Agente de Qualidade
|
|
160
|
+
|
|
161
|
+
**Ações**:
|
|
162
|
+
- Executar lint: `npm run lint`
|
|
163
|
+
- Executar type check: `npx tsc --noEmit`
|
|
164
|
+
- Executar build: `npm run build`
|
|
165
|
+
- Executar testes: `npm test`
|
|
166
|
+
- Validar conformidade com regras (500 linhas, sem `any`, etc.)
|
|
167
|
+
- Testar fluxo crítico manualmente
|
|
168
|
+
|
|
169
|
+
**Checklist**:
|
|
170
|
+
- [ ] Lint sem erros
|
|
171
|
+
- [ ] Type check sem erros
|
|
172
|
+
- [ ] Build sem erros
|
|
173
|
+
- [ ] Testes passando
|
|
174
|
+
- [ ] Regras absolutas respeitadas
|
|
175
|
+
- [ ] Fluxo manual validado
|
|
176
|
+
|
|
177
|
+
**Resultado**: ✅ **GO** (prosseguir) ou ❌ **NO-GO** (bloquear até correção)
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 📋 RELATÓRIOS OBRIGATÓRIOS
|
|
182
|
+
|
|
183
|
+
### [FRONT-END IMPLEMENTATION REPORT]
|
|
184
|
+
```markdown
|
|
185
|
+
- Objetivo: [descrição]
|
|
186
|
+
- Arquivos alterados/criados: [lista]
|
|
187
|
+
- Decisões: [justificativas curtas]
|
|
188
|
+
- Componentização: [o que foi dividido e por quê]
|
|
189
|
+
- Tipos adicionados/ajustados: [interfaces/types]
|
|
190
|
+
- Estados: loading / empty / error: [implementados onde]
|
|
191
|
+
- Acessibilidade: [teclado/aria/labels]
|
|
192
|
+
- Performance: [riscos + mitigação]
|
|
193
|
+
- Como validar:
|
|
194
|
+
- Comandos: [npm run dev, etc.]
|
|
195
|
+
- Passos manuais: [1, 2, 3...]
|
|
196
|
+
- Riscos e rollback: [plano B]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### [FRONT-END SECURITY REPORT]
|
|
200
|
+
```markdown
|
|
201
|
+
- Superfícies revisadas: [rotas/componentes/inputs]
|
|
202
|
+
- Ameaças principais (P0/P1/P2): [lista]
|
|
203
|
+
- Evidências: [trechos de código]
|
|
204
|
+
- Mitigações aplicadas: [mudanças]
|
|
205
|
+
- Recomendações de hardening: [agora vs depois]
|
|
206
|
+
- Casos de abuso para testar:
|
|
207
|
+
- XSS payloads: [exemplos]
|
|
208
|
+
- Uploads maliciosos: [cenários]
|
|
209
|
+
- Vazamento por logs: [exemplos]
|
|
210
|
+
- Como validar: [comandos + passos]
|
|
211
|
+
- Riscos restantes: [lista]
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### [INTEGRATION & CLEANUP REPORT]
|
|
215
|
+
```markdown
|
|
216
|
+
- Objetivo: [descrição]
|
|
217
|
+
- Mudanças integradas: [resumo]
|
|
218
|
+
- Dívidas removidas: [duplicação/refactors]
|
|
219
|
+
- Lixo encontrado:
|
|
220
|
+
- P0 (confirmado) movido para /_trash: [lista]
|
|
221
|
+
- P1 (suspeito) e plano: [lista]
|
|
222
|
+
- P2 (mantido) por quê: [justificativa]
|
|
223
|
+
- Evidências: [imports/rotas/refs]
|
|
224
|
+
- Arquivos reorganizados < 500 linhas: [lista]
|
|
225
|
+
- Como validar: [comandos + passos]
|
|
226
|
+
- Riscos e rollback: [plano]
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### [SUPABASE SQL SECURITY REPORT]
|
|
230
|
+
```markdown
|
|
231
|
+
- Tabelas revisadas: [lista]
|
|
232
|
+
- RLS status (on/off): [mapa]
|
|
233
|
+
- Policies existentes + riscos: [resumo]
|
|
234
|
+
- Mudanças aplicadas (SQL): [código]
|
|
235
|
+
- Matriz de acesso: [quem pode ler/escrever]
|
|
236
|
+
- Performance:
|
|
237
|
+
- Índices criados: [lista]
|
|
238
|
+
- EXPLAIN ANALYZE: [se aplicável]
|
|
239
|
+
- Verificação:
|
|
240
|
+
- Queries de teste: [anon/auth/owner/admin]
|
|
241
|
+
- Resultados esperados: [descrição]
|
|
242
|
+
- Rollback: [plano SQL]
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### [AUDIT REPORT — GO/NO-GO]
|
|
246
|
+
```markdown
|
|
247
|
+
- Status: GO / NO-GO
|
|
248
|
+
- P0 (bloqueadores): [lista]
|
|
249
|
+
- P1 (importantes): [lista]
|
|
250
|
+
- P2 (melhorias): [lista]
|
|
251
|
+
- Conformidade:
|
|
252
|
+
- Regra 500 linhas: ✅ / ❌
|
|
253
|
+
- Sem alucinação: ✅ (verificado: APIs, tabelas, libs)
|
|
254
|
+
- Sem any espalhado: ✅ (apenas boundaries)
|
|
255
|
+
- Segurança FE: ✅ (XSS, CSRF, validação)
|
|
256
|
+
- Segurança SQL/RLS: ✅ (policies, índices)
|
|
257
|
+
- Limpeza: ✅ (/_trash + evidências)
|
|
258
|
+
- Validação:
|
|
259
|
+
- Comandos: [npm run lint && npx tsc && npm run build]
|
|
260
|
+
- Passos manuais: [fluxo crítico]
|
|
261
|
+
- Plano de rollback: [git revert + SQL rollback]
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## ✅ MARCAÇÃO DE REGRAS IMPLEMENTADAS
|
|
267
|
+
|
|
268
|
+
Ao finalizar uma tarefa, **SEMPRE** incluir no relatório:
|
|
269
|
+
|
|
270
|
+
```markdown
|
|
271
|
+
[x] Regra 1 implementada (Arquitetura)
|
|
272
|
+
[x] Regra 2 implementada (Front-End)
|
|
273
|
+
[x] Regra 3 implementada (Segurança FE)
|
|
274
|
+
[x] Regra 4 implementada (Tech Lead)
|
|
275
|
+
[x] Regra 5 implementada (Database Security)
|
|
276
|
+
[x] Regra 6 implementada (Auditor Final)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## 🌐 CONTEXTO DE IDIOMA
|
|
282
|
+
|
|
283
|
+
- **Comunicação**: Sempre em **Português** (Brasil)
|
|
284
|
+
- **Código**: Inglês (variáveis, funções, comentários técnicos)
|
|
285
|
+
- **Comentários de Código**: Português quando explicativos, inglês quando técnicos
|
|
286
|
+
- **Relatórios**: Sempre em Português
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
**Última atualização**: 2026-01-20
|
|
291
|
+
**Versão**: 1.0.0
|
|
292
|
+
**Gerado por**: Documentation Agent
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Histórico de Builds
|
|
2
|
+
|
|
3
|
+
Este arquivo contém um resumo cronológico de todas as builds e mudanças significativas do projeto.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## [2026-01-20 10:10] Build 001 - Inicialização do Sistema de Agentes
|
|
8
|
+
|
|
9
|
+
**Descrição**: Criação da estrutura base do sistema de agentes especializados e documentação automática.
|
|
10
|
+
|
|
11
|
+
**Mudanças**:
|
|
12
|
+
- ✅ Estrutura de diretórios `.agents/` criada
|
|
13
|
+
- `core/` - 5 agentes principais
|
|
14
|
+
- `domains/` - Agentes especializados (news, production, logistics)
|
|
15
|
+
- ✅ Estrutura de documentação `docs/` criada
|
|
16
|
+
- `DESIGN_SYSTEM.md` - Sistema de design
|
|
17
|
+
- `SYMBOLS_TREE.md` - Árvore de símbolos
|
|
18
|
+
- `BUILD_HISTORY.md` - Este arquivo
|
|
19
|
+
- `AGENT_RULES.md` - Regras integradas
|
|
20
|
+
- `builds/` - Diretório de builds detalhados
|
|
21
|
+
|
|
22
|
+
**Arquivos Criados**:
|
|
23
|
+
- `.agents/core/` (preparado para agentes)
|
|
24
|
+
- `.agents/domains/news/`
|
|
25
|
+
- `.agents/domains/production/`
|
|
26
|
+
- `.agents/domains/logistics/`
|
|
27
|
+
- `docs/DESIGN_SYSTEM.md`
|
|
28
|
+
- `docs/SYMBOLS_TREE.md`
|
|
29
|
+
- `docs/BUILD_HISTORY.md`
|
|
30
|
+
|
|
31
|
+
**Detalhes**: [build-001.md](./builds/build-001.md) *(será criado)*
|
|
32
|
+
|
|
33
|
+
**Responsável**: Documentation Agent
|
|
34
|
+
**Status**: ✅ Concluído
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## [Próximas Entradas]
|
|
39
|
+
|
|
40
|
+
<!-- As próximas builds serão registradas aqui automaticamente -->
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
**Formato de Entrada**:
|
|
45
|
+
```markdown
|
|
46
|
+
## [YYYY-MM-DD HH:mm] Build XXX - Título Curto
|
|
47
|
+
|
|
48
|
+
**Descrição**: Breve descrição do que foi feito
|
|
49
|
+
|
|
50
|
+
**Mudanças**:
|
|
51
|
+
- Lista de mudanças principais
|
|
52
|
+
|
|
53
|
+
**Arquivos Criados/Modificados**:
|
|
54
|
+
- Lista de arquivos
|
|
55
|
+
|
|
56
|
+
**Detalhes**: [build-XXX.md](./builds/build-XXX.md)
|
|
57
|
+
|
|
58
|
+
**Responsável**: [Nome do Agente ou Desenvolvedor]
|
|
59
|
+
**Status**: ✅ Concluído / 🚧 Em Progresso / ❌ Bloqueado
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
**Gerado por**: Documentation Agent
|
|
65
|
+
**Última atualização**: 2026-01-20 10:10
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Sistema de Design - Triunfo Mineração
|
|
2
|
+
|
|
3
|
+
## 🎨 Paleta de Cores
|
|
4
|
+
|
|
5
|
+
### Cores Primárias
|
|
6
|
+
- **Primary**: `#1E40AF` (blue-800) - Ações principais, links, botões primários
|
|
7
|
+
- **Secondary**: `#10B981` (green-500) - Sucesso, confirmações, status positivo
|
|
8
|
+
- **Accent**: `#F59E0B` (amber-500) - Destaques, alertas importantes
|
|
9
|
+
- **Neutral**: `#6B7280` (gray-500) - Textos secundários, bordas
|
|
10
|
+
- **Error**: `#EF4444` (red-500) - Erros, validações, alertas críticos
|
|
11
|
+
|
|
12
|
+
### Cores de Status
|
|
13
|
+
- **Success**: `#10B981` (green-500)
|
|
14
|
+
- **Warning**: `#F59E0B` (amber-500)
|
|
15
|
+
- **Error**: `#EF4444` (red-500)
|
|
16
|
+
- **Info**: `#3B82F6` (blue-500)
|
|
17
|
+
|
|
18
|
+
### Cores de Background
|
|
19
|
+
- **Background**: `#F9FAFB` (gray-50)
|
|
20
|
+
- **Surface**: `#FFFFFF` (white)
|
|
21
|
+
- **Surface Secondary**: `#F3F4F6` (gray-100)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 📝 Tipografia
|
|
26
|
+
|
|
27
|
+
### Fonte Principal
|
|
28
|
+
- **Família**: Inter (Google Fonts)
|
|
29
|
+
- **Fallback**: system-ui, -apple-system, sans-serif
|
|
30
|
+
|
|
31
|
+
### Hierarquia de Texto
|
|
32
|
+
- **H1**: `font-bold text-3xl md:text-4xl` (30px → 36px)
|
|
33
|
+
- **H2**: `font-bold text-2xl md:text-3xl` (24px → 30px)
|
|
34
|
+
- **H3**: `font-semibold text-xl md:text-2xl` (20px → 24px)
|
|
35
|
+
- **H4**: `font-semibold text-lg` (18px)
|
|
36
|
+
- **Body**: `font-normal text-base` (16px)
|
|
37
|
+
- **Body Small**: `font-normal text-sm` (14px)
|
|
38
|
+
- **Caption**: `font-light text-xs` (12px)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🧩 Componentes Base
|
|
43
|
+
|
|
44
|
+
### Buttons
|
|
45
|
+
Baseado em **shadcn/ui Button**
|
|
46
|
+
|
|
47
|
+
**Variantes**:
|
|
48
|
+
- `default`: Background primary, texto branco
|
|
49
|
+
- `outline`: Borda primary, texto primary, background transparente
|
|
50
|
+
- `ghost`: Sem borda, texto primary, hover com background leve
|
|
51
|
+
- `destructive`: Background red-500, texto branco
|
|
52
|
+
- `link`: Sem background, underline no hover
|
|
53
|
+
|
|
54
|
+
**Tamanhos**:
|
|
55
|
+
- `sm`: `h-8 px-3 text-sm`
|
|
56
|
+
- `default`: `h-10 px-4`
|
|
57
|
+
- `lg`: `h-12 px-6 text-lg`
|
|
58
|
+
- `icon`: `h-10 w-10` (quadrado)
|
|
59
|
+
|
|
60
|
+
**Exemplo**:
|
|
61
|
+
```tsx
|
|
62
|
+
<Button variant="default" size="default">Salvar</Button>
|
|
63
|
+
<Button variant="outline" size="sm">Cancelar</Button>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### Inputs
|
|
69
|
+
Baseado em **shadcn/ui Input**
|
|
70
|
+
|
|
71
|
+
**Padrão**:
|
|
72
|
+
- Borda: `border border-gray-300`
|
|
73
|
+
- Focus: `ring-2 ring-primary`
|
|
74
|
+
- Disabled: `opacity-50 cursor-not-allowed`
|
|
75
|
+
- Error: `border-red-500 ring-red-500`
|
|
76
|
+
|
|
77
|
+
**Com Label**:
|
|
78
|
+
```tsx
|
|
79
|
+
<div className="space-y-2">
|
|
80
|
+
<Label htmlFor="email">Email</Label>
|
|
81
|
+
<Input id="email" type="email" placeholder="seu@email.com" />
|
|
82
|
+
</div>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Cards
|
|
88
|
+
Baseado em **shadcn/ui Card**
|
|
89
|
+
|
|
90
|
+
**Estrutura**:
|
|
91
|
+
```tsx
|
|
92
|
+
<Card>
|
|
93
|
+
<CardHeader>
|
|
94
|
+
<CardTitle>Título do Card</CardTitle>
|
|
95
|
+
<CardDescription>Descrição opcional</CardDescription>
|
|
96
|
+
</CardHeader>
|
|
97
|
+
<CardContent>
|
|
98
|
+
{/* Conteúdo principal */}
|
|
99
|
+
</CardContent>
|
|
100
|
+
<CardFooter>
|
|
101
|
+
{/* Ações opcionais */}
|
|
102
|
+
</CardFooter>
|
|
103
|
+
</Card>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Estilos**:
|
|
107
|
+
- Background: `bg-white`
|
|
108
|
+
- Borda: `border border-gray-200`
|
|
109
|
+
- Sombra: `shadow-sm`
|
|
110
|
+
- Border radius: `rounded-lg` (0.5rem)
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### Modals/Dialogs
|
|
115
|
+
Baseado em **shadcn/ui Dialog**
|
|
116
|
+
|
|
117
|
+
**Estrutura**:
|
|
118
|
+
```tsx
|
|
119
|
+
<Dialog>
|
|
120
|
+
<DialogTrigger asChild>
|
|
121
|
+
<Button>Abrir Modal</Button>
|
|
122
|
+
</DialogTrigger>
|
|
123
|
+
<DialogContent>
|
|
124
|
+
<DialogHeader>
|
|
125
|
+
<DialogTitle>Título</DialogTitle>
|
|
126
|
+
<DialogDescription>Descrição</DialogDescription>
|
|
127
|
+
</DialogHeader>
|
|
128
|
+
{/* Conteúdo */}
|
|
129
|
+
<DialogFooter>
|
|
130
|
+
<Button variant="outline">Cancelar</Button>
|
|
131
|
+
<Button>Confirmar</Button>
|
|
132
|
+
</DialogFooter>
|
|
133
|
+
</DialogContent>
|
|
134
|
+
</Dialog>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### Tables
|
|
140
|
+
Baseado em **TanStack Table v8**
|
|
141
|
+
|
|
142
|
+
**Padrão**:
|
|
143
|
+
- Header: `bg-gray-50 font-semibold text-left`
|
|
144
|
+
- Rows: `border-b hover:bg-gray-50`
|
|
145
|
+
- Células: `px-4 py-3`
|
|
146
|
+
|
|
147
|
+
**Exemplo com shadcn/ui Table**:
|
|
148
|
+
```tsx
|
|
149
|
+
<Table>
|
|
150
|
+
<TableHeader>
|
|
151
|
+
<TableRow>
|
|
152
|
+
<TableHead>Coluna 1</TableHead>
|
|
153
|
+
<TableHead>Coluna 2</TableHead>
|
|
154
|
+
</TableRow>
|
|
155
|
+
</TableHeader>
|
|
156
|
+
<TableBody>
|
|
157
|
+
<TableRow>
|
|
158
|
+
<TableCell>Dado 1</TableCell>
|
|
159
|
+
<TableCell>Dado 2</TableCell>
|
|
160
|
+
</TableRow>
|
|
161
|
+
</TableBody>
|
|
162
|
+
</Table>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 🎯 Tokens de Design
|
|
168
|
+
|
|
169
|
+
### Espaçamento
|
|
170
|
+
- **Base unit**: `1rem` (16px)
|
|
171
|
+
- **Scale**: 0.25rem, 0.5rem, 0.75rem, 1rem, 1.5rem, 2rem, 3rem, 4rem
|
|
172
|
+
|
|
173
|
+
### Border Radius
|
|
174
|
+
- **sm**: `0.25rem` (4px)
|
|
175
|
+
- **default**: `0.5rem` (8px)
|
|
176
|
+
- **md**: `0.75rem` (12px)
|
|
177
|
+
- **lg**: `1rem` (16px)
|
|
178
|
+
- **full**: `9999px` (círculo)
|
|
179
|
+
|
|
180
|
+
### Sombras
|
|
181
|
+
- **sm**: `shadow-sm` - Elevação leve
|
|
182
|
+
- **default**: `shadow-md` - Elevação padrão
|
|
183
|
+
- **lg**: `shadow-lg` - Elevação forte
|
|
184
|
+
- **xl**: `shadow-xl` - Elevação máxima
|
|
185
|
+
|
|
186
|
+
### Transições
|
|
187
|
+
- **Padrão**: `transition-all duration-200 ease-in-out`
|
|
188
|
+
- **Hover**: Aplicar em botões, links, cards clicáveis
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## ♿ Acessibilidade
|
|
193
|
+
|
|
194
|
+
### Contraste
|
|
195
|
+
- Texto em background branco: mínimo AA (4.5:1)
|
|
196
|
+
- Texto grande (18px+): mínimo AA (3:1)
|
|
197
|
+
|
|
198
|
+
### Navegação por Teclado
|
|
199
|
+
- Todos os botões/links acessíveis via Tab
|
|
200
|
+
- Focus visível: `ring-2 ring-primary`
|
|
201
|
+
- Escape fecha modals
|
|
202
|
+
|
|
203
|
+
### ARIA Labels
|
|
204
|
+
- Botões de ícone: `aria-label` obrigatório
|
|
205
|
+
- Inputs: associar com `<Label>` via `htmlFor`
|
|
206
|
+
- Estados: `aria-disabled`, `aria-expanded`, etc.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 📱 Responsividade
|
|
211
|
+
|
|
212
|
+
### Breakpoints (Tailwind)
|
|
213
|
+
- **sm**: 640px
|
|
214
|
+
- **md**: 768px
|
|
215
|
+
- **lg**: 1024px
|
|
216
|
+
- **xl**: 1280px
|
|
217
|
+
- **2xl**: 1536px
|
|
218
|
+
|
|
219
|
+
### Mobile-First
|
|
220
|
+
Sempre começar com mobile e escalar para desktop:
|
|
221
|
+
```tsx
|
|
222
|
+
<div className="text-sm md:text-base lg:text-lg">
|
|
223
|
+
Texto responsivo
|
|
224
|
+
</div>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 🚀 Performance
|
|
230
|
+
|
|
231
|
+
### Imagens
|
|
232
|
+
- Usar `next/image` sempre
|
|
233
|
+
- Definir `width` e `height`
|
|
234
|
+
- `priority` apenas above-the-fold
|
|
235
|
+
- Lazy loading por padrão
|
|
236
|
+
|
|
237
|
+
### Code Splitting
|
|
238
|
+
- Componentes pesados: `dynamic(() => import())`
|
|
239
|
+
- Bibliotecas grandes: carregar sob demanda
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 📦 Bibliotecas Aprovadas
|
|
244
|
+
|
|
245
|
+
- **UI**: shadcn/ui (Radix UI + Tailwind)
|
|
246
|
+
- **Forms**: React Hook Form + Zod
|
|
247
|
+
- **Data Fetching**: TanStack Query
|
|
248
|
+
- **Tabelas**: TanStack Table
|
|
249
|
+
- **Datas**: date-fns
|
|
250
|
+
- **Utils**: clsx / classnames
|
|
251
|
+
- **Ícones**: lucide-react
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
**Última atualização**: 2026-01-20
|
|
256
|
+
**Versão**: 1.0.0
|