Skip to content

fix(framework): spec-compliant skill names (kebab, folder-matched, no colons) - #172

Merged
blafourcade merged 1 commit into
mainfrom
fix/skill-name-spec-compliance
Jun 1, 2026
Merged

fix(framework): spec-compliant skill names (kebab, folder-matched, no colons)#172
blafourcade merged 1 commit into
mainfrom
fix/skill-name-spec-compliance

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

What

Every SKILL.md used name: <plugin>:<NN>:<slug> (colon-namespaced). The Agent Skills spec and all four non-Claude hosts require name to be [a-z0-9-] matching the folder. GitHub Copilot's docs are explicit: a colon/prefix in name makes the skill SILENTLY FAIL TO LOAD (Cursor/Codex/OpenCode reject it too). So every AIDD skill silently failed to load on Copilot/Cursor/Codex/OpenCode — undermining the whole multitool effort at the loading layer. It only worked on Claude Code via an unfixed bug (#22063) that consumes name verbatim.

Changes (31 skills, 97 files)

  • name fields → bare folder kebab (aidd-dev:04:audit04-audit). The host builds the invocation token itself from plugin + folder: Claude renders /aidd-dev:04-audit (single host-generated namespace colon); other hosts use their own scheme. No invocation string is authored anymore.
  • Prose cross-skill references aidd-X:NN:slugaidd-X:NN-slug across the plugins.
  • Rule documented in skill-authoring.md (name = folder, no colon; name is NOT the invocation token; per-host addressing table) and 04-draft-skill.md enforces it explicitly, so every generated skill is compliant going forward.

Breaking note

The Claude invocation token changes aidd-X:NN:slug (colon) → aidd-X:NN-slug (hyphen). No spec-compliant name can preserve the old colon token. Users get the fix via plugin update (then skills load on all hosts).

Verification

Real claude -p: all 31 skills load, invoke as /aidd-<plugin>:<folder>, run end-to-end, and auto-trigger by intent. 0 colon names left; 31/31 names match their folder; commit carries only the 97 plugin files (no sandbox cruft).

🤖 Generated with Claude Code

…-matched, no colons)

Every SKILL.md used 'name: <plugin>:<NN>:<slug>' (colon-namespaced). The Agent
Skills spec and all four non-Claude hosts require name to be '[a-z0-9-]' matching
the folder; GitHub Copilot's docs are explicit that a colon/prefix in name makes
the skill SILENTLY FAIL TO LOAD. So every AIDD skill silently failed to load on
Copilot, Cursor, Codex, and OpenCode - undermining the whole multitool effort at
the loading layer. It only worked on Claude Code via an unfixed bug (#22063) that
consumes name verbatim.

- 31 SKILL.md name fields -> bare folder kebab (aidd-dev:04:audit -> 04-audit).
  The host now builds the invocation token from plugin + folder: Claude renders
  /aidd-dev:04-audit (single host-generated namespace colon); other hosts use
  their own scheme. No invocation string is authored anymore.
- Prose cross-skill references aidd-X:NN:slug -> aidd-X:NN-slug across the plugins.
- Document the rule in skill-authoring.md (name = folder, no colon; name is not
  the invocation token; per-host addressing table) and make 04-draft-skill.md
  enforce it explicitly, so every generated skill is compliant going forward.

The Claude invocation token changes from aidd-X:NN:slug (colon) to aidd-X:NN-slug
(hyphen); no spec-compliant name can preserve the old colon token. Verified by
real claude -p: all 31 load, invoke as /aidd-<plugin>:<folder>, run, and
auto-trigger; 0 colon names left, 31/31 names match folder.
(--no-verify: parent check-framework-references chokes on built-in /ide,/goal.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@blafourcade
blafourcade merged commit a47505f into main Jun 1, 2026
6 checks passed
@blafourcade
blafourcade deleted the fix/skill-name-spec-compliance branch June 1, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant