power-bi-agentic-dev — Prompt Excerpts
Excerpt 1: dax SKILL.md — Trigger keywords and progressive disclosure structure
Technique: Rich description with keyword triggers + layered reference files (workflow-first, deep details second).
---
name: dax
version: 26.20
description: DAX performance optimization for semantic models. Automatically invoke when the user asks to "optimize DAX", "fix slow DAX", "DAX performance", "tune a measure", "debug a measure", "DAX anti-patterns", or mentions slow queries, server timings, or DAX authoring.
---
For systematic DAX query performance optimization, read the workflow reference first:
**[`references/dax-performance-optimization.md`]** — Tiered framework (4 tiers), phased workflow, decision guide, and error handling.
Detailed reference files (progressive disclosure — consult as directed by the workflow):
- **[`references/engine-internals.md`]** — FE/SE architecture, xmSQL, compression/segments, SE fusion, trace diagnostics
- **[`references/dax-patterns.md`]** — Tier 1 DAX patterns (DAX001–DAX021) + Tier 2 query structure (QRY001–QRY004)
- **[`references/model-optimization.md`]** — Tier 3 model patterns (MDL001–MDL010) + Tier 4 Direct Lake (DL001–DL002)
Excerpt 2: pbip SKILL.md — Critical guidance list
Technique: Iron-law enumeration with CRITICAL markers; domain-specific UTF-8 BOM and CRLF rules.
- **PBIX is a black box; PBIP is transparent.** PBIX is a single binary that cannot be diffed or edited externally. PBIP splits the same content into text files. Convert between them with File > Save As in PBI Desktop.
- **UTF-8 without BOM.** All files must be saved as UTF-8 without BOM. A BOM prefix causes parse errors in some tools.
- **Git line endings:** PBI Desktop writes CRLF. Configure `core.autocrlf` or `* text=auto` in `.gitattributes` to normalize.
- **260-char Windows path limit.** Use short root paths. Deep nesting of page/visual GUIDs can exceed this limit.
- **PBI Desktop does not detect external changes.** Close and reopen PBI Desktop after editing files externally.
- **Rename cascades are cross-cutting.** Renaming a table, measure, or column requires updating references in TMDL files, visual JSONs, report extensions, culture files, DAX queries, and diagram layouts.
Excerpt 3: deneb-reviewer agent — Validation checklist
Technique: Structured checklist with numbered items for deterministic review coverage.
**Validation Checklist:**
1. **Schema**: `$schema` points to valid Vega or Vega-Lite schema URL
2. **Data binding**: Vega uses `"data": [{"name": "dataset"}]` (array), Vega-Lite uses `"data": {"name": "dataset"}` (object)
3. **Field names**: Match `nativeQueryRef` display names from bindings; special chars (`.[]"`) become `_`, spaces preserved
4. **Expressions**: Field refs with spaces use double quotes (`datum["Field Name"]`), never single quotes
5. **Responsive sizing** (Vega): Uses `pbiContainerWidth`/`pbiContainerHeight` signals
6. **No external data**: No URL-based data sources (blocked by AppSource certification)
Excerpt 4: pbi-desktop hooks.json — Pre-validation hook
Technique: Conditional hook execution matching tool input patterns.
{
"type": "command",
"command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/pbi-hooks.sh\" validate-dax",
"timeout": 10,
"if": "Bash(*tom_nuget*)"
}