23 Commits

Author SHA1 Message Date
colkito
4de819e288 feat: add secure env generation script and make target (#33) 2026-03-02 22:26:49 -03:00
Bruno César
add44821e8 sync: upstream convergence 2026-03-02
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
2026-03-02 03:51:26 -03:00
Bruno César
9bad9beb28 feat: add bootstrap-all orchestration and public trust hardening (#25)
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
2026-03-01 21:17:32 -03:00
bruno cesar
0800806fe9 ci: improve feedback speed with concurrency and shared quality scripts 2026-03-01 19:25:30 -03:00
Bruno César
262defc6e2 feat: add claude PR governor with deterministic merge gate (#9)
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
2026-03-01 18:08:04 -03:00
bruno cesar
35275d8b2b feat: port 8 public-safe patterns and release system 2026-03-01 17:38:03 -03:00
bruno cesar
6c088a1f2e refactor: rename icarus namespace to bracc and clean public identity 2026-03-01 13:52:40 -03:00
bruno cesar
ea3ff6da8d chore(snapshot): include full scripts scope in public export 2026-03-01 02:09:27 -03:00
bruno cesar
91f211394a refactor(public): ship full public edition with patterns disabled 2026-03-01 02:05:05 -03:00
bruno cesar
685f5ccf5e open-core: split intelligence layer and harden public snapshot boundary 2026-03-01 00:24:26 -03:00
bruno cesar
d7e6e1373c compliance: add legal-ethics protection pack and CI gate 2026-02-28 23:30:12 -03:00
bruno cesar
989e81cf20 release: add public snapshot tooling docs and privacy gates 2026-02-28 21:21:01 -03:00
bruno cesar
7d144e1864 Harden storage operations and data-dir preflight 2026-02-28 19:49:33 -03:00
bruno cesar
8352b68fc4 Add QSA historical CNPJ ingestion and gate checks 2026-02-28 19:49:01 -03:00
bruno cesar
a4451e7c05 Stabilization 10/10: security gates, neo4j db pinning, and source governance closure 2026-02-28 14:31:54 -03:00
Bruno César
02466bb9d6 Add source registry governance and dynamic meta source stats (#6)
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
2026-02-27 20:34:00 -03:00
bruno cesar
e6e33d165e Harden pending-ingestion flow for mides/datajud/qd 2026-02-27 16:34:57 -03:00
Bruno César
483b0c16d3 Harden ingestion phase scripts and sanitize comprasnet dates (#2)
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
2026-02-27 15:54:14 -03:00
Bruno César
9351c57461 Add priority ingestion pipelines and shadow promotion gates (#1)
Co-authored-by: bruno cesar <brunoclz@brunos-MacBook-Pro.local>
2026-02-27 10:02:16 -03:00
bruno cesar
51928dd572 Prepare first GitHub push: readiness, security and Linear-first setup 2026-02-27 00:28:58 -03:00
bruno cesar
29a1502e8e Fix orphaned data: Câmara deputy_id fallback, Senado CPF enrichment, GlobalPEP name matching
Câmara: deputies without CPF now linked via deputy_id (~10K recovered).
Senado: senator lookup from Dados Abertos API enables CPF-first GASTOU +
name fallback without CANDIDATO_EM filter (~200K recoverable).
GlobalPEP: post-load Cypher script for 2-phase exact name matching.
Also: OpenRouter MCP config, triple-AI consensus skill.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 01:27:32 -03:00
bruno cesar
d475b982d4 Add Phase 14 ETL pipelines (10), tests, fixtures, and utility scripts
10 new pipelines: bndes, comprasnet, datasus, dou, ibama, inep, pgfn, rais, tcu, transferegov
Date formatting transform, test fixtures for all sources
Download scripts (comprasnet, datasus, dou), audit tool, graph viz doc

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 03:15:07 -03:00
bruno cesar
e3ebbe6d76 Servidor entity matching: bypass LGPD-masked CPFs via partial CPF + name
Servidores have LGPD-masked CPFs (only 6 middle digits visible). This adds
two-layer SAME_AS matching to link 739K servidores to TSE/CNPJ persons:

- Phase 0: pre-compute cpf_middle6 on existing full-CPF Person nodes
- Phase 4: partial CPF + exact name match (confidence 0.95)
- Phase 5: unique name-only match for classified servidores (confidence 0.85)

Integration tests against real Neo4j caught and fixed a Cypher bug: MERGE
cannot use list index (targets[0]) directly — needs WITH alias first.

Also: make link-persons target, cpf_middle6/cpf_partial indexes,
testcontainers conftest fix, neutrality fix in value_sanitization.py.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 02:46:51 -03:00