← ClaudeAtlas

dax-lib-installlisted

Use when a DAX UDF already published on daxlib.org (found via the dax-lib index) needs to be actually installed against a real model — not just documented. Fetches the real function body from the daxlib/daxlib registry, checks its declared license, installs it (modeling MCP if connected, else a direct TMDL edit), runs a real DAX query to confirm it executes, and leaves it attributed on the function itself (author, license, source URL) so it is never mistaken for original work. Triggers on "install this UDF", "bring in the daxlib function", "add TimeSeries.MovingAverage to my model", "vendor this DAX package".
CSalcedoDataBI/dax-for-agents · ★ 0 · AI & Automation · score 68
Install: claude install-skill CSalcedoDataBI/dax-for-agents
# DAX Lib Install — bring a published UDF into a real model, attributed **`dax-lib` finds it. This skill installs it.** `dax-lib` is deliberately an index — it never carries third-party DAX code (see its own `NOTICE`). The moment a real answer is "yes, use this one," the work moves here. This is not `dax-udf-authoring`: that skill is for writing *your own* function from scratch. This one is for installing *someone else's*, already-published one — which means it also owns the paperwork a copy-paste would skip: checking the license, proving the function runs on this exact model, and leaving a record of where it came from that survives the function being copied on its own later. ## Workflow 1. **Resolve.** You need three things from `dax-lib`'s index: `packageId`, `version`, and the **exact function name** — not the whole package. Install only what is needed now; a package can ship several functions (`TimeSeries.MovingAverage` ships 7 — `Simple`, `Weighted`, `LinearWeighted`, `Exponential`, `DoubleExponential`, `Triangular`, `Geometric`) and the rest stay undeployed. 2. **Fetch the real code.** ``` gh api repos/daxlib/daxlib/contents/packages/<first-letter>/<packageId-lowercase>/<version>/lib/functions.tmdl ``` Same path convention `dax-lib/scripts/refresh-daxlib.ps1` already reads for the index — used here to read a function *body*, not just its name. Pull only the `function '<name>' = ...` block requested out of the file; the package's other