refatoração dos agents

This commit is contained in:
Luiz Silva 2026-08-10 16:08:03 -03:00
parent 97acfb07df
commit 1177e31e56
104 changed files with 1068 additions and 3995 deletions

View file

@ -1,16 +1,16 @@
---
type: workflow
name: aprimorar-IA
description: Consolidar aprendizados da conversa atual e evoluir continuamente as regras, skills e fluxos da aplicação
name: aprimora-ia
description: Otimizar o ecossistema da IA conforme identificado durante a conversa e registrar eventos na memória
scope: global
updatedAt: "2026-06-01"
updatedAt: "2026-08-10"
---
# Workflow: Aprimorar Conhecimento da Aplicação
# Workflow: /aprimora-ia (Aprimoramento Contínuo e Registro de Memória)
## 🎯 Objetivo
Garantir que **toda decisão tomada** seja imediatamente incorporada ao conhecimento estruturado da aplicação, mantendo o sistema de rules, workflows e skills **coerente, atualizado, não redundante e sem contradições**.
Analisar os aprendizados, alterações e decisões tomadas ao longo da conversa, aplicando as devidas otimizações diretamente nos artefatos do ecossistema (Rules, Workflows, Skills e Personas).
Este workflow é **obrigatório** e deve ser executado sempre que houver qualquer definição nova.
@ -25,7 +25,8 @@ O conhecimento do agente está organizado em **três tipos de artefatos**, cada
| **Rules** | `.agent/base/global/rules/` | `.agent/local/rules/` | Restrições e convenções que o agente **deve respeitar sempre** |
| **Workflows** | `.agent/base/global/workflows/` | `.agent/local/workflows/` | Processos sequenciais com passos numerados para tarefas bem definidas |
| **Skills** | `.agent/base/global/skills/` | `.agent/local/skills/` | Guias operacionais completos e reutilizáveis para tarefas complexas recorrentes |
| **Memória** | — | `.agent/memoria/` | Registros históricos, contexto do projeto, fatos e decisões importantes |
| **Memória do Projeto** | — | `./.memoria-ia/` | Decisões de negócio, contexto do produto, especificações e ADRs (raiz do pai, versionado pelo pai) |
| **Evoluções da IA** | `.agent/memory/` | — | Relatórios de sessões `/aprimora-ia`, otimizações dos agentes e melhorias da IA (versionado pelo submódulo) |
### Diferenças entre os artefatos
@ -171,87 +172,12 @@ Instruções com código, regras e padrões.
- A skill **pode consolidar** conhecimento de múltiplas rules e workflows em um guia unificado
- Templates de código devem estar na própria skill (não em arquivos separados, a menos que sejam muito grandes)
### Skills globais (herdadas de `.agent/base/`):
| Skill | Escopo |
|-------|--------|
| `mapear-codigo-fonte` | Mapear e navegar a estrutura de qualquer monorepo TS |
| `diagnosticar-erros-build` | Diagnosticar erros de build em cascata entre pacotes |
| `documentar-decisao-tecnica` | Registrar decisões técnicas como ADRs |
### Skills de projeto (criadas localmente em cada monorepo):
Cada projeto pode criar skills adicionais específicas em `.agent/local/skills/<nome>/SKILL`.
Essas skills focam nos padrões e domínios exclusivos daquele projeto.
Exemplos de skills de projeto:
| Skill | Escopo |
|-------|--------|
| `criar-funcao-api` | Função de API end-to-end (comuns → back → front) |
| `criar-componente-vue3` | Componente Vue 3 com padrões obrigatórios do projeto |
| `consultar-banco-knex` | Queries Knex com padrões de leitura/escrita/JSONB |
| `implementar-permissoes` | Controle de acesso específico do domínio |
- Skills globais residem em `global/skills/`
- Skills específicas do projeto residem em `.agent/local/skills/<nome>/SKILL`
---
## 5️⃣ Atualização da Memória (Obrigatória quando aplicável)
### 5A — Memória Local (arquivos)
Sempre que decisões críticas sobre a arquitetura da aplicação ou o contexto do domínio precisarem ser arquivadas temporária ou permanentemente de maneira descritiva (e não diretamente injetável em código ou regra de lint):
* Registre o novo documento no formato adequado mantendo a pasta limpa em `.agent/memoria/`.
* Exemplo: Manter diário de pendências (`diario-pendencias-modulo-x`) ou ADR (`adr-001-migracao-nuxt-4`).
* Atenção! Tudo que puder ser abstraído para formato técnico estrito deve virar **Skill** ou **Rule**. Use a Memória local apenas como extensão de base factual.
### 5B — Memória Corporativa (API Azteca — OBRIGATÓRIO)
**Todo conhecimento gerado durante a sessão DEVE ser registrado na Memória Corporativa** (`https://memoria-ia.idz.one`) seguindo a rule `global/rules/coleta-automatica-memorias`.
#### Gatilhos automáticos de registro:
| Evento na sessão | Categoria | Tipo | Registrar? |
|-------------------|-----------|------|:---:|
| Bug resolvido não trivial | `solucao-problemas` | `solucao-problemas` | 🔴 Obrigatório |
| Decisão arquitetural tomada | `decisoes` | `adr` | 🔴 Obrigatório |
| Regra de negócio descoberta/alterada | `regras-negocio` | `nota` | 🔴 Obrigatório |
| Novo módulo ou funcionalidade | `modulos` | `referencia` | 🔴 Obrigatório |
| Padrão técnico definido/alterado | `tecnologias` | `referencia` | 🔴 Obrigatório |
| Migração de banco executada | `tecnologias` | `referencia` | 🟡 Recomendado |
| Componente/padrão de UI definido | `tecnologias` | `referencia` | 🟡 Recomendado |
| Refatoração significativa | `decisoes` | `adr` | 🟡 Recomendado |
#### Protocolo:
1. **Buscar antes de criar** — evitar duplicatas (`POST /api/busca`)
2. **Criar com qualidade** — `titulo` pesquisável, `resumo` obrigatório, mínimo 3 `tags`, `criado_por` com @
3. **Vincular** — relacionar com memórias existentes via `/api/vinculos/criar`
4. **Contextualizar** — preencher `contexto` com nome do projeto/módulo
#### Exemplo de registro automático:
```bash
curl -s -X POST "https://memoria-ia.idz.one/api/memorias/criar" \
-H 'Content-Type: application/json' \
-H "CHAVE: banana" \
-d '{
"titulo": "MODULO — Descrição clara do que foi feito/decidido",
"conteudo": "### Contexto\n...\n### Decisão\n...\n### Impacto\n...",
"resumo": "Síntese curta e pesquisável (10-500 chars)",
"categoria": "CATEGORIA",
"tipo": "TIPO",
"tags": ["modulo", "tag2", "tag3"],
"contexto": "NOME-DO-PROJETO",
"criado_por": "@HANDLE_DO_AGENTE"
}'
```
> ⚠️ **Anti-padrão:** Encerrar sessão do workflow `aprimorar-IA` sem ter registrado na Memória Corporativa é considerado **trabalho incompleto**.
---
## 6️⃣ Revisão de Impacto (Dirigida por Grafo)
## 5️⃣ Revisão de Impacto (Dirigida por Grafo)
Quando um artefato é alterado, a revisão deve ser **dirigida**, não exaustiva.
@ -297,9 +223,6 @@ Só é permitido encerrar se TODOS forem verdadeiros:
* [ ] Referências cruzadas estão válidas
* [ ] Estrutura está organizada por assunto
* [ ] Skills referenciam (não duplicam) rules
* [ ] **Conhecimento da sessão foi registrado na Memória Corporativa** (API Azteca)
* [ ] **Memórias criadas possuem `resumo`, `tags` (≥3) e `criado_por` com @**
* [ ] **Memórias relacionadas foram vinculadas** via `/api/vinculos/criar`
---

View file

@ -101,5 +101,5 @@ Zero erros = concluído.
Se o workflow revelou novos padrões de negócio relevantes ao projeto:
- Criar ou atualizar ADR em `.agent/memoria/` via skill `documentar-decisao-tecnica`
- Criar ou atualizar ADR via skill `documentar-decisao-tecnica`
- Verificar se alguma rule precisa ser atualizada

View file

@ -236,22 +236,11 @@ Após implementar:
---
## Anti-padrões a evitar
| ❌ Anti-padrão | ✅ Alternativa |
|---|---|
| Botão sem label de texto | Botão com ícone + texto, ou `aria-label` descritivo |
| Cor vermelha para ação primária | Vermelho apenas para destrutivas; primária usa `--cor-eli-primaria` |
| Modal com scroll interno extenso | Dividir em etapas ou usar drawer lateral |
| Tabela com 15+ colunas visíveis | Usar o modal de colunas para esconder as menos usadas |
| Placeholder como único label | Label fixo acima do campo + placeholder como exemplo |
| Ações alinhadas à esquerda em linha de tabela | Ações à direita, próximas ao fim da linha visual |
| Toast/snackbar sem ação de fechar | Sempre incluir botão de fechar ou auto-dismiss com tempo suficiente (5s+) |
| Estilos inline em `<template>` | Migrar para `<style scoped>` com classe BEM |
| Cor hex hardcoded no componente | Usar `var(--cor-eli-primaria)` e demais tokens com fallback |
| Texto escuro (`#333`) sobre `--cor-eli-primaria` | Usar branco (`#FFFFFF`) para garantir contraste WCAG AA |
| Amarelo/âmbar para sucesso | Âmbar é reservado para **aviso**; sucesso usa `--cor-eli-sucesso` (`#2E7D32`) |
| Misturar stops da paleta fora dos tokens | Usar apenas os tokens definidos; nunca interpolar valores avulsos |
| Usar `--cor-eli-media` ou `--cor-eli-acao` como fundo de cabeçalho | Usar `--cor-eli-primaria-suave` (`#BFC99C`) — verde mudo sem efeito limão |
| `var(--token)` sem fallback em componente de biblioteca | Sempre declarar `var(--token, #valor)` — o projeto destino pode não ter o token atualizado |
| Zebra de tabela sem fundo branco explícito nas linhas normais | Declarar `.eli-tabela__tr .eli-tabela__td { background: var(--cor-eli-superficie, #fff) }` antes da regra zebra |
| Modal com scroll extenso | Dividir em etapas ou usar drawer lateral |
| Tabela com 15+ colunas visíveis | Usar modal de colunas para ocultar secundárias |
| Estilos inline em template | Usar `<style scoped>` com tokens CSS e fallback |
| Cor hex hardcoded | Usar `var(--cor-eli-primaria, #688C00)` com fallback |