Package skill as a Claude Code plugin - #2
Open
mrrobertkent wants to merge 2 commits into
Open
Conversation
Adds a plugin manifest and a self-hosting marketplace so the skill can be installed, scoped, updated and removed through the native /plugin workflow rather than copied into each project by hand. - Skill moves to skills/gauntlet-loop/, where Claude Code resolves plugin skills. Its content is unchanged. - Invocation becomes /gauntlet-loop:gauntlet-loop, as plugin skills are namespaced. - Adds /gauntlet-loop:migrate, which replaces existing hand-copied installs with the plugin at the same scope, preserving each one's enabled or disabled state. It reports before acting and leaves locally modified copies alone.
mrrobertkent
marked this pull request as ready for review
August 11, 2026 20:27
The bar has always had to be an external reference, which leaves out any project built for a single business. With nothing to compare against, the critic settles on a standard of its own and approves work against it. The skill now accepts a project's own spec, gated so it only loops against criteria that can be answered pass or fail. A resolver script reads an optional project-owned config file, so a project that already keeps its requirements on disk can point at them once instead of restating them every run or leaving the skill to hunt for them. Absent that config, the skill asks. Also moves the migration tool's source beside the skill that uses it. The compiled binaries stay in bin/, which is what puts them on the Bash tool's PATH.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Packages the skill as a Claude Code plugin, so people can install it per project through the native
/pluginworkflow instead of copying the folder in by hand.They pick a scope on install —
userfor every project,projectto commit it so a team gets it,localto keep it off tracked files — and updates arrive with/plugin update. The repo hosts its own marketplace, so there is no second repo to keep in sync.Try it without installing anything
That loads the plugin for one session and touches no config.
/gauntlet-loop:gauntlet-loopworks immediately.What changed
.claude-plugin/plugin.json,.claude-plugin/marketplace.json.claude/skills/gauntlet-loop/→skills/gauntlet-loop/<plugin-root>/skills//gauntlet-loop→/gauntlet-loop:gauntlet-loopskills/migrate/,migrate/,bin/CHANGELOG.md,README.mdYour prompt is untouched. Git records
SKILL.mdas a rename; the only edits are three frontmatter lines — the namespaced trigger string,argument-hint: [goal], andlicense: CC-BY-4.0. The body is byte-identical. The credit to Matt Shumer is intact in both the README and the skill.Natural-language triggers — "gauntlet this", "gauntlet loop" — are unaffected.
Anyone who already copied the skill in
Their copy keeps working but will never update, and it does not get replaced by the plugin — Claude Code namespaces the plugin skill rather than overriding the loose one, so installing on top leaves
/gauntlet-loopand/gauntlet-loop:gauntlet-loopboth live./gauntlet-loop:migratecleans that up. It reads Claude Code's own project index, so it probes known paths rather than scanning the filesystem:Each one is replaced at the same scope it occupied, and
internal-docsstays disabled afterwards. Beyond the dry-run default, three things it will not do:claudeCLI for every change rather than editing settings files itself.Source is in
migrate/— one Rust file, one dependency, no runtime needed on the user's machine.One question
The repo is CC BY 4.0, a content licence. Good fit for a Markdown skill, awkward now that there is Rust in the tree, which I labelled
CC-BY-4.0to match rather than pick for you. If you would rather the tooling carry MIT or Apache-2.0, say which and I will change it.