73%
Mean cost overrun on IT projects. 18% of them overrun by more than 50%.
Applied AI · Open source
Vera, Samuel and Alba join your project office: they process every project’s documentation, compute variances and alerts, and prepare the report, the minutes and the committee pack, so your team spends its time deciding rather than consolidating.
What it costs, measured by others
73%
Mean cost overrun on IT projects. 18% of them overrun by more than 50%.
31%
Of complex projects fail to achieve the benefits they set out to deliver.
31 of every 100 complex projects
1 in 3
Projects have no baseline at all. Half of organisations have no real-time indicators, and 22% still plan in Excel.
One in every three projects
72%
Spend half a day or more every month collating reports by hand.
72 of every 100 organisations
Third-party figures, each with its source, its year and its sample. The agents’ own 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.
Vera, Samuel and Alba are the project governance family of Criterio, an open marketplace of agents. See the marketplace
Criterio · PMO family
They process what your organisation already wrote, prepare the project office’s work and tell you what changed, what contradicts itself and what no document supports.
CRITERIO · PMO FAMILY
Where the family stands: tested round after round on test data from financial entities (banks and cooperatives), retail and mining in South America, built to be more demanding than those organisations’ usual documentation. The next step is its first use on a specific organisation’s documentation.
The four, one at a time
Each tab stands on its own: you can install one agent without the others. The screenshots are Rostrum, the family’s server, publishing what the agents found in round 1’s mining test data.
criterio-portfolio
From verus, the true: she says what the documents say, not what gets reported.
Processes the whole portfolio’s documentation: builds one record per project with a citation for every data point, computes variances and alerts, and prepares the portfolio report and the committee pack.
What only she does
Checks what every manager declares against what their documents support, across the whole portfolio at once. A project reporting green with five weeks without a document is only visible to someone who looks at all forty with the same yardstick.
What she answers
Never
Declares a project’s status or prioritises demand.

Its commands, by group
portfolio-setupportfolio-wakeportfolio-serverdocument-indexportfolio-scanportfolio-reportstatus-reportsteering-packhealth-checkproject-historyraid-logchange-controlproject-charterproject-closurebudget-trackingvendor-trackingproduct-view17 commands · 10 skills
What it costs you today
Each agent extends one person: Vera the project office, Samuel each project manager, Alba each product manager. 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.
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
Hours per week on each task
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
Vera
PMO analysts · 15 h a week each (38% of the week)
1,380 ha year
—a year
Samuel
Project managers · 7 h a week each (18% of the week)
1,932 ha year
—a year
Alba
Product managers · 8.5 h a week each (21% of the week)
1,173 ha year
—a year
Write the monthly cost of each group to see what it costs.
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: reading, consolidating, drafting. It is not a saving. The person still reviews, decides and declares the status.
How many of those hours come back is something we will publish in the evidence section, with each week’s tests. Until that figure is measured, it does not go here.
Test evidence · updated with every round
Every figure comes from a real run of the repository, with its count and its 95% confidence margin.
How it is tested
4 industries
Financial entities (banks and cooperatives), retail and mining in South America. Test data written by the repository to be more demanding than usual documentation: mixed formats, contradictions, moved commitments, deliveries with no receipt and a healthy control project in each industry.
37 commands per round
The three agents in the order of a PMO, in every industry: Alba defines the product, Samuel runs a project, Vera consolidates the portfolio and Rostrum publishes it.
532 documents · 52 projects
Charters, schedules, minutes, reports and spreadsheets in text, Word, PDF, Excel, CSV and JSON, processed in the round.
116 million tokens
The language model’s (LLM) work in the round: 2 h 51 min of processing, about 43 minutes per industry.
A key they never see
What is expected is derived from the material’s facts, and every session is audited: no agent read it.
95% margin
Every figure comes with its confidence margin: it says how much the sample supports, which a percentage alone does not.
Latest cut: 2026-10-18 · commit 1bcb73f8
In each round the three agents run their 37 commands in the order of a PMO, on the documentation of one organisation per industry. What they find is compared with a key they never see.
Vera
The portfolio
99.6%
reliability of her alerts
266 of the 267 alerts she raised were correct.
Measured
Coverage: she found 266 of 266 of the alerts that were there. 4 of 4 healthy projects with no false alarms.
She found the 266 alerts that were there. The extra one is a code defect this round found: when the manager writes «No aplica» as the product, the contrast between the two records read it as a product (D056, fixed after 0.4.0).
95% confidence margin: 97.9–100%
Samuel
A project
100%
commitments and close processed correctly
108 of 108: the commitments from committee minutes and unstructured meeting notes —with their current date, their reschedules and whether they are met— and the current close date he publishes to the PMO.
Measured
108 of 108 for the third round in a row.
95% confidence margin (Wilson): 96.5–100%
Alba
A product
100%
alerts on her product detected
128 of the 128 alerts the material held about her product.
Measured
Reliability: 128 of 128 alerts she raised were right.
128 of 128, with no extra alert.
95% confidence margin (Wilson): 97–100%
Rostrum
The server
100%
checks on what it shows
2170 of 2170: every page answers, nothing technical reaches the report, it fits a phone and a desktop, it saves requests and leaves the records alone.
Measured
2170 of 2170: every industry's report landed in the folder Rostrum serves (D054 verified).
95% confidence margin (Wilson): 99.8–100%
148 of 148 commands finished and 148 kept their contract · 4 industries · no reads of the key · about 43 minutes per industry
How Vera has improved from one version to the next
Each dot is one industry in its first run with that version; the line is its 95% confidence margin. The axis starts at the lowest value published.
v0.3.41
v0.3.52
Round 1 · v0.3.63
Round 2 · v0.3.84
Round 3 · v0.3.95
Round 4 · v0.3.106
Round 5 · v0.3.117
Round 6 · v0.3.128
Round 7 · v0.3.139
Round 8 · v0.3.1310
Round 9 · v0.4.011
Round 10 · v0.5.012
Defects the tests found · 60
Every error is logged with its origin and the commit that fixes it. It is only closed when a new run verifies it.
Where they came from
For auditing
The full detail of every run. Each block opens on its own.
| Test data | Commandsfinished | Documents | Vera · reliabilitycorrect alerts of those raised | Vera · coveragealerts found of those there | Samuel · commitmentscorrect of those graded | Alba · productalerts detected of those there | Minutes |
|---|---|---|---|---|---|---|---|
| Banks | 37 / 3737 kept their contract | 128 | 58 of 58 | 58 of 58 | 27 of 27 | 36 of 36 | 40 |
| Savings and credit cooperatives | 37 / 3737 kept their contract | 126 | 52 of 52 | 52 of 52 | 27 of 27 | 25 of 25 | 41 |
| Retail | 37 / 3737 kept their contract | 146 | 90 of 90 | 90 of 90 | 27 of 27 | 36 of 36 | 45 |
| Mining | 37 / 3737 kept their contract | 132 | 66 of 67 | 66 of 66 | 27 of 27 | 31 of 31 | 45 |
Reliability: of the alerts Vera raised, how many were correct according to the key. Coverage: of the alerts the key held, how many she found. Samuel: commitments taken from minutes and unstructured meeting notes, with the current date and the number of reschedules right, and from round 6 the current close date in his record. Alba: alerts on her product that the material held and she detected.
The round on 0.4.0, the first public version: all 148 commands kept their contract, Samuel, Alba and Rostrum at 100% and Vera found every alert that was there. Her only extra alert is a code defect this round found, already fixed (D056). D054 and D055 verified.
First runs of the round, all industries together. It is what decides whether someone acts directly on an alert.
| Alert | Reliability · correct of those raised | Coverage · found of those there |
|---|---|---|
| The manager and the PMO read it differentlyThe alert is right about the material: the minutes and the schedule carry different closing dates. The key does not yet model this cross-agent reading and counts it as an error (D012). | 0 of 1 | 0 of 0 |
| Milestone declared closed, no evidence | 83 of 83 | 83 of 83 |
| Overdue commitment | 39 of 39 | 39 of 39 |
| Green the evidence does not support | 30 of 30 | 30 of 30 |
| Declared progress the schedule does not support | 28 of 28 | 28 of 28 |
| Commitment with no date | 16 of 16 | 16 of 16 |
| Overdue supplier deliverable | 13 of 13 | 13 of 13 |
| Rescheduled commitment | 11 of 11 | 11 of 11 |
| Cost variance | 11 of 11 | 11 of 11 |
| Schedule variance | 9 of 9 | 9 of 9 |
| Deliverable accepted with no receipt | 7 of 7 | 7 of 7 |
| Overdue milestone with no evidence | 6 of 6 | 6 of 6 |
| Unauthorised rebaseline | 5 of 5 | 5 of 5 |
| Project gone silent | 3 of 3 | 3 of 3 |
| Approved change with no baseline | 2 of 2 | 2 of 2 |
| Invoiced above what was accepted | 2 of 2 | 2 of 2 |
| Invoiced with no delivery | 1 of 1 | 1 of 1 |
| Test data | Run | Reliability · correct alerts of those raised | Coverage · alerts found of those there | Negative control clean | Errors by originagent · code · key |
|---|---|---|---|---|---|
| Retail13 projects · 2026-10-18 | First runv0.5.0 · round 10 | 63 of 63 · 100%95% CI 94.3–100% | 63 of 63 · 100%95% CI 94.3–100% | 1 of 1 | — |
| Mining13 projects · 2026-10-18 | First runv0.5.0 · round 10 | 47 of 47 · 100%95% CI 92.4–100% | 47 of 54 · 87%95% CI 62.8–100% | 1 of 1 | — |
| Savings and credit cooperatives13 projects · 2026-10-18 | First runv0.5.0 · round 10 | 65 of 65 · 100%95% CI 94.4–100% | 65 of 65 · 100%95% CI 94.4–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-18 | First runv0.5.0 · round 10 | 67 of 67 · 100%95% CI 94.6–100% | 67 of 67 · 100%95% CI 94.6–100% | 1 of 1 | — |
| Mining13 projects · 2026-10-17 | First runv0.4.0 · round 9 | 66 of 67 · 98.5%95% CI 92–100% | 66 of 66 · 100%95% CI 94.5–100% | 1 of 1 | — |
| Retail13 projects · 2026-10-17 | First runv0.4.0 · round 9 | 90 of 90 · 100%95% CI 95.9–100% | 90 of 90 · 100%95% CI 95.9–100% | 1 of 1 | — |
| Savings and credit cooperatives13 projects · 2026-10-17 | First runv0.4.0 · round 9 | 52 of 52 · 100%95% CI 93.1–100% | 52 of 52 · 100%95% CI 93.1–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-17 | First runv0.4.0 · round 9 | 58 of 58 · 100%95% CI 93.8–100% | 58 of 58 · 100%95% CI 93.8–100% | 1 of 1 | — |
| Mining13 projects · 2026-10-17 | First runv0.3.13 · round 8 | 51 of 52 · 98.1%95% CI 89.9–100% | 51 of 51 · 100%95% CI 93–100% | 1 of 1 | — |
| Retail13 projects · 2026-10-17 | First runv0.3.13 · round 8 | 73 of 73 · 100%95% CI 95–100% | 73 of 73 · 100%95% CI 95–100% | 1 of 1 | — |
| Savings and credit cooperatives13 projects · 2026-10-17 | First runv0.3.13 · round 8 | 69 of 69 · 100%95% CI 94.7–100% | 69 of 69 · 100%95% CI 94.7–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-17 | First runv0.3.13 · round 8 | 60 of 60 · 100%95% CI 94–100% | 60 of 60 · 100%95% CI 94–100% | 1 of 1 | — |
| Mining13 projects · 2026-10-17 | First runv0.3.13 · round 7 | 86 of 86 · 100%95% CI 95.7–100% | 86 of 86 · 100%95% CI 95.7–100% | 1 of 1 | — |
| Retail13 projects · 2026-10-17 | First runv0.3.13 · round 7 | 61 of 61 · 100%95% CI 94.1–100% | 61 of 61 · 100%95% CI 94.1–100% | 1 of 1 | — |
| Savings and credit cooperatives13 projects · 2026-10-17 | First runv0.3.13 · round 7 | 66 of 66 · 100%95% CI 94.5–100% | 66 of 66 · 100%95% CI 94.5–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-17 | First runv0.3.13 · round 7 | 67 of 67 · 100%95% CI 94.6–100% | 67 of 67 · 100%95% CI 94.6–100% | 1 of 1 | — |
| Retail13 projects · 2026-10-16 | First runv0.3.12 · round 6 | 76 of 76 · 100%95% CI 95.2–100% | 76 of 76 · 100%95% CI 95.2–100% | 1 of 1 | — |
| Mining13 projects · 2026-10-16 | First runv0.3.12 · round 6 | 60 of 60 · 100%95% CI 94–100% | 60 of 60 · 100%95% CI 94–100% | 1 of 1 | — |
| Savings and credit cooperatives13 projects · 2026-10-16 | First runv0.3.12 · round 6 | 52 of 52 · 100%95% CI 93.1–100% | 52 of 52 · 100%95% CI 93.1–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-16 | First runv0.3.12 · round 6 | 78 of 78 · 100%95% CI 95.3–100% | 78 of 78 · 100%95% CI 95.3–100% | 1 of 1 | — |
| Mining13 projects · 2026-10-16 | First runv0.3.11 · round 5 | 56 of 58 · 96.6%95% CI 88.3–100% | 56 of 56 · 100%95% CI 93.6–100% | 1 of 1 | 0 · 1 · 1 |
| Retail13 projects · 2026-10-16 | First runv0.3.11 · round 5 | 53 of 54 · 98.1%95% CI 90.2–100% | 53 of 53 · 100%95% CI 93.2–100% | 1 of 1 | 0 · 0 · 1 |
| Savings and credit cooperatives13 projects · 2026-10-16 | First runv0.3.11 · round 5 | 65 of 66 · 98.5%95% CI 91.9–100% | 65 of 65 · 100%95% CI 94.4–100% | 1 of 1 | 0 · 0 · 1 |
| Banks13 projects · 2026-10-16 | First runv0.3.11 · round 5 | 49 of 50 · 98%95% CI 89.5–100% | 49 of 49 · 100%95% CI 92.7–100% | 1 of 1 | 0 · 0 · 1 |
| Mining13 projects · 2026-10-16 | First runv0.3.10 · round 4 | 51 of 51 · 100%95% CI 93–100% | 51 of 53 · 96.2%95% CI 87.2–100% | 1 of 1 | 0 · 2 · 0 |
| Retail13 projects · 2026-10-16 | First runv0.3.10 · round 4 | 55 of 56 · 98.2%95% CI 90.6–100% | 55 of 55 · 100%95% CI 93.5–100% | 1 of 1 | 0 · 0 · 1 |
| Savings and credit cooperatives13 projects · 2026-10-16 | First runv0.3.10 · round 4 | 63 of 64 · 98.4%95% CI 91.7–100% | 63 of 63 · 100%95% CI 94.3–100% | 1 of 1 | 0 · 0 · 1 |
| Banks13 projects · 2026-10-16 | First runv0.3.10 · round 4 | 59 of 60 · 98.3%95% CI 91.1–100% | 59 of 59 · 100%95% CI 93.9–100% | 1 of 1 | 0 · 0 · 1 |
| Mining13 projects · 2026-10-15 | First runv0.3.9 · round 3 | 61 of 63 · 96.8%95% CI 89.1–100% | 61 of 61 · 100%95% CI 94.1–100% | 1 of 1 | 1 · 0 · 1 |
| Retail13 projects · 2026-10-15 | First runv0.3.9 · round 3 | 60 of 61 · 98.4%95% CI 91.3–100% | 60 of 60 · 100%95% CI 94–100% | 1 of 1 | 0 · 0 · 1 |
| Savings and credit cooperatives13 projects · 2026-10-15 | First runv0.3.9 · round 3 | 64 of 64 · 100%95% CI 94.3–100% | 64 of 64 · 100%95% CI 94.3–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-15 | First runv0.3.9 · round 3 | 67 of 68 · 98.5%95% CI 92.1–100% | 67 of 67 · 100%95% CI 94.6–100% | 1 of 1 | 0 · 0 · 1 |
| Mining13 projects · 2026-10-15 | First runv0.3.8 · round 2 | 43 of 44 · 97.7%95% CI 88.2–100% | 43 of 43 · 100%95% CI 91.8–100% | 1 of 1 | 0 · 0 · 1 |
| Retail13 projects · 2026-10-15 | First runv0.3.8 · round 2 | 60 of 60 · 100%95% CI 94–100% | 60 of 60 · 100%95% CI 94–100% | 1 of 1 | — |
| Savings and credit cooperatives13 projects · 2026-10-15 | First runv0.3.8 · round 2 | 58 of 59 · 98.3%95% CI 91–100% | 58 of 58 · 100%95% CI 93.8–100% | 1 of 1 | 0 · 0 · 1 |
| Banks13 projects · 2026-10-15 | First runv0.3.8 · round 2 | 62 of 67 · 92.5%95% CI 83.7–97.1% | 62 of 62 · 100%95% CI 94.2–100% | 1 of 1 | 0 · 0 · 5 |
| Mining13 projects · 2026-10-14 | First runv0.3.6 · round 1 | 37 of 39 · 94.9%95% CI 83.1–100% | 37 of 37 · 100%95% CI 90.6–100% | 1 of 1 | 0 · 0 · 2 |
| Retail13 projects · 2026-10-14 | First runv0.3.6 · round 1 | 36 of 37 · 97.3%95% CI 86.2–100% | 36 of 36 · 100%95% CI 90.4–100% | 1 of 1 | 0 · 0 · 1 |
| Savings and credit cooperatives13 projects · 2026-10-14 | First runv0.3.6 · round 1 | 60 of 60 · 100%95% CI 94–100% | 60 of 60 · 100%95% CI 94–100% | 1 of 1 | — |
| Banks13 projects · 2026-10-14 | First runv0.3.6 · round 1 | 53 of 54 · 98.1%95% CI 90.2–100% | 53 of 53 · 100%95% CI 93.2–100% | 1 of 1 | 0 · 0 · 1 |
| Mining13 projects · 2026-10-14 | First runv0.3.5 | 53 of 54 · 98.1%95% CI 90.2–100% | 53 of 53 · 100%95% CI 93.2–100% | 1 of 1 | 0 · 0 · 1 |
| Retail13 projects · 2026-10-14 | First runv0.3.5 | 49 of 49 · 100%95% CI 92.7–100% | 49 of 49 · 100%95% CI 92.7–100% | 1 of 1 | 0 · 0 · 0 |
| Savings and credit cooperatives13 projects · 2026-10-14 | First runv0.3.5 | 34 of 39 · 87.2%95% CI 66.7–100% | 34 of 34 · 100%95% CI 89.8–100% | 0 of 1 | 0 · 3 · 2 |
| Banks13 projects · 2026-10-14 | First runv0.3.5 | 51 of 53 · 96.2%95% CI 86–100% | 51 of 51 · 100%95% CI 93–100% | 1 of 1 | 0 · 0 · 2 |
| Banks10 projects · hand-written cases · 2026-10-14 | Corrected after seeing itv0.3.5 | 29 of 31 · 93.5%95% CI 79.3–100% | 29 of 29 · 100%95% CI 88.3–100% | 1 of 1 | 0 · 0 · 2 |
| Banks10 projects · hand-written cases · 2026-10-14 | First runv0.3.4 | 21 of 33 · 63.6%95% CI 40–84.8% | 21 of 25 · 84%95% CI 65.3–100% | 0 of 1 | 0 · 10 · 6 |
A first run is one by a version that had not seen that material: it is the measurement that counts. A corrected run is the same family of material after fixing the code while looking at it; it is not independent, it is published to show the effect of the fix and it is never added to the first runs.
The margin is the wider of Wilson’s interval and a per-project bootstrap: the alerts of one project fail together, so they are not counted as independent.
The origin of each error is classified by a person reviewing it: the model’s reading, the code that computes, or the answer key. It is the only figure that does not come from a script.
Arithmetic, dates, thresholds and alerts, on well-built records and without the model. A deterministic computation has no random error to estimate: the rule matches the key or it does not. So it is reported as regression —how often it matched— and not as an error rate.
Runs on every code verification. Latest run: 2026-10-15, on commit c97cd8e: 5 of 5 cuts match the key. The first one was run by hand, on commit 56a1478.
5 / 5
Cuts matching the key
Five weeks of the same organisation, written a different way each time.
117
Cases
51 projects and 66 products. Weeks repeat cases, so they are not added up.
2 / 2
Clean negative controls
Healthy cases that must not raise a single alert, in every cut.
3.1
ms per document
The script alone, without the model.
Weekly cuts of the longitudinal test
A synthetic organisation of 51 projects and 66 products. The same material is written a different way every week and the expected answer does not change.
Cut 1
ordered
✓ 100%
461 docs
Cut 2
flat
✓ 100%
526 docs
Cut 3
shuffled
✓ 100%
569 docs
Cut 4
no folders
✓ 100%
616 docs
Cut 5
ordered
✓ 100%
641 docs
The output did not change with the shape of the folder. Median: 3.1 ms per document. ✓ negative controls at zero.
Code verification
Full run of 2026-10-18
Checks by owner
It shows where verification sits; the sizes are not comparable with each other.
What comes next
A results page that only says what passed is advertising. What makes it auditable is what it says is not known yet.
How they work
Five steps and one boundary. The language model (LLM) reads and extracts; the code computes. It is generative AI plus a deterministic engine, applied to the project office.
Your documents
Charters, schedules, minutes, status reports, spreadsheets, emails. However they are, wherever they are.
It does not need the folder to be tidy.
The model extractsText
Each document is turned into text: Word, Excel, PowerPoint, PDF and email. Whatever it cannot read, it declares, with the reason.
Two fingerprints per document: only what changed is read again.
The model extractsThe record
One per project. 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 extractsArithmetic
Variance against the original and the current baseline, days of silence, committed against executed, overdue commitments, who is affected if a project moves.
Deterministic and tested.
The code computesSignals
Only what crossed a threshold: what changed, what contradicts itself, what no document supports. If nothing crossed one, nothing is said.
Silence is the feature.
The code computesNo number 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
The agents never talk to each other
They talk through the project record. Two agents that talk directly are two agents that have to be deployed together.
Rostrum does not write
The server publishes the report and takes questions. It never touches the record.
The source can change; the record does not
If the documents come from another system tomorrow, a new adapter fills the same fields.
Declared and evidenced never merge
What the manager states and what the documents support live in separate fields. The gap between the two is usually the most valuable finding.
The model extracts, the code computes
Reading a date is reading. Subtracting, projecting and adding is arithmetic, and arithmetic lives in code, where it can be tested.
No agent writes the declared status
A person writes it. If an agent did, comparing what is declared against the evidence would compare the system with itself. It is a restriction on the write path, and it fails if tried.
One record, one writer
If Samuel and Vera read the same project, they write two records and never merge them. What would have been a write conflict becomes the signal.
Installation, setup and 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 more than one, they find each other through the project record: there is nothing to connect.
What it needs from you
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-portfolio:portfolio-setup
How it asks
None of them schedules itself. Each comes with the command a clock calls (portfolio-wake, pm-wake, product-wake), and someone sets it once as a scheduled task. If your organisation does not want unattended runs, they are run by hand.
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 all three agents implement.
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.
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.
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.
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
Terms version 1.1, of 2026-10-15, for version 0.5.0 of the family. Every new version 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
Frequently asked questions
What it is
They process what the project office has already written. Vera builds one record per project with the citation of every data point and consolidates the portfolio; Samuel keeps the commitments from each meeting of a project; Alba checks a product's definition against the evidence of demand; Rostrum publishes the report for whoever never opens a folder.
No. They prepare working drafts and say what changed, what contradicts what and what no document supports. No agent declares a project's status: a person does.
A paid Claude plan, the desktop app if the documents live on your computer, and a folder with the documentation as it is. A messy folder is the normal case.
How it is tested
On test data from four industries —financial institutions (banks and credit unions), retail and mining in South America—, built to be more demanding than those organisations' usual documentation: over 500 documents per round in Markdown, Word, PDF, Excel and CSV; contradictions between documents; commitments moved up to six times; milestones declared met with no receipt; projects gone silent; vendor deliveries with no evidence; and in each industry one healthy project that must raise no alert.
Each round comes with a key of what the material holds, derived from the facts the generator wrote. No agent sees it: every session is audited and the number of reads is published (zero in all of them). Every figure is published with its count and its 95% confidence margin.
In the repository, under tests/evidencias/: what each command showed in each round, the key, the grading, and every defect with its origin, the commit that fixes it and the round that verified it. The family's page summarises it.
Not yet on a specific organisation's documentation: that is the next step, and what will decide version 1.0. If your PMO wants to be among the first, open an issue in the repository.
Data and privacy
They are processed on the AI platform where the agent runs, like any conversation with it. The plugins do not connect to the internet and send us nothing.
On your computer: the records, the reports, the log of each run and the receipt for accepting the terms. None of it travels anywhere.
No. Today the only way back is the one you choose: an issue on GitHub. Sharing findings to improve the family will always be a question, and nothing is ever sent without a yes.
Versions and licence
Because the record schema may change with the first use on real documentation, and a 1.0 promises it will not. 1.0 comes when the schema survives that use.
Nothing. It is open source under Apache 2.0: use it in your organisation without asking permission, and adapt it. The contribution on the page is voluntary and unlocks nothing.
The terms of each version. The agent shows them, asks for an explicit yes and leaves a receipt in Markdown and PDF with the SHA-256 fingerprint of the terms. Every new version is accepted again.
Help
With an issue in the repository and the document that shows it, with nobody's real data. Security flaws go through GitHub's private report, never in a public issue.
Yes. The repository explains the method and the acceptance criteria, and the finance and legal families are declared and not yet built: a function's agent should be written by someone who knows the work.
The same answers live in the repository, in families/criterio-pmo/PREGUNTAS.md.
Support the work
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 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
The evidence was always there. Nobody had read it together.
An agent that processes your portfolio will not hand you a governance you never built. It will show you, in an afternoon, exactly where it is missing — and that is the only honest place to start.
Principles
Criterio is open source under Apache 2.0. The project governance family (Vera, Samuel, Alba and Rostrum) is built and tested on test data from financial entities (banks and cooperatives), retail and mining in South America; the CFO and CLO capabilities are declared and not yet built. If you practise one of them and want to build its agent, the repository explains how.
Legal notice and version register →José Ñáñez