fix(plugins): name each skill after its plugin directory - #1361
Merged
Merged
Conversation
Claude Code and Codex invoke a plugin skill by its frontmatter `name:`, so the `magpie-<flat-name>` names surfaced as `/magpie-setup:magpie-setup-isolated-setup-verify` instead of the de-stuttered `/magpie-setup:isolated-setup-verify`. Every `name:` is now the family-plugin directory name, which is also what the Agent Skills specification requires. Repository installs are unchanged: Claude Code and VS Code still invoke them by their `magpie-<flat-name>` directory, and now list them under the shorter name as the display label. Gemini CLI keeps skill names in one flat registry, so aliases must be unique across families: the pull-request family's `triage` and `stale-sweep` become `pr-triage` and `pr-stale-sweep`. The skill validator now requires `name:` to match the directory a SKILL.md really lives in, and check-family-plugins rejects an alias repeated across families. Generated-by: Claude Opus 5
16 tasks
potiuk
added a commit
that referenced
this pull request
Sep 24, 2026
Reconciles the spec-loop specs with the functionality that shipped between 5c75abd and bcd8b7f: - agent-isolation-sandbox: the hardware-key touch policy (sig cached + aut off with OpenPGP signing, aut cached with gpg.format=ssh) (#1367); touch-watcher owner is the harness (#1365); macOS overlay closes on deactivation (#1325); whole-user git hooks allowRead and dispatcher flavour (#1364, #1322, #1358); agent-guard finds the git subcommand past global flags (#1330); agent-guard plugin counts as a complete install (#1323); per-tool cooldown_days, bubblewrap 0.13.0 (#1360). - sandbox-diagnostics: ten catalogue entries (prek/uv not found, git hooks silently skipped) (#1359, #1364); doctor probes as scripts, with probes 7 and 8 (#1336, #1362, #1364); verify's 12 checks and conditional-checks.md (#1334). - vetted-command-surface: HTTP read backend with the OSV and CVE.org operations (#1326); the vetted-op-read recipe spelling (#1339); the plugin copy resolves standalone (#1357). - cve-tooling: tools/osv (contract:security-cross-ref) and the cve-org check through vetted-ops (#1297, #1326). - security-issue-lifecycle: step 2b proposes going ahead on a quiet reporter (#1340); the post-advisory security-pages update (#1355). - meta-and-quality-tooling: name: must match the skill directory (#1361); skill-evals fixture containment and grader retry (#1315, #1341); optimize-skill budgets, eval gate, rewrite and extract-code passes (#1331, #1332, #1335, #1338); diff-scoped prek CI (#1317). - marketplace-distribution: substrate plugins (#1368, #1357). - adversarial-review (new): the tool and substrate plugin as shipped (#1368), with its known gaps. Generated-by: Claude Opus 5
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.
Summary
name:, soname: magpie-setup-isolated-setup-verifysurfaced as/magpie-setup:magpie-setup-isolated-setup-verifyinstead of/magpie-setup:isolated-setup-verify.docs/setup/marketplace.mdclaimed themagpie-prefix was ignored; it is not (Claude Code docs: "Set the frontmatternamefield to control the skill's invocation name"; Codexcodex-rs/skills/src/parser.rs).name:is now the family-plugin directory name (75 skills), which is also what the Agent Skills specification requires (namemust match the parent directory). Before this, every skill failed that rule, and a strict Agent Plugins client must skip non-conforming skills.magpie-<flat-name>directory; they now list it under the shorter frontmatter name as its display label. Documented in the "Skill names differ" notes and the self-adoption section.triage/stale-sweepbecomepr-triage/pr-stale-sweep(the issue family keeps the bare names).check-family-plugins.pyrejects a cross-family repeat; the skill validator now requiresname:to equal the directory aSKILL.mdreally lives in (symlinks resolved).Per-harness behaviour this is based on (verified from source where open, docs otherwise):
name:/magpie-setup:isolated-setup-verifyname:is the display label/magpie-setup-isolated-setup-verify(unchanged)name:, namespaced by the owning pluginmagpie-setup:isolated-setup-verifyname:, flat registryisolated-setup-verify(hence cross-family uniqueness)name= folderType of change
name:only, plus link paths into the two renamedmagpie-pr-managementdirectoriestools/skill-and-tool-validator,list-skillsscript)docs/setup/marketplace.md, install-method notes, setupinstall.md, validator README, marketplace spec)check-family-plugins.py,check-doc-sync.pystutter guard now accepts a live alias such aspr-triage)Test plan
prek run --all-filespasses (rebased ona2751351)uv run pytestfortools/skill-and-tool-validator(new cases: prefixed name fails, symlinked skill uses the real directory),tools/dev(cross-family uniqueness, everyname:equals its plugin directory, live-alias stutter case), andlist-skills(repository invocations come from the directory; framework source prefixedmagpie-)magpie-…names are self-contained scenarios and stay consistent/menu in each harness after installing from this branchUpgrade notes
/magpie-pr-management:triage→/magpie-pr-management:pr-triage,/magpie-pr-management:stale-sweep→/magpie-pr-management:pr-stale-sweep.name:. Existing stamps keep their old keys until the next/magpie-setupreconcile re-stamps under the new names; until then the per-skill fingerprint check stays silent rather than nagging.RFC-AI-0004 compliance
Linked issues
None.
Generative-AI disclosure: drafted with Claude Code (Claude Opus 5); reviewed by the submitter.
🤖 Generated with Claude Code