← ClaudeAtlas

pbip-xraylisted

Audit a committed PBIP semantic model as text (unused fields, relationship risks, measure-graph findings) and explain a TMDL change in business terms for PR review. Read-only: it parses committed TMDL/PBIR and git history, opens no database, never launches Power BI, and edits nothing.
Kemetra/Seshat-BI · ★ 2 · AI & Automation · score 68
Install: claude install-skill Kemetra/Seshat-BI
# pbip-xray - **Capability id:** `pbip-xray` (`docs/capabilities/capabilities.yaml`). - **Authority:** advisory. Findings NEVER block, never move a readiness stage, and never carry a numeric health/quality score (hard principle: never fabricate a confidence score). Counts and findings only. - **Design spec:** `docs/superpowers/specs/2026-08-01-pbip-xray-design.md`. ## When to invoke - "Audit the Power BI model" / "what is dead weight in this model?" - "What changed in the semantic model in this PR, in business terms?" - "Is this column used anywhere?" / "why does this measure exist?" (pair with `cross-table-lineage` for the cross-artifact chain). - Reviewing any PR that touches `*.SemanticModel/definition/**.tmdl`. ## The two verbs ```bash seshat xray --format json # full-model audit seshat model-diff --base origin/main --format json # PR-scoped semantic diff ``` Exit 0 = ran to completion (however many findings). Exit 3 = could not run; the payload carries `{code, message, recovery}` blockers (XR001 no committed model; XR002 unresolvable base ref). ## Finding families (audit) | id | meaning | |----|---------| | X0 | a table file the parser could not read (excluded, never guessed) | | X1 | column/measure unreferenced in scanned surfaces | | X2 | relationship risks: many-to-many, dead inactive, string keys, snowflake chains | | X3 | measure-graph: circular references, depth >= 5, cross-table duplicate logic | | X4 | hygiene: unmarked date table,