NAMMU

← Blog
ProductLegal AIEngineering

What Nammu gives you on day one: analyses by jurisdiction

Once a case is classified, which analyses actually turn on — and which ones don't yet, and why? A transparent map of every analysis gate, the legal reasoning behind each one, and the known gaps we are honest about.

IP

Inventum P5

Engineering · Galictis-Legal

July 10, 2026

9 min read

Nammu does not run a single generic “analyze this case” prompt for every matter. Each legal branch has its own statute, its own procedural clock, and its own vocabulary — a deadline prompt written for a penal investigation would produce a confidently wrong answer if pointed at a family pensión alimentaria case. So every analysis type is wired to fire only where a verified legal basis exists for it, and to stay off — not guess — everywhere else. Here is the complete map.

The analysis menu

Eight distinct analysis types are available across the product. What varies per jurisdiction is not the interface — it is which of these actually run, and with what legal grounding.

Controversia / Hechos relevantes

What is actually being disputed, and what happened — in chronological order.

Runs for every in-scope jurisdiction. The prompt voice changes per branch; availability never does.

Estado procesal

Where the case currently stands procedurally — the active stage, pending acts, last recorded motion.

Penal, laboral, notarial, contencioso, and two familia tracks only.

Plazos procesales

Which statutory deadline is currently running, and when it expires.

Penal, notarial, contencioso, and two familia tracks. Civil and tránsito: not yet.

Trayectorias timeline

A visual procedural-stage timeline rendered in the case UI.

Gated at the process-type level, not just jurisdiction — a branch can be in scope while some of its own tracks have no builder yet.

Poder especial judicial

Whether a filing's power-of-attorney meets the formal requirements of the applicable article.

Penal only, gated to querella and acción civil documents.

Confidence / provenance annotation

BAJA / MEDIA / ALTA tags on generated facts and controversy text, grounded in per-page OCR confidence numbers.

Penal only for now.

Chat grounding (normativa RAG)

Whether chat answers are grounded in the branch's own vectorized statute text.

All jurisdictions — but agrario and constitucional have no vectorized collection yet and fall back to the model's general knowledge.

Jurisprudence / Nexus.PJ copilot

A search brief for relevant case law, assembled from whatever analyses already exist for the case.

Not jurisdiction-gated — works off the analyses that are available, simply returns less when fewer are.

The full matrix

This is the current state of every jurisdiction against every analysis. No aspirational states — only what the backend actually delivers today.

JurisdictionControversy / FactsEstadoPlazoTimelinePoderConfidence
CivilOnUI onlyUI onlyPartialOffOff
PenalOnOnOnPartialOnOn
LaboralOnOnOffPartialOffOff
FamiliaOnPartialPartialOnOffOff
NotarialOnOnOnOnOffOff
ContenciosoOnOnOnPartialOffOff
TránsitoPartialUI onlyUI onlyOnOffOff
Agrario / ConstitucionalPartialOffOffOffOffOff
OnPartialOffUI only
Civil: Estado & plazo buttons appear in the UI but the backend returns nothing — see §Known gaps.
Penal: querella & procedimiento_ordinario have timelines. abreviado & flagrancia do not yet.
Laboral: Estado is on. No laboral deadline-extraction prompt exists yet.
Familia: Estado & plazo: violencia doméstica + pensión alimentaria only. All 6 tracks have a timeline.
Notarial: Only one process type exists in the schema — fully wired.
Contencioso: Timeline: ordinario + bisagra only. Lesividad, cautelares, sumario, responsabilidad: no builder yet.
Tránsito: Controversia/hechos use civil-fallback prompts. Estado & plazo: same UI-only gap as civil.
Agrario / Constitucional: No schema loaded. Controversia uses civil-fallback prompts. UI shows OUT_OF_SCOPE for timeline.

Controversia and Hechos — always on, voice changes

Controversy and facts summaries are the one analysis intentionally kept on for every in-scope jurisdiction. Every case, regardless of branch, has something being claimed and some sequence of events. What changes per jurisdiction is not availability — it is the prompt voice. _select_prompts_for_jurisdiction swaps in penal, laboral, familia, notarial, or contencioso-specific prompts; civil, tránsito, agrario, and constitucional all receive the generic civil pair.

Two sub-routings are worth noting. Penal accion_civil_resarcitoria documents get their own prompt pair, separate from the rest of the criminal expediente — because a civil-damages claim riding inside a criminal file asks a different question than the charge itself. And certain civil process types (sucesorio, for instance) short-circuit entirely via is_no_contencioso(), because a succession is not an adversarial dispute the way an ordinario is — forcing a “what's being disputed” answer onto a non-adversarial process would be fabricating a frame the law does not impose.

Estado procesal and Plazo — the two hard-clock analyses

These are the analyses Nammu is most conservative about. Getting either wrong has direct legal consequences: a missed deadline, a wrongly-computed detention clock.

Estado procesal

Enabled for: penal, laboral, notarial, contencioso-administrativo, and two specific familia tracks — violencia_domestica_medidas_proteccion and pension_alimentaria.

The other four familia tracks (divorcio, custodia, unión de hecho, ejecución de resoluciones) are explicit no-ops. The code's own rationale is that only the two enabled tracks have a genuinely enforceable statutory clock worth dashboarding: violencia doméstica (Ley 7586 safety-critical vigencia) and pensión alimentaria (the apremio corporal escalation ladder). Civil has no estado_procesal implementation at all — the function's docstring states “no civil equivalent” directly.

Plazo

Enabled for: penal, notarial, contencioso-administrativo, and the same two familia tracks — each with its own dedicated deadline prompt (pensión alimentaria's oposición window + apremio corporal graduation; violencia doméstica's Ley 7586 art. 4 medidas-vigencia start / duration / vencimiento / prórroga).

Laboral has estado but not plazo — no laboral deadline-extraction prompt has been written and legally verified yet. Civil has neither, despite civil being the most deeply schema-verified branch. See Known Gaps below.

Per-case override: legacy procedural code

Even where plazo and estado_procesal are otherwise enabled for a jurisdiction, a case detected as governed by the legacy Código Procesal Civil (Ley 7130) gets those buttons disabled with an explanatory tooltip — not hidden. This is distinct from the jurisdiction-level gates: it is not “this process type never gets this analysis” but “this specific expediente predates the code version the current prompts assume,” and showing an incorrect deadline framing is worse than showing nothing.

Trayectorias timelines — the most granular gate

The timeline builder dispatches at the process-type level, not the jurisdiction level. A branch can be fully in scope for classification while several of its own procedural tracks have no visual timeline built yet. When a case's process type has no builder, the UI shows a pending state rather than an error — all other analyses (controversia, chat, report) still work.

JurisdictionTimelines builtNot yet
Civilordinario, sumario, sucesorio, garantía real (hipotecaria + prendaria)monitorio, generic ejecución, abreviado (not a recognized civil slug)
Penalquerella, procedimiento_ordinarioprocedimiento_abreviado, flagrancia
Laboralproceso_ordinario_laboralfuero especial y sumarísimo, ejecución de sentencia laboral, medidas cautelares
Familiaall 6 — violencia doméstica, pensión alimentaria, divorcio, custodia, unión de hecho, ejecución de resoluciones
Notarialproceso_disciplinario_notarial— (schema has only one type)
Contenciosoproceso_ordinario_contencioso (+ bisagra → civil ordinario)lesividad, sumario contencioso, medidas cautelares, responsabilidad administrativa
Tránsitoproceso_transito_colision— (schema has only one in-scope type)
The bisagra exception: a contencioso-administrativo case transferred to civil via a declared incompetencia is special-cased ahead of the plain dispatch — it renders the civil ordinario timeline with a bisagra marker, because from that point on the case's forward procedural path is the civil ordinario track.

Poder especial and confidence annotation — document-level gates

Two analyses are gated even more narrowly than jurisdiction — they key off the individual document's own doc_kind, not the case's process type.

compute_poder_especial fires only for documents whose kind is querella (CPP art. 74) or accion_civil_resarcitoria (CPP art. 111). These are the two article-defined filing types that actually impose a specific formal power-of-attorney requirement. It is triggered automatically at document-completion time inside the penal early-trigger pipeline.

compute_confidence_provenance annotates BAJA / MEDIA / ALTA tags onto already-generated facts and controversy text, grounded in real per-page OCR confidence numbers. Both are penal-only not because penal matters more — it is simply the branch where these formal and provenance passes were built and verified first.

Chat and jurisprudence — jurisdiction affects content, not availability

Chat is available for every jurisdiction, but retrieve_jurisdiction_context() grounds answers in that branch's own vectorized statute collection (civil statute text, penal code, etc.). Agrario and constitucional have no vectorized collection yet — their chat answers fall back to the model's general legal knowledge, without grounding, and the system prompt is swapped accordingly.

The Nexus.PJ jurisprudence copilot and the PDF export report are not jurisdiction-gated at all. Both work off whatever analyses already exist for the case and simply include less content when fewer are available. There is no branch-specific report template or jurisprudence-search logic today.

Known gaps — stated directly

Estado procesal and Plazo: civil and tránsito UI / backend mismatch

The UI capability table shows the estado and plazo buttons as enabled for civil's ordinario / sumario / monitorio / sucesorio process types, and for the whole tránsito jurisdiction. But the backend routing in compute_legal_estado_procesal and compute_legal_plazo has no civil or tránsito branch at all — a case clicking either button today receives a silent no-result rather than an actual answer. This is a real gap between what the UI promises and what the pipeline delivers. The decision is: (a) wire civil / tránsito prompts to match the UI, or (b) hide those buttons until the prompts exist and are legally verified.

The underlying rule

Every gate in this document traces back to the same discipline: an analysis only runs where a real, article-cited legal basis exists for it in a loaded schema — never as a generic default dressed up to look branch-specific. Where that basis does not exist yet, the honest answer is “not yet,” surfaced as a pending state or a disabled control rather than a guess.

The seven currently loaded schemas (civil, penal, laboral, familia, notarial, contencioso-administrativo, tránsito) are all marked DRAFT pending licensed-attorney sign-off. Agrario and constitucional have no schema at all — which is why they are out-of-scope across the board rather than receiving even a degraded analysis.

Running cases in one of these jurisdictions?

We can walk through exactly which analyses light up for your practice area and what is on the near-term roadmap.

Request a demo →