From all-skills
Manages skill updates by checking upstream sources for new versions via mise commands, auditing staleness, generating reports, and bootstrapping sources.toml tracking.
npx claudepluginhub vinnie357/claude-skills --plugin alliumThis skill uses the workspace's default tool permissions.
Structured workflow for keeping skills current with upstream sources. Execute all phases in order.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Structured workflow for keeping skills current with upstream sources. Execute all phases in order.
| Command | Purpose |
|---|---|
mise sources:check | Compare current vs latest for all plugins |
mise sources:stale | List only stale sources |
mise sources:validate | Validate sources.toml schema in all plugins |
mise sources:report | Full freshness report with priorities |
mise sources:init <plugin> | Bootstrap sources.toml for a plugin |
Each plugin's skills/sources.toml tracks upstream dependencies. See templates/sources.toml for the complete annotated template.
| Field | Values | Required | Description |
|---|---|---|---|
skill | string | yes | Skill directory name |
name | string | yes | Human-readable source identifier |
url | string | yes | Primary source URL |
releases_url | string | no | Release tracking URL |
check_method | see table below | yes | How to query latest version |
github_repo | owner/repo | conditional | Required for github-releases |
hex_package | string | conditional | Required for hex-pm |
crate_name | string | conditional | Required for crates-io |
current_version | string | yes | Currently documented version |
version_constraint | pre-1.0 | semver | rolling | stable | yes | Version stability model |
last_checked | YYYY-MM-DD | yes | Date of last check |
update_priority | high | medium | low | yes | Update urgency |
breaking_changes_likely | bool | no | Minor bumps may break (default: false) |
notes | string | no | Free-form context |
check_method | Endpoint | Auth | Rate Limit |
|---|---|---|---|
github-releases | https://api.github.com/repos/{owner}/{repo}/releases/latest | Optional GITHUB_TOKEN | 60/hr unauth, 5000/hr auth |
hex-pm | https://hex.pm/api/packages/{package} | None | 100/min |
crates-io | https://crates.io/api/v1/crates/{crate} | User-Agent header required | 1/sec |
manual | N/A | N/A | N/A — check releases_url manually |
See references/version-check-methods.md for Nushell parsing examples.
Run mise sources:check to produce a staleness table:
plugin | skill | source | current | latest | stale | priority
claude-code | container | apple-container | 0.10.0 | 0.11.0 | yes | high
elixir | tidewave | tidewave | 0.5.6 | 0.5.6 | no | medium
If sources.toml does not exist for a plugin, run mise sources:init <plugin> first.
Anti-fabrication: Do not report version numbers without executing mise sources:check or querying the upstream API directly. Mark unknown versions as "requires-check".
Classify each stale source before updating:
| Condition | Classification | Action |
|---|---|---|
pre-1.0 + breaking_changes_likely = true + major bump | Critical | Full migration checklist |
semver + major version bump | Breaking | Breaking changes review required |
semver + minor/patch bump | Standard | Light-touch update |
rolling or stable | Docs | Documentation refresh only |
Priority order: high → medium → low. Within same priority: breaking changes first.
For each update target, collect before writing any changes:
releases_urltemplates/0.11.0/commands.md)Anti-fabrication requirements:
WebFetch or equivalent to retrieve changelog contentApply changes following the type-specific checklist in references/update-checklist.md.
| Skill type | Examples | Checklist section |
|---|---|---|
| CLI tool | container, bees, beads | CLI Tools |
| Library package | tidewave, wasmex, phoenix | Library Packages |
| Language/runtime | rust, zig | Language/Runtime |
| Documentation-based | git, accessibility, twelve-factor | Documentation-Based |
When a CLI tool has breaking command changes across versions, create a versioned template:
skills/<skill-name>/
└── templates/
└── <new-version>/
└── commands.md # Commands snapshot for this version
Reference the old version template in the migration section of SKILL.md.
Complete in this order after every update:
sources.toml: set current_version and last_checkedsources.md: add release entry with date and summary<plugin>/.claude-plugin/plugin.json.claude-plugin/marketplace.jsonmise update-all-skillsmise testUse patch bumps (e.g., 0.5.6 → 0.5.7) unless the skill itself has breaking changes.
| Check | Command | Pass Criteria |
|---|---|---|
| Schema | mise test | All plugins pass |
| SKILL.md length | wc -l SKILL.md | Under 500 lines |
| Sources valid | mise sources:validate | No schema errors |
| Commit format | — | Conventional commit, no attribution |
Commit format: chore(<plugin>): update <skill> to <version>
Example: chore(claude-code): update container to 0.11.0
Create PR with minimal format (title + bullet list, no attribution, no boilerplate sections).
For batch updates across multiple plugins, spawn agents per plugin:
Orchestrator (sonnet)
├── Plugin checker (haiku) — runs mise sources:check for one plugin
├── Plugin checker (haiku) — runs mise sources:check for another plugin
└── ...
For each stale source:
├── Standard update (haiku) — minor/patch semver, docs-based
└── Breaking update (sonnet) — major semver, pre-1.0 breaking, CLI tools
Promote model if an agent fails the same task twice: haiku → sonnet → opus.
When a plugin has no sources.toml:
mise sources:init <plugin> to generate a skeleton[[sources]] entries for each skillcurrent_version by reading the skill's current SKILL.mdlast_checked to today's datemise sources:validate to confirm schemachore(<plugin>): add sources.toml for version tracking