ODCS contracts in git. Audit as JSONL. Lineage as a graph.
Drop Claude Code or Cursor into your repo and the agent
understands your data platform without an integration, an API
call, or a permission ceremony. That's not AI-aware — that's
AI-native.
01 Kiri · in-product assistant
Kiri lives inside the product, not beside it.
Every AI surface speaks as Kiri: the UI, the CLI, and the docs chat above. She knows your operating model, your role, your contracts, and your audit history. She helps your team draft and review contracts, explains lineage, triages failed applies, and never invents numbers she can't substantiate.
Brand voice locked. Persona-aware on every turn.
02 Databricks audit · one line per action
Every Kiri action against Databricks is one audit line.
CREATE, INSERT, SHOW, job submit, classification override — every Kiri → Databricks action emits a single audit record. CLI calls and MCP calls are audited identically with the same correlation id. `tail -f databricks-audit.log` is the entire demo; the regulator can read it without us being in the room.
CLI + MCP audited identically. Same logger, same fields.
03 Guardrails · refuse, don't warn
Fail-closed where it matters; the platform refuses.
Inferred PII cannot be authored as public without an audited override and a reason. `kiri project init` cannot leave the project in an invalid state. PR-time lint blocks contracts with missing owners, drift between docs and contracts, or unsigned classification changes. Default is refuse, not warn.
Authoring time, PR time, apply time — all gated.
04 AI gateway · gated + audited
Every AI call runs through one governed gateway.
Classification-gated before it leaves — a call that would send restricted data to the model is refused, and the refusal is audited with its reason. Every call is logged: model, caller, classification, tokens, cost, contract, trace id, prompt hashed not stored. And the query gate checks a natural-language question before it runs, returning allowed / gated / forbidden. Databricks Genie integrates out of the box.
Refuse by default. Every call on the record. AI proposes, code disposes.