Index Refresh
paperclipai/paperclip
A skill your agent uses when an LLM Wiki operation issue requests an index refresh.
Automatically invoke this skill whenever the user asks to refresh a semantic model or a dataset.
$ npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install data-goblin/power-bi-agentic-development refresh-semantic-model --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/semantic-models/skills/refresh-semantic-model .claude/skills/refresh-semantic-model && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "refresh-semantic-model" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-model into .claude/skills/refresh-semantic-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-semantic-model", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-modelType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install data-goblin/power-bi-agentic-development refresh-semantic-model --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/semantic-models/skills/refresh-semantic-model .agents/skills/refresh-semantic-model && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "refresh-semantic-model" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-model into .agents/skills/refresh-semantic-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-semantic-model", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install data-goblin/power-bi-agentic-development refresh-semantic-model --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/semantic-models/skills/refresh-semantic-model .cursor/skills/refresh-semantic-model && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "refresh-semantic-model" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-model into .cursor/skills/refresh-semantic-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-semantic-model", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/data-goblin/power-bi-agentic-development.git --path plugins/semantic-models/skills/refresh-semantic-model--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install data-goblin/power-bi-agentic-development refresh-semantic-model --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/semantic-models/skills/refresh-semantic-model .gemini/skills/refresh-semantic-model && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "refresh-semantic-model" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-model into .gemini/skills/refresh-semantic-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-semantic-model", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install data-goblin/power-bi-agentic-development refresh-semantic-modelInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/semantic-models/skills/refresh-semantic-model .github/skills/refresh-semantic-model && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "refresh-semantic-model" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-model into .github/skills/refresh-semantic-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-semantic-model", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install data-goblin/power-bi-agentic-development refresh-semantic-model --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/data-goblin/power-bi-agentic-development.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/semantic-models/skills/refresh-semantic-model .opencode/skills/refresh-semantic-model && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "refresh-semantic-model" agent skill from https://github.com/data-goblin/power-bi-agentic-development/tree/main/plugins/semantic-models/skills/refresh-semantic-model into .opencode/skills/refresh-semantic-model/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-semantic-model", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
refresh-semantic-modelAutomatically invoke this skill whenever the user asks to refresh a semantic model or a dataset.
Refresh Semantic Model is an agent skill from data-goblin/power-bi-agentic-development. Automatically invoke this skill whenever the user asks to refresh a semantic model or a dataset. Can also be used to manage, optimize, troubleshoot, or configure a refresh or a refresh schedule.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/refresh-types.md`, `references/troubleshooting.md` and `scripts/refresh_model.py`).
The repository describes itself as: Power BI AI skills and Power BI agents for Claude Code and GitHub Copilot: a plugin marketplace of Power BI skills, subagents, and hooks for semantic models, DAX, TMDL, reports… The licence is GPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 41886f2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Refresh Semantic Model loads about 3.5k tokens when it runs, and up to ~8.7k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 1,186 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from data-goblin/power-bi-agentic-development at commit 41886f2, republished under its GPL-3.0 licence (© data-goblin). 1,186 words, ~3,519 tokens.
.claude/skills/refresh-semantic-model/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Trigger, monitor, validate, and troubleshoot semantic model refreshes via the Power BI Enhanced Refresh REST API and Fabric CLI.
A semantic model refresh reloads data from upstream sources and/or recalculates dependent objects (calculated columns, calculated tables, measures). The scope can be the entire model, specific tables, or individual partitions.
Six refresh types are available via the REST API; a seventh (add) is TMSL-only:
| Type | Reloads Data | Recalculates | Primary Use Case | API |
|---|---|---|---|---|
full | Yes | Yes | Complete reload from scratch | REST |
automatic | Conditional | Conditional | Smart refresh; process only if needed | REST |
dataOnly | Yes | No* | Reload data; clear dependents | REST |
calculate | No | Yes | Recalculate without reloading data | REST |
clearValues | No | No | Empty data from objects | REST |
defragment | No | No | Clean up column dictionaries | REST |
add | Append | Yes | Append rows to a partition | TMSL |
*dataOnly clears dependent objects (calculated columns, calculated tables) but does not recalculate them. Follow with a calculate refresh to restore them.
For detailed descriptions, behavior with incremental refresh policies, commit modes, and parallelism options, consult references/refresh-types.md.
Extract the workspace and model GUIDs needed for API calls:
WS_ID=$(fab get "WorkspaceName.Workspace" -q "id" | tr -d '"')
MODEL_ID=$(fab get "WorkspaceName.Workspace/ModelName.SemanticModel" -q "id" | tr -d '"')Before triggering the refresh, capture a baseline snapshot to later verify that data actually changed. Execute a DAX query against the model to get current row counts or max dates:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/executeQueries" \
-X post -i '{
"queries": [{"query": "EVALUATE ROW(\"RowCount\", COUNTROWS(FactSales), \"MaxDate\", MAX(FactSales[OrderDate]))"}],
"serializerSettings": {"includeNulls": true}
}'Record the output. This baseline is compared after refresh to confirm new data arrived.
Full model refresh (simplest):
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"full"}'Refresh specific tables:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{
"type": "full",
"objects": [{"table": "FactSales"}, {"table": "DimProduct"}]
}'Refresh specific partitions:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{
"type": "full",
"objects": [
{"table": "FactSales", "partition": "FactSales_2024"},
{"table": "FactSales", "partition": "FactSales_2023"}
]
}'Data-only refresh (skip recalculation):
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"dataOnly","objects":[{"table":"FactSales"}]}'Calculate only (no data reload):
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"calculate"}'Clear values from a table:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"clearValues","objects":[{"table":"StagingTable"}]}'For the script-based approach with CLI arguments, use scripts/refresh_model.py.
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes?\$top=1"Status values: Unknown, InProgress, Completed, Failed, Disabled, Cancelled
After the refresh completes, re-run the same DAX query from Step 2 and compare:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/executeQueries" \
-X post -i '{
"queries": [{"query": "EVALUATE ROW(\"RowCount\", COUNTROWS(FactSales), \"MaxDate\", MAX(FactSales[OrderDate]))"}],
"serializerSettings": {"includeNulls": true}
}'If data has not changed after a successful refresh:
fab run "Workspace.Workspace/Pipeline.DataPipeline" or trigger the notebookTo cancel an in-progress enhanced refresh, first retrieve the requestId from the refresh history:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes?\$top=1"The response includes a requestId field. Use it to cancel:
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes/<requestId>" \
-X deleteOnly works for refreshes triggered via the Enhanced API (not scheduled or portal refreshes).
The scripts/refresh_model.py script wraps the Enhanced Refresh API with CLI arguments:
# Full refresh
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID
# Refresh specific tables
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID --tables Sales,Calendar
# Refresh specific partitions
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID --partitions Sales:Sales_2024
# Data-only then calculate (two-phase)
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID -t dataOnly --tables FactSales
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID -t calculate
# Partial batch with parallelism
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID --commit partialBatch --parallelism 4
# Skip incremental refresh policy
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID --no-policy
# Check status only
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID --status-only
# Poll until complete
uv run scripts/refresh_model.py -w $WS_ID -m $MODEL_ID --pollThe Enhanced Refresh API (Premium/Fabric capacity required) extends the standard refresh with:
| Parameter | Default | Purpose |
|---|---|---|
type | automatic | Refresh type (full, automatic, dataOnly, calculate, etc.) |
commitMode | transactional | Atomic commit or per-object partial batch |
maxParallelism | 10 | Number of parallel processing threads |
retryCount | 0 | Automatic retries on failure |
objects | Entire model | Array of table/partition targets |
applyRefreshPolicy | true | Apply or skip incremental refresh policy |
effectiveDate | Current date | Override date for incremental policy window |
timeout | 05:00:00 | Per-attempt timeout (max total 24h with retries) |
Split data loading and recalculation for better control and failure isolation:
dataOnly with partialBatch to reload all tables (each committed independently)calculate with transactional to recalculate everything atomicallyFor tables with incremental refresh, refresh only specific time-range partitions rather than the entire table. To discover partition names, query the model's TMSL metadata via the XMLA endpoint using Tabular Editor, SSMS, or by exporting with the Fabric CLI:
fab export "Workspace.Workspace/Model.SemanticModel" -o /tmp/model -fInspect the exported TMDL table files; each partition block lists the partition name. Target specific partitions in the objects array of the refresh request.
When orchestrating a data pipeline:
Quick reference for the most common failures. For the full troubleshooting guide with debugging workflows and detailed error tables, read references/troubleshooting.md.
| Symptom | Likely Cause | Resolution |
|---|---|---|
| Failed with credential error | Credentials expired, missing, or didn't carry over after copy | Update in dataset settings; only shared cloud connections transfer with fab cp |
| Type mismatch on a table | Source column types don't match model column types | Check column data types in the model definition vs source schema; add Table.TransformColumnTypes in partition expression |
| Column does not exist | Source column renamed, removed, or differently cased | Check source schema; add Table.RenameColumns in partition expression |
| Timeout (2h shared / 5h Premium) | Model too large for a single refresh window | Implement incremental refresh; use partition-level refresh via XMLA; reduce model size |
| Calculated tables empty | dataOnly refresh clears but doesn't rebuild | Follow with a calculate refresh via the Enhanced Refresh API to rebuild calculated tables and calc groups |
| Throttled on Premium | Too many concurrent refreshes | Stagger refresh schedules; refresh during off-peak |
When a full refresh fails, isolate the failing table by refreshing individual tables via the Enhanced Refresh API:
# Refresh dimensions first
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"full","objects":[{"table":"Customers"}]}'
# Then facts
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"full","objects":[{"table":"Invoices"}]}'
# Then recalculate
fab api -A powerbi "groups/$WS_ID/datasets/$MODEL_ID/refreshes" \
-X post -i '{"type":"calculate"}'Check the failing table's partition expression and compare source schema against the model's expected column names and types via fab export or fab table schema.
Models over 1 GB or with refresh times exceeding an hour benefit from targeted approaches:
RangeStart/RangeEnd parameters in Power Query. Also supports detect-data-changes to skip unchanged partitions entirely.| Capacity Type | Max Refreshes/Day | Default Timeout | Enhanced Features |
|---|---|---|---|
| Pro | 8 | 2 hours | No |
| Premium Per User | 48 | 5 hours | Yes |
| Premium / Fabric | 48 | 5 hours | Yes |
Pro capacity supports only full-model standard refreshes. Enhanced refresh features (table/partition targeting, commit modes, parallelism, cancel, timeout override) require Premium or Fabric capacity.
fab CLI authenticated: fab auth loginreferences/refresh-types.md -- Complete reference for all 7 refresh types, commit modes, parallelism, incremental policy interaction, status values, XMLA/TMSL details, and the two-phase refresh patternreferences/troubleshooting.md -- Comprehensive troubleshooting guide: credential errors, type/schema mismatches, timeouts, capacity limits, incremental refresh issues, debugging workflows, and large model strategiesscripts/refresh_model.py -- CLI tool for triggering and monitoring refreshes with all enhanced optionssemantic-model -- Model design, build, and quality/performance reviewlineage-analysis -- Downstream report discovery and impact analysisstandardize-naming-conventions -- Naming audit and remediationfabric-cli (fabric-cli plugin) -- Workspace and item management via fab CLI© data-goblin, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in plugins/semantic-models/skills/refresh-semantic-model of data-goblin/power-bi-agentic-development.
Open the folder on GitHubat commit 41886f2
Refresh Semantic Model next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Refresh Semantic Model this skilldata-goblin/power-bi-agentic-development | 1k | — | ~3.5k | Automated safety check: Pass | GPL-3.0 | |
| Index Refreshpaperclipai/paperclip | 98k | — | ~994 | Automated safety check: Pass | MIT | |
| Semantic Liststhedaviddias/Front-End-Checklist | 74k | — | ~504 | Automated safety check: Pass | MIT | |
| Meta Refreshthedaviddias/Front-End-Checklist | 74k | — | ~434 | Automated safety check: Pass | MIT | |
| Semantic Versioningsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Semantic Kernelgithub/awesome-copilot | 40k | 2 repos | ~756 | Automated safety check: Pass | MIT |
paperclipai/paperclip
A skill your agent uses when an LLM Wiki operation issue requests an index refresh.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Use semantic list elements.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing rendered HTML, interactive components, or design-system patterns related to Avoid meta refresh redirects.
sickn33/agentic-awesome-skills
Automate versioning and changelog generation using semantic versioning principles.
github/awesome-copilot
Create, update, refactor, explain, or review Semantic Kernel solutions using shared guidance plus language-specific references for .NET and Python.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing templates, rendered HTML, or shared components related to Use semantic HTML elements.
data-goblin/power-bi-agentic-development
Author, validate, publish, and test Power BI paginated reports in the RDL format.
data-goblin/power-bi-agentic-development
Automatically invoke this skill whenever the user asks about Fabric tenant settings or Power BI tenant settings or auditing tenant settings.
data-goblin/power-bi-agentic-development
Interactive BPA rule generation for Power BI semantic models; guided discovery, model investigation, and expert rule authoring.
data-goblin/power-bi-agentic-development
Guidance for Power BI Project (PBIP) structure, thick and thin reports, project renames, forks, and validation.
data-goblin/power-bi-agentic-development
Actionable feedback on the quality, usage, and effectiveness of Power BI reports.
data-goblin/power-bi-agentic-development
This skill should be used whenever the user mentions a "semantic model", "data model", or "dataset", or asks to "build", "model", "design", "optimize", "review", or "audit" one, or to "add a…
Automatically invoke this skill whenever the user asks to refresh a semantic model or a dataset. Refresh Semantic Model is an agent skill from data-goblin/power-bi-agentic-development. Automatically invoke this skill whenever the user asks to refresh a semantic model or a dataset.
Run `npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a claude-code`. Or copy the skill folder (plugins/semantic-models/skills/refresh-semantic-model in data-goblin/power-bi-agentic-development) into .claude/skills/refresh-semantic-model in your project. Claude Code loads it when a task matches its description.
Run `npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a codex`. Or copy the skill folder (plugins/semantic-models/skills/refresh-semantic-model in data-goblin/power-bi-agentic-development) into .agents/skills/refresh-semantic-model in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add data-goblin/power-bi-agentic-development --skill refresh-semantic-model -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/refresh-semantic-model, .gemini/skills/refresh-semantic-model, .github/skills/refresh-semantic-model and .opencode/skills/refresh-semantic-model in your project.
Going by SKILL.md and its folder, Refresh Semantic Model needs Python for the scripts in its folder and the command-line tools its instructions call (uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Refresh Semantic Model is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Refresh Semantic Model: Index Refresh (paperclipai/paperclip, 98k stars), Semantic Lists (thedaviddias/Front-End-Checklist, 74k stars), Meta Refresh (thedaviddias/Front-End-Checklist, 74k stars) and Semantic Versioning (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
data-goblin (a GitHub user) maintains it in data-goblin/power-bi-agentic-development, which has 1,026 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 5, 2026.
Source: data-goblin/power-bi-agentic-development on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.