← Agents

Criterio CLO

Contracts and compliance

Evidence before the decision

What the company signed and what it committed to, against its documents

Fidel puts every contract next to what is actually happening: what is expiring, who signed with what authority, what was paid and what is guaranteed. Constanza puts every obligation in the organisation’s matrix next to its evidence. Both process every document, calculate what does not match and prepare the report; neither gives an opinion on whether a contract is valid or says what a rule requires.

What it costs, measured by third parties

Third-party figures, each with its source, year and sample, verified against the publisher’s own text. The agents’ own figures are further down, in the test evidence.

Criterio is open source. If it creates value for you, help fund testing, documentation and the next capabilities.

Fidel and Constanza are Criterio’s CLO family, an open platform of agent families. See the families

Industries

Where the family is tested, and what comes next

The engine and the agents are tested on all 43 entities of the material, in 11 countries: 32 industry entities —5 industries— and 11 control entities. The engine, also, on every change to the repository. On the map, each country with its evolution.

11 countries tested, in the order they came in · signals and fields from each entity’s latest run

Round 1ColombiaBanking, Retail, Public entity, Control entityRounds 1–3, 724 of 24 signals · 545 of 548 fields
Round 2EcuadorCooperatives, Mining, Public entity, Control entityRounds 2–3, 720 of 20 signals · 569 of 571 fields
Round 4PeruBanking, Mining, Public entity, Control entityRounds 4, 721 of 21 signals · 568 of 569 fields
Round 4ChileRetail, Mining, Public entity, Control entityRounds 4, 721 of 21 signals · 548 of 548 fields
Round 5MexicoBanking, Retail, Public entity, Control entityRounds 5, 723 of 23 signals · 547 of 548 fields
Round 6BrazilBanking, Retail, Public entity, Control entityRounds 6–724 of 24 signals · 548 of 548 fields
Round 8ArgentinaBanking, Retail, Public entity, Control entityRound 825 of 25 signals · 548 of 548 fields
Round 9PanamaBanking, Retail, Public entity, Control entityRound 924 of 24 signals · 569 of 569 fields
Round 10GuatemalaBanking, Retail, Control entityRound 1020 of 20 signals · 396 of 396 fields
Round 11Costa RicaBanking, Retail, Public entity, Control entityRound 1123 of 23 signals · 569 of 569 fields
Round 12HondurasBanking, Retail, Public entity, Control entityRound 1222 of 22 signals · 569 of 569 fields

The progress map

11 countries tested

Map of Latin America. Tested: Colombia, Ecuador, Peru, Chile, Mexico, Brazil, Argentina, Panama, Guatemala, Costa Rica, Honduras. Next: . The other countries are not in yet.

Borders: Natural Earth, public domain.

Hondurastested since round 12

What was tested here

Identification and currency

The RTN of the entity and of each counterparty, in its country’s form · HNL

The regulations in the regulatory register are synthetic: what is tested is the process —a regulation that arrives by bulletin, an overdue assessment, an obligation without evidence—, not the text of a real regulation.

See the 20 situations seeded in its entities

Fidel · 10

  • A contract expires within the configured days with no recorded decision to renew or terminate
  • The notice deadline of an auto-renewing contract passed with no recorded decision
  • A contract in the folder is not in the register, or a register row has no document
  • The register's value or dates differ from the document's
  • A contract obligation is past its date with no evidence
  • The entity's signatory had no authority for the type or amount under the authority matrix
  • Payments exceed the contract value plus its amendments
  • The contract requires a guarantee and none was provided
  • The policy provided expires earlier than the contract requires
  • A public contract's performance guarantee is below its country's legal minimum

Constanza · 10

  • A matrix obligation is past its deadline with no evidence
  • An obligation is marked done and no evidence supports it
  • The latest evidence of a periodic obligation predates its window
  • A matrix obligation has no owner
  • A matrix obligation cites no rule, contract or policy it comes from
  • The report declares the period compliant and there are open signals that status does not explain
  • A policy is past its review date
  • A registered rule has gone longer than the configured days without an impact assessment
  • A whistleblowing case is past the configured response time
  • A contract's compliance obligation is not in the matrix

Latest round: 12

  • Publica2 of 2 signals · 152 of 152 data items

    64 documents · 1 defects seeded on purpose

  • Banking10 of 10 signals · 132 of 132 data items

    60 documents · 10 defects seeded on purpose

  • Retail10 of 10 signals · 153 of 153 data items

    66 documents · 10 defects seeded on purpose

  • Control entityno signal at all, as it should be · 132 of 132 data items

    57 documents and no defects: any signal would be a failure

Evolution

  1. Round 12 · first time · Publica, Banking, Retail, Control entity · 22 of 22 signalsno defects
See the evidence, round by round →

The entities and their defects are written in the repository, in tests/criterio-clo/generar.py.

Criterio · CLO family

Two agents for contracts and compliance

They process what the company signed and what it committed to comply with, and tell you what is expiring, what does not match and what has no evidence.

CRITERIO · CLOREADY
FIDEL
Contracts
CONSTANZA
Compliance
ROSTRUM
The portal
THE ENTITY’S RECORDSThe only contract. Fidel and Constanza never talk to each other: they talk through their records.
PRINTER · CRITERIOSHEET 1

CRITERIO · CLO FAMILY

Where the family stands: built and tested on synthetic material from six countries —Colombia, Ecuador, Peru, Chile, Mexico and Brazil, the latter with its documents in Portuguese—. The engine passes its deterministic test against the eighteen entities in the material, and the two agents passed their rounds with a key they never see.

Where each name comes from

Fidel
· from the Latin fides, the word given: what was signed is kept
Constanza
· from the Latin constantia, “constancy”: compliance every day, not only on audit day
Rostrum
· from the Latin rostrum, the speakers’ platform of the Roman forum: it holds up what is already written, where others can read it

The three, one at a time

What each one does, what it never does and what its work looks like

Each tab stands on its own: you can install one agent without the other. The screenshots are Rostrum, the portal for every family, publishing what the agents found in the banking test data of the first round with the agent.

criterio-legal

From fides: the word given; what was signed is kept.

Processes what the company signed: the contract register against its documents, expiries and notice periods, every obligation with its evidence, who signed with what authority, and what was paid against what was agreed and its guarantees. You decide to renew or terminate.

What only he does

An auto-renewing contract nobody decides on renews itself, and he says so before the notice deadline passes. He processes every contract, not a sample, with its amendments.

What he answers

  • Which contract expires or has its notice deadline inside the window, and nobody has decided
  • Which obligation is past its date without evidence
  • Who signed without authority for the type or amount, under the signing-authority matrix
  • Which register entry has no document, or which value or date does not match it
  • What was paid above the agreed value, or after termination
  • Which required guarantee was not provided, or expires earlier than the contract requires

Never

Interprets clauses, rules on a contract’s validity or decides to renew or terminate.

Rostrum · Entidad financiera de prueba
Contracts as of 6 October with 5 open signals: a signature without authority for the amount, an overdue obligation without evidence and a non-renewal notice due in 26 days that nobody has decided on.
Contracts as of 6 October with 5 open signals: a signature without authority for the amount, an overdue obligation without evidence and a non-renewal notice due in 26 days that nobody has decided on.Screenshot of Rostrum on the banking test data of the first round with the agent, cut on 6 October 2026. It is test material written by the repository; it belongs to no organisation.
Extends
The contracts lawyer
Instances
One per entity
Setup
15 min · 6 questions
Cadence
When an expiry or a notice deadline enters the window, or a new document arrives
Needs from you
The decision to renew or terminate, in writing
Set up with/criterio-legal:legal-setup

Its commands, by group

Start and rhythm2 commands+
legal-setuplegal-wake
The register2 commands+
contract-scancontract-register
Expiries and signatures2 commands+
obligations-calendarauthority-check
Payments and guarantees1 command+
contract-execution

7 commands · 5 skills

In Rostrum

Fidel and Constanza have no portal of their own: they enter Rostrum, the portal for every family, like any other. What Rostrum shows is what their engine already wrote, with the date it was written; it recalculates nothing and never writes to their state.

How it enters the portal

  1. Fidel runs /criterio-legal:legal-setup, leaves its configuration in .criterio/legal/<entity or case>/ and marks its root folder with _CRITERIO_LEGAL.txt.
  2. Constanza runs /criterio-compliance:compliance-setup, leaves its configuration in .criterio/cumplimiento/<entity or case>/ and marks its root folder with _CRITERIO_LEGAL.txt.

Then Rostrum adds it to the map and raises the portal:

/plugin install criterio-server@criterio
/criterio-server:server-setup
/criterio-server:server-start

What it has in Rostrum

Home
The Criterio CLO card, with Fidel and Constanza and their open signals.
The family
The latest from each engine —the contracts, compliance for a period—, its signals in words and its reports as the engine left them.
What falls due
The notice period of an auto-renewing contract, the end of a term, the obligation that falls due, next to those of the other families.
A case
Everything the agents did on a contract, on one page.
Where it works
The full path of the root folder, of the entity’s documents with their marker, of the state and of each configuration.
Ask
A written question for Fidel or Constanza, taken on their next run.
The Criterio CLO page in Rostrum
The Criterio CLO page in Rostrum, on the test data of a financial entity: the latest from Fidel’s engine, its signals and its reports. The portal is in Spanish. It is test material written by the repository; it belongs to no organisation.
Rostrum: install, configure and use it with every family →

What it costs you today

The work Fidel and Constanza prepare, priced with your own numbers

Each agent extends one person: Fidel the contracts lawyers, Constanza the compliance team. Enter how many people you have, what they cost and how many hours a week each task takes them. Nothing you type leaves your browser.

I work in

Write the costs in the currency you choose. There is no conversion: changing the currency clears the costs, because an exchange rate written into a page is wrong within weeks.

The people

Contracts lawyers
Loaded monthly cost per personFully loaded: salary, benefits and overhead.
USD

Hours per week on each task

Keeping the contract register up to date with its documents/contract-register · /contract-scan
h
Working out expiries and renewal notice periods/obligations-calendar
h
Following every contract obligation and its evidence/obligations-calendar
h
Checking who signed and with what authority/authority-check
h
Matching what was paid against what was agreed and the guarantees/contract-execution
h

Hours are per person, per week. The starting people and hours are examples: replace them with yours. The cost is yours to write: we do not print one we cannot source.

Your numbers · per year

Fidel

Contracts lawyers · 9 h a week each (23% of the week)

828 ha year

—a year

Constanza

Compliance team · 8.5 h a week each (21% of the week)

782 ha year

—a year

Annual cost of the work the two prepare—
Hours a year1,610 h
Annual cost of the people included—
Share of that cost—

Write the monthly cost of each group to see what it costs.

Rostrum, the server, adds no hours here. It publishes what Fidel and Constanza wrote where the team sees it and answers people who never open a folder. Its effect is fewer “when does this contract expire?” emails, and we do not measure that yet.

What this number is and what it is not

It is the cost of the hours your team spends today on tasks the agents prepare: matching, reconciling, consolidating, drafting. It is not a saving. The person still reviews, decides and declares the status.

How many of those hours come back we will publish in the evidence section, with each round’s tests. Until that figure is measured, we do not put it here.

Test evidence · updated with every round

This is what is already measured, with what sample and what margin.

Every figure comes from a real run of the repository, with its count and its 95% confidence margin. The engine is tested on every change to the repository; the agents, in rounds on one entity’s material.

How it is tested

5 industries and 11 controls

The engine, on all of them. The agents, so far on all 43 entities of the material, in 11 countries. The control entities carry no defects at all: any signal is a failure.

14 commands per entity

Fidel and Constanza run each agent’s setup and processing —the commands that process the documents and write the records—, with a token cap set before starting. The rest calculate on those records with the engine, which is tested on every change to the repository.

2,612 documents

What the material of the measured entities holds, in text and CSV. The key is not counted: the agents do not have it.

168.8 million tokens

The work of the language model (LLM) in each entity’s latest run —rounds 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12—, with its verifications. No command was repeated.

A key they never see

What is expected is written in each entity’s key before the run: every seeded signal and every data point the written documents carry.

95% margin

Every figure comes with its confidence margin: it says how much the sample supports, which a percentage alone does not.

Fidel and Constanza process the entity’s documentation

Rounds 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12 · 43 entities · each one’s latest run

What they wrote is graded against the key they never saw: every signal by its name and its key, and every data point in the records against what the written documents carry. Each entity counts with its latest run, whatever round it came from; if a defect was fixed, the one that verified it. The first runs, with what they missed, are in the chart and in the detail.

Record data

99.8% or higher

Measured: 99.94%. The headline is the floor of the 95% confidence margin: what the test supports.

5968 of 5971 data points extracted from the written documents match the key.

Measured

Verification of CLO-7, CLO-8: Fidel on mining · Ecuador, 128 of 128 data points.

Verification of CLO-6: Constanza, Fidel on control entity · Colombia, 131 of 132 data points.

Verification of CLO-10: Fidel on control entity · Peru, 128 of 128 data points.

Verification of CLO-11: Fidel on control entity · Mexico, 128 of 128 data points.

Verification of CLO-14: Fidel on publica · Brazil, 152 of 152 data points.

95% confidence margin (Wilson): 99.8–99.98%

Signals found

98.4% or higher

Measured: 100%. The headline is the floor of the 95% confidence margin: what the test supports.

242 of 242 signals the key expected.

Measured

95% confidence margin (Wilson): 98.4–100%

Correct signals

98.4% or higher

Measured: 100%. The headline is the floor of the 95% confidence margin: what the test supports.

242 of 242 signals raised were correct.

Measured

95% confidence margin (Wilson): 98.4–100%

Controls without false alarms

11 of 11

11 of 11 control entities without a single extra signal.

Measured

With a defect on a control in this round: CLO-12. Its row is in the defects.

201 commands run on 43 entities, each with its output, its cost and its grade published.

How the family moves from one round to the next

Each dot is one entity in its first run of the round; the line is its 95% confidence margin. Verifications are shown apart: they repeat what was fixed. The axis starts at the lowest value published.

banking · Colombiabanking · Argentinabanking · Brazilbanking · Costa Ricabanking · Guatemalabanking · Hondurasbanking · Mexicobanking · Panamabanking · Perucooperatives · Ecuadorretail · Colombiaretail · Argentinaretail · Brazilretail · Chileretail · Costa Ricaretail · Guatemalaretail · Hondurasretail · Mexicoretail · Panamamining · Ecuadormining · Chilemining · Perupublica · Argentinapublica · Brazilpublica · Chilepublica · Colombiapublica · Costa Ricapublica · Ecuadorpublica · Honduraspublica · Mexicopublica · Panamapublica · Perucontrol entity · Colombiacontrol entity · Ecuadorcontrol entity · Perucontrol entity · Chilecontrol entity · Mexicocontrol entity · Brazilcontrol entity · Argentinacontrol entity · Panamacontrol entity · Guatemalacontrol entity · Costa Ricacontrol entity · Honduras

Round 11

Round 1 · verification2

Round 23

Round 3 · verification4

Round 45

Round 4 · verification6

Round 57

Round 5 · verification8

Round 69

Round 710

Round 7 · verification11

Round 812

Round 913

Round 1014

Round 1115

Round 1216

  1. 1 · Round 1: Fidel and Constanza on banking · Colombia and control entity · Colombia.
  2. 2 · Verification in round 1: Fidel on control entity · Colombia, after fixing CLO-4.
  3. 3 · Round 2: Fidel and Constanza on banking · Colombia, control entity · Colombia, control entity · Ecuador, cooperatives · Ecuador, mining · Ecuador and retail · Colombia.
  4. 4 · Verification in round 3: Constanza, Fidel on control entity · Colombia, after fixing CLO-6. Verification in round 3: Fidel on mining · Ecuador, after fixing CLO-7, CLO-8.
  5. 5 · Round 4: Fidel and Constanza on banking · Peru, control entity · Chile, control entity · Peru, mining · Chile, mining · Peru and retail · Chile.
  6. 6 · Verification in round 4: Fidel on control entity · Peru, after fixing CLO-10.
  7. 7 · Round 5: Fidel and Constanza on banking · Mexico, control entity · Mexico and retail · Mexico.
  8. 8 · Verification in round 5: Fidel on control entity · Mexico, after fixing CLO-11.
  9. 9 · Round 6: Fidel and Constanza on banking · Brazil, control entity · Brazil and retail · Brazil.
  10. 10 · Round 7: Fidel and Constanza on publica · Brazil, publica · Chile, publica · Colombia, publica · Ecuador, publica · Mexico and publica · Peru.
  11. 11 · Verification in round 7: Fidel on publica · Brazil, after fixing CLO-14.
  12. 12 · Round 8: Fidel and Constanza on banking · Argentina, control entity · Argentina, publica · Argentina and retail · Argentina.
  13. 13 · Round 9: Fidel and Constanza on banking · Panama, control entity · Panama, publica · Panama and retail · Panama.
  14. 14 · Round 10: Fidel and Constanza on banking · Guatemala, control entity · Guatemala and retail · Guatemala.
  15. 15 · Round 11: Fidel and Constanza on banking · Costa Rica, control entity · Costa Rica, publica · Costa Rica and retail · Costa Rica.
  16. 16 · Round 12: Fidel and Constanza on banking · Honduras, control entity · Honduras, publica · Honduras and retail · Honduras.

Results by country · each country’s latest run

Each country with its entities in their latest run with the agent. The margin is the 95% Wilson interval.

CountryEntitiesRoundRecord dataSignals foundCorrect signalsControls without false alarms
Colombia42, 3 and 7545 of 548 · 99.5%95% CI 98.4–99.9%24 of 24 · 100%95% CI 86.2–100%24 of 24 · 100%95% CI 86.2–100%1 of 1
Ecuador42, 3 and 7567 of 567 · 100%95% CI 99.3–100%15 of 15 · 100%95% CI 79.6–100%15 of 15 · 100%95% CI 79.6–100%1 of 1
Peru44 and 7565 of 565 · 100%95% CI 99.3–100%21 of 21 · 100%95% CI 84.5–100%21 of 21 · 100%95% CI 84.5–100%1 of 1
Chile44 and 7548 of 548 · 100%95% CI 99.3–100%21 of 21 · 100%95% CI 84.5–100%21 of 21 · 100%95% CI 84.5–100%1 of 1
Mexico45 and 7544 of 544 · 100%95% CI 99.2–100%23 of 23 · 100%95% CI 85.6–100%23 of 23 · 100%95% CI 85.6–100%1 of 1
Brazil46 and 7548 of 548 · 100%95% CI 99.3–100%24 of 24 · 100%95% CI 86.2–100%24 of 24 · 100%95% CI 86.2–100%1 of 1
Argentina48548 of 548 · 100%95% CI 99.3–100%25 of 25 · 100%95% CI 86.6–100%25 of 25 · 100%95% CI 86.6–100%1 of 1
Panama49569 of 569 · 100%95% CI 99.3–100%24 of 24 · 100%95% CI 86.2–100%24 of 24 · 100%95% CI 86.2–100%1 of 1
Guatemala310396 of 396 · 100%95% CI 99–100%20 of 20 · 100%95% CI 83.8–100%20 of 20 · 100%95% CI 83.8–100%1 of 1
Costa Rica411569 of 569 · 100%95% CI 99.3–100%23 of 23 · 100%95% CI 85.6–100%23 of 23 · 100%95% CI 85.6–100%1 of 1
Honduras412569 of 569 · 100%95% CI 99.3–100%22 of 22 · 100%95% CI 85.1–100%22 of 22 · 100%95% CI 85.1–100%1 of 1

Defects the rounds found · 14

Every error is logged with its origin and the commit that fixes it. It counts as verified only when a run after the fix gives the expected result.

  • 14 Fixed and verified
  • 0 Fixed, to verify
  • 0 Open

Where they came from

  • the agent’s instructions6
  • the test harness4
  • the code2
  • the answer key2

For auditing

The full detail of every run. Each block opens on its own.

Every run in the round51 runs

The agents ran their commands on each entity’s material, with a token cap set before starting. What they wrote was graded against the key they never saw: every signal by its name, and every data point in the records against what the written documents carry.

Test materialAgents · commandsSignalsRecord dataTokens
bankingRound 1 · ColombiaConstanza, Fidel · 1410 / 10132 / 1327.5 M + 0.4 M repeated
control entityRound 1 · ColombiaConstanza, Fidel · 140 / 0126 / 1327.9 M + 2.1 M repeated
control entityRound 1 · Colombia · verificationFidel · 70 / 0128 / 1283.7 M
bankingRound 10 · GuatemalaConstanza, Fidel · 410 / 10132 / 1323 M
control entityRound 10 · GuatemalaConstanza, Fidel · 40 / 0132 / 1323.6 M
retailRound 10 · GuatemalaConstanza, Fidel · 410 / 10132 / 1323.3 M
bankingRound 11 · Costa RicaConstanza, Fidel · 410 / 10132 / 1323.3 M
control entityRound 11 · Costa RicaConstanza, Fidel · 40 / 0132 / 1323.6 M
publicaRound 11 · Costa RicaFidel · 23 / 3152 / 1522 M
retailRound 11 · Costa RicaConstanza, Fidel · 410 / 10153 / 1533.6 M
bankingRound 12 · HondurasConstanza, Fidel · 410 / 10132 / 1323 M
control entityRound 12 · HondurasConstanza, Fidel · 40 / 0132 / 1323.5 M
publicaRound 12 · HondurasFidel · 22 / 2152 / 1521.9 M
retailRound 12 · HondurasConstanza, Fidel · 410 / 10153 / 1533.3 M
bankingRound 2 · ColombiaConstanza, Fidel · 1410 / 10131 / 1327.9 M
control entityRound 2 · ColombiaConstanza, Fidel · 140 / 0128 / 1325.3 M
control entityRound 2 · EcuadorConstanza, Fidel · 140 / 0134 / 1347.7 M
cooperativesRound 2 · EcuadorConstanza, Fidel · 149 / 9153 / 1537.8 M
miningRound 2 · EcuadorConstanza, Fidel · 149 / 9130 / 1327.7 M
retailRound 2 · ColombiaConstanza, Fidel · 149 / 9132 / 1327.2 M
control entityRound 3 · Colombia · verificationConstanza, Fidel · 140 / 0131 / 1327.5 M
miningRound 3 · Ecuador · verificationFidel · 74 / 4128 / 1283.5 M
bankingRound 4 · PeruConstanza, Fidel · 410 / 10132 / 1323.2 M
control entityRound 4 · ChileConstanza, Fidel · 40 / 0132 / 1323.3 M
control entityRound 4 · PeruConstanza, Fidel · 40 / 0131 / 1323.2 M
control entityRound 4 · Peru · verificationFidel · 20 / 0128 / 1281.8 M
miningRound 4 · ChileConstanza, Fidel · 49 / 9132 / 1323.1 M
miningRound 4 · PeruConstanza, Fidel · 49 / 9153 / 1533.6 M
retailRound 4 · ChileConstanza, Fidel · 49 / 9132 / 1323.5 M
bankingRound 5 · MexicoConstanza, Fidel · 410 / 10132 / 1323.6 M
control entityRound 5 · MexicoConstanza, Fidel · 40 / 0131 / 1323.1 M
control entityRound 5 · Mexico · verificationFidel · 20 / 0128 / 1282 M
retailRound 5 · MexicoConstanza, Fidel · 410 / 10132 / 1323.3 M
bankingRound 6 · BrazilConstanza, Fidel · 410 / 10132 / 1323.3 M
control entityRound 6 · BrazilConstanza, Fidel · 40 / 0132 / 1323.1 M
retailRound 6 · BrazilConstanza, Fidel · 410 / 10132 / 1322.9 M
publicaRound 7 · BrazilFidel · 24 / 4150 / 1521.9 M
publicaRound 7 · Brazil · verificationFidel · 24 / 4152 / 1521.8 M
publicaRound 7 · ChileFidel · 23 / 3152 / 1521.8 M
publicaRound 7 · ColombiaFidel · 25 / 5151 / 1521.9 M
publicaRound 7 · EcuadorFidel · 22 / 2152 / 1522.2 M
publicaRound 7 · MexicoFidel · 23 / 3152 / 1522.1 M
publicaRound 7 · PeruFidel · 22 / 2152 / 1521.9 M
bankingRound 8 · ArgentinaConstanza, Fidel · 410 / 10132 / 1323.1 M
control entityRound 8 · ArgentinaConstanza, Fidel · 40 / 0132 / 1323 M
publicaRound 8 · ArgentinaFidel · 25 / 5152 / 1522.1 M
retailRound 8 · ArgentinaConstanza, Fidel · 410 / 10132 / 1323.3 M
bankingRound 9 · PanamaConstanza, Fidel · 410 / 10132 / 1323.4 M
control entityRound 9 · PanamaConstanza, Fidel · 40 / 0132 / 1323.2 M
publicaRound 9 · PanamaFidel · 24 / 4152 / 1521.7 M
retailRound 9 · PanamaConstanza, Fidel · 410 / 10153 / 1533.5 M
The defects, one by one14 defects
  • CLO-1Fixed and verified

    Constanza did not take Fidel’s records from the shared state when the configuration did not name them, and record paths were not resolved from the .criterio folder.

    Constanza takes them from the shared state and paths are resolved from .criterio. Compliance status was rerun on banking: 10 of 10 signals.

    the code · banking · Colombia · f80f39f

  • CLO-2Fixed and verified

    Grading counted signals from a period other than the key’s and the questions the agent writes on its own.

    The round grades only the key’s period, not the agent’s own questions. Verified in round 2: no extra signals across the six entities.

    the test harness · f80f39f

  • CLO-3Fixed and verified

    Constanza used Fidel’s configuration: the engine did not reject another agent’s configuration.

    The engine rejects another agent’s configuration and familias.py checks each folder against familia.json. Verified in round 2: Constanza worked with her own on five entities.

    the code · control entity · Colombia · 4df0442

  • CLO-4Fixed and verified

    Fidel left out of the record the obligations due at the end of the contract, such as the final report or the settlement minutes: one was missing in each of the five contracts.

    The record skill asks for every dated obligation, in clause order. Fidel was rerun on the control: 128 of 128 data points; in round 2, every obligation across the six materials is in the records.

    the agent’s instructions · control entity · Colombia · df6a04b

  • CLO-5Fixed and verified

    Grading compares the citation as text: Constanza cited “line 5” and the key “item 1”, which are the same line of the bulletin. That is why the control scores 126 of 132 and not 127.

    Grading accepts a citation that points to the same line of the same file as the key. Verified by re-grading the original round 1 output of the Colombian control with the corrected grading: the “line 5” citation counts as correct and the result goes from 126 to 127 of 132. In round 3, Constanza cited “item 1”.

    the test harness · control entity · Colombia · db293b9

  • CLO-6Fixed and verified

    On the Colombian control, Constanza did not write her configuration: setup said “leave the configuration written” without saying the agent writes it, and she stopped because no engine command creates it. Without a configuration her commands computed nothing: the 4 data points of the period record are missing, and that control does not test her false alarms in this round.

    All four setups (Clara, Tomás, Fidel and Constanza) say the agent writes the configuration in the shape of config.example.json, that init prepares the state and config validates it. Verified in round 3: Constanza wrote her configuration on the Colombian control and her period record carries the 4 data points.

    the agent’s instructions · control entity · Colombia · f075160

  • CLO-7Fixed and verified

    The key of a contract without the counterparty’s signature still listed the counterparty as a signatory. Fidel, rightly, listed only who signed.

    The generator keeps only who signed in the key; only the mining key changes. Verified in round 3: Fidel on mining, 128 of 128 data points.

    the answer key · mining · Ecuador · f075160

  • CLO-8Fixed and verified

    On that same contract, Fidel left the signing date empty: the skill did not say which date applies when only one party signed.

    The record skill says the date is that of the signature the document carries, even if only one party signed, and that signed_by_both says the other is missing. Verified in round 3: Fidel on mining, 128 of 128 data points.

    the agent’s instructions · mining · Ecuador · f075160

  • CLO-9Fixed and verified

    The same case as CFO-4: the key says “Reporte de operaciones al oficial de cumplimiento” and Fidel wrote “Reporte de operaciones del periodo al oficial de cumplimiento”. Grading counts it as an error because it compares contained text, not meaning. It recurred in round 3, on the Colombian control: the only data point that failed there (131 of 132).

    The same fix as CFO-4. Verified by re-grading the original outputs: round 2 banking, 132 of 132, and round 3 Colombian control, 132 of 132; the other entities do not change.

    the test harness · banking · Colombia · 96935cc

  • CLO-10Fixed and verified

    In a contract whose amendment moved the end date from 2027-06-30 to 2027-12-31, Fidel left the final report and the settlement minutes on the original date. The end date itself was right: only the obligation tied to it did not follow.

    The record skill says an obligation tied to termination falls due on the current end date, the one in the latest amendment. Fidel was rerun on the Peruvian control: 128 of 128 data points; the Chilean entities, already run with the fix, give 132 of 132.

    the agent’s instructions · control entity · Peru · 9a616a3

  • CLO-11Fixed and verified

    The same failure as CLO-10 in the Mexican control: the amendment moved the end date from 2027-06-30 to 2027-12-31 and Fidel left the final report on the original date. The cause was in the record skill: it said that date is «the same as `end`», and `end` is the original end date.

    The skill now says the date is the latest amendment's `new_end`, not `end`; the engine reports as a record issue an obligation falling due on the original end date when an amendment moved it, and `contract-scan` corrects it before calculating. Fidel was rerun on the Mexican control: 128 of 128 data points.

    the agent’s instructions · control entity · Mexico · c482f137

  • CLO-12Fixed and verified

    Constanza cited the rule in the bulletin by its line, and the key cites it by its «item 1», as a document in Portuguese numbers it. The harness knew how to resolve a numbered «punto», not an «item», and graded the citation as different.

    A citation to a numbered «item» points to the same line as its «punto». The Brazilian control's run was regraded, with no commands repeated: 132 of 132 data points.

    the test harness · control entity · Brazil · ebe223e1

  • CLO-13Fixed and verified

    The key stored each public contract's modality as the publication record words it, «licitación pública», and the skill defines it as «licitación» or «directa»: Fidel wrote it as the skill says and it was graded wrong in the twelve contracts of Colombia and Ecuador. Also, in the contract without a publication record, the key carried the system and the modality, which no document of that contract states.

    The key stores the modality as the skill defines it and, without a record, nothing public. The harness accepts the modality as each country words it —licitação, trato directo, contratação direta—. The round's six runs were regraded with the fixed key, with no commands repeated.

    the answer key · publica · Colombia · eb3f4f4e

  • CLO-14Fixed and verified

    In Brazil, in the contract without a comprovante de divulgação, Fidel took the portal —PNCP— from the procurement policy and cited it as the publication's source. The policy says where the entity publishes, not that it published that contract. The skill only said the date went null.

    The skill says that, without a record, the system, the date, the modality and the citation go null, and are not taken from the policy. Fidel's setup and processing were repeated on Brazil's public entity: the four items of the contract without a record stayed null, and the run gave 4 of 4 signals and 152 of 152 data items.

    the agent’s instructions · publica · Brazil · eb3f4f4e

How the engine was tested43 entities

Synthetic material from banking (Colombia), banking (Argentina), banking (Brazil), banking (Costa Rica), banking (Guatemala), banking (Honduras), banking (Mexico), banking (Panama), banking (Peru), cooperatives (Ecuador), mining (Ecuador), mining (Chile), mining (Peru), publica (Argentina), publica (Brazil), publica (Chile), publica (Colombia), publica (Costa Rica), publica (Ecuador), publica (Honduras), publica (Mexico), publica (Panama), publica (Peru), retail (Colombia), retail (Argentina), retail (Brazil), retail (Chile), retail (Costa Rica), retail (Guatemala), retail (Honduras), retail (Mexico), retail (Panama), plus 11 control entities with no defects at all: 43 entities with their contracts and three compliance periods, and a key the engine never sees.

247

signals planted on purpose, each with its key

29 of 29

family signals planted at least once

11

control entities, where any signal is a failure

The engine raises every expected signal and none extra, and the gate that checks it runs on every change to the repository. The agents’ extraction was tested in the rounds with the agent on every entity in the material: they are above, with their margin.

What comes next

  • Round 13 with the agent, on all the material again.
  • The first use on a specific organisation’s documentation.
  • How many hours the agents give back is not measured yet. Until it is, we do not publish it.

A results page that only says what passed is advertising. What makes it auditable is what it says is not known yet.

Roadmap

The family grows in increments, each with its full test

Each increment is a version with its full test and its statistical analysis published, with the same metrics, so the evolution can be compared. Versions add up: the latest released one carries everything before it and the fixes for what its tests found.

StableIts evidence says so, not its number: in the latest run of each entity in its material, the lower bound of the 95% margin is 95% or more for signals and for data, and no control raised a signal. Each whole number has ten versions, from x.0 to x.9; then comes x+1.0.

  1. 0.8.0

    Released

    Released on 2026-10-22

    Built, with the engine tested and a first round with the agent

    • Fidel and Constanza’s commands, their skills and the calculation engine
    • Colombia and Ecuador, with no legal opinion: what an obligation requires is defined by the organisation in its matrix
    • The root folder each agent searches for and, with permission, marks
    • The family in Rostrum, with what falls due and where each agent works
    • The first round with the agent: Fidel and Constanza on banking and the Colombian control, with the defects it found fixed

    Test

    The engine, against 4 industries and 2 control entities; the agent, on banking and the Colombian control

  2. 0.9.0

    Released

    Released on 2026-10-23

    The full round with the agent

    • Fidel and Constanza run their commands on the material of the four industries, as the PMO does in every round
    • What only each contract carries —parties, value, dates, renewal, notice period, signatories, amendments, guarantees and obligations—, extracted and graded against the key
    • With a full round, the family is declared tested

    Test

    4 industries and 2 control entities, with the key the agent never sees

  3. 0.11.0

    Released

    Released on 2026-10-27

    Peru and Chile

    • Material for banking, mining and control in Peru, and for retail, mining and control in Chile, with each country's tax ID
    • An obligation tied to termination falls due on the current end date, the one in the latest amendment (CLO-10)

    Test

    Round 4: Fidel and Constanza on the six entities of Peru and Chile, 37 of 37 signals, none extra and 812 of 813 data points; the one missed, fixed and verified

  4. 0.12.0

    Released

    Released on 2026-10-27

    Mexico

    • Material for banking, retail and control in Mexico, with each counterparty's RFC
    • The date of an obligation tied to termination is the latest amendment's: the skill says so and the engine checks it in the record (CLO-11)

    Test

    Round 5: Fidel and Constanza on the three Mexican entities, 20 of 20 signals, none extra and 395 of 396 data points; the one missed, fixed and verified

  5. 1.0.0

    Released

    Released on 2026-10-29

    Brazil

    • Its verified legal sources and its test material
    • Documents in Portuguese: the engine processes them like those of the other countries

    Test

    Round 6 with both agents in Brazil, with the documents in Portuguese: 20 of 20 signals, none extra, and 395 of 396 data points; the defect it found, in the harness, with its fix

  6. 1.1.0

    Released

    Released on 2026-10-30

    Public contracts

    • The publication and guarantee rules of each registered country's public procurement law, each with its source: the deadline to publish the contract in the national system, the minimum performance guarantee —its cap, in Brazil— and its timely delivery, in Mexico
    • One public test entity per country, with its publication records and its guarantee policies

    Test

    Round 7 with Fidel on the six public entities, one per country: 19 of 19 signals, none extra, and 909 of 912 data items; the two defects it found, in the key and in the instructions, with their fix and their verification

  7. 1.2.0

    Released

    Released on 2026-10-30

    Argentina, Panama, Guatemala and Costa Rica

    • Their entry in the country registry, with each counterparty's tax ID
    • The publication and guarantee rule of the public procurement law of Argentina, Panama and Costa Rica, each with its source, and a public test entity in each
    • Three test entities per country, one of them a control with no seeded defects

    Test

    Rounds 8 to 11 with Fidel and Constanza, one per country

  8. Latest released

    1.3.0

    Released

    Released on 2026-10-30

    Carries everything before it, with its fixes

    Honduras

    • Its entry in the country registry, with each counterparty's RTN
    • The performance guarantee of the State Procurement Law, 15 % (Decree 74-2001, art. 100), and a public test entity
    • Three test entities, one of them a control with no seeded defects

    Test

    Round 12 with Fidel and Constanza

The same roadmap lives in the repository, in families/criterio-clo/hoja-de-ruta.json.

How they work

Five steps and one boundary. The language model (LLM) extracts what only a written document carries; the code computes everything else. It is generative AI plus a deterministic engine, applied to contracts and compliance.

  1. 01

    Your documents

    The contract register, the payments, the matrices, each contract with its amendments and guarantees, the policies, the regulatory register and the case register. However they are, wherever they are.

    It does not need the folder to be tidy.

    The model extracts
  2. 02

    Text and tables

    The engine processes the tables directly; written documents are turned into text: Word, Excel, PowerPoint, PDF and email. Whatever it cannot process, it declares, with the reason.

    Only what changed is processed again.

    The model extracts
  3. 03

    The record

    One per contract and one per compliance period. Every data point with a citation to the document it came from and its date. Declared and evidenced go in separate fields.

    "Not found" is a valid answer.

    The model extracts
  4. 04

    The engine

    Expiries, notice deadlines, authority against the matrix, paid against agreed, guarantees and each obligation against its evidence within its frequency window.

    Deterministic and tested.

    The code computes
  5. 05

    Signals

    Only what crossed a threshold: what falls due, what has no evidence, who signed without authority and what was paid outside what was agreed. If nothing crossed one, nothing is said.

    Silence is the feature.

    The code computes

No deadline or amount in a report comes from an estimate. And what is stated nowhere is declared, not filled in.

Why this boundary matters →

Seven invariants that hold them up

01

The agents never talk to each other

They talk through their records. Constanza takes from Fidel's the compliance obligations of the contracts.

02

Rostrum does not write

The portal publishes what the engine already wrote and says so with its date. It recalculates nothing.

03

Each contract has one place

Its folder. Fidel processes it and Constanza takes from its record what concerns her, with no copies.

04

Declared and evidenced never merge

What the report declares and what the documents support live in separate fields. The gap is usually the most valuable finding.

05

The model extracts, the code computes

Every amount, deadline or count in a report comes from the engine. If the engine does not give it, it is not written.

06

No agent declares or decides

The compliance status is declared by the compliance officer; renewing or terminating is decided by a person. Fidel records it when a document takes it.

07

No legal opinion

What an obligation requires is defined by the organisation in its matrix, with its source. No agent adds, removes or rewrites an obligation.

The detail

For whoever wants to review all of it

The commands with their input, process and report; the signals the code calculates; the folder structure; the sources, and the links to the repository.

Fidel’s commands8 commands

In order of importance. The first one sets up the configuration the others need.

  1. 0legal-setup

    The configuration, the inventory and the first contract records

    Input
    The root folder. Questions: entity and NIT or RUC, country, the signing-authority matrix in 00-referencia/, how many days ahead an expiry or a notice period is flagged, the maximum age of the counterparty's certificate, who decides to renew and whether the entity is public
    Process (calculated by the code)
    Inventory of what is there; compares the folder with the recommended structure; creates, moves or renames nothing
    Report
    Configuration saved; inventory by folder; the contracts in contratos/ against those in the register; the first records
  2. 1contract-scan

    The contract records up to date, with what changed and the new signals

    Input
    The whole contratos/ and 10-registro/
    Process (calculated by the code)
    Extracts each document's text with its fingerprint and only reprocesses what changed; the agent takes to each contract's record its parties, value, dates, renewal, notice period, signatories, amendments, guarantees and obligations, every data point with its citation; the engine validates the record
    Report
    What changed; which contracts are new; the new signals; what could not be processed and why
  3. 2contract-register

    The contract register against what the documents say

    Input
    10-registro/registro-contratos and the records
    Process (calculated by the code)
    Matches the register with the folders and the records: contract with no register entry, register entry with no document, declared status against the end date, and the register's value and dates against what the document says
    Report
    Per contract: declared status and status by its dates, and every difference between the register and the document
  4. 3obligations-calendar

    Expiries, notices and obligations, with what is overdue without evidence

    Input
    The records and each contract's 40-ejecucion/
    Process (calculated by the code)
    End date, deadline for the non-renewal notice (end date minus the notice days) and every dated obligation against its evidence in 40-ejecucion/, with its id at the start of the name
    Report
    The calendar for the coming days: expiries, notice periods and obligations; what is overdue without evidence and the notice periods that passed without a decision
  5. 4authority-check

    Who signed each contract and with what authority

    Input
    The records, 00-referencia/matriz-atribuciones and 30-contraparte/
    Process (calculated by the code)
    Each of the entity's signatories against their authority on the signing date, by type and amount, amendments included; documents without both parties' signatures; the counterparty's certificate against the configured age on the signing date
    Report
    Per contract: who signed, their authority and the amount; those without both parties' signatures; expired certificates; no opinion on the contract's validity
  6. 5contract-execution

    Payments against the agreed value, and guarantees against what was required

    Input
    10-registro/pagos, the records and 20-garantias/
    Process (calculated by the code)
    What was paid against the value plus amendments; payments after the end date; the guarantees required against those provided, and their validity against what the contract requires
    Report
    Per contract: value, paid, balance and last payment; each required guarantee with the one provided and its validity
  7. 6legal-wake

    What the contracts need today; silent when nothing does

    Input
    The configuration and the records
    Process (calculated by the code)
    Decides what is due: the expiries and notice periods entering the window, new documents and a weekly review
    Report
    What ran and what it found; if nothing is due, it stays silent
  8. 7share-findings

    A summary with no data to share, only if you say yes

    Input
    The local trail of this agent's runs, in .criterio/corridas/
    Process (calculated by the code)
    The code builds a summary with no data —the plugin and its version, each command with how many times it ran and its median duration, each signal by its code with how many times it came up— and always asks whether you want to share it; nothing is sent (decision 0025)
    Report
    The summary as is and, with a yes, the link to the repository's finding template, which the person opens
Constanza’s commands8 commands

In order of importance. The first one sets up the configuration the others need.

  1. 0compliance-setup

    The configuration, the reviewed matrix and the first compliance status

    Input
    The root folder. Questions: entity, country, the obligations matrix in 00-referencia/ in the defined model (F-01), the period, the channel's response deadline, the days to assess a new regulation and, if the organisation uses Fidel, where his records are
    Process (calculated by the code)
    Inventory of what is there; compares the folder with the recommended structure; creates, moves or renames nothing
    Report
    Configuration saved; the matrix loaded and what each obligation is missing —owner, source—; the period's first status
  2. 1compliance-scan

    The compliance record up to date, with what changed and the new signals

    Input
    The entity's whole folder
    Process (calculated by the code)
    Only reprocesses what changed; the agent takes to the record what the report in 20-reportes/ declares and the new regulations in the bulletins in 30-normativa/, with their citation
    Report
    What changed; what was added to the record; the new signals; what could not be processed
  3. 2compliance-status

    Compliance status: declared against evidenced, obligation by obligation

    Input
    00-referencia/matriz-obligaciones, 10-evidencias/ for the period and earlier ones, and Fidel's records if there are any
    Process (calculated by the code)
    Each obligation against its evidence within the window of its frequency and its deadline; those with no owner or source; the contracts' compliance obligations that the matrix does not have; declared against evidenced
    Report
    Declared status against evidenced; table of obligations ordered by criticality and due date: done with evidence, done without evidence, overdue, on time
  4. 3policy-review

    Every policy with its next review, and the overdue ones

    Input
    20-politicas/indice-politicas
    Process (calculated by the code)
    Each policy against its review date and its owner
    Report
    Policies with an overdue review or no owner, and those coming up for review
  5. 4regulatory-watch

    New rules with their assessment, and the applicable ones without an obligation

    Input
    30-normativa/registro-normativo and the new regulations in the record
    Process (calculated by the code)
    Each registered regulation against its impact assessment within the configured days; those that apply without an obligation in the matrix
    Report
    Regulations not yet assessed and those that apply without an obligation in the matrix; no opinion on the scope of any regulation
  6. 5reports-cases

    Whistleblowing cases against their deadline

    Input
    40-canal/casos
    Process (calculated by the code)
    Each case against the configured response deadline
    Report
    Open cases by age and those past their deadline; no data about who reported
  7. 6compliance-wake

    What compliance needs today; silent when nothing does

    Input
    The configuration and the record
    Process (calculated by the code)
    Decides what is due: obligations falling due within the window, new documents and a weekly review
    Report
    What ran and what it found; if nothing is due, it stays silent
  8. 7share-findings

    A summary with no data to share, only if you say yes

    Input
    The local trail of this agent's runs, in .criterio/corridas/
    Process (calculated by the code)
    The code builds a summary with no data —the plugin and its version, each command with how many times it ran and its median duration, each signal by its code with how many times it came up— and always asks whether you want to share it; nothing is sent (decision 0025)
    Report
    The summary as is and, with a yes, the link to the repository's finding template, which the person opens
What the code calculates29 signals

29 signals. Each one is raised with its date or amount, its owner and the document citation; warning periods are each organisation’s configuration.

Fidel · 18

  • contract_expiring

    A contract expires within the configured days with no recorded decision to renew or terminate

  • notice_deadline_near

    The non-renewal notice deadline of an auto-renewing contract falls within the configured days

  • renewal_notice_missed

    The notice deadline of an auto-renewing contract passed with no recorded decision

  • contract_expired_active

    The register reports as active a contract whose end date has passed

  • register_mismatch

    A contract in the folder is not in the register, or a register row has no document

  • register_differs_from_contract

    The register's value or dates differ from the document's

  • contract_obligation_overdue

    A contract obligation is past its date with no evidence

  • signed_without_authority

    The entity's signatory had no authority for the type or amount under the authority matrix

  • unsigned_contract

    The document lacks both parties' signatures and the contract has already started

  • counterparty_certificate_stale

    The counterparty's certificate was older than the configured days at signing

  • payments_over_value

    Payments exceed the contract value plus its amendments

  • payment_after_termination

    There are payments dated after the contract's end

  • guarantee_missing

    The contract requires a guarantee and none was provided

  • guarantee_expires_early

    The policy provided expires earlier than the contract requires

  • public_contract_not_published

    A public entity's contract was not published in the national system within its country's legal deadline

  • public_guarantee_below_law

    A public contract's performance guarantee is below its country's legal minimum

  • public_guarantee_over_cap

    The guarantee required in a public contract exceeds its country's legal cap

  • public_guarantee_late

    A public contract's performance guarantee was delivered after its country's legal deadline

Constanza · 11

  • compliance_obligation_overdue

    A matrix obligation is past its deadline with no evidence

  • compliance_done_without_evidence

    An obligation is marked done and no evidence supports it

  • compliance_evidence_stale

    The latest evidence of a periodic obligation predates its window

  • obligation_without_owner

    A matrix obligation has no owner

  • obligation_without_source

    A matrix obligation cites no rule, contract or policy it comes from

  • declared_compliance_vs_evidence

    The report declares the period compliant and there are open signals that status does not explain

  • policy_review_overdue

    A policy is past its review date

  • regulatory_change_unassessed

    A registered rule has gone longer than the configured days without an impact assessment

  • applicable_norm_not_in_matrix

    An applicable rule has no obligation in the matrix

  • report_case_overdue

    A whistleblowing case is past the configured response time

  • contract_obligation_not_in_matrix

    A contract's compliance obligation is not in the matrix

The folder structurelegal/

Recommended, not required: the agents process the folder as it is. The setup commands say which file is out of place and where it would go, without creating, moving or renaming anything. Setup searches for the entity’s root folder, offers it with the reason and, if you say yes, marks it with a visible file, _CRITERIO_LEGAL.txt: the only thing it writes among your documents. Every contract has one place, its folder under contratos/: Fidel processes it and Constanza takes the compliance obligations from its record.

One folder per entity, with its tax id at the start of the name. Inside it, what the organisation keeps for the whole entity, one folder per contract and one per compliance period.

legal/
└── <entidad>/
    ├── 00-referencia/
    ├── 10-registro/
    ├── 20-politicas/
    ├── 30-normativa/
    ├── 40-canal/
    ├── contratos/<código>/
    │   ├── 10-contrato/
    │   ├── 20-garantias/
    │   ├── 30-contraparte/
    │   └── 40-ejecucion/
    └── cumplimiento-<AAAA-MM>/
        ├── 10-evidencias/
        └── 20-reportes/
estado-legal/

<entidad>/ · What the organisation keeps for the whole entity

FolderWhat goes in itAgent
00-referencia/The authority matrix —who signs what and up to what amount— and the compliance obligations matrixFidel, Constanza
10-registro/The organisation's contract register and the ERP export of payments by contract, with the cut-off date in the nameFidel
20-politicas/The policy index with each version and next review, and every policyConstanza
30-normativa/The regulatory register, the bulletins and the impact assessment of every new ruleConstanza
40-canal/The whistleblowing channel case log, with received and answered datesConstanza

contratos/<código>/ · One contract, with its code at the start of the folder name

FolderWhat goes in itAgent
10-contrato/The signed contract and every amendmentFidel
20-garantias/The insurance policies and guarantees providedFidel
30-contraparte/The counterparty's certificate of existence and representation and its documentsFidel
40-ejecucion/Delivery records, reports and the evidence of every obligation, with its id at the start of the nameFidel, Constanza

cumplimiento-<AAAA-MM>/ · One compliance period

FolderWhat goes in itAgent
10-evidencias/The evidence of every obligation in the period, with its id at the start of the nameConstanza
20-reportes/The period's compliance reportConstanza

estado-legal/ · What Fidel and Constanza write: the configuration, each contract's record, the reports and the indexes. No person edits it, and no agent writes anywhere else.

The sources14 of 14 verified

No obligation comes from a Criterio source: the organisation defines them. What is used is the model for the matrix, cited to its issuer, and nothing is built on a source still to be verified.

  • F-01

    ISO 37301:2021 · Sistemas de gestión del cumplimiento — Requisitos con orientación para su uso

    Edición 1, abril de 2021; confirmada en su revisión sistemática de 2026 · iso.org ↗

    Verified
  • F-02

    NCMA y World Commerce & Contracting · Contract Management Standard

    Cuarta edición, 19 de junio de 2025 · worldcc.com ↗

    Verified
  • F-03

    Colombia · Decreto 1082 de 2015, artículo 2.2.1.1.1.7.1 · Publicidad en el SECOP

    La compilación del decreto publicada por la CRA, consultada el 30 de octubre de 2026 · normas.cra.gov.co ↗

    Verified
  • F-04

    Colombia Compra Eficiente · ¿Cuál debe ser el valor de las garantías? · y concepto C-1270 de 2025

    La página del 7 de febrero de 2017 y el concepto del 9 de octubre de 2025 · operaciones.colombiacompra.gov.co ↗ · relatoria.colombiacompra.gov.co ↗

    Verified
  • F-05

    Ecuador · Procuraduría General del Estado · Boletín «Reflexiones sobre contratación pública»

    El boletín publicado en agosto de 2022 · biblioteca.pge.gob.ec ↗

    Verified
  • F-06

    Perú · OECE · Opinión sobre la garantía de fiel cumplimiento, Reglamento de la Ley 32069 (DS 009-2025-EF)

    La opinión del 14 de septiembre de 2026 (expediente 112712) · lpderecho.pe ↗

    Verified
  • F-07

    Chile · Decreto 661 de 2024, Hacienda · Reglamento de la Ley 19.886, artículos 39 y 77

    El texto publicado el 12 de diciembre de 2024, el que trajo José Francisco Ñáñez desde la BCN y una copia de la Asociación Chilena de Municipalidades · bcn.cl ↗ · achm.cl ↗

    Verified
  • F-08

    ChileCompra · Garantías

    La página actualizada el 25 de marzo de 2026 · chilecompra.cl ↗

    Verified
  • F-09

    México · Ley de Adquisiciones, Arrendamientos y Servicios del Sector Público, artículo 69

    La ley nueva publicada en el DOF el 16 de abril de 2025, el texto vigente de la Cámara de Diputados que trajo José Francisco Ñáñez · diputados.gob.mx ↗

    Verified
  • F-10

    TCU · Licitações e Contratos: Orientações e Jurisprudência · Lei 14.133/2021, artigos 94 e 98

    El manual actualizado el 29 de agosto de 2025 · licitacoesecontratos.tcu.gov.br ↗ · licitacoesecontratos.tcu.gov.br ↗

    Verified
  • F-11

    Argentina · Decreto 1030/2016 · Reglamento del Régimen de Contrataciones de la Administración Nacional, artículos 3, 77 y 78

    El texto original publicado en el Boletín Oficial el 16 de septiembre de 2016, el mismo del PDF que trajo José Francisco Ñáñez · argentina.gob.ar ↗

    Verified
  • F-12

    Panamá · Ley 22 de 2006 de contratación pública, texto único ordenado por la Ley 153 de 2020, artículo 123

    Gaceta Oficial Digital 29107-A, 7 de septiembre de 2020, el PDF que trajo José Francisco Ñáñez · gacetaoficial.gob.pa ↗

    Verified
  • F-13

    Costa Rica · Ley 9986, Ley General de Contratación Pública, artículos 44 y 100

    El texto publicado que trajo José Francisco Ñáñez · pgrweb.go.cr ↗

    Verified
  • F-14

    Honduras · Decreto 74-2001, Ley de Contratación del Estado, artículos 99 y 100; y la Política de publicación EDCA de la ONCAE

    El texto del decreto que trajo José Francisco Ñáñez; la política de publicación de la ONCAE, sin fecha propia, consultada en oncae.gob.hn · oncae.gob.hn ↗

    Verified
In the repository7 links

Installation, setup and terms

It installs in minutes. Before the first analysis, you accept the terms.

Three steps, and none of them asks you to edit a file. You install only the agent for the role you have; if you install several, they find each other through the entity’s state: there is nothing to connect.

Step 1

Install

  1. 01Customize → Browse plugins → Personal.
  2. 02Press + → Add marketplace from GitHub.
  3. 03Enter josenanez/criterio.
  4. 04Install the agent for your role: Fidel (Contracts) or Constanza (Compliance).

To receive every new version, turn on auto-update once: in /plugin, Marketplaces → criterio → Enable auto-update. Without it, the installed version does not change on its own.

What it needs from you

  • A folder with the documentation, as it is. A messy folder is the normal case.
  • A paid Claude plan, and the desktop app if the documents live on your machine.
  • Fifteen minutes for each.
Step 2

Set up

Each agent comes with its own setup command. It looks at your folders, asks a few questions and shows you a first result on your own documents.

/criterio-legal:legal-setup

  1. 1Which of the folders it finds is the entity’s legal folder
  2. 2The entity, its NIT or RUC and its country
  3. 3The signing-authority matrix
  4. 4How many days ahead an expiry or a notice period is flagged
  5. 5Who decides to renew
  6. 6The terms

How it asks

  • One question at a time. Never a form.
  • Every question comes with a suggested answer, and “I don’t know” is a valid answer.
  • It does not ask what it can find out by looking at the folder.
  • It does not ask you to type a path: it searches for the folder, offers it with the reason and, if you say yes, marks it with a visible file so you recognise it at a glance.
  • Nobody edits the configuration by hand: if you want to change something, you say so in the conversation.

None of them schedules itself. Each comes with the command a clock calls (legal-wake, compliance-wake), and someone sets it once as a scheduled task. If your organisation does not want unattended runs, they are run by hand.

/criterio-legal:legal-setupWhat Fidel’s setup looks like
FidelI am Fidel, Criterio’s contracts agent. I process what the company signed and say what falls due and what does not tie out. I searched your working folder and found one that looks like an entity’s legal folder: 900123456-entidad-de-prueba, with 6 contracts. Is that the one?
An illustrative walk-through on the family’s banking test material: the legal folder of a test financial entity, 6 contracts. Nothing leaves your browser.
Step 3

The terms

Nobody reads a disclaimer in a repository. So the warning reaches the person who runs the agent and the person who later receives the document, in four layers that every agent implements.

  1. 1

    One acceptance per version

    Every version of the family is accepted again and leaves on your machine a receipt in Markdown and PDF, with the SHA-256 fingerprint of the terms and of the receipt itself. Until the one for the installed version is recorded, the agent answers questions but produces no full analysis. It never assumes it or infers it from you continuing to talk.

  2. 2

    On every report

    Every report carries a footer saying it is a draft, based on which documents, how many fields had no data and how many contradictions remain open. The document travels by email and reaches a committee: the warning travels with it.

  3. 3

    At the start of every run

    Before the first finding it says which records it loaded, when they were refreshed, and whether any is stale or missing.

  4. 4

    In the legal notice

    The full terms, the legal notice and the version register —what changed in each version, which terms govern it and their fingerprint— are published on this site, and every receipt points to them.

What you agree to, in plain words

  • You get working drafts ready for review, and every version arrives tested: its evidence is public.
  • Every data point carries its citation: whoever decides checks it in the original document in seconds.
  • It works with what is written; what was agreed outside the documents comes from your team.
  • Your documents are processed on the AI platform where you run it; your organisation decides which folders go in.
  • Warranty and liability: those of the Apache 2.0 licence.
  • Every version is accepted again and leaves a receipt in Markdown and PDF. If anyone modifies it, its SHA-256 fingerprint stops matching and it is void.

Terms version 1.3, of 2026-10-28, for version 1.3.0 of the family. Every new version of the family asks for acceptance again.

Legal notice and version register →

Apache 2.0

The method, the record schema, the code that computes and the acceptance criteria, in full and with no conditions. Use it inside your organisation without asking, adapt it, and build the capability you are missing: the agent for a function should be written by someone who knows the work.

What it does not do

  • It produces working drafts, not decisions.
  • It knows what was written, not what was said outside the documents.
  • Both were tested with the engine and with the agents on 43 entities in Colombia, Guatemala, Costa Rica, Honduras, Ecuador, Peru, Chile, Mexico, Brazil, Argentina and Panama; the latest round is round 12. Their first use on a specific organisation’s documentation is the next step.
See the repository ↗

Frequently asked questions

What people usually ask when they reach the family

What it is

What do Fidel and Constanza do?

They process what the company signed and what it committed to comply with. Fidel keeps the contract register against its documents, expiries and renewal notice periods, obligations with their evidence, who signed with what authority, and what was paid against what was agreed and its guarantees. Constanza keeps the organisation's obligations matrix against its evidence, the policy review, new regulations with their assessment and the whistleblowing channel with its deadlines.

Do they replace the legal team or the compliance officer?

No. They prepare the work and check it against all of its evidence: what falls due, what has no evidence, who signed without authority and what was paid outside what was agreed. The decision —to renew, to terminate, how a clause or a regulation is read— is always made by a person.

Do they give legal opinions?

No. Neither of them interprets a clause, rules on the validity of a contract or a signature, or says what a regulation requires. What an obligation requires is defined by the organisation in its matrix, citing its source.

What do they never do?

They do not decide to renew or terminate, do not draft, negotiate, sign or send contracts, amendments or notices, and do not declare the compliance status. They do not answer whistleblowing cases or process data about who reported.

How it is used

Which documents do they process?

The ones the area already has, as they are: the contract register, each contract with its amendments, insurance policies and guarantees, counterparty certificates, payments, the signing-authority matrix, the obligations matrix, the policy index, the regulatory register and the whistleblowing case register.

How do I organise the folder?

As it is: the agents process it that way. When starting from scratch, the family recommends one folder per entity with its register, its policies, regulations and the channel; one per contract, with the contract, guarantees, counterparty and execution; and one per compliance period. Setup searches for the entity's root folder, offers it and, if you say yes, marks it with a visible file, _CRITERIO_LEGAL.txt. It is the only thing it writes among your documents.

How long until the first result?

In the first fifteen minutes, legal-setup shows the contract calendar: what falls due, notice periods coming up or already past without a decision, and overdue obligations without evidence, with the signals the engine raised in the register, the signatures and the payments.

Where do I see what they found?

In each command's report and in Rostrum, the portal for every family. It shows the latest each engine wrote, what falls due with a date —the notice period of an auto-renewing contract, the obligation that falls due— and the full path of the folder each agent works in.

How it is tested

What data was it tested on?

On synthetic material from five countries —Colombia, Ecuador, Peru, Chile and Mexico—: four industries and one control entity per country, with no defects at all, where any signal is a failure. Every family signal is planted at least once.

How do you know the engine got it right?

The material carries a key with what was planted, and the engine never sees it. The test compares every signal by its name and its key: an extra one counts the same as a missing one. The gate that checks it runs on every change to the repository.

Is the whole family tested yet?

The engine is, and Fidel and Constanza ran on all fifteen entities in the material: round 2 on the six of Colombia and Ecuador —37 of 37 signals with none extra and 808 of 815 record data points—, round 4 on Peru and Chile —37 of 37 and 812 of 813— and round 5 on Mexico —20 of 20 and 395 of 396—. Every data point missed has its defect, fixed and verified. The family is declared tested; nothing has run yet on an organisation's documents.

Data and privacy

Do my contracts leave my organisation?

They are processed on the AI platform where the agent runs, like any conversation with it. The plugins do not connect to the internet or send us anything.

What is stored, and where?

On your machine: the contract and compliance records, the reports, the log of each run and the receipt for accepting the terms, which every version of the family asks for again.

The same answers live in the repository, in families/criterio-clo/PREGUNTAS.md.

Support the work

If Criterio created value for you, help keep it moving.

Criterio remains open source. A voluntary contribution helps fund testing, documentation and the next capabilities without changing access to the software.

This is a voluntary contribution. It does not unlock features, purchase consulting services or create an advisory relationship.

Support Criterio

Choose an amount and how you want to contribute.

Choose an amount

Choose your country to see the payment methods available to you.

dLocal Go currently covers Latin America, Indonesia, Malaysia, Kenya and Nigeria. Global coverage will be added separately.

The point

What was signed was always written down. Nobody had put it next to what is happening.

An agent that processes your contracts will not hand you a control you never built. It will show you, in an afternoon, what falls due, what has no evidence and who signed without authority, and that is the only honest place to start.

Principles

Approach
Contracts and compliance, with no legal opinion.
Commitment
Generating, sharing and preserving knowledge is a professional obligation.
What it is not
It does not replace the lawyer or the compliance officer, and does not decide for them: it processes what the organisation signed and committed to comply with, and says what does not tie out.
Licence
Apache 2.0.
What comes next
What follows is in its roadmap.
Legal notice and version register →

José Ñáñez