Local-first
O detector roda na sua máquina e nada sai dela. O código de envio não existe nessa camada — privacidade por topologia.
Companheiro jurídico para agentes de código · ex Digesto, novum
O Ulpiano mora no seu agente de código. Enquanto o projeto nasce, ele detecta pendências de marca, privacidade, licenças e impostos — registra cada risco no seu repositório e chama um advogado de verdade quando é hora. Sugere. Nunca dá parecer.
O contexto que um advogado levaria uma reunião pra montar já está no seu repositório: o nome no package.json, a coleta de dados no formulário, as licenças nas dependências. Ninguém te faz questionário.
Marca, LGPD, licenças, sinais fiscais e societários — lidos direto do código, em todas as áreas do direito. Roda na sua máquina; nada sai dela.
Cada achado vira um risco em .ulpiano/risks.yaml, versionado com o código. Risco triado nunca volta a incomodar.
Corrigir na hora, aceitar com racional registrado, ou delegar. Tudo que ele redige é rascunho para revisão humana.
O que precisa de advogado vira um ulp: demanda estruturada, briefing pronto, profissional da área certa.
Commit é a unidade de mudança de código. Issue, a de trabalho de engenharia. O ulp é a de trabalho jurídico — e este abaixo é real, o primeiro já emitido.
Produto: Ulpiano, copiloto jurídico para desenvolvedores… Situação do nome: busca web sem homônimos de software; domínio livre; falta a busca formal no INPI. Pedido: (1) busca de anterioridade nas classes 42 e 45; (2) se viável, depósito; (3) recomendação sobre a classe 45…
Você lê exatamente isto antes de qualquer envio.
Trabalho jurídico passa a caber no modelo mental que você já tem: tipo, área, status, thread. Um caso = vários ulps. "Ulpa isso" vira verbo.
A demanda chega escopada, com contexto e da especialidade certa — em vez de um cliente confuso ao telefone. O profissional responde por email, sem instalar nada; a resposta entra na thread, versionada no repositório.
O histórico jurídico do projeto vive em .ulpiano/, junto do código. Due diligence vira "mostra teu .ulpiano/".
A pauta jurídica de um projeto não é só a marca — e boa parte dela só "liga" quando o projeto vira produto. O registro marca cada risco: dói hoje, ou dói depois.
Um núcleo, todas as superfícies — instale onde você já trabalha.
O detector e o registro, no terminal e no CI. Local-first.
$ ulpiano check . --sync
Quatro tools para qualquer agente: checkup, riscos, triagem, ulp.
$ claude mcp add ulpiano …
Plugin com modo ambiente: a cada edição, o hook re-varre em silêncio — e só fala quando há risco novo.
$ /plugin install ulpiano
Via MCP no config.toml. As mesmas quatro tools.
[mcp_servers.ulpiano]
Via MCP no mcp_config.json. Onde houver MCP, há Ulpiano.
"ulpiano": { "command": … }
Transporte dos ulps por email, agenda do advogado, thread de respostas.
$ ulpiano send ulp_…
Não são promessas de política — são propriedades do desenho.
O detector roda na sua máquina e nada sai dela. O código de envio não existe nessa camada — privacidade por topologia.
Todo ulp mostra o payload exato, já limpo de secrets, antes de qualquer envio. O envio é seu, nunca automático.
Risco aceito com racional é silêncio para sempre. Corrigido que reaparece volta a falar — é regressão, não teimosia.
O Ulpiano detecta, sugere e prepara. Quem opina é advogado de verdade — no piloto, um escritório parceiro, a um clique, com o briefing pronto.