Skip to content

skills: documented slash frontmatter is not implemented in v2.0.18 #51427

Closed as not planned

Description

@gsevla

Summary

The V2 skills docs document a slash frontmatter field (and metadata.opencode/slash) that controls whether a skill appears in interactive command catalogs. In the latest release (v2.0.18) neither field is parsed or exposed, so skills cannot be invoked as /skill-id and the setting has no observable effect.

Environment

  • opencode version: v2.0.18 (latest V2 tag)
  • OS: macOS (Darwin 25.5.0, arm64)
  • Terminal: Ghostty + tmux (TERM=xterm-256color, TERM_PROGRAM=tmux, COLORTERM=truecolor)
  • Shell: /bin/zsh
  • Install/channel: Homebrew tap anomalyco/tap, formula opencode-v2
  • Active plugins: none

Reproduction

  1. Add a skill with slash: true in frontmatter, e.g. .opencode/skills/foo/SKILL.md:

    ---
    name: Foo
    description: Test skill
    slash: true
    ---
    
    Body.
  2. Open the TUI and type / — no /foo (or /skill-id) entry appears in the command catalog.

  3. Query the API:

    • opencode api get /api/skill — the returned skill has no slash field.
    • opencode api get /api/command — returns only commands; no skills.
  4. Set slash: false instead — same result; the field is ignored either way.

Expected Behavior

Per https://opencode.ai/v2/docs/skills/ (docs source services/www/src/docs/content/skills.mdx at v2.0.18):

Field Behavior
slash Set to false to hide the skill from interactive command catalogs
metadata.opencode/slash Boolean or "true"/"false"; overrides slash

Skills should be present in the interactive command catalog by default, with slash / metadata.opencode/slash controlling that.

Actual Behavior

slash and metadata.opencode/slash are dropped during skill parsing at v2.0.18:

  • packages/core/src/config/plugin/skill-file.ts reads only name, description, and metadata["opencode/autoinvoke"] when building Skill.Info.
  • packages/schema/src/skill.ts defines Skill.Info as { id, name, description, autoinvoke, path, content }; there is no slash field.
  • No other code path consumes the field.

The only user-facing skill invocation in v2.0.18 is the @ mention picker (packages/tui/src/component/prompt/autocomplete.tsx builds skill mentions with prefix = "@"), plus the /skills selector (packages/tui/src/component/dialog-skill.tsx) which inserts @skill-id. Automatic model loading via the skill tool is unaffected.

Additional Context

Activity

  1. github-actions commented on Sep 26, 2026

    @github-actions
    Contributor

    This issue does not fully meet our contributing guidelines.

    What needs to be fixed:

    • Please use the Bug Report issue template and include the report under its required Description field; the current body uses a Summary heading instead.

    Please edit this issue to address the above within 2 hours, or it will be automatically closed.


    This issue might be a duplicate of existing issues. Please check:

    • #51186: The TUI slash list omits skill-sourced entries.
    • #50638: The Desktop slash command list does not show skills, including those with slash: true.
    • #48022: Desktop and TUI differ on whether skills appear based on slash defaults.
    • #35341: Request to auto-register slash commands from compatible skills.

    If you believe this was flagged incorrectly, please let a maintainer know.

  2. github-actions commented on Sep 26, 2026

    @github-actions
    Contributor

    This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.

    Feel free to open a new issue that follows our issue templates.

  3. sreich commented on Sep 28, 2026

    @sreich

    @gsevla Is this related to being able to disable the built-in 'report bug to opencode' via the TUI selector?

    I tried adding a rule set to disabled and that didn't help, I don't think there's a way around it and I vaguely think it is because of this gap

    Don't know how others are okay with having information shown in the UI that you can't turn off, just adds noise for something we use every day. Then again, I wish the TUI skill selector were smarter, just a couple of features like grouping would be nice, and doesn't seem like those would be too hard to implement, but I have not read the codebase yet

  4. gsevla commented on Sep 29, 2026

    @gsevla
    Author

    Is this related to being able to disable the built-in 'report bug to opencode' via the TUI selector?

    Hey, @sreich, it isn't.

    This is about not being able to call skills as slash(/some-skill) commands, only as at(@some-skill) references.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions