Cerebro Studio · Backlog · Changelog
Cerebro • /root/cerebro/docs/changelog/2026/CL-2026-04-28-BK-CORE-004-project-context-layer.md • 2026-04-28T15:04:10.859Z

CL-2026-04-28-BK-CORE-004 - Project Context Layer sobre MemoryFtsStore

Status: (V)

Escopo: projeto

Projetos afetados: cerebro-kernel

Aprovacao humana obrigatoria: nao

Revisor IA: auto-revisao Codex por indisponibilidade temporaria dos revisores externos

Resumo

O kernel do Cérebro ganhou a camada ProjectContextLayer, construída sobre o MemoryFtsStore do BK-CORE-003, para ingerir e recuperar contexto por project_id antes do wiring real no Debate Runtime.

Alteracoes

  • Criado kernel/project_context.js.
  • Criada suite kernel/tests/unit/project-context.test.js.
  • Atualizados backlog, changelog, lock e roadmap do Debate Runtime.

Comportamento entregue

  • Ingestao idempotente de arquivos canonicos por projeto: PRD.md, TDD.md, project.yml e config.json.
  • IDs deterministicos no formato project_context:<projectId>:<fileName>.
  • Busca por contexto usando MemoryFtsStore.search com isolamento obrigatorio por projectId.
  • Filtro adicional por sources, aplicado antes do corte final por limit.
  • Formatacao de snippets para prompt com orcamento total de caracteres incluindo header.
  • enrichSystemPrompt anexa contexto apenas quando ha snippets reais.
  • Hardening contra leitura fora de projectsDir em ingestProject, incluindo symlink que aponta para fora do projeto.
  • Entrega local: sem API pay-per-use, free tier ou provider externo.

Validacao

Comandos executados:

```bash

node --check kernel/project_context.js

node --check kernel/tests/unit/project-context.test.js

cd kernel && npm test -- --runInBand tests/unit/project-context.test.js

```

Resultado observado:

  • sintaxe OK nos dois arquivos JS;
  • Jest do kernel verde com 21 suites e 147 testes.

Fora de escopo

O wiring real em squad_runtime.js/router.js, o toggle STUDIO_PROJECT_CONTEXT_ENABLED e a telemetria de contexto ficam para BK-CORE-004.1.

Observacoes operacionais

Claude adiantou a maior parte da implementacao. Codex retomou a rodada, auditou o diff, adicionou hardening de caminho/limite/source filter, criou o changelog detalhado ausente e revalidou a suite. A tentativa de revisao final pelo Claude CLI falhou por limite de conta, entao o fechamento usa auto-revisao Codex + validacao local completa.