Skip to content
Back to skills

06 Genie Discover Ontology

ASecurity

Contract and guardrails for authoring the Genie Ontology in Databricks Discover — domains, subdomains, Pages, and a Question→Metric View Routing Page. Use when modeling a Discover domain, drafting Pages for measures, or writing a routing Page for a Genie Accelerator track (deck Exercises 4 and 5). This is a REFERENCE + DRAFTING-CONTRACT skill, not an automation skill: Pages have NO public create/update API, so Genie Code DRAFTS content inside the Discover UI editor and a human publishes. Codi...

  • 6 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 23, 2026
businessgorailsapici/cd

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add databricks-solutions/vibe-coding-workshop-template --skill 06-genie-discover-ontology --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 06 Genie Discover Ontology?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 06 Genie Discover Ontology
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/databricks-solutions-06-genie-discover-ontology/badge)](https://www.skillsdirectory.com/skills/databricks-solutions-06-genie-discover-ontology)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: genie-discover-ontology
description: Contract and guardrails for authoring the Genie Ontology in Databricks Discover — domains, subdomains, Pages, and a Question→Metric View Routing Page. Use when modeling a Discover domain, drafting Pages for measures, or writing a routing Page for a Genie Accelerator track (deck Exercises 4 and 5). This is a REFERENCE + DRAFTING-CONTRACT skill, not an automation skill: Pages have NO public create/update API, so Genie Code DRAFTS content inside the Discover UI editor and a human publishes. Codifies the Beta limits, Manage Discovery permission, the chunk-safe sentence rule, the domain ID-vs-name gotcha, and what a good Domain / Page / Routing Page contains. Points back to the Step 11–13 prompt templates rather than duplicating them; hands off to genie-space-patterns for the Space itself.
clients: [ide_cli, genie_code]
bundle_resource: none
deploy_verb: none
deploy_note: "No public create/update API for Pages (Beta) — nothing to bundle-deploy. Domains/subdomains and Pages are authored in the Discover UI (Catalog → Discover); Genie Code drafts field contents and the user publishes. Needs Manage Discovery on the domain. Pages currently ground Genie One citations; Genie Agent / Genie Code integration is roadmap."
coverage: full
metadata:
  author: prashanth subrahmanyam
  version: "0.1"
  domain: semantic-layer
  role: worker
  pipeline_stage: 6
  pipeline_stage_name: semantic-layer
  called_by:
    - semantic-layer-setup
  standalone: true
  last_verified: "2026-09-13"
  volatility: high
---

# Genie Discover Ontology (Domains, Pages, Routing)

## Overview

The **Genie Ontology** lives in **Databricks Discover** (Catalog → Discover): a **domain** with
3–5 **subdomains**, one or more **Pages** (business definitions for measures/terms), and a
**Routing Page** that maps how people phrase questions to the governed Metric View + measure that
should answer them. It is deck **Exercise 4** (Domain + Pages) and **Exercise 5** (Routing Page) of
the Genie Accelerator track.

**Core principle — this skill does not automate; it makes drafts consistent.** Genie Code already
owns the mechanics (drafting Page fields, proposing synonyms, mapping terms). This skill exists so
those drafts land the same way every time — chunk-safe, formula-anchored, governed-source-linked —
and so the Beta limits and permissions are stated once. **If Genie Code + the Discover UI can do it
natively, describe the contract; do not re-implement it.**

---

## When to Use This Skill

Use this skill when:
- Modeling a Discover **domain + subdomains** for a Genie Accelerator track (Step 11).
- Drafting **Pages** for the signed-off measures (Step 12).
- Writing the **Question → Metric View Routing Page** (Step 13).
- Explaining, in the app's "how it works," what Discover/ontology is and its Beta limits.

Do **not** use this skill for the Genie Space itself (instructions, data assets, benchmarks,
optimize loop) — that is `03-genie-space-patterns`. See the hand-off table below.

---

## Hard limits — state these before you touch Discover

| Fact | Consequence for the workflow |
|---|---|
| **Pages is Beta.** | Expect UI/behaviour changes; keep the "how it works" caveat visible. |
| **No public create/update API for Pages.** | Genie Code cannot create Pages headlessly. It **drafts the field contents; a human pastes/publishes** in the Discover UI Page editor. Never claim a Page was "created" via API/CLI. |
| **Needs `Manage Discovery` permission on the domain.** | Without it, bulk-import and Page publish silently fail. Check first. |
| **Pages currently ground *Genie One* (citations), not Genie Agents / Genie Code yet.** | Set expectations: authoring Pages improves Genie One answers now; Agent/GC consumption is roadmap. Do not promise the Genie Space will read Pages. |
| **Domains/subdomains ARE quick to create in the UI.** | UI-first is the *preferred* path (a few clicks, easy to see). Genie Code assist is a fallback, not the default. |

---

## Step 11 — Domain + subdomains (UI-first)

**Preferred: create it in the Discover UI** — Catalog → Discover → New domain → add 3–5 subdomains
covering the PRD scope. **If the workshop pre-created a domain, use it** — skip creation, just open
it and capture the IDs.

- **Capture the domain ID and every subdomain ID to `.vibecoding-state.md`.** Later steps
  (Pages, bulk import) need the internal **ID**, not the display **name**.
- Genie Code's role here is *read-only assist*: show the IDs, confirm the taxonomy matches the PRD.
- **Gate:** a domain with 3–5 subdomains exists (new or pre-created); IDs saved to state.

*Optional Genie Code assist (fallback only — prefer the UI above):*

```
Read docs/design_prd.md and .vibecoding-state.md first — the domain scope follows the PRD.

If a domain called <domain> already exists, use it — just show me its domain and subdomain IDs.
Otherwise create a domain called <domain> with these subdomains: <subdomain_1>, <subdomain_2>,
<subdomain_3>, covering <one sentence describing scope> for <function>.

Either way, show me the domain and subdomain IDs and save them to .vibecoding-state.md.
```

---

## Step 12 — Page authoring contract

A Page is drafted by Genie Code in the Discover UI Page editor, then published by a human. Every
Page for a measure MUST contain:

1. **Definition** — one paragraph, plain business language.
2. **Exact formula** — naming the **governed Metric View** (`<write_catalog>.<write_schema>.<metric_view>`)
   and the measure, not the raw tables.
3. **Synonyms** — every way someone asks: the formal name, the acronym, the informal phrasing, and
   any legacy name from an old system.
4. **≥1 negative rule** — an explicit "never do this" (e.g. "never average AOV across periods").
5. **Related asset** — the governed Metric View linked.

### The one rule that actually matters: chunk-safe sentences

**Write every rule sentence so it names its table/measure inside the sentence itself.** Pages are
**split into chunks before retrieval**, so a sentence that leans on the Page title or a heading
arrives orphaned and loses its meaning.

- ❌ "Never average this across periods." *(orphaned — "this" is lost after chunking)*
- ✅ "Never average `order_revenue_metrics.average_order_value` across periods — AOV is non-additive."

**Gate:** two published Pages, each with the five elements above, chunk-safe sentences, drafts
reviewed before publish, published Page IDs recorded to `.vibecoding-state.md`.

Prompt templates (author + optional glossary bulk-import): **Step 12** in the phase1 prompts doc.

---

## Step 13 — Routing Page (highest-return exercise)

One Page, "Question to Metric View Routing," that maps phrasings → (Metric View, measure) for
**every measure in the signed-off inventory** (`docs/genie_brief.md`).

- A **flat table**: for each measure list 4–5 phrasings (formal, acronym, informal, legacy) → the
  governed Metric View + exact measure.
- A short intro: this Page routes questions to governed sources and should be checked before
  querying raw tables.
- Link the Metric View as a related asset; **name an owner**.
- **Gate:** one Routing Page covering every inventory measure, published, with a named owner; Page
  ID + owner recorded to `.vibecoding-state.md`.

Why it wins: it replaces Genie's table-inference with a lookup a person already got right.

Prompt template: **Step 13** in the phase1 prompts doc.

---

## Gotchas

- **ID vs name.** Bulk-import and Page creation take the internal **domain ID**, not the display
  name. Most bulk-import misses are a name passed where an ID was needed — pull the ID from
  `.vibecoding-state.md` (captured in Step 11).
- **Missing `Manage Discovery`.** The other common bulk-import/publish failure. Verify the
  permission before drafting a batch.
- **"Created via API" is wrong.** There is no public Pages create/update API. Frame every result as
  "drafted → reviewed → published in the Discover UI."
- **Don't promise Space consumption.** Pages ground Genie One today; do not tell users the Genie
  Space/Agent will read them yet.

---

## 🔀 Hand-off table

| User Says / Task Involves | Load Instead |
|---|---|
| Genie **Space** instructions, data assets, benchmarks | `03-genie-space-patterns` |
| Genie Space **optimize / curation loop** (5-mode, append-only) | `03-genie-space-patterns` (Rule 17) |
| Deploy a Space from JSON, export/import, CI/CD | `04-genie-space-export-import-api` |
| **Metric View** authoring, synonyms, MEASURE() | `01-metric-views-patterns` |

**This skill** covers the *ontology* around the data (Discover domains, Pages, routing). The Space
skills cover the *agent* that answers questions. Pages ground Genie One; the Space serves Genie
Agent / Genie Code.

---

## Gate checklist (record results in `.vibecoding-state.md`)

- [ ] Domain + 3–5 subdomains exist (new or pre-created); **domain ID + subdomain IDs** saved.
- [ ] `Manage Discovery` permission confirmed on the domain.
- [ ] ≥2 measure Pages published, each: definition, formula naming the Metric View, synonyms
      (formal/acronym/informal/legacy), ≥1 negative rule, related asset; **chunk-safe sentences**.
- [ ] Routing Page published, covering **every** inventory measure, with a named owner.
- [ ] All Page IDs + owner recorded to state; drafts were reviewed before publish.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.