Data Intelligence Lab
Reproducible demos across data governance, customer analytics, privacy and governed AI.
A single home for the demos and reference implementations behind four areas of work: data governance, customer analytics, data privacy and governed AI.
Each track holds self-contained projects. They are evidence, not products — every project is labelled with what it actually is, so nobody mistakes a 2025 experiment for something under active maintenance.
| Track | What lives here |
|---|---|
data-governance/ |
Catalog-aware agents: reading metadata, and using it as context before touching data |
governed-ai/ |
LLM agents with grounded access to data — SQL, RAG, classification |
customer-analytics/ |
Segmentation, churn, next-best-offer, ARPU, incrementality — on one synthetic, causal, reproducible telco data model |
data-privacy/ |
(empty) consent, minimisation, subject rights |
| Project | Track | What it does | Maturity | History |
|---|---|---|---|---|
openmetadata-mcp-agent |
data-governance | Conversational layer over an OpenMetadata catalog — ask in natural language, answered via MCP tools | reference |
35 commits · 2026-03 → 2026-06 |
agent-data-analyst |
data-governance | Analyses the data using the catalog as governance context: who owns the table, did it pass quality, what the codes mean | reference · paused |
47 commits · 2026-02 → 2026-06 |
agent-sql-khipu_ai |
governed-ai | LLM agent with SQL access and a RAG knowledge base, local models | archived snapshot |
8 commits · 2025-01 → 2025-11 |
agent_text_classification |
governed-ai | Sentiment classification with a local LLM | archived snapshot |
8 commits · 2025-02 |
telco-customer-intelligence |
customer-analytics | Synthetic, causal, reproducible telco data model + the analytics cases it feeds (segmentation, churn, NBO, ARPU, incrementality) | work in progress |
data model + churn and incrementality cases built & tested; 3 cases to go |
The two agents in data-governance/ are a progression, not a duplicate.
openmetadata-mcp-agent talks to the catalog. agent-data-analyst analyses the data,
using the catalog as context first. Reading them side by side is the point.
| Label | Means |
|---|---|
maintained |
Actively developed, issues get answered |
reference |
Complete and working; kept as a reference implementation, not actively extended |
demo / POC |
Illustrates one idea; not built to be deployed |
archived snapshot |
Preserved as it was written, not modernised |
archived snapshot is literal: those directories are byte-identical to the repos they
came from. Diff them against the originals — nothing was retouched. Their linter findings
are silenced in pyproject.toml rather than patched, because editing a snapshot to look
like it was written today destroys the only thing it is good for.
Every project keeps its full original history. Migration used
git filter-repo --to-subdirectory-filter, so commits already point at the track path —
git log, git log --follow and git blame all work from the new location:
git log --oneline -- tracks/data-governance/agent-data-analyst
git log --follow -- tracks/data-governance/agent-data-analyst/agent.py(A plain git subtree add leaves the commits pointing at the old paths: the history is in
the graph but is not reachable from the track. That is the difference between moving files
and preserving history.)
Each project keeps its own README, .env.example and dependencies. Start there:
cd tracks/<track>/<project>
cat README.mdNothing here needs credentials to read. Projects that connect to a live catalog or
database document what they need in their own .env.example — never real values.
Stated plainly rather than hidden behind a green badge:
- Tests exist only for
telco-customer-intelligenceso far (schema, referential integrity, no-leakage, causal signal, the churn case's leakage boundary and metric arithmetic, and the incrementality case's fence around its answer key — standard-library only, so CI runs them without installing anything). The migrated agent tracks still have none; CI's pytest job collects everytracks/<track>/<project>/tests/directory as it appears. Thetest_*.pyfiles under somescripts/folders are manual integration scripts — they need a live catalog, a database and credentials — so CI deliberately does not collect them. data-privacy/is empty;customer-analytics/has its data model plus the churn and incrementality cases built, with three cases to go (see #64).- Dependencies in the migrated agent projects are declared with ranges, not pinned. A fresh install today may not resolve to what the author ran. (The customer-analytics data model has no third-party dependencies — standard library only.)
MIT — see LICENSE.
