Prompt
"Revenue by store last month"
Authoring governed packages, putting an agent or UI in front of the API, and debugging why the planner picked the path it did. Check out the workflows below.
For teams moving from ad hoc metrics files or SQL-first marts toward explicit semantic packages with entities, model-level measures, time roles, and thin curated metric layers.
package.yml, graph.yml,
models/**, metrics/**.| Authoring concern | Runtime support | Why it matters |
|---|---|---|
| Graph-first identity | Strongly supported | Stable roots and safe traversal policy |
| Historical joins | Supported with guardrails | Preserve semantic meaning across validity windows |
| Clock variants and comparison families | Supported natively |
Helps callers compare ordered versus delivered or peer metrics cleanly |
A guided builder path for internal apps, exploration tools, and LLM agents — without turning each caller into a mini planner. The same engine serves HTTP/JSON and MCP.
discover
ranks object matches, and empty terms list the
catalog.plan drafts the query and
valid-values keeps filters legal; over
HTTP, build-options also lists the next
legal edits."Revenue by store last month"
discover ranks candidate metrics,
measures, and dimensions.
plan drafts Query IR and
valid-values returns legal filter
values.
execute validates, compiles, and runs;
its validate and sql modes
stop early, and sql at compact verbosity
includes the explain payload.
When the problem is not just returning rows but understanding why a query was legal, illegal, rewritten, or blocked.
inspect — semantic provenance and
starter query patches.compile’s explain payload (over MCP,
execute in sql mode) — chosen
paths, rewrites, rendered SQL.Check object summaries, clocks, comparison metadata, and recommended next actions.
Trace alias resolution, path selection, rewrite strategy, and SQL lowering.
Use the comparison pack to see how six layers express the same questions. Five were checked on current data against an independent answer key; Snowflake's older capture is reported separately. One published rubric assigns every support label and explains its limits.