From fabric-operations
Checks for updates to the skills-for-fabric marketplace at session start. Compares local version against GitHub releases and shows changelog if updates are available. Useful for staying up-to-date with skill changes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fabric-operations:check-updatesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill checks for updates to the skills-for-fabric marketplace at the start of each session.
This skill checks for updates to the skills-for-fabric marketplace at the start of each session.
Run this check once per week when any skills-for-fabric skill is first invoked. Skip if already checked within the last 7 days.
The update check marker is stored in a persistent, user-level directory shared across all sessions and all plugins in the Fabric Skills marketplace:
~/.config/fabric-collection/last-update-check.json
This file contains a JSON object mapping plugin names to the UTC date (YYYY-MM-DD) of their last update check:
{
"fabric-skills": "2026-02-17",
"another-plugin": "2026-02-16"
}
Before checking, read ~/.config/fabric-collection/last-update-check.json:
IMPORTANT — use UTC consistently: Always use the current UTC date when saving and comparing the last-update-check timestamp. Do not use the local system timezone, as it varies across environments and can cause the check to run too often or be skipped. In shell, use
date -u +%Y-%m-%d(Linux/macOS) or(Get-Date).ToUniversalTime().ToString("yyyy-MM-dd")(PowerShell).
Note: Create the
~/.config/fabric-collection/directory if it does not exist. On Windows, use$env:USERPROFILE\.config\fabric-collection\.
Read the version field from the local plugin manifest. Two install layouts exist:
~/.copilot/installed-plugins/fabric-collection/fabric-skills/): the manifest is .github/plugin/plugin.json — there is no package.json here.package.json at the repo root.Read whichever is present. Both files contain a top-level "version": "<semver>" field.
Read the repository field from the same manifest you used in Step 1, and parse the URL to get owner and repo. The two layouts store the field differently:
.github/plugin/plugin.json) — plain URL string:
"repository": "https://github.com/<owner>/<repo>"
package.json at the repo root) — object whose url ends with .git:
"repository": { "type": "git", "url": "https://github.com/<owner>/<repo>.git" }
There is no bare plugin.json at the repo root in either layout, and there is no top-level package.json in the Copilot CLI plugin install — always use the path that matches your actual layout.
CRITICAL: Use the owner string exactly as it appears in the URL. Do NOT alter, normalize, or "correct" the owner name — including underscores, mixed case, or any other punctuation. Whatever the manifest's
repositoryURL says, that is the correct owner. (LLMs sometimes "auto-correct" underscores to hyphens — don't.)
Use the available tools in your environment to get the latest version. Try methods in strict order — only fall back to the next method if the previous one fails or is unavailable.
IMPORTANT: Methods A and B work with both public and private repositories. Method C only works with public repos. Always attempt A or B first.
Method A — Git CLI (preferred for git-clone installs)
Only available if the skills-for-fabric directory is a Git working tree (i.e. it has a .git entry — either a directory in a normal clone, or a file in a worktree/submodule). The Copilot CLI plugin install at ~/.copilot/installed-plugins/fabric-collection/fabric-skills/ has no .git entry — for that install layout, skip to Method B. If you want a tool-agnostic check, run git rev-parse --is-inside-work-tree and only proceed if it prints true.
If you do have a Git clone, fetch the remote package.json without pulling:
git fetch origin main --quiet
git show origin/main:package.json
Extract the version field from the JSON output. This method is the most reliable because it uses the already-configured remote URL and authentication, and avoids any owner/repo name parsing.
Method B — GitHub MCP tools (preferred for agentic environments)
If you have access to GitHub MCP server tools (e.g., get_file_contents), use them to read the remote package.json. Use the owner and repo extracted in Step 2 exactly as parsed (do not modify the strings):
get_file_contents(owner: "<owner>", repo: "<repo>", path: "package.json")
Extract the version field from the response. This method works with private repositories because MCP tools use authenticated GitHub access.
Method C — GitHub REST API (fallback only, public repos)
⚠️ Only use this method if Methods A and B both fail or are unavailable. This method does not work with private repositories.
If the repository is public, make a GET request using the owner/repo from Step 2:
GET https://api.github.com/repos/<owner>/<repo>/releases/latest
Extract the tag_name field (e.g., v0.2.0) and remove the v prefix.
Note: This method returns 404 for private repositories. If you receive a 404 error, do NOT assume the repository doesn't exist — retry with Method A or B.
Compare the local version with the remote version using semantic versioning:
Show a brief confirmation and proceed:
✅ skills-for-fabric v0.1.0 is up to date.
Show detailed information:
╔══════════════════════════════════════════════════════════════════╗
║ 🔄 skills-for-fabric Update Available ║
║ ║
║ Current: v0.1.0 → Latest: v0.2.0 ║
╚══════════════════════════════════════════════════════════════════╝
## What's New in v0.2.0
[Display relevant CHANGELOG.md entries here]
## Update Commands
Choose the update method based on how you installed skills-for-fabric.
### GitHub Copilot CLI (recommended)
/plugin update fabric-skills@fabric-collection
If you originally installed the plugin under the legacy id, this also works:
/plugin update skills-for-fabric@fabric-collection
The plugin was renamed in 0.3.0 (skills-for-fabric → fabric-skills),
but the legacy id is kept as a deprecated alias of fabric-skills, so
either /plugin update command pulls the canonical payload.
(Optional cleanup) To migrate your installed entry from the legacy id
to the canonical fabric-skills id:
/plugin uninstall skills-for-fabric@fabric-collection
/plugin install fabric-skills@fabric-collection
### Manual (Git clone)
cd /path/to/skills-for-fabric
git pull
(There are no installation scripts to re-run on 0.3.0+.)
─────────────────────────────────────────────────────────────────
Would you like to update now? (The current skill will still work)
After completing the check (regardless of result), update ~/.config/fabric-collection/last-update-check.json with today's UTC date (YYYY-MM-DD) for the current plugin. Create the directory and file if they don't exist. Preserve entries for other plugins already in the file.
~/.config/fabric-collection/last-update-check.jsonIf the update check fails (network error, API rate limit, etc.):
⚠️ Could not check for skills-for-fabric updates (network error).
Continuing with current version (v0.1.0).
Run '/skill check-updates' manually to retry.
Users can manually check for updates at any time:
/skill check-updatesCHANGELOG.md in repository rootnpx claudepluginhub microsoft/skills-for-fabric --plugin fabric-operationsChecks for updates to the skills-for-fabric marketplace at session start. Compares local version against GitHub releases and shows changelog if updates are available. Useful for staying up-to-date with skill changes.
Checks for skills-for-fabric marketplace updates at session start, compares local version against GitHub releases, and shows changelog if updates are available.
Checks if the bopen-tools plugin is up to date by comparing local and GitHub versions. Returns status (current, outdated, etc.) and suggests update commands. Fast (~70ms).