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
{{ message }}
Repository navigation
Are skills even necessary? why bloat context with 10 openspec skills? #611
just updated to 1.0 and to be honest it looks like having 10 dedicated to openspec skills looks like over engineering. do we even need them? why bloat context with 10 skills? are they there so agent can decide to use them instead of me manualy invoking commands? so if i want to just use manual flow where i propose, apply, archieve myself then i can just remove skills?
@da1z skills are progressively disclosed the context bloat is extremely minimal. The only thing that gets added is skill name + description.
In Claude Code for example skills and clash commands have now become the same thing and are treated the same way. A lot of coding agents are going down this route as well.
We're still figuring out how to handle this in the future, but this is less up to us as much as it is just following the standards being set in the industry.
To clarify by "context bloat" I mean decision surface area, not token count. I have 5 skills tailored to my tech stack and workflow. Adding 10 OpenSpec skills means the LLM now picks from 15 options, which can dilute how often it reaches for my domain-specific tools.
Maybe openspec skills can be consolidated into one skill with index and progressive disclosure of sub skills?
Reacted by Aelita, Heitor Lessa, Maksim Misiukevich, Maxim Brashenko, Matt Aydin, HawkLi001, Keath Milligan, Kamil Kozak and diffnull
The thing is, skills work like lazy context — and I'm working in a huge monorepo where there could potentially be 100+ skills. When I saw 10 openspec-* skills, I was a bit shocked 😄 Even if the context optimization gains aren't huge, it would still be a much better developer experience.
A couple of thoughts on what might work better — and could actually enable an approach where you have 1 skill with multiple flows:
1) I've already tested this (just a bit, but it seems to work) — if you use commands as bindings to a skill, you don't need to repeat the entire prompt.
.command/opsx/archive.md
Load and follow the `openspec-archive-change` skill.
If already loaded in this conversation, skip loading and follow the existing instructions.
That's roughly how it looks. In some agents you don't even need this — you can trigger skills directly.
2) Haven't tested this one myself yet, but both Claude's own docs and some top-tier skills (e.g. Vercel) use this structure:
{{name}}/
SKILL.md
references/...
So the skill could provide general context on how to use OpenSpec — given that most OpenSpec commands will be needed anyway. The context will load most of the "knowledge" regardless, if anyone on the team uses this approach.
So my plan is to test this when I have time (or feel free to try it yourselves) — consolidate everything into one general skill + flows for each command. Then commands like archive.md would just instruct to use the skill + a specific flow.
In theory, this should work great. Something like this:
.skills/openspec/
SKILL.md # general context + how to use OpenSpec
flows/
archive-change.md
create-feature.md
implement-task.md
...
.commands/opsx/
archive.md # "Load openspec skill, follow archive-change flow"
feature.md # "Load openspec skill, follow create-feature flow"
implement.md # "Load openspec skill, follow implement-task flow"
Reacted by Tabish Bidiwale, Lockonlin, XIN ZHU and suiyan-li@pub
Reacted by Tabish Bidiwale, XIN ZHU and Felipe Rubio
Using primary opencode. For opencode the init generates almost identical files under skills and commands. Mostly what I can see that the commands are bit more verbose compared to skills. Why have this duplication?
Personally will be removing the skills and rely just on the commands for the time being. Hopefully OC can merge commands+skills and have consistency.
Reacted by Tema Smirnov, Maksim Misiukevich, Kamil Kozak and diffnull
Mostly what I can see that the commands are bit more verbose compared to skills. Why have this duplication?
Because some folks like to use natural language vs some like to have commands. In some agents skills and commands are the same thing, in others this isn't true.
There's just a lot of preferences to cater for here. I think the way to handle this is to just make this configurable for users so they can choose what to install / uninstall.
Reacted by Antonio, Mike, Aelita, Kiryl Chetyrbak, Lockonlin, Christoph Hennemann, Anand Kumar Parhi, Rosetears520, Maksim Misiukevich, suiyan-li@pub and 2 more
For what it's worth, in our setup with claude code we've removed the commands and just use the skills, as they can be used by both the agent and as slash commands
Reacted by Tabish Bidiwale, XIN ZHU, Dušan Todorović and Kamil Kozak
Activity
TabishB commentedon Jan 28, 2026
@da1z skills are progressively disclosed the context bloat is extremely minimal. The only thing that gets added is skill name + description.
In Claude Code for example skills and clash commands have now become the same thing and are treated the same way. A lot of coding agents are going down this route as well.
We're still figuring out how to handle this in the future, but this is less up to us as much as it is just following the standards being set in the industry.
da1z commentedon Jan 28, 2026
To clarify by "context bloat" I mean decision surface area, not token count. I have 5 skills tailored to my tech stack and workflow. Adding 10 OpenSpec skills means the LLM now picks from 15 options, which can dilute how often it reaches for my domain-specific tools.
Maybe openspec skills can be consolidated into one skill with index and progressive disclosure of sub skills?
evilsamaritan commentedon Jan 29, 2026
@TabishB
I was wondering the same thing. #590
The thing is, skills work like lazy context — and I'm working in a huge monorepo where there could potentially be 100+ skills. When I saw 10
openspec-*skills, I was a bit shocked 😄 Even if the context optimization gains aren't huge, it would still be a much better developer experience.A couple of thoughts on what might work better — and could actually enable an approach where you have 1 skill with multiple flows:
1) I've already tested this (just a bit, but it seems to work) — if you use commands as bindings to a skill, you don't need to repeat the entire prompt.
.command/opsx/archive.mdThat's roughly how it looks. In some agents you don't even need this — you can trigger skills directly.
2) Haven't tested this one myself yet, but both Claude's own docs and some top-tier skills (e.g. Vercel) use this structure:
So the skill could provide general context on how to use OpenSpec — given that most OpenSpec commands will be needed anyway. The context will load most of the "knowledge" regardless, if anyone on the team uses this approach.
So my plan is to test this when I have time (or feel free to try it yourselves) — consolidate everything into one general skill + flows for each command. Then commands like
archive.mdwould just instruct to use the skill + a specific flow.In theory, this should work great. Something like this:
antonio-ivanovski commentedon Jan 29, 2026
Using primary opencode. For opencode the init generates almost identical files under
skillsandcommands. Mostly what I can see that the commands are bit more verbose compared to skills. Why have this duplication?Personally will be removing the skills and rely just on the commands for the time being. Hopefully OC can merge commands+skills and have consistency.
TabishB commentedon Jan 30, 2026
Thanks for the feedback everyone, this is under active investigation. We're looking at finding a better way to do this.
@antonio-ivanovski
Because some folks like to use natural language vs some like to have commands. In some agents skills and commands are the same thing, in others this isn't true.
There's just a lot of preferences to cater for here. I think the way to handle this is to just make this configurable for users so they can choose what to install / uninstall.
yonaskolb commentedon Jan 31, 2026
For what it's worth, in our setup with claude code we've removed the commands and just use the skills, as they can be used by both the agent and as slash commands
postbird commentedon Feb 1, 2026
I see that claude code has combined the slash commands and skills, all commands will be injected into SKILL tool's description.
So we can see there are actually 20 skills related to openspec.
Do we have or plan a mechanism to customize the metadata for different ai coding tools?
I think claude code has given their solutions to https://code.claude.com/docs/en/skills#control-who-invokes-a-skill
viteinfinite commentedon Feb 4, 2026
Strong supporter of
disable-model-invocation: truehere.TabishB commentedon Apr 12, 2026
we've made skill / command installation optional. you can select what you want using
openspec config profile.