attribute-creation
Guides you step-by-step through defining a calculated attribute (dimension) on a Honeydew entity.
Skill by honeydew-ai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/honeydew-ai-attribute-creation
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/attribute-creation
What's inside
- Skill name
attribute-creation- Description
- Guides you step-by-step through defining a calculated attribute (dimension) on a Honeydew entity. Covers SQL expression building and pushes to Honeydew via the MCP tools.
- License
- Apache-2.0
- Instructions
- 158 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- examples.md
- reference.md
SKILL.md (first lines)
## Prerequisites Before creating attributes, 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. --- ## Overview A Honeydew **calculated attribute** is a virtual, per-row column defined on an entity — analogous to an expression in a SQL `SELECT` clause. It is evaluated once per row, not aggregated. In BI tools it surfaces as a **dimension** users can group, filter, and slice by. Use a calculated attribute when: - You need a reusable, governed column that doesn't exist verbatim in the source table (e.g. `net_price`, `customer_tier`, `order_month`) - The value should be consistent everywhere it's consumed, not recalculated ad-hoc in each dashboard - You want to expose a clean, business-friendly label for a raw or encoded column Do **not** use a calculated attribute for aggregations across rows — use a metric instead. --- ## Building the SQL Expression ### Core Rules - **Use simple expressions** — easy to understand - **Use the SQL dialect of the connected data warehouse** (Snowflake, Databricks, or BigQuery) - **Use `entity.field` format** for all attribute/metric references - **No joins or subqueries** — simple expressions only (window functions allowed) - **Use fully qualified column names** — `orders.amount`, not just `amount` - **Prefer ILIKE over LIKE** for case-insensitive matching See [reference.md](reference.md) for: SQL functions, JSON/semi-structured data, geography, data types, full YAML schema, attribute types, time grain, and format strings. --- ## Creation Methods ### Primary: create_object with YAML Call `create_object` with `yaml_text`: ```yaml type: calculated_attribute entity: <entity_name> name: <snake_case_name> display_name: <Human Readable Name> description: |- <business description> owner: <owner_email_or_team> datatype: string|number|float|bool|date|timestamp|time sql: |- <SQL expression> folder: <optional folder path> ``` **Required fields:** - `type: calculated_attribute` - `entity` — the entity this attribute belongs to - `name` — snake_case identifier - `owner` — **CRITICAL: always set** (email or team name) - `datatype` — **CRITICAL: always set explicitly** - `sql` — the expression - `description` — business context **for a non-technical user**: WHY this attribute exists, which business team defines the threshold/logic, known caveats, or governance notes. **Do NOT** describe the SQL expression or restate what the name already says. If there's nothing meaningful to add beyond the name, omit it entirely. ### Update: update_object 1. Use `get_entity` or `search_model` (with `search_mode: EXACT`) to find the attribute's `object_key`. 2. Call `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. Objects are versioned in git, so unnecessary reordering or reformatting creates noisy diffs. ### After Creation/Update: Display the UI Link 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. ### Delete: delete_object 1. Use `search_model` (with `search_mode: EXACT`) to find the attribute's `object_key`. 2. Call `delete_object` with that `object_key`. --- ## Examples See [examples.md](examples.md) for full worked examples covering: basic, boolean flag, grouping/binning, multi-entity, date truncation, window function, running total, semi-structured JSON, safe division, update, and delete. --- ## Discovery Helpers Use these MCP tools to explore existing attributes: - `get_entity` — Get entity details including all attributes (filter by `__typename` for `CalcAttribute` or `DataSetAttribute`) - `get_field` — Get detailed info about a specific attribute by entity and field name - `search_model` — Search for attributes across the model by name (use `search_mode: EXACT` for known names, `OR` for broad discovery) - `list_entities` — List entities to identify where to anchor new attributes --- ## Documentation Lookup Use the `search_docs` and `query_docs_filesystem` tools from the `honeydew` MCP server to search the Honeydew documentation when: - You need warehouse-specific SQL function details not covered in `reference.md` (Snowflake, Databricks, BigQuery differences) - The user asks about advanced attribute types (multi-entity, aggregation) or when to use each - You need guidance on time grain configuration, format strings, or data type nuances - The user needs advanced modeling patterns for calculated attributes (e.g., complex bucketing, conditional logic, semi-structured data extraction) Search for topics like: "calculated attributes", "attribute types", "multi-entity attribute", "aggregation attribute", "time grain", "format strings", "advanced modeling". --- ## Best Practices - **Description = business context only, or omit.** Never use it to explain the SQL expression or how the attribute is derived — that's visible in the `sql` field. A good description answers "why does this attribute exist?" or "what should a business user know about this value?" (e.g., who owns the threshold definition, known edge cases, data quality caveats). If there's nothing to add beyond the name, leave the field out entirely. - **Reuse existing attributes — don't repeat logic.** If a calculated attribute already exists on the entity (or you just created one), reference it by name
From honeydew-ai/honeydew-ai-coding-agents-plugins, Apache-2.0.
More from honeydew-ai/honeydew-ai-coding-agents-plugins
- 0.617score
context-item-creation
honeydew-ai
Guides you through creating context items — instructions, skills, knowledge pointers, and memory events — that give the AI analyst persistent knowledge about…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
conversation-review
honeydew-ai
Use when a semantic/context layer curator wants to review past analysis conversations in bulk, categorize user feedback into actionable improvement areas, and…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
domain-creation
honeydew-ai
Guides you through creating a Honeydew domain — a governance object that scopes entity/field visibility and applies mandatory filters — ideal for setting up…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
filtering
honeydew-ai
Use when the user needs to filter data — whether in a structured query, a metric aggregation, or an attribute expression.
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
model-exploration
honeydew-ai
Use when exploring Honeydew semantic layer, discovering entities/fields, setting up workspace and branch context, or running structured queries to spot-check…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
workspace-branch
honeydew-ai
Use when setting up workspace and branch context, switching workspaces or branches, creating or deleting branches, reviewing branch history, or creating a…
SkillBFreshness: B★ 43Claude Code +9 - 0.614score
relation-creation
honeydew-ai
Guides you through defining a relationship between two Honeydew entities — covering join type, direction, cross-filtering, and connection method — then pushes…
SkillBFreshness: B★ 43Claude Code +9 - 0.614score
validation
honeydew-ai
Use after creating or modifying ANY Honeydew object (metric, attribute, entity, domain).
SkillBFreshness: B★ 43Claude Code +9 - 0.614score
entity-creation
honeydew-ai
Guides you through defining a new Honeydew entity from a data warehouse source — covering source type, granularity key, and initial attribute mapping — then…
SkillBFreshness: B★ 43Claude Code +9 - 0.614score
metric-creation
honeydew-ai
Guides you step-by-step through defining a business metric (aggregation) on a Honeydew entity.
SkillBFreshness: B★ 43Claude Code +9 - 0.592score
query-debugging
honeydew-ai
Use when the user wants to review or inspect past query executions in Honeydew — what ran, from which client (BI tools, SQL interface, MCP, deep analysis)…
SkillBFreshness: B★ 43Claude Code +9 - 0.592score
query
honeydew-ai
Use when the user wants to query or analyze data through the Honeydew semantic layer — including natural language analysis questions, deep multi-step…
SkillBFreshness: B★ 43Claude Code +9
Signals
- Stars
- 43
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jul 9, 2026 (3 months ago)
- Last release
- Aug 18, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Website
- honeydew.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from honeydew-ai
- 0.617score
context-item-creation
honeydew-ai
Guides you through creating context items — instructions, skills, knowledge pointers, and memory events — that give the AI analyst persistent knowledge about…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
conversation-review
honeydew-ai
Use when a semantic/context layer curator wants to review past analysis conversations in bulk, categorize user feedback into actionable improvement areas, and…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
domain-creation
honeydew-ai
Guides you through creating a Honeydew domain — a governance object that scopes entity/field visibility and applies mandatory filters — ideal for setting up…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
filtering
honeydew-ai
Use when the user needs to filter data — whether in a structured query, a metric aggregation, or an attribute expression.
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
model-exploration
honeydew-ai
Use when exploring Honeydew semantic layer, discovering entities/fields, setting up workspace and branch context, or running structured queries to spot-check…
SkillBFreshness: B★ 43Claude Code +9 - 0.617score
workspace-branch
honeydew-ai
Use when setting up workspace and branch context, switching workspaces or branches, creating or deleting branches, reviewing branch history, or creating a…
SkillBFreshness: B★ 43Claude Code +9
Cite this page
attribute-creation skill. Agent Mart. https://agentmart.dev/skills/honeydew-ai-attribute-creation (last updated 2026-10-24)