Skip to content

Are skills even necessary? why bloat context with 10 openspec skills? #611

Closed

Description

@da1z

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?

Activity

  1. TabishB commented on Jan 28, 2026

    @TabishB
    Contributor

    @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.

  2. da1z commented on Jan 28, 2026

    @da1z
    Author

    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?

  3. evilsamaritan commented on Jan 29, 2026

    @evilsamaritan

    @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.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"
    
  4. antonio-ivanovski commented on Jan 29, 2026

    @antonio-ivanovski

    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.

  5. self-assigned this
    on Jan 30, 2026
  6. TabishB commented on Jan 30, 2026

    @TabishB
    Contributor

    Thanks for the feedback everyone, this is under active investigation. We're looking at finding a better way to do this.

    @antonio-ivanovski

    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.

  7. yonaskolb commented on Jan 31, 2026

    @yonaskolb

    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

  8. postbird commented on Feb 1, 2026

    @postbird
    Image

    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

  9. viteinfinite commented on Feb 4, 2026

    @viteinfinite

    Strong supporter of disable-model-invocation: true here.

  10. TabishB commented on Apr 12, 2026

    @TabishB
    Contributor

    we've made skill / command installation optional. you can select what you want using openspec config profile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions