Not in the top 1,000 by GitHub stars
DataCraftersLab/craftys-fabric-skills
Crafty’s Fabric Skills are open-source Fabric and Power BI skills by Data Crafters, helping the community accelerate time to value in the age of AI. Built from our hands-on expertise in Microsoft Fabric, Power BI, planning, and AI, these practical resources are designed to simplify complex data challenges and turn insights into action.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
c827dfb26119 → c827dfb26119
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → c827dfb26119
No earlier version was observed for comparison.
Verified commit c827dfb26119a88614e1cce6ea610210a43b0d3f
git clone --filter=blob:none --no-checkout https://github.com/DataCraftersLab/craftys-fabric-skills.git .hotskills/datacrafterslab-craftys-fabric-skills && git -C .hotskills/datacrafterslab-craftys-fabric-skills checkout --detach c827dfb26119a88614e1cce6ea610210a43b0d3f
# Copy each selected skill directory from .hotskills/datacrafterslab-craftys-fabric-skills into .claude/skills/<skill-name>/Heat
4.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- semantic-model-analyzer
plugins/semantic-model-analyzer/skills/semantic-model-analyzer
How it works
semantic-model-analyzer
When your agent uses it
Use when someone asks for a Power BI semantic model audit, review or documentation, hands over or pastes TMDL, a PBIP or Power Query M, or asks about a model's measures, lineage, relationships, query folding, Copilot readiness or what changed between versions. Not for row counts, refresh or performance; never edits the model.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
5,086 tokensWhen the skill is activated
Reference documents
10,589 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Outcome
- Use when
- Do not use when
- Required inputs
- What it uses
- Rules
- Workflow
- Output contract
- Claims an answer must not make
- Known limits
- Security and access
- Approvals and escalation
- Failure behavior
- Example requests
- References
Scripts executed separately
sma/__init__.pysma/__main__.pysma/ask.pysma/cli.pysma/compare.pysma/dataset.pysma/dax_format.pysma/findings.pysma/inputs.pysma/readiness.pysma/render/__init__.pysma/render/app.pysma/render/assets/dc-doc.jssma/render/assets/dcv-chain.jssma/render/assets/dcv-graph.jssma/render/assets/dcv-tabular.jssma/render/assets/sma-app.jssma/render/cards.pysma/render/overview.pysma/screen.pysma/tmdl_findings.pysma/vendor/__init__.pysma/vendor/m_parser.pysma/vendor/tmdl_parser.py
Files
../../../../.claude-plugin/marketplace.jsonasset479 bytes../../.claude-plugin/plugin.jsonasset359 bytesCHANGELOG.mddoc3,945 bytesREADME.mddoc17,898 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesSKILL.mdcore20,283 bytesreferences/commands.mddoc13,710 bytesreferences/findings.mddoc3,657 bytesreferences/report-pages.mddoc3,805 bytessma/__init__.pyruns1,547 bytessma/__main__.pyruns107 bytessma/ask.pyruns22,125 bytessma/cli.pyruns16,581 bytessma/compare.pyruns9,335 bytessma/dataset.pyruns27,286 bytessma/dax_format.pyruns5,328 bytessma/findings.pyruns10,297 bytessma/inputs.pyruns22,258 bytessma/readiness.pyruns13,027 bytessma/render/__init__.pyruns1,471 bytessma/render/app.pyruns15,979 bytessma/render/assets/dc-doc.jsruns21,197 bytessma/render/assets/dc-logo-white.svgasset17,940 bytessma/render/assets/dc-theme.cssasset48,822 bytessma/render/assets/dcv-chain.cssasset8,619 bytessma/render/assets/dcv-chain.jsruns22,624 bytessma/render/assets/dcv-graph.cssasset11,609 bytessma/render/assets/dcv-graph.jsruns47,857 bytessma/render/assets/dcv-tabular.cssasset8,237 bytessma/render/assets/dcv-tabular.jsruns9,315 bytessma/render/assets/sma-app.cssasset34,505 bytessma/render/assets/sma-app.jsruns41,584 bytessma/render/cards.pyruns205,282 bytessma/render/overview.pyruns17,390 bytessma/screen.pyruns4,152 bytessma/tmdl_findings.pyruns34,340 bytessma/vendor/__init__.pyruns316 bytessma/vendor/m_parser.pyruns200,223 bytessma/vendor/tmdl_parser.pyruns146,541 bytes
Read SKILL.md
# Semantic Model Analyzer
## Outcome
The user gets an answer about a Power BI semantic model that is grounded in its definition, with
every claim traced to a file and line, and, when they ask for one, a set of offline HTML pages
that present the model: a landing page with data and measure lineage, a page per segment, an AI
readiness checklist and a finder. The bundled engine (`sma`) parses TMDL and Power Query M as
text into one dataset; the rules, the `list` and `explain` answers, the comparison of two
versions and the HTML all read that dataset, so an answer never rests on something the files do
not say.
## Use when
- Someone wants a semantic model reviewed, audited or documented: "what needs fixing in this
model", "document this model for the client".View the complete source on GitHubSkills included
- semantic-model-analyzer
Repository facts
- License
- Apache-2.0
- Created
- Oct 28, 2026
- Last pushed
- Oct 29, 2026
- Forks
- 1
- Open issues
- 0
- Project activity
- Active
Before you install
Local scriptsAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 7 notes
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 19 network referencesin 5 files: semantic-model-analyzer/sma/render/cards.py:3816 semantic-model-analyzer/sma/render/assets/sma-app.js:1099 semantic-model-analyzer/sma/render/assets/dc-logo-white.svg:1 and 2 more
- 1 obfuscation signalin 1 file: semantic-model-analyzer/sma/vendor/tmdl_parser.py:1655
- No instruction overrides
- 24 executable scriptsin 24 files: semantic-model-analyzer/sma/__init__.py:1 semantic-model-analyzer/sma/__main__.py:1 semantic-model-analyzer/sma/ask.py:1 and 21 more
- 2 references to secretsin 1 file: semantic-model-analyzer/sma/screen.py:32
- No requests to vote in Hot
Show all 46 signals by file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/__init__.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/__main__.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/ask.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/cli.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/compare.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/dataset.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/dax_format.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/findings.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/inputs.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/readiness.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/__init__.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/app.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/assets/dc-doc.js
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/assets/dc-logo-white.svg
- Network accessline 1
<?xml version="1.0" encoding="UTF-8"?> <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 549.86 44.68"> - Network accessline 2
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 549.86 44.68">
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/assets/dcv-chain.js
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/assets/dcv-graph.js
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/assets/dcv-tabular.js
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/assets/sma-app.js
- Executable scriptline 1
Executable file - Network accessline 1099
mount.style.width = W + 'px'; mount.style.height = H + 'px'; var NS = 'http://www.w3.org/2000/svg'; - Network accessline 1100
mount.style.height = H + 'px'; var NS = 'http://www.w3.org/2000/svg'; var svg = D.createElementNS(NS, 'svg'); - Network accessline 1101
var NS = 'http://www.w3.org/2000/svg';
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/cards.py
- Executable scriptline 1
Executable file - Network accessline 3816
REFERENCES = [ ("Data Crafters", "Microsoft data and AI consultancy", "https://datacrafters.io", - Network accessline 3817
("Data Crafters", "Microsoft data and AI consultancy", "https://datacrafters.io", - Network accessline 3818
"datacrafters.io"), ("Data Crafters on LinkedIn", "Company page", "https://www.linkedin.com/company/datacraftersio", "LinkedIn"), - Network accessline 3819
("Data Crafters on LinkedIn", "Company page", "https://www.linkedin.com/company/datacraftersio", - Network accessline 3820
"LinkedIn"), ("Khaled Chowdhury", "Data Crafters", "https://www.linkedin.com/in/khaledchowdhury/", "LinkedIn"), - Network accessline 3821
("Khaled Chowdhury", "Data Crafters", "https://www.linkedin.com/in/khaledchowdhury/", - Network accessline 3822
"LinkedIn"), ("Fabric Data & AI Platform", "Knowledge hub for Microsoft Fabric, data and AI", "https://fabricdataaiplatfrom.substack.com/", "Substack"), - Network accessline 3823
("Fabric Data & AI Platform", "Knowledge hub for Microsoft Fabric, data and AI", "https://fabricdataaiplatfrom.substack.com/", "Substack"), ("Nikola Ilic", "Data Mozart", "https://data-mozart.com/about/", "data-mozart.com"), - Network accessline 3824
"https://fabricdataaiplatfrom.substack.com/", "Substack"), - Network accessline 3825
("Nikola Ilic", "Data Mozart", "https://data-mozart.com/about/", "data-mozart.com"), - Network accessline 3826
("Microsoft Learn", "Power BI documentation", "https://learn.microsoft.com/power-bi/",
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/render/overview.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/screen.py
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/tmdl_findings.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/vendor/__init__.py
- Executable scriptline 1
Executable file
plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/vendor/m_parser.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 8 facts
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/assets/dc-doc.js:5High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/assets/dcv-graph.js:46High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/assets/sma-app.js:1101High confidence
- Contacts datacrafters.io, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/cards.py:3817High confidence
- Contacts www.linkedin.com, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/cards.py:3819High confidence
- Contacts fabricdataaiplatfrom.substack.com, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/cards.py:3824High confidence
- Contacts data-mozart.com, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/cards.py:3825High confidence
- Contacts learn.microsoft.com, which SKILL.md, the README and the plugin manifest do not mentionsemantic-model-analyzer/sma/render/cards.py:3826High confidence
Signal confidence: 44 facts
- Executable script in prose of a file that runssemantic-model-analyzer/sma/__init__.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/__main__.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/ask.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/cli.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/compare.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/dataset.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/dax_format.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/findings.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/inputs.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/readiness.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/render/__init__.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/render/app.py:1Low confidence
- Executable script in a comment of a file that runssemantic-model-analyzer/sma/render/assets/dc-doc.js:1Low confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/assets/dc-doc.js:5High confidence
- Executable script in a comment of a file that runssemantic-model-analyzer/sma/render/assets/dcv-chain.js:1Low confidence
- Executable script in a comment of a file that runssemantic-model-analyzer/sma/render/assets/dcv-graph.js:1Low confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/assets/dcv-graph.js:45High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/assets/dcv-graph.js:46High confidence
- Executable script in a comment of a file that runssemantic-model-analyzer/sma/render/assets/dcv-tabular.js:1Low confidence
- Executable script in a comment of a file that runssemantic-model-analyzer/sma/render/assets/sma-app.js:1Low confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/assets/sma-app.js:1099High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/assets/sma-app.js:1100High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/assets/sma-app.js:1101High confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/render/cards.py:1Low confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3816High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3817High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3818High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3819High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3820High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3821High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3822High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3823High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3824High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3825High confidence
- Network access in code of a file that runssemantic-model-analyzer/sma/render/cards.py:3826High confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/render/overview.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/screen.py:1Low confidence
- Access to secrets in code of a file that runssemantic-model-analyzer/sma/screen.py:32High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuesemantic-model-analyzer/sma/screen.py:34Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/tmdl_findings.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/vendor/__init__.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/vendor/m_parser.py:1Low confidence
- Executable script in prose of a file that runssemantic-model-analyzer/sma/vendor/tmdl_parser.py:1Low confidence
- Possible obfuscation in code of a file that runssemantic-model-analyzer/sma/vendor/tmdl_parser.py:1655High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.