← Todos os cases

Projeto pessoal · código aberto

Cast Review

Desenvolvimento de uma plataforma de revisão de PRs que indexa o repositório como grafo no Neo4j e expõe indexação, contexto e análise por um servidor MCP.

Papel
Produto, arquitetura e desenvolvimento
Status
Em desenvolvimento ativo
Stack
  • NestJS
  • TypeScript
  • FastAPI
  • LangGraph
  • Neo4j
  • tree-sitter
  • Redis
  • BullMQ
  • MCP SDK
  • React
  • SSE
PullRequesto diff não mostraquem depende delerepositórioNestJS +fila BullMQtree-sitter:símbolos + relaçõesNeo4jgrafo do códigocontexto comorçamento de tokensPRD+ aprovaçãospec+ aprovaçãorevisorde testesrevisor dearquiteturareportbuildercomentáriosinline na PRcontextoClaude Code,Cursor…servidor MCP5 toolsanáliseíndice + contextotoken opaco → JWT de 2 min · rate limitdo índice ao comentário na PR

Problema

Revisar só o diff deixa passar o impacto fora dele: quem chama a função alterada, quais testes a cobrem, que fronteira de arquitetura foi cruzada.

Dados disponíveis

O próprio repositório: arquivos, símbolos e as relações entre eles. O diff diz o que mudou; o grafo diz o que essa mudança toca.

Decisões de arquitetura

Código como grafo

O tree-sitter extrai símbolos e relações (defines, references, imports, tests). O Neo4j persiste o grafo por repositório e commit, com lock no Redis e reindexação incremental. A indexação roda fora do request, em fila BullMQ.

Contexto com orçamento

Para os arquivos alterados, o serviço de IA monta o contexto relacionado a partir do grafo, dentro de um orçamento de tokens, antes de acionar os revisores.

Humano no loop

O grafo de revisão em LangGraph gera um PRD e uma especificação da mudança, cada um com aprovação humana. Aprovados, os revisores de testes e de arquitetura rodam em paralelo e um report builder consolida os achados.

MCP como fronteira

Servidor MCP separado (Streamable HTTP): o token opaco é trocado por um JWT de ação de dois minutos via introspecção, com rate limit. As tools são um proxy fino para o backend e o serviço de IA.

Implementação

Tools do servidor MCP

  • index_repository — dispara a indexação incremental de um repositório.
  • get_index_status — informa se o repositório está indexado e qual o último commit indexado.
  • get_related_context — devolve o contexto do grafo ligado aos arquivos alterados, com orçamento de tokens.
  • run_pr_analysis — inicia a análise assíncrona de uma PR e devolve o analysisId.
  • get_analysis — consulta o estado de uma análise em andamento.
  • Fora do MCP: chat sobre o repositório com ferramentas de navegação no grafo (search_symbols, read_symbol, neighbors, list_endpoints, cross_repo_links) e publicação dos achados como comentários inline na PR, com progresso via SSE.

Resultado

  • 5tools MCP
  • 2revisores em paralelo

Fluxo completo, do índice ao comentário na PR, disponível pela interface web e por qualquer cliente MCP — Claude Code, Cursor e outros.

Limitações e aprendizados

  • Projeto pessoal em desenvolvimento ativo.
  • Os revisores atuais cobrem testes e arquitetura; outros domínios ainda não existem.
  • O servidor MCP não edita código: expõe indexação, contexto e análise.
Próximo caseGroundtruth — gate de avaliação para RAG →