jev-norma
Spanish compliance triage: clauses extracted deterministically, then Jev labels each obligation, risk or no action.
Overview
jev-norma triages Latin American data-protection policies and terms of service, starting with Colombia's Law 1581 of 2012, using Jev as a gate. A deterministic, AI-free normaliser extracts clauses from HTML or PDF (and scanned PDFs via an optional OCR step with a vision model on OpenRouter), handling common CMS layouts and discarding boilerplate.
Each clause is then embedded in a self-contained question and Jev chooses obligacion, riesgo or sin_accion with a confidence. The report is fail-open: anything under 0.8 confidence goes to a human review queue, and nothing is killed by Jev alone. The target users are small businesses and legal-tech firms who must audit privacy policies for regulators such as Colombia's SIC or Spain's AEPD. The README reports a measured cost of about $0.00002 per clause. It ships as a dependency-free CLI and MCP server with optional PDF and OCR extras.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Does this clause impose an obligation, flag a risk, or require no action? | obligacion · riesgo · sin_accion |
How it works
- Fetch or load a policy document (HTML, PDF or scanned PDF)
- Extract and normalise clauses deterministically
- Ask Jev to classify each clause with confidence
- Send clauses below 0.8 confidence to human review
- Output a report of obligations and risk flags
Strengths
- Deterministic extraction with no AI in the normaliser
- Fail-open human review queue
- Very low cost per clause as measured by the author
- Zero-dependency core, selftests without API
Caveats
- Focused on Colombian law and Spanish text
- OCR path needs an OpenRouter key
- Not a substitute for legal review
Getting started
pip install jev-norma, set TYPESAFE_API_KEY, then jev-norma politica.htmlAt a glance
- Type
- Library
- Status
- beta
- Language
- Python
- Runtime
- CLI and MCP server
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Triaje normativo LatAm con Jev (System One) como gate: normaliza cláusulas de…
wh000wh000/awesome-jev-live
Frequently asked questions
What does Jev decide?
Whether each policy clause is an obligation, a risk, or needs no action.
What happens to uncertain clauses?
Clauses below 0.8 confidence go to a human review queue.
Can it read scanned PDFs?
Yes, with the [ocr] extra and an OpenRouter key for a vision model.
Related projects
Toolkit for Jev decision contracts: compiled policies, egress controls, tracing, stability checks and certified decision SLOs.
ProjectbetaTypeScriptLocal-first personal-data inventory tool with optional Jev classification per column, not per row, and dry-run payload review.
ProjectprototypePythonPython policy-as-code SDK that runs Noul, Choice and Score rules defined in YAML through Jev, with audit mode and fail-closed options.
LibraryprototypePythonUiPath coded agent for AML alert triage where an LLM reads and writes but Jev makes every red-flag, risk and disposition decision.
AppprototypePythonRust CLI of Jev experiments: HIPAA-style PHI detection, code-comment review, tone analysis and occupation classification.
CLIprototypeRustFrench toolkit that prepares de minimis state-aid cumulation reviews, with Jev classifying sourced cases into review categories.
ModelprototypeJavaScript