From looker-skills
Teaches LookML includes, refinements for layering, and the one-explore-per-file pattern for maintainable Looker models.
How this skill is triggered — by the user, by Claude, or both
Slash command
/looker-skills:lookml-refinementsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`include` makes Open LookML objects (views, explores, dashboards) available in the current file.
include makes Open LookML objects (views, explores, dashboards) available in the current file.
Wildcards (*): Matches any string.
/views/*.view: All views in the absolute /views directory.*.view: All views in the current directory./**/*.view: (Recursive) All views in the current directory and any subdirectory.//project-name/views/*.view: Remote project import (Requires project manifest).Best Practice: Be specific to avoid namespace collisions and performance bloat.
include: "/**/*.view" (Imports everything, everywhere. Slow and risky).include: "/views/users.view" (Explicit).include: "/views/finance/*.view" (Scoped to a domain).Refinements allow you to modify an existing view or explore without changing the original file. This is crucial for:
view: users { ... }view: +users { ... }include the original file before finding it.+users, the order of include determines the final state.drill_fields) are often replaced, not merged, depending on the implementation. Explicitly restating the list is safer.description or label).For maintainable, enterprise-scale LookML, follow the One Explore Per File pattern using .explore.lkml files.
explores/orders.explore.lkmlinclude only the views needed for this explore.explore: orders { ... }.models/my_model.model.lkml
include: "/explores/orders.explore.lkml"explore definitions in the model file itself.Original (ReadOnly): //lkr_block/users.view
view: users {
dimension: id { primary_key: yes }
dimension: name {}
}
Refinement: views/users_rfn.view
include: "//lkr_block/users.view"
view: +users {
# 1. New Dimension
dimension: email {
sql: ${TABLE}.email ;;
}
# 2. Modify Existing Dimension
dimension: name {
label: "Full Name"
description: "Legal name of the user."
}
}
File: explores/marketing_orders.explore.lkml
include: "/views/orders.view"
include: "/views/users.view"
# Refine users ONLY for this explore to add marketing-specific fields
view: +users {
dimension: acquisition_channel {
sql: ${TABLE}.utm_source ;;
}
}
explore: marketing_orders {
view_name: orders
from: orders # mapping 'orders' view to 'orders' alias (standard)
join: users {
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
npx claudepluginhub looker-open-source/looker-skillsGuides LookML modeling with file type explanations, requirement analysis, and CLI commands for project discovery and field exploration.
Manages LookML projects via the Looker API: creates git branches, project directories, LookML files, and generates view boilerplate from database schemas.
Create and edit Omni Analytics semantic model definitions (views, topics, dimensions, measures, relationships) using YAML via the Omni CLI. Useful for data modeling and adding metrics.