Claude Code Plugin Structure
anthropics/claude-plugins-official
Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.
This skill should be used when the user asks to create a new Montage migration skill for the montage-web-migration plugin (e.g.
$ npx skills add wanteddev/montage-web --skill migration-skill-authoring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wanteddev/montage-web migration-skill-authoring --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/wanteddev/montage-web.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/migration-skill-authoring .claude/skills/migration-skill-authoring && 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 "migration-skill-authoring" agent skill from https://github.com/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoring into .claude/skills/migration-skill-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migration-skill-authoring", 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/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoringType 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 wanteddev/montage-web --skill migration-skill-authoring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wanteddev/montage-web migration-skill-authoring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wanteddev/montage-web.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/migration-skill-authoring .agents/skills/migration-skill-authoring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migration-skill-authoring" agent skill from https://github.com/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoring into .agents/skills/migration-skill-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migration-skill-authoring", 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 wanteddev/montage-web --skill migration-skill-authoring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wanteddev/montage-web migration-skill-authoring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wanteddev/montage-web.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/migration-skill-authoring .cursor/skills/migration-skill-authoring && 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 "migration-skill-authoring" agent skill from https://github.com/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoring into .cursor/skills/migration-skill-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migration-skill-authoring", 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/wanteddev/montage-web.git --path .claude/skills/migration-skill-authoring--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 wanteddev/montage-web --skill migration-skill-authoring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wanteddev/montage-web migration-skill-authoring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wanteddev/montage-web.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/migration-skill-authoring .gemini/skills/migration-skill-authoring && 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 "migration-skill-authoring" agent skill from https://github.com/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoring into .gemini/skills/migration-skill-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migration-skill-authoring", 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 wanteddev/montage-web migration-skill-authoringInstalls 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 wanteddev/montage-web --skill migration-skill-authoring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wanteddev/montage-web.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/migration-skill-authoring .github/skills/migration-skill-authoring && 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 "migration-skill-authoring" agent skill from https://github.com/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoring into .github/skills/migration-skill-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migration-skill-authoring", 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 wanteddev/montage-web --skill migration-skill-authoring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wanteddev/montage-web migration-skill-authoring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wanteddev/montage-web.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/migration-skill-authoring .opencode/skills/migration-skill-authoring && 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 "migration-skill-authoring" agent skill from https://github.com/wanteddev/montage-web/tree/main/.claude/skills/migration-skill-authoring into .opencode/skills/migration-skill-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migration-skill-authoring", 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.
migration-skill-authoringThis skill should be used when the user asks to create a new Montage migration skill for the montage-web-migration plugin (e.g.
Migration Skill Authoring is an agent skill from wanteddev/montage-web. This skill should be used when the user asks to create a new Montage migration skill for the montage-web-migration plugin (e.g. a future v4-to-v5), add or update content in an existing one (e.g. montage-v3-to-v4) after new breaking changes or codemods land, validate a migration skill, or says "마이그레이션 스킬 만들어줘", "마이그레이션 스킬 업데이트해줘", "v3-to-v4 스킬에 내용 추가해줘", "마이그레이션 스킬 검증해줘", "create/update/validate the migration skill". The pipeline (codemod analysis, ordering/idempotency derivation, authoring conventions…
Its SKILL.md is about 3.7k 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/authoring-conventions.md`, `scripts/analyze-codemods.js` and `scripts/validate-migration-skill.js`).
It sits in Agent Workflows, covering Code migrations and Skill authoring. The repository describes itself as: 🎨 Wanted Web Design System - Montage. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 58f924f. 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 2 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
gitnodeclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Migration Skill Authoring loads about 3.7k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 146 tokens; SKILL.md has 1,815 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 wanteddev/montage-web at commit 58f924f, republished under its MIT licence (© wanteddev). 1,815 words, ~3,712 tokens.
.claude/skills/migration-skill-authoring/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Author or update consumer-facing migration skills in
.claude-plugin/montage-migration/skills/. The pipeline: analyze the codemods with a
Workflow (never trust MIGRATION.md prose alone) → derive ordering and run-once
constraints from source facts → author the four-file deliverable per convention →
validate with a Workflow, fix, and re-run until clean.
skills/montage-v3-to-v4/ is the reference implementation; all conventions live in
references/authoring-conventions.md.
packages/codemod/src/transforms/<vN>/ and are registered in
MIGRATION_TRANSFORMS in packages/codemod/src/constants.ts.If either is missing, stop and surface it — the skill is authored FROM these, never ahead of them.
Enumerate the version's transforms from constants.ts, then run the analysis Workflow:
Workflow({
scriptPath: "<this skill's base directory>/scripts/analyze-codemods.js",
args: {
repoRoot: "<absolute repo root>",
migrationSection: "## <N>.0.0",
transforms: [
{ key: "<transform-name>",
files: "<absolute transform path(s), plus any *-map.ts files it imports>",
extra: "<transform-specific questions>" },
...
]
}
})Resolve <this skill's base directory> from the "Base directory for this skill" line
announced when this skill loaded. If the result's missing array is non-empty (or
docs is null when the docs agent was not skipped), re-run the analysis for those
transforms before Step 2 — never derive ordering or idempotency from partial analysis.
Write a pointed extra per transform: rename-chain suspects (any A→B where B is also
renamed), map-file interactions with other transforms' outputs, whether it touches
attribute names vs values, string literals vs identifiers.
references/authoring-conventions.md.Follow references/authoring-conventions.md exactly: the four files (SKILL.md,
references/codemod-steps.md, references/manual-migrations.md,
scripts/migration-workflow.js), the state-file spec, the workflow script conventions,
the writing conventions, and the grep pattern rules. Copy the montage-v3-to-v4 structure
and adapt content — do not invent a new shape.
Workflow({
scriptPath:
"<this skill's base directory>/scripts/validate-migration-skill.js",
args: {
repoRoot: '<absolute repo root>',
skillDir: '<absolute path of the authored skill>',
migrationSection: '## <N>.0.0',
transformsDir: '<absolute path of packages/codemod/src/transforms/vN>',
scope: 'full', // Mode A authors a whole skill, so everything is in scope. Mode B passes
// 'delta' (the default) — see "Scoping the review" below.
// optional — defaults derived from skillDir:
// pluginRoot: '<absolute plugin root>',
// knownIssuesFile: '<absolute path>/known-issues.md',
},
});repoRoot must be the checkout you are editing. When the work happens in a git
worktree, that is the worktree path — the parent checkout holds an older copy of the same
files at the same relative path, and a reviewer that reads it produces confident, entirely
false findings (one run yielded three false criticals that way). The script pins the
reviewers to absolute paths and makes each finding carry the wc -l of every file it cites;
the verify phase re-runs wc -l and refutes on mismatch. That guard only works if the paths
you pass are the ones you edited.
The run returns verified findings, not raw reviewer output: four reviewers fan out, then per-file verifiers dedup across reviewers, re-rate severity, and REFUTE anything they cannot reproduce. Read the result accordingly:
findings — CONFIRMED only, already deduped and re-rated. This is the worklist.refuted — dropped claims with the reason (stale-file-read, accepted-trade-off, or the
observation that killed it). Skim it: a wrongly refuted finding is possible, and the reasons
tell you whether a reviewer was reading the wrong tree.rawCount vs findings.length — the gap is how much noise the verify phase absorbed. A
large gap with many stale-file-read reasons means repoRoot was wrong.unassessedGroups — nonzero means a verifier died and its findings were never judged; re-run
before trusting a clean result.preExisting — CONFIRMED critical findings the change neither introduced nor invalidated
(empty under scope: 'full', where everything is in findings). They do NOT block
convergence, but they are corruption paths: fix them or add a known-issues.md entry
deliberately, and tell the user which you chose.clean — no CONFIRMED in-scope critical/major, all four reviewers returned, nothing
unassessed. preExisting is excluded by design; a pre-existing corruption path would
otherwise make every future change review unconvergeable.scope / diffBase / changedFiles — the scope the run ACTUALLY used, which can differ
from what was requested: an empty diff falls back to scope: 'full' (with diffBase and
changedFiles returning null). Check these before reading a delta run as clean — a
'full' here when you passed 'delta' means the diff base was wrong, not that the change
reviewed clean.scope: 'delta' (the default) validates the change, not the whole package. A Scope phase
runs git diff --unified=0 <diffBase> (default HEAD; pass the base branch when the change is
already committed) and hands the reviewers the changed line ranges. They still READ every file —
consistency checking is impossible otherwise — but may only report a finding that is anchored in
a changed region, is unchanged text the change made wrong (blast-radius: a now-stale
cross-reference, count, or duplicated statement — the highest-value category in update mode), or
is critical. The verify phase re-checks the scope itself and refutes out-of-scope non-criticals
with reason out-of-scope. The structure reviewer is exempt: its checks are mechanical and
actionable wherever they fail.
Use scope: 'full' for Mode A, and for a deliberate periodic audit of an existing skill. Do NOT
use it for a routine Mode B update: a full audit re-surfaces the entire pre-existing backlog
every round, which buries the change's own defects and prevents convergence (one M-section
addition produced 21 confirmed findings across two rounds, none of them in the new section).
When the diff comes back empty the run logs it and falls back to a full audit — check the
diffBase you passed rather than trusting that result as a clean change review.
Record deliberate trade-offs (a version bump the user deferred, a length budget knowingly
exceeded) in <skillDir>/known-issues.md, one short entry each. Reviewers and verifiers read
it and stop re-reporting them, which is what keeps successive runs comparable.
Fix every critical/major finding, then RE-RUN the validation Workflow — a real fix
can introduce a new real defect, so critical/major always warrants another pass.
Stop re-running once a round returns no critical/major and its minor findings are
only heuristic refinement. The validation reviewers are adversarial and will almost
always surface something; clean: true is the ideal, not a required terminal state.
Each round is expensive (four large sub-agents), so converge deliberately:
minor findings that are genuine defects (a wrong rename-table entry, a broken
grep that silently finds nothing, a state-schema contradiction, a claim that
contradicts the transform source) — these are cheap and worth another pass with the
critical/major fixes.minor findings that just make an already-hedged heuristic
incrementally tighter — "this scan pattern also misses 'wds-' + kind", "widen this
regex to also match props.theme", etc. The scan patterns are declared line-based
heuristics ("a clean scan is 'nothing obvious', not proof of absence"); chasing every
regex edge case with more regex contradicts that framing and never terminates. Apply
the ones you judge worthwhile in a single final edit and do not re-validate solely to
confirm them.minor you are deliberately not acting on (e.g. a version bump the user deferred)
belongs in known-issues.md plus a one-line note in your report, not another round.Practically: expect ONE re-run after the first substantive fix pass, occasionally two if
that pass surfaced new critical/major. If a round yields only heuristic-refinement
minors, you are done — stop and report. The structure reviewer already runs the
mechanical checks (workflow-script syntax wrap + node --check, prettier); run them
manually (procedure in the conventions doc) after your final edits instead of triggering
a whole validation round just to confirm formatting.
Update the plugin README.md/README.ko.md skill listing, bump
.claude-plugin/montage-migration/.claude-plugin/plugin.json (minor) and
.claude-plugin/marketplace.json. Suggest a trigger test:
claude --plugin-dir .claude-plugin/montage-migration.
For new breaking changes, a new codemod, or corrections landing in a version that already has a skill:
references/authoring-conventions.md — a new step or M-section touches EVERY listed
surface (SKILL.md, both references, the workflow script's CODEMOD_STEPS /
MANUAL_SCAN_SECTIONS / STATE_FILE_TEMPLATE, both READMEs). Partial updates are how
the files start contradicting each other.scripts/analyze-codemods.js with just the new or
modified transforms (skipDocsAgent: true if the CLI is untouched). A changed
transform's idempotency must be re-traced from source, not assumed stable. For a step
inserted anywhere but last, the extra MUST also ask: "does this transform behave
correctly on code already migrated by the steps that canonically follow it?" —
consumers who completed later steps will run it on a post-migration tree.pending. Then encode the semantics INTO the consumer
deliverable, not just here: the consumer SKILL.md's Step 0 resume item and the
workflow step-agent prompt must both state that a step key missing from an older
state file is pending (so resuming consumers pick up the new step), and if the new
step lands before steps consumers may have completed, the resume item must say the
new step still runs and what to verify first. Add the new step's post-step
verification grep to the consumer skill's "already migrated" preflight path and final
verification, so consumers who FINISHED the migration get flagged when they invoke
the skill again.scope: 'delta' (Step 4 above, and its "Scoping the
review" subsection). Delta scope constrains what reviewers may REPORT, never what they
READ — they still load the whole package, because the consistency reviewer exists
precisely for update-mode drift (renumbering a step leaves stale cross-references that
reading the diff alone would never reveal). That drift is the blast-radius category and
it survives scoping by design; what scoping drops is the pre-existing backlog that has
nothing to do with your change. Apply Step
4's convergence rule: re-run after each critical/major fix pass, but stop once a
round returns only heuristic-refinement minors — do not loop toward clean: true.
Reach for scope: 'full' only when you deliberately want a whole-package audit, and
expect it not to converge on the change: budget it as separate work.references/authoring-conventions.md — the deliverable structure, consistency
surfaces, sequencing/run-once design, workflow-script and writing conventions, verified
CLI facts, grep pattern rules, mechanical validation.scripts/analyze-codemods.js — analysis Workflow (per-transform facts + CLI/docs).scripts/validate-migration-skill.js — validation Workflow (fact-check,
consistency, quality, structure); re-run until clean: true.© wanteddev, MIT. 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 .claude/skills/migration-skill-authoring of wanteddev/montage-web.
Open the folder on GitHubat commit 58f924f
Migration Skill Authoring 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 |
|---|---|---|---|---|---|---|
| Migration Skill Authoring this skillwanteddev/montage-web | 117 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Claude Code Plugin Structureanthropics/claude-plugins-official | 38k | 10 repos | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| SkillAnything Skill GeneratorAgentSkillOS/SkillAnything | 471 | — | ~1.9k | Automated safety check: Pass | MIT | |
| LubanLearnPrompt/luban-skill | 958 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Crush Builtin Skillscharmbracelet/crush | 29k | — | ~466 | Automated safety check: Pass | Custom licence | |
| Build Cs Skillcodestable/CodeStable | 1.1k | — | ~3k | Automated safety check: Pass | None |
anthropics/claude-plugins-official
Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.
AgentSkillOS/SkillAnything
Generates a complete agent skill for a target tool, API, library or workflow through a seven-phase pipeline that ends with testing, tuning and packaging for several platforms.
LearnPrompt/luban-skill
鲁班(Luban)——Skill打磨工坊。把一个"能用的Skill"打磨成"能被理解、能被安装、能被传播、能被验证、能持续进化"的公共Skill资产。
charmbracelet/crush
Explains how the Crush coding agent embeds builtin skills in its binary and how to add or edit one, including the discovery test and build commands.
codestable/CodeStable
CodeStable skill authoring and evolution protocol. An agent skill from codestable/CodeStable.
laude-institute/headlong
Scaffolds new ShellLM skills with the right frontmatter, directory layout and agent-facing writing style, so an agent can extend its own capabilities.
wanteddev/montage-web
Guide for building UI with Montage (Wanted Design System) in React/Next.js projects.
wanteddev/montage-web
Sync icons from the Figma file into icon and open a PR by dispatching the figma-icon-sync-code-connect.yml GitHub Actions workflow.
wanteddev/montage-web
Create a GitHub pull request from the current branch. An agent skill from wanteddev/montage-web.
Categories
This skill should be used when the user asks to create a new Montage migration skill for the montage-web-migration plugin (e.g. Migration Skill Authoring is an agent skill from wanteddev/montage-web.g.
Migration Skill Authoring fits situations like: asks to create a new Montage migration skill for the montage-web-migration plugin (e.g; tasks that involve Code migrations; tasks that involve Skill authoring.
Run `npx skills add wanteddev/montage-web --skill migration-skill-authoring -a claude-code`. Or copy the skill folder (.claude/skills/migration-skill-authoring in wanteddev/montage-web) into .claude/skills/migration-skill-authoring in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wanteddev/montage-web --skill migration-skill-authoring -a codex`. Or copy the skill folder (.claude/skills/migration-skill-authoring in wanteddev/montage-web) into .agents/skills/migration-skill-authoring 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 wanteddev/montage-web --skill migration-skill-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migration-skill-authoring, .gemini/skills/migration-skill-authoring, .github/skills/migration-skill-authoring and .opencode/skills/migration-skill-authoring in your project.
Going by SKILL.md and its folder, Migration Skill Authoring needs JavaScript for the scripts in its folder and the command-line tools its instructions call (git, node and claude). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git, 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.
Migration Skill Authoring is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k 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 2.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Migration Skill Authoring: Claude Code Plugin Structure (anthropics/claude-plugins-official, 38k stars), SkillAnything Skill Generator (AgentSkillOS/SkillAnything, 471 stars), Luban (LearnPrompt/luban-skill, 958 stars) and Crush Builtin Skills (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wanteddev (a GitHub organization) maintains it in wanteddev/montage-web, which has 117 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.
Source: wanteddev/montage-web on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.