Start free in 5 minutes
Froga is a high-risk AI governance engine that closes the ISO 23894 risk treatment loop over git. This quickstart walks the quickstart-education example: a pass/fail student classifier classified as high-risk (EU AI Act Annex III §3 — educational systems), using real data from the UCI Student Performance study (Cortez & Silva 2008, CC BY 4.0).
What you get for free: signed evidence (ECDSA-P256 + DSSE + in-toto) + a real ISO 23894 verdict — generated and verified locally, without sending any data to a server. The engine is Apache-2.0.
The commands, commit messages and gate colour you read below are not written by hand: each GuionStep block reads them from the published quickstart-education steps/ guion. They are the 11 real steps of that guion; if a step did not exist, the build would fail. What you read is exactly what the repository does.
Requirements
Section titled “Requirements”frogainstalled (Installation).uv(Python ≥ 3.11) anddvc ≥ 3on the PATH.- ~5 minutes at a terminal.
To follow along on the ready-made repository, clone the quickstart-education example from the demo catalogue: it carries the froga.yaml, the data and the pipeline at the state of each step. If you prefer to start from scratch, each block below is the commit you would make yourself, in order.
The free cycle, milestone by milestone
Section titled “The free cycle, milestone by milestone”The guion advances in four milestones. The guion assigns each step to one of the two workshop roles (each block’s badge tells you whose turn it is): Nerea, the product owner, declares the identity, the framing and the risk programme in the froga.yaml manifest; Martha, the dev, brings the data, writes the pipeline and runs the gates. You will play both parts. There is no treatment: the scenario is deterministic and the ISO 23894 gate closes green on the first try — the free story is to demonstrate the process without paying.
Start the project and declare the system (free: ISO 23894 only)
Section titled “”The dev starts the repository as a uv project with DVC (no SCM). Then the product owner declares the system identity (froga.yaml v0) and the framing: the key point is that the only declared standard is iso/23894@2023 — the prEN 18228 presumption, the sectorial standards and the Annex IV are the paid tier and are not declared (that is the open-core boundary).
15
git init -q -b maingit config user.email marta@demo.seigarrena.devgit config user.name "Marta Demo"uv init --bare --name vldemo-quickstart --python 3.12patch: pyproject-index.patchuv add "dvc>=3" pyyaml froga "venturalitica==0.6.11" "mlcroissant>=1.0" pyarrow "scikit-learn==1.8.0" pandas joblibpatch: gitignore.patchpatch: gitattributes.patchpatch: readme.patchuv syncuv run dvc init --no-scm -quv run dvc config core.analytics falsefroga pubkey --out .froga/PUBKEY.txtgit add -Agit commit -m "init: repo, proyecto uv (deps reales) y README del reproductor"
Bring the real data and set the risk programme
Section titled “”The dev brings the real data (UCI Student Performance, 395 students) with its Croissant manifest and the licence notice, and writes the featurize step. The product owner closes the manifest with the minimum risk programme: one risk (risk.unfair-prediction) with two measures — demographic parity (demographic_parity_diff < 0.15, a gate) and minimum accuracy (accuracy_score > 0.65, an audit). Pure RDD: the risk and its numeric threshold are fixed before any model exists (the diff of the last commit shows it).
Measure V1: the ISO 23894 gate closes green
Section titled “”First the dev compiles the risk programme into the OSCAL assessment plan — the gate’s contract: which controls will be measured and against which threshold. Then it adds the model (a tabular logistic regression, seed: 42) and runs the self-check. The scenario is deterministic: the gate closes green on the first try. The venturalitica SDK (on PyPI; uv pip install venturalitica) measures the two ex-ante controls — parity demographic_parity_diff ≈ 0.055 (below 0.15) and accuracy accuracy_score ≈ 0.76 (above 0.65); both pass, so the gate is GREEN. froga run leaves a signed .froga/bundle.json and froga.lock (the freshness anchor).
froga compilegit add -Agit commit -m "compile: assessment plan OSCAL (contrato del gate, antes del modelo)"
patch: params.patchpatch: dvc-evaluate.patchpatch: train.patchpatch: evaluate.patchpatch: compliance-eval.patchfroga rungit add -Agit commit -m "modelo: logreg (train/evaluate + dvc.yaml) — run: autochequeo ISO 23894 (gate VERDE; seed=42)"
ISO conformance and request: the cycle stays open (free-tier boundary)
Section titled “”The dev emits the conformance of the only declared standard (ISO 23894) and the reconstruct of the cycle from the git history — both signed — and then requests approval. This is where the free tier ends: the cycle stays open. There is no approval because there is nothing to approve to green — the paid dossier (prEN 18228 + sectorial catalogues + Annex IV) is not attested. Governing the RDD cycle up to the request, with signed and auditable evidence, is exactly what the free tier gives you.
froga conformance --standard eu/pren-18228@2026 --outmay failfroga conformance --standard iso/23894@2023 --outmay failfroga reconstruct --outmay failgit add -Agit commit -m ".froga: conformance (prEN 18228 + ISO 23894) + reconstruct firmados"
solicitud de aprobación (el acto lo commitea froga request)Each artifact’s signature is ECDSA-P256: the bundle.json and the reports are sealed against your local public key, so any alteration is detected (tamper-evidence). That is the root of trust everything else relies on.
What you have when you finish (free tier)
Section titled “What you have when you finish (free tier)”| Artifact | Produced by | What it certifies |
|---|---|---|
.froga/bundle.json + .sig | froga run | Signed evidence: measured controls, risk analysis, dvc.lock |
froga.lock | froga run | Freshness anchor (pipeline stage hashes) |
.froga/conformance/iso_23894_2023.json + .sig | froga conformance --out | Clause-by-clause verdict against ISO/IEC 23894:2023 |
.froga/reconstruct.json + .sig | froga reconstruct --out | Treatment cycle reconstructed per risk, traceable to commits |
Everything generated and signed locally. Apache-2.0. No data sent to external servers.
The free → paid value ladder
Section titled “The free → paid value ladder”The free tier produces a real self-check against ISO/IEC 23894:2023: the AI risk management process. It is signed, auditable evidence, useful for internal due diligence and for showing an auditor that the process exists.
When you need to prove conformance to a regulator, the paid tier adds:
- The presumption of conformity under Art. 9 of the EU AI Act, which comes from aligning the system with prEN 18228 (the harmonised European standard in preparation). The verdict moves from “good practice” to “presumption before the regulator”.
- Sectorial catalogues: DORA (financial services and digital resilience), MDR (medical devices Reg. EU 2017/745), bias control (prEN 18283), and AI cybersecurity (prEN 18282). Each catalogue maps your controls to the specific obligations of the sector.
- The Annex IV assembled in the cloud: Technical Documentation Art. 11 generated automatically from the signed evidence, in web and PDF format, ready to attach to the declaration of conformity.
The pricing unit is the governed AI system, not engine usage. The engine (froga) is Apache-2.0 forever. Which standard lands in which plan (Starter, Pro, Enterprise), the reference prices and how the assisted-sale upgrade works: Plans & standards.