Pular para o conteúdo

Milestones

Plano sequencial de milestones: v1.0 ate v2.1. Cada milestone depende do anterior estar completo. O cronograma estimado vai de marco de 2026 ate o final de 2026.

Objetivo: Estabilizar producao, corrigir vulnerabilidades do premortem, prevenir degradacao silenciosa.

Pre-requisito: Nenhum (estado atual).

Esforco estimado: 2-3 semanas.

FeaturePrioridadeDescricao
Rate limiter fail-openP0Quando o Redis estiver fora, permitir requests de API keys validas em vez de bloquear todo o trafego
Fechamento de gap de indexacaoP0Indexar em lote os ~19.700 documentos somente-ementa sem embeddings (3.673 -> 20.000+ vetores)
Configuracao de alertasP1Conectar logs do Railway ao Slack para erros criticos e alertas de degradacao
Correcao HTTPSP1Resolver problemas de validacao de certificado no dominio de producao
Merge de PRs pendentesP1Fechar pull requests abertos que bloqueiam trabalho downstream
Politica de privacidade / termosP1Adicionar paginas legais obrigatorias para submissao ao App Directory
Migracao de datetimeP2Migrar campos datetime ingenuos para timezone-aware (datetime -> datetime(timezone.utc))
Atualizacao do READMEP2Atualizar README para refletir o estado atual e instrucoes de setup
Runbook de ausenciaP2Documentar procedimentos operacionais para quando o desenvolvedor principal estiver indisponivel
Ativacao do canary R2P2Ativar rollout canary para armazenamento de artefatos R2 (atualmente em ~90% de implementacao)
  • Rate limiter permite requests quando o Redis esta fora (fail-open para keys validas)
  • Qdrant contem >= 20.000 vetores indexados
  • Alertas no Slack disparando para erros criticos
  • Certificado HTTPS valido no dominio de producao
  • Zero DeprecationWarning de uso de datetime ingenuo

Objetivo: Resiliencia a falhas parciais de infraestrutura e melhorias mensuraveis na qualidade de busca.

Pre-requisito: v1.0 completa.

Esforco estimado: 2-3 semanas.

FeaturePrioridadeDescricao
Circuit breakerP0Parar de chamar Neo4j apos falhas/timeouts repetidos (>5s), permitir recuperacao sem bloquear requests
Configuracao de connection poolP1Ajustar pools de conexao de PostgreSQL, Neo4j e Redis para padroes de carga em producao
Ingestao cron via ARQP1Jobs agendados em background para verificar novas decisoes do STJ e ingerir automaticamente
Fallback extraction para coreP1Mover logica de extracao fallback de stores/ para core/ (camada correta)
Externalizacao de mapas heuristicosP2Mover heuristicas de classificacao hardcoded para arquivos de configuracao
Unificacao de stopwordsP2Fonte unica de stopwords compartilhada entre BM25 e expansao de query
Metricas de fallbackP2Contadores Prometheus para frequencia de uso dos caminhos de fallback
Testes unitarios de storeP2Cobertura de testes unitarios para a camada stores/ (atualmente subtestada)
  • Circuit breaker ativo: travamento do Neo4j > 5s abre o circuito, requests prosseguem sem features de grafo
  • Pools de conexao configurados com limites e timeouts explicitos
  • ARQ verifica novas decisoes ao menos semanalmente
  • Logica de extracao fallback reside em core/, nao em stores/

Objetivo: Transformar o Valter de backend de busca em motor de raciocinio. Esta e a feature principal.

Pre-requisito: v1.1 completa (circuit breaker e pools de conexao necessarios para queries pesadas multi-store).

Esforco estimado: 2-3 semanas.

FeaturePrioridadeDescricao
Orquestrador core/reasoning_chain.pyP0Orquestrador server-side que compoe argumentos juridicos verificados a partir de caminhos no knowledge graph
Endpoint POST /v1/reasoning-chainP0Endpoint REST expondo a reasoning chain para frontends
Tool MCP compose_legal_argumentP0Tool MCP permitindo que LLMs solicitem argumentos juridicos compostos com proveniencia
Rastreamento de provenienciaP0Cada etapa da reasoning chain vincula-se a decisoes especificas, com contagem de citacoes e posicao no grafo
Integracao de inteligencia temporalP1Reasoning chain pondera decisoes recentes com mais peso, sinaliza precedentes superados
Spike de TRF (50 decisoes)P1Ingerir 50 decisoes de TRF para testar viabilidade multi-tribunal antes de comprometer com v2.0

O orquestrador da reasoning chain segue este fluxo:

  1. Expansao de query — analisar a questao juridica, identificar criterios e dispositivos legais relevantes
  2. Recuperacao multi-estrategia — busca hibrida (BM25 + semantica + KG boost) para decisoes relevantes
  3. Travessia do grafo — seguir caminhos de citacao, criterios compartilhados e cadeias de precedentes no Neo4j
  4. Composicao de argumento — montar um argumento juridico multi-etapas a partir dos caminhos mais fortes do grafo
  5. Verificacao — toda decisao citada e verificada contra dados reais do STJ (anti-alucinacao)
  6. Anexacao de proveniencia — cada etapa inclui a decisao-fonte, contagem de citacoes, recencia e score de conectividade no grafo
  • Reasoning chain retorna >= 3 etapas verificadas com proveniencia completa
  • Tool MCP funcional e testada com Claude e ChatGPT
  • Latencia p95 < 5s para requests de reasoning chain
  • Spike de TRF concluido com breakpoints documentados e avaliacao de viabilidade

Objetivo: Expandir alem do STJ para outros tribunais brasileiros.

Pre-requisito: v1.2 completa (spike de TRF executado, breakpoints multi-tribunal documentados).

Esforco estimado: 2-3 meses (escopo depende dos resultados do spike da v1.2).

FeaturePrioridadeDescricao
Arquitetura multi-tribunalP0Abstrair logica especifica de tribunal atras de interfaces, suportar multiplos tribunais no mesmo deploy
Suporte a TRFP0Tribunais Regionais Federais — comecando pelo tribunal identificado no spike da v1.2
Suporte a TSTP1Tribunal Superior do Trabalho
Suporte a STFP1Supremo Tribunal Federal (materias constitucionais)
Integracao com LeciP1Integracao com Leci (produto-irmao) para analise juridica enriquecida
Integracao com JucaP1Integracao com Juca (frontend) para experiencia de usuario fluida
Pipeline de ingestao automaticaP1Ingestao continua de multiplos portais de tribunais sem intervencao manual
  • Ao menos 1 tribunal adicional com dados pesquisaveis e verificados
  • Reasoning chain funciona entre tribunais (ex: decisao do STJ citando precedente de TRF)
  • Pipeline de ingestao rodando para >= 2 tribunais

Objetivo: Plataforma multi-consumidor com garantias de SLA e presenca publica no ChatGPT App Directory.

Pre-requisito: v2.0 completa (multi-tribunal funcionando, estavel o suficiente para usuarios externos).

Esforco estimado: Depende da demanda e do cronograma de revisao do App Directory.

FeaturePrioridadeDescricao
Submissao ao ChatGPT App DirectoryP1Submeter o Valter como tool MCP publica no ChatGPT App Directory
Hardening do MCPP0Rate limiting por consumidor, validacao de requests, prevencao de abuso
Multi-tenancyP1Suportar multiplas organizacoes com dados e billing isolados
Garantias de SLAP1Metas documentadas de uptime, latencia e disponibilidade
Teste de cargaP0Validar que o sistema suporta a carga concorrente alvo
Cobertura de testes de store > 80%P2Cobertura abrangente de testes para todas as implementacoes de store
  • Ao menos 1 usuario externo (alem do desenvolvedor) usando o sistema ativamente
  • Submissao ao App Directory concluida (pendente revisao)
  • Testes de carga validam metas de SLA sob carga concorrente

2026-03 v1.0 — Producao Estavel (~2-3 semanas)
|
2026-03/04 v1.1 — Resiliencia + Qualidade de Busca (~2-3 semanas)
|
2026-04 v1.2 — Legal Reasoning Chain (~2-3 semanas) *** PRINCIPAL ***
|
2026-05-07 v2.0 — Plataforma Multi-Tribunal (~2-3 meses, escopo do spike)
|
2026-H2 v2.1 — Escala + Presenca Publica (depende da demanda)