Plugin skill with a namespaced frontmatter `name` gets the plugin prefix applied twice (2.1.216)
What happens
A plugin skill whose frontmatter name already begins with <plugin>: gets the plugin prefix applied a second time, so the slash menu renders a doubled id:
/cadence:cadence:tend
/cadence:cadence:lore
instead of /cadence:tend and /cadence:lore.
Repro
- A plugin
cadencedeclaring its skills via"skills": ["./"]. - A skill at
skills/tend/SKILL.mdwith frontmattername: cadence:tend. - Type
/cadat the prompt.
Expected: /cadence:tend
Actual: /cadence:cadence:tend
Why this convention existed
This is a regression only against a convention a previous release actively created, which is why it caught a whole plugin ecosystem at once:
- 2.1.94 — "Plugin skills declared via
"skills": ["./"]now use the skill's frontmatternamefor the invocation name instead of the directory basename." This madename: cadence:tendrender as/cadence:tend, so declaring the fully-qualified id became the natural way to make a skill's source self-documenting and greppable — the file states the id you actually type. - 2.1.216 — "Fixed plugin skills with a
namefrontmatter field losing their plugin prefix in slash-command autocomplete." The prefix is now prepended unconditionally, so an already-prefixed name doubles.
Both changes are individually reasonable. The gap is that 2.1.216 doesn't account for names written against 2.1.94's behavior.
Request
When a plugin skill's frontmatter name already begins with <plugin>:, don't prepend the prefix a second time — treat the declared name as already qualified.
That single check makes both conventions render correctly and costs nothing for the bare-name case. As it stands, every plugin author who adopted the 2.1.94 behavior has a broken slash menu with no in-product signal about why.
Notes
- Model-side invocation is unaffected — the skill id resolves as
plugin:directoryeither way. This is autocomplete/display only. - I've swept my own ecosystem (142 skills across three repos) to bare names, so this isn't blocking me. Filing because other plugin authors on the 2.1.94 convention are stranded the same way and the failure mode is silent.
- Related: 2.1.218 made agent markdown reject names containing
:. If skills are headed for the same restriction, saying so explicitly would help — de-duplication and rejection are both fine outcomes, but the current state (silently accepted, doubled at render) is the worst of the three.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗