CL-2026-04-28-BK-CORE-005 - Project Context Report
Status: (V)
Escopo: projeto
Projetos afetados: cerebro-kernel
Aprovacao humana obrigatoria: nao
Revisor IA: Gemini + OpenCode em triagem read-only; Gemini em segunda passada tecnica
Resumo
Criada a primeira camada de observabilidade do Project Context em producao. O runtime agora gera evento leve de contexto por projeto, e o kernel ganhou um relatorio CLI para medir hit/miss, tamanho e erros antes de expandir o uso do contexto em outros fluxos.
Alteracoes
kernel/router.jspassou a gravar eventoproject_contextnoexecution-observability.jsonlquando uma chamada LLM recebeprojectIdcom o contexto habilitado.callLLMWithAutoFallbackpropagataskIdpara correlacionar o evento de contexto com a chamada LLM.- Criado
kernel/scripts/project-context-report.js. - Adicionado script
npm run context:report. - Criada suite
kernel/tests/unit/project-context-report.test.js. kernel/tests/unit/project-context-runtime.test.jspassou a usar DB temporario por teste, removendo dependencia acidental do banco persistente de producao.
Guardrails
- O log nao registra query textual.
- O log nao registra conteudo dos snippets.
- O relatorio ignora linhas JSONL invalidas sem quebrar.
- O report pode filtrar por projeto e janela temporal.
- Sem API pay-per-use e sem free tier.
Validacao
Comandos executados:
```bash
node --check kernel/router.js
node --check kernel/scripts/project-context-report.js
node --check kernel/tests/unit/project-context-report.test.js
node --check kernel/tests/unit/project-context-runtime.test.js
cd kernel && npm test -- --runInBand tests/unit/project-context-report.test.js tests/unit/project-context-runtime.test.js
cd kernel && npm run context:report
```
Resultado observado:
- sintaxe OK nos arquivos JS tocados/adicionados;
- Jest verde com
23 suitese160 testes; context:reportretornou relatorio vazio antes do deploy do novo evento em producao, esperado para o log historico.
Observacoes
OpenCode demorou na primeira leitura, mas retornou recomendando a opcao de monitoramento. Gemini confirmou a mesma direcao e reforcou privacidade, schema resiliente e nao persistencia de snippets/query. A implementacao ficou restrita a metadados.