From honeydew-ai
Guides creation of Honeydew domains to scope entity/field visibility and apply semantic/source filters for governed semantic model analysis contexts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/honeydew-ai:domain-creationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Before creating domains, ensure you are on the correct workspace and branch. Use `get_session_workspace_and_branch` to check the current session context. For development work, create a branch with `create_workspace_branch` (the session switches automatically). See the `workspace-branch` skill for the full workspace/branch tool reference.
Before creating domains, ensure you are on the correct workspace and branch. Use get_session_workspace_and_branch to check the current session context. For development work, create a branch with create_workspace_branch (the session switches automatically). See the workspace-branch skill for the full workspace/branch tool reference.
A Honeydew domain is a lightweight governance object that defines a scoped business context over the semantic model.
Domains control:
filters) — applied to every query in the domain, for governance and access controlsource_filters) — applied early at the source level, for performance optimizationDomains are the primary mechanism for creating focused, governed views of the model for specific teams, use cases, or analysis contexts.
This skill focuses on domain creation and management. Use
entity-creationto create entities andattribute-creation/metric-creationto add fields before scoping them into a domain. To expose a domain for AI analysis, create an agent referencing it usingcreate_agent(MCP agent tools) or the Honeydew Studio agent builder.
Domains are created using create_object with domain YAML. There is no specialized create_domain tool.
Parameters:
yaml_text — YAML defining the domainRequired permission: Editor or higher.
search_model (with search_mode: EXACT) to find the domain's object_key.update_object with the full updated YAML (yaml_text) and the object_key.Minimal diff rule: When updating, preserve the existing field order and formatting from the current YAML. Only change the fields you need to modify.
search_model (with search_mode: EXACT) to find the domain's object_key.delete_object with that object_key.After a successful create_object or update_object call, the response includes a ui_url field. Always display this URL to the user so they can quickly open the object in the Honeydew application.
Need to create a domain?
│
├─► Which entities should be included?
│ └─► Use list_entities / search_model (OR mode) to discover available entities
│
├─► Should all fields be visible, or only a subset?
│ ├─► All fields → omit fields for that entity
│ └─► Subset → use field selectors (supports wildcards and exclusions)
│
├─► Are governance/access filters needed (apply to ALL queries)?
│ └─► Use filters (semantic) with name + sql
│
└─► Are performance/source-level filters needed (apply only when entity is queried)?
└─► Use source_filters with name + sql
See examples.md for full worked examples covering: basic entity selection, semantic filters, source filters, field selectors, deep analysis context and update/delete.
Use these MCP tools before creating domains:
list_entities — List all entities in the model to decide which to includeget_entity — Get detailed info for a specific entity (attributes, metrics, relations)list_domains — List all existing domains in the modelget_domain — Get detailed info for a specific domain (entities, filters, parameters)search_model — Search for entities, fields, domains, or other objects by name (use search_mode: EXACT for known names, OR for broad discovery)get_field — Get detailed info about a specific field (attribute or metric)See reference.md for: full YAML schema, entity selection syntax, field selectors, filter types and syntax, and parameter overrides.
Use the honeydew-docs MCP tools to search the Honeydew documentation when:
Search for topics like: "domains", "governance", "filters", "field selectors", "access control", "source filters".
sales_analytics is better than filtered_orders_v2.owner to identify the responsible team or person for governance and accountability.filters) over source filters for governance rules. Source filters apply before computation and can change calculated values.description to document the domain's purpose and intended audience clearly.sql references must be fully qualified. Always use entity.field notation — unqualified references fail validation.After creating ANY domain, you MUST invoke the validation skill to test and validate that it works correctly.
See validation skill for the full domain validation workflow.
Verify domain exists using search_model (with search_mode: EXACT) to find the new domain by name.
Test with a query — use get_data_from_fields with the domain parameter:
metrics: ["<entity>.count"]domain: "<domain_name>"This verifies that the domain settings (e.g. filter) apply.
npx claudepluginhub honeydew-ai/honeydew-ai-coding-agents-plugins --plugin honeydew-aiExplores Honeydew semantic layer: discovers entities/fields, sets workspace/branch context, runs simple structured queries to inspect data.
Enriches DataHub metadata: adds/updates descriptions, tags, glossary terms, ownership, deprecation, domains, data products, structured properties, and documents.
Creates and edits Omni Analytics semantic model definitions (views, topics, dimensions, measures, relationships, query views) via YAML through the Omni CLI. Useful for modeling data, adding metrics, or migrating from other semantic layers.