Pular para o conteúdo

Milestones

Detalhamento de cada milestone — o que esta incluido, como medir sucesso e o que precisa vir antes.

Objetivo: Eliminar a divida tecnica critica que impede o pipeline de rodar de forma confiavel em qualquer maquina.

Features incluidas:

#FeaturePrioridadeStatus
F22Padronizar todos os paths via os.environ.get()P0Planejado
F23Extrair pipeline/utils.py (parse_frontmatter, slugify, etc.)P1Planejado
F24Pinar versoes de dependencias no requirements.txtP1Planejado
F20Completar padronizacao de env vars (2 de 5 scripts concluidos)P1Em andamento

Criterios de aceitacao:

  • python3 pipeline/process_books.py --dry-run roda sem erro em uma maquina limpa (com env vars configuradas)
  • Nenhum path absoluto hardcoded em qualquer script
  • parse_frontmatter() e slugify() existem em um modulo compartilhado unico (utils.py)
  • pip install -r pipeline/requirements.txt instala versoes deterministicas

Estimativa: 1 sessao de trabalho


Objetivo: Validar a qualidade dos metadados antes de construir a camada de inovacao por cima. Este milestone foi proposto apos a analise PREMORTEM identificar metadados nao validados (PF01) como risco existencial.

Acoes incluidas:

#AcaoRisco mitigadoEsforco
M06Validar 200 chunks aleatorios — verificar instituto, tipo_conteudo, ramo contra conteudo realPF01, RT112-3 horas
M07Criar eval set: 30+ consultas com resultados esperados, medir recall@5 e nDCGRE042 horas
M10Validacao de schema no enriquecimento — validar campos do output do LLM contra conjuntos de valores conhecidosRT11, PF011 sessao

Quality gate:

Justificativa: Construir um Motor de Sintese (v0.3.5) ou Ontologia (v0.6) sobre metadados com 60% de precisao produz output sofisticado na aparencia mas nao confiavel. Em tecnologia juridica, output nao confiavel e pior que nenhum output.

Estimativa: 1 sessao de trabalho


Objetivo: Testes, linting, MOCs completos, documentacao — o minimo para que o projeto seja contribuivel por alguem que nao o criador.

Features incluidas:

#FeaturePrioridadeStatus
F25Criar MOCs ausentes (Tributario, Constitucional, Compliance, Sucessoes)P1Planejado
F26Testes para rechunk_v3.py (pytest + fixtures)P1Planejado
F27Testes para funcoes utilitariasP2Planejado
F28README completoP2Planejado
F31Makefile (make pipeline, make test, make lint)P2Planejado
F32Linting com ruffP2Planejado
F42Versionar e commitar enrich_prompt.mdP1Planejado
F19Completar MOC_CONSUMIDORP1Em andamento

Criterios de aceitacao:

  • 8/8 MOCs existem como arquivos (mesmo que alguns sejam placeholders estruturais)
  • make test passa com pelo menos 1 teste para rechunk_v3.py
  • make lint passa sem erros
  • README tem secoes: Setup, Uso, Arquitetura, Corpus, Variaveis de Ambiente
  • enrich_prompt.md esta presente no repositorio e versionado

Pre-requisitos: v0.2 concluido Estimativa: 2-3 sessoes de trabalho


Objetivo: Transformar o Douto de um “motor de busca de livros” em um “motor de raciocinio doutrinario” que sintetiza posicoes de multiplos autores sobre um unico conceito juridico.

Feature planejada — O Motor de Sintese Doutrinaria esta proposto mas ainda nao implementado ou aprovado.

Features propostas:

#FeatureDescricao
F43Motor de SinteseDado um instituto juridico, coletar todos os chunks e sintetizar um parecer multi-autor
F44Prompt de sinteseTemplate de prompt versionado para geracao de Pareceres Doutrinarios
F45Template de Parecer DoutrinarioFormato de output estruturado: consenso, divergencia, evolucao, implicacoes praticas

Condicional: So avanca se o quality gate do v0.2.5 for aprovado (precisao de metadados >= 85%).

Pre-requisitos: v0.3 concluido (testes existem), quality gate do v0.2.5 aprovado Estimativa: 2-3 sessoes de trabalho


Objetivo: O Douto se conecta ao ecossistema — Valter pode consultar doutrina programaticamente.

Features incluidas:

#FeaturePrioridade
F29Protocolo de integracao Douto -> ValterP1
F30Servidor MCP para doutrinaP1

Criterios de aceitacao:

  • Valter consegue consultar doutrina via protocolo definido (MCP ou REST)
  • Pelo menos 3 tools MCP funcionais: search_doutrina, get_chunk, list_areas
  • Busca doutrinaria acessivel via Claude Desktop/Code

Pre-requisitos: v0.2 concluido, Decisoes D01 e D02 resolvidas Decisoes bloqueantes:

DecisaoPerguntaOpcoes
D01Protocolo de integracaoMCP stdio / MCP HTTP/SSE / REST / JSON files
D02Douto como servico independente ou modulo do ValterRepo separado / valter/stores/doutrina/ / Proxy via Valter

Estimativa: 3-5 sessoes de trabalho


Objetivo: Notas atomicas, avaliacao de qualidade, automacao de ingestao e CI/CD.

Features incluidas:

#FeaturePrioridade
F36Notas atomicas automaticas (1 nota por instituto juridico)P2
F40Eval set de qualidade de embeddings (30+ consultas)P2
F41CLI unificado de ingestao (douto ingest livro.pdf)P3
F39CI/CD: GitHub Actions com ruff + pytestP3
F21Completar knowledge nodesP2 (em andamento)

Criterios de aceitacao:

  • nodes/ contem notas atomicas geradas a partir de chunks enriquecidos
  • Eval set com pelo menos 20 consultas e resultados esperados existe
  • make ingest livro.pdf roda o pipeline completo
  • GitHub Actions roda lint + test em PRs

Pre-requisitos: v0.3 concluido (testes existem) Decisoes pendentes: D03 (notas atomicas: automaticas vs. curadas), D04 (tracking de issues) Estimativa: 3-4 sessoes de trabalho


Objetivo: Construir um grafo de conceitos que mapeia relacoes entre institutos juridicos, criando uma ontologia estruturada do direito brasileiro.

Feature planejada — A Ontologia Juridica e uma inovacao proposta que depende de metadados validados e do motor de sintese.

Features propostas:

#FeatureDescricao
F46Extracao de relacoes entre institutosMapear como institutos se relacionam (pre-requisito, excecao, subtipo, etc.)
F47Estrutura do grafo de ontologiaModelo de dados para o grafo de conceitos
F48API de navegacao da ontologiaConsultar o grafo (ex.: “quais sao os subtipos de responsabilidade civil?”)

Pre-requisitos: v0.3.5 concluido (motor de sintese), metadados validados Estimativa: 5-8 sessoes de trabalho


Objetivo: Douto totalmente integrado ao sens.legal — doutrina como fonte de primeira classe ao lado de jurisprudencia e legislacao.

Features incluidas:

#FeaturePrioridade
F33Doutrina no knowledge graph Neo4j (Valter)P2
F34Cross-reference: doutrina <-> jurisprudencia (STJ)P2
F35Cross-reference: doutrina <-> legislacao (Leci)P3
F37Suporte ao Progressive Briefing (4 fases do Juca)P2
F38Containerizacao do pipeline com DockerP3

Criterios de aceitacao:

  • Nos doutrinarios no Neo4j com relacionamentos CITA_DOUTRINA e FUNDAMENTA
  • Briefing do Juca inclui fontes doutrinarias automaticamente
  • Pipeline executavel em container Docker

Pre-requisitos: v0.4 concluido (MCP funcional) Decisoes pendentes: D05 (schema Neo4j) Estimativa: Multiplas sessoes, depende da evolucao do Valter e Juca


gantt
title Douto -- Roadmap
dateFormat YYYY-MM
axisFormat %b %Y
section Fundacao
v0.2 Pipeline Estavel :a1, 2026-03, 1M
v0.2.5 Validacao de Dados :a15, after a1, 0.5M
v0.3 Qualidade & Cobertura :a2, after a15, 2M
section Inovacao
v0.3.5 Sintese Doutrinaria :a25, after a2, 1M
section Integracao
v0.4 Integracao sens.legal :a3, after a25, 2M
v0.5 Knowledge Graph :a4, after a3, 2M
section Plataforma
v0.6 Ontologia Juridica :a55, after a4, 2M
v1.0 Plataforma Integrada :a5, after a55, 3M

Comparacao de Milestones: Original vs. Pos-PREMORTEM

Seção intitulada “Comparacao de Milestones: Original vs. Pos-PREMORTEM”

A analise PREMORTEM recomendou inserir checkpoints de validacao antes de construir sobre fundacoes nao verificadas:

ORIGINAL: POS-PREMORTEM (atual):
v0.2 Pipeline Estavel v0.2 Pipeline Estavel
| |
v v
v0.3 Qualidade v0.2.5 Validacao de Dados <-- NOVO
| | Quality gate: >= 85%
v v
v0.4 Integracao v0.3 Qualidade (testes, MOCs, docs)
| |
v v
v0.5 Knowledge Graph v0.3.5 Sintese Doutrinaria <-- NOVO
| |
v v
v1.0 Plataforma v0.4+ (continua como antes)

Impacto: Adiciona ~1 sessao de trabalho (v0.2.5) mas evita construir features de inovacao sobre dados nao confiaveis. Se o quality gate falhar (precisao < 85%), o re-enriquecimento acontece antes do v0.3, nao depois.