You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We recently started moving some agents (e.g. Codex) to native skills (.agents/skills/<skill>/SKILL.md) instead of extracting prompt/command templates.
While investigating hooks vs skills invocation (#1918), another issue surfaced: Spec-kit currently has multiple SKILL.md generators, and they can drift.
Current generators
Native skills in template zip (release packaging scripts)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
We recently started moving some agents (e.g. Codex) to native skills (
.agents/skills/<skill>/SKILL.md) instead of extracting prompt/command templates.While investigating hooks vs skills invocation (#1918), another issue surfaced: Spec-kit currently has multiple SKILL.md generators, and they can drift.
Current generators
Native skills in template zip (release packaging scripts)
.github/workflows/scripts/create-release-packages.sh/.ps1SKILL.mdduring CI packaging.Init-time conversion (
install_ai_skills())speckit.*.mdcommand templates intoskills/<name>/SKILL.md.compatibility,metadata.source, enhanced descriptions, etc).Extension/preset overrides (
agents.CommandRegistrar.render_skill_command())Why this matters
If these generators don’t share the same frontmatter schema + naming rules, we get subtle inconsistencies:
compatibility/metadata.sourcein some skillsdescriptionquality depending on which generator produced the skillcommand_id(often dotted, e.g.speckit.plan) and runtimeskill_name(hyphenated for Codex, dotted for Kimi)This becomes more important as agents converge on skills, and as hooks/extensions rely on consistent command identifiers.
Suggested direction (discussion)
Decide what is the canonical identifier:
speckit.planas a stable logicalcommand_id, and map to agent-specific skill names/invocation stringsDecide how to prevent drift:
Linking to the hook/invocation discussion because they’re related: #1918
Beta Was this translation helpful? Give feedback.
All reactions