Skip to content
hudasolPublic

About

Verifiability workbench for UAE AI-transformation targets. Turns headline commitments into evidence-linked ledgers and shows how “agentic” and “50%” change under different definitions. Public sources plus clearly labeled synthetic data.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Mutabaa · متابعة

A verifiability workbench for UAE and Abu Dhabi AI transformation targets. A student prototype and a proposal seed, not a deployment and not an official tool.

Mutabaa (متابعة) is Arabic for "follow up" or "monitoring".

The problem

Public AI transformation targets in the UAE set percentages and deadlines that leaders will be assessed on. Several key terms ("agentic", "service", "50%") have no published operational definition, and public progress claims are not graded by the quality of their evidence. From outside the owning entity, many targets cannot yet be checked.

What it does

  • Ledger. Public commitments with a six check verifiability score (a number, a unit, a dated deadline, an owner, a way to measure, no undefined terms) and the questions to put to the owning entity.
  • Status with a neutral default. Written rules applied to graded public evidence. "No public evidence" never means "not done", and media only evidence never moves a status.
  • Definition Lab and Portfolio. Recompute a headline "% agentic" under every definition on a labelled synthetic registry or on your own file, and see how much entity rankings move.
  • My commitments. Load an office's own commitments (CSV or JSON). Each is scored with the same checks and gets questions in English and Arabic. The file stays in the browser.
  • Wording check and Definition Card. Paste one commitment sentence and see which of the six checks it fails and what to ask (#/lint, or mutabaa lint); fill in a Definition Card to state a unit, scope, threshold and guardrails and recompute the synthetic headline (#/card, or mutabaa definition validate). Both run in the browser and use fixed, public rules.
  • Weekly source check and print. A scheduled workflow compares the live source pages with what was recorded and opens one issue only when a page changed or disappeared (docs/MONITORING.md). Any ledger view prints as a one page summary.
  • Arabic is unreviewed. The Arabic text was written by the author and has not been checked by a native speaker. A glossary (data/glossary/glossary.json) and a review kit (docs/review_kits/arabic_review.md) are provided so that a reviewer can do this.
  • Assurance and evaluation. Exploratory analyses on the Assurance page, and preregistered experiments in docs/EVALUATION.md: 31 of 39 predictions hit (six experiments on the real ledger, three on synthetic or simulated data), 8 missed, and the misses are reported.

The real ledger holds 96 commitments from 62 public sources (56 official, 6 secondary media), 10 evidence items and 5 media claims held apart from status. 54 sources were verified against the live page; 7 could not be reached and are reported as unreachable.

What this is not

  • Not a measurement of any real entity. The registry used by the Definition Lab and the Portfolio is synthetic and labelled on every screen.
  • Not an assessment of government performance. A status describes public evidence, not delivery.
  • Not endorsed by, produced with, or affiliated with any entity. In prose, real entities are named only in docs/CONTEXT.md; the data files quote their sources as published.
  • Not an official standard. The maturity ladder and the checks are proposals.

The ledger of public commitments

Score your own commitments

In the browser, open My commitments and choose a CSV or JSON file. Nothing is uploaded. From a terminal:

mutabaa template > commitments.csv
mutabaa questions commitments.csv --lang both
mutabaa score commitments.csv --strict --min-ratio 0.5    # exit code 1 when a gate is not met

Scoring a commitments file in the browser

See the user guide and the command line reference.

Run it

Needs Python 3.12 or newer and Node 22 or newer. From a fresh clone:

python -m pip install -e ".[dev]"
python -m pipeline validate && python -m pytest --cov=pipeline
cd site && npm ci && npm test && npm run build

Then npm run dev inside site/ serves the app locally. make reproduce runs the full check, including a rerun of the preregistered evaluation and the browser tests.

How it fits together

flowchart LR
  SRC[Public sources] --> NOTES[(Extraction notes, hashed)]
  NOTES --> DATA[(Ledger: commitments, evidence, claims)]
  DATA --> VAL[validate]
  VAL --> ENG[score and status engines]
  GEN[Seeded synthetic generators] --> REG[(Labelled synthetic registry)]
  REG --> SWEEP[definition sweep]
  ENG --> BUILD[build: one payload]
  SWEEP --> BUILD
  EVAL[preregistered evaluation] --> FACTS[(results and facts)]
  FACTS --> DOCS[documents, checked by tests]
  BUILD --> APP[Static web app, English and Arabic]
  USER[Your file, in the browser only] --> APP
Loading

Python is the reference implementation. The browser mirrors only the sweep, the portfolio ranking, the score and the questions, and golden files in data/golden/ keep each of them identical to Python. See docs/ARCHITECTURE.md.

Data: what is real, what is synthetic

Data Type Notes
Commitments, evidence, claims Real, public Official sources first; secondary media graded lower and flagged
Service and operation registry Synthetic Generic archetypes, never real entity names; every record is_synthetic: true; badged in the UI
Uploaded files Your data Processed in the browser only; never sent anywhere

Real and synthetic numbers are never combined into one figure. See docs/DATA_STATEMENT.md.

Project status

Component Status Tag
Plan, schemas, tooling, CI done v0.0.1-plan, v0.1.0
Real ledger, evidence, claims and validation done v0.2.0
Scoring and status engines done v0.3.0
Synthetic registry and sensitivity engine done v0.4.0
Web workbench in English and Arabic done, Arabic not yet reviewed by a native speaker v0.5.0 to v0.7.0
Blind second extraction done v1.0.0
Live verifier, search log, offline build, security and browser tests done v1.1.0, v1.2.0
Robustness, calibration, agreement, Assurance page done, labelled exploratory v1.3.0
Portfolio view, pilot plan, risks, sources policy, corrections, compliance mapping done v1.4.0
Voice and identity rules, facts checked against documents, layer and schema contracts, coverage gate, decision records, preregistered evaluation, My commitments done v1.5.0
Command line, preregistered baselines E5 and E6, type and lint gates, size and speed guards, user guide done v1.6.0
Extended ledger of 96 commitments, preregistered E7, environment records done v1.7.0
Validity study E8, wording linter with preregistered E9, weekly drift workflow, Definition Card done; E8 is reported as fragile v1.8.0
Glossary and Arabic review kit, 320 pixel and print checks, security and CI updates, adversarial review done v1.9.0
Human review of extraction notes and Arabic; a person labelled gold set; legal reading of the sources policy; a real pilot open

Documents

docs/USER_GUIDE.md, docs/CLI.md and docs/PERFORMANCE.md for use. For the method, docs/LIMITATIONS.md first. Then docs/METHODOLOGY.md, docs/EVALUATION.md, PREREGISTRATION.md, docs/ARCHITECTURE.md, docs/adr/, docs/DATA_STATEMENT.md, docs/CONTEXT.md, docs/SECURITY.md, docs/MONITORING.md, docs/review_kits/arabic_review.md, docs/DECISIONS_OVERNIGHT.md, docs/OVERNIGHT_REPORT.md, docs/PILOT.md and docs/DECISIONS.md.

Commands

mutabaa --help lists them all; docs/CLI.md describes each. The repository commands are validate, build, analyse, evaluate, facts, sync-docs, schema, golden, verify-live, diff, monitor and e8-freeze; the user commands include score, questions, template, lint and definition validate. cd site && npm run build:offline writes one HTML file that opens from a USB stick.

Principles

  1. Neutral by default. Every commitment starts at "no public evidence".
  2. Grounded. Every real field links to a source; anchors and hashes are checked by machine.
  3. Deterministic. No model judgement at runtime; every random step takes a seed.
  4. Honest about limits. Synthetic data is labelled; the rubric is labelled a proposal; analyses run after the design are labelled exploratory.

Licence

Code: MIT. Dataset (data/real, data/synthetic): CC BY 4.0. Source material remains the property of its publishers; this repository stores URLs, retrieval dates and short anchors, not republished text.

Author

Huda Mueen. An independent student project on UAE government AI transformation targets.

About

Verifiability workbench for UAE AI-transformation targets. Turns headline commitments into evidence-linked ledgers and shows how “agentic” and “50%” change under different definitions. Public sources plus clearly labeled synthetic data.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages