7.1 KiB
Executable File
🧠 Política de Memórias Core
Este documento define a política de uso das memórias core da IA coder no projeto SysCMS.
📋 Objetivo
As memórias core são atalhos rápidos para informações que a IA precisa acessar frequentemente, sem precisar realizar buscas demoras na codebase. Elas NÃO DEVEM substituir a documentação formal.
⚠️ Regra Fundamental
Fonte da Verdade
OS ARQUIVOS DE REGRAS SÃO A FONTE DA VERDADE.
Em caso de conflito entre uma memória core e um arquivo de regras:
- ❌ Nunca confie na memória core
- ✅ Sempre consulte o arquivo de regras correspondente
Prioridade de Consulta
- Primeiro: Consulte RULES.md, CONTEXT.md, DECISIONS.md
- Segundo: Consulte arquivos específicos em /rules/
- Terceiro: Use memórias core como atalhos para informações estáticas
📊 O que Pode Estar nas Memórias Core
✅ Permitido (Informações Estáticas)
| Tipo | Exemplo | Justificativa |
|---|---|---|
| Credenciais | Banco de dados (user=root, pass=root) | Informação que não muda com frequência e usada em muitas operações |
| URLs de API | Endpoints de API REST | Atalho rápido para chamadas de API frequentes |
| Comandos CLI | php syscli migrate |
Padrões de comandos usados frequentemente |
| Paths Fixos | storage/uploads/{modulo} |
Caminhos que não mudam no projeto |
| Configs Estáticas | Timeout de sessão, limites de upload | Configurações que são constantes |
❌ Proibido (Informações Dinâmicas ou de Regras)
| Tipo | Exemplo | Motivo |
|---|---|---|
| Regras de desenvolvimento | "Use DataTables para tabelas" | Duplicação de RULES.md |
| Padrões de código | "Classes em PascalCase" | Duplicação de 05_PADROES_CODIGO.md |
| Estrutura de módulos | "module.json deve ter X campos" | Duplicação de 03_MODULOS.md |
| Frontend patterns | "Usar Bootstrap Icons" | Duplicação de 04_TECNOLOGIAS.md |
| Compatibilidade ERP Legado | "Precedência do legado" | Duplicação de CONTEXT.md |
| Padrões de uploads | "Usar storage/uploads" | Duplicação de 51_UPLOADS_STORAGE.md |
| Padrões de layouts | "Usar layouts/dashboard.twig" | Duplicação de 50_LAYOUTS_CORRETOS.md |
| Padrões de UX | "Evitar confirm() nativo" | Duplicação de RULES.md |
🔍 Quando Criar uma Nova Memória Core
Critérios de Aceitação
Crie uma nova memória core APENAS se atender a TODOS estes critérios:
- ✅ A informação é estática (não muda com frequência)
- ✅ A informação é usada frequentemente (3+ vezes em tarefas diferentes)
- ✅ A informação não está documentada formalmente em /rules/
- ✅ A informação economiza tempo significativo (evita 3+ tool calls)
Exemplos de Memórias Apropriadas
Credenciais de Banco de Dados:
Banco de Dados (dev): user=root, pass=root, db=syscms, host=dockersyscms.
Execução direta via `docker exec dockersyscms mysql -u root -proot -D syscms -e 'QUERY'`
✅ Aceito: Informação estática, usada frequentemente, não está em /rules/
URLs de API de GlobalLists:
API Routes: `/api/globallists/states/{countryId}` e `/api/globallists/cities/{stateId}`.
Response JSON: `[{ "id": 1, "name": "..." }]`.
✅ Aceito: Informação estática, usada frequentemente, economiza tool calls
🚫 Quando NÃO Criar Memórias Core
Exemplos de Memórias Inapropriadas
Regras de DataTables:
DataTables Obrigatório: Todas as tabelas de listagem DEVEM usar DataTables.
❌ Rejeitado: Duplicação de RULES.md - usar arquivos de regras
Padrão de Uploads:
Uploads no SysCMS: Arquivos em 'storage/uploads'. BD armazena caminho relativo.
❌ Rejeitado: Duplicação de 51_UPLOADS_STORAGE.md - usar arquivos de regras
Layouts Twig:
Layouts Twig: O layout principal é `layouts/dashboard.twig`. NUNCA usar `layout.twig`.
❌ Rejeitado: Duplicação de 50_LAYOUTS_CORRETOS.md - usar arquivos de regras
🧹 Manutenção de Memórias Core
Limpeza Automática
Remova imediatamente memórias core que:
- ❌ Duplicam informações dos arquivos de regras
- ❌ Se tornaram obsoletas
- ❌ Não são mais usadas (não acessadas em 10+ tarefas)
- ❌ Contêm informações dinâmicas que mudam com frequência
Validação Periódica
A cada 20 tarefas, a IA deve:
- Listar todas as memórias core
- Verificar se ainda há redundância com /rules/
- Remover memórias desnecessárias
- Documentar quais memórias foram removidas no contexto
📚 Documentação Formal vs Memórias Core
Quando Usar Cada Fonte
| Situação | Fonte | Motivo |
|---|---|---|
| Preciso de uma regra de desenvolvimento | RULES.md, /rules/ | Fonte da verdade, detalhada |
| Preciso entender a arquitetura | CONTEXT.md, 02_ARQUITETURA.md | Documentação oficial |
| Preciso de um padrão de código | 05_PADROES_CODIGO.md | Documentação oficial |
| Preciso de credenciais do BD | Memória Core | Atalho rápido para informação estática |
| Preciso de URLs de API | Memória Core | Atalho rápido para endpoints estáticos |
| Preciso entender módulos | 03_MODULOS.md | Documentação oficial |
| Preciso implementar um padrão específico | Arquivo específico em /rules/ | Documentação detalhada |
🎯 Checklist para IA Coder
Antes de Consultar Memória Core
- A informação é estática?
- A informação não está em RULES.md?
- A informação não está em /rules/?
- A informação é usada frequentemente?
Após Criar Memória Core
- Verifiquei que não duplica /rules/?
- A informação é realmente estática?
- A informação será usada frequentemente?
Antes de Seguir Memória Core
- Verifiquei se há conflito com RULES.md?
- Verifiquei se há conflito com /rules/?
- Consultei a documentação oficial?
📖 Exemplos Práticos
Caso 1: Implementar Tabela de Listagem
❌ INCORRETO:
Memória: "Use DataTables para tabelas de listagem"
→ Seguir memória sem consultar RULES.md
✅ CORRETO:
Consultar RULES.md → Encontrar seção sobre DataTables
→ Implementar seguindo documentação oficial
Caso 2: Conectar ao Banco de Dados
✅ CORRETO:
Memória: "Banco de Dados (dev): user=root, pass=root"
→ Usar credenciais da memória (informação estática)
Caso 3: Implementar Upload de Arquivo
❌ INCORRETO:
Memória: "Usar storage/uploads para uploads"
→ Seguir memória sem consultar 51_UPLOADS_STORAGE.md
✅ CORRETO:
Consultar 51_UPLOADS_STORAGE.md → Implementar seguindo documentação oficial
→ Usar memória apenas para paths específicos se existirem
📌 Resumo
- Arquivos de regras são a fonte da verdade
- Memórias core são apenas atalhos rápidos
- Nunca duplicar informações de /rules/ nas memórias
- Em conflito: arquivos de regras sempre prevalecem
- Memórias devem ser usadas para informações estáticas frequentes
- Limpar memórias obsoletas ou redundantes regularmente
Última Atualização: 2025-01-19 Versão: 1.0.0