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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
21GitHub stars
6stars in 7 days
1skill in this repository
16commits in 30 days

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

Oct 29, 2026Nov 6, 202621

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

5,086 tokens

When the skill is activated

Reference documents

10,589 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Outcome
  2. Use when
  3. Do not use when
  4. Required inputs
  5. What it uses
  6. Rules
  7. Workflow
  8. Output contract
  9. Claims an answer must not make
  10. Known limits
  11. Security and access
  12. Approvals and escalation
  13. Failure behavior
  14. Example requests
  15. References

Scripts executed separately

  • sma/__init__.py
  • sma/__main__.py
  • sma/ask.py
  • sma/cli.py
  • sma/compare.py
  • sma/dataset.py
  • sma/dax_format.py
  • sma/findings.py
  • sma/inputs.py
  • sma/readiness.py
  • sma/render/__init__.py
  • sma/render/app.py
  • sma/render/assets/dc-doc.js
  • sma/render/assets/dcv-chain.js
  • sma/render/assets/dcv-graph.js
  • sma/render/assets/dcv-tabular.js
  • sma/render/assets/sma-app.js
  • sma/render/cards.py
  • sma/render/overview.py
  • sma/screen.py
  • sma/tmdl_findings.py
  • sma/vendor/__init__.py
  • sma/vendor/m_parser.py
  • sma/vendor/tmdl_parser.py

Files

  • ../../../../.claude-plugin/marketplace.jsonasset479 bytes
  • ../../.claude-plugin/plugin.jsonasset359 bytes
  • CHANGELOG.mddoc3,945 bytes
  • README.mddoc17,898 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • SKILL.mdcore20,283 bytes
  • references/commands.mddoc13,710 bytes
  • references/findings.mddoc3,657 bytes
  • references/report-pages.mddoc3,805 bytes
  • sma/__init__.pyruns1,547 bytes
  • sma/__main__.pyruns107 bytes
  • sma/ask.pyruns22,125 bytes
  • sma/cli.pyruns16,581 bytes
  • sma/compare.pyruns9,335 bytes
  • sma/dataset.pyruns27,286 bytes
  • sma/dax_format.pyruns5,328 bytes
  • sma/findings.pyruns10,297 bytes
  • sma/inputs.pyruns22,258 bytes
  • sma/readiness.pyruns13,027 bytes
  • sma/render/__init__.pyruns1,471 bytes
  • sma/render/app.pyruns15,979 bytes
  • sma/render/assets/dc-doc.jsruns21,197 bytes
  • sma/render/assets/dc-logo-white.svgasset17,940 bytes
  • sma/render/assets/dc-theme.cssasset48,822 bytes
  • sma/render/assets/dcv-chain.cssasset8,619 bytes
  • sma/render/assets/dcv-chain.jsruns22,624 bytes
  • sma/render/assets/dcv-graph.cssasset11,609 bytes
  • sma/render/assets/dcv-graph.jsruns47,857 bytes
  • sma/render/assets/dcv-tabular.cssasset8,237 bytes
  • sma/render/assets/dcv-tabular.jsruns9,315 bytes
  • sma/render/assets/sma-app.cssasset34,505 bytes
  • sma/render/assets/sma-app.jsruns41,584 bytes
  • sma/render/cards.pyruns205,282 bytes
  • sma/render/overview.pyruns17,390 bytes
  • sma/screen.pyruns4,152 bytes
  • sma/tmdl_findings.pyruns34,340 bytes
  • sma/vendor/__init__.pyruns316 bytes
  • sma/vendor/m_parser.pyruns200,223 bytes
  • sma/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 GitHub

Skills 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 scripts

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/semantic-model-analyzer/skills/semantic-model-analyzer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

  • Executable scriptline 1
    Executable file
  • Network accessline 5
    var SVG = 'http://www.w3.org/2000/svg';

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

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    function svgEl(tag, attrs) {     var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
  • Network accessline 46
    var el = document.createElementNS('http://www.w3.org/2000/svg', tag);

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

  • Executable scriptline 1
    Executable file
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]

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

plugins/semantic-model-analyzer/skills/semantic-model-analyzer/sma/vendor/tmdl_parser.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 1655
    if body.startswith("<U+FEFF>"):

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
Signal confidence: 44 facts

Works with

  • 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.