From claude-code
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 claude-codeThis skill uses the workspace's default tool permissions.
Structured workflow for keeping skills current with upstream sources. Execute all phases in order.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
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