Skip to content

Proposal: Hierarchical skill grouping and tab navigation for /skill selector #3439

Description

@creatiVision

Motivation & Problem Statement

As users and agent ecosystems accumulate more specialized skills across directories and domain categories (e.g., devops/ci, security/audit, data/analytics), managing and browsing skills with /skill becomes challenging:

  1. Skills are displayed in a flat list or without clear category boundaries, making visual scanning difficult when dozens of skills are installed.
  2. The UX is inconsistent with the /model selector, which already provides intuitive top-level tab strip navigation.
  3. Typing /skill into the input prompt triggers argument autocomplete rather than directly launching the interactive selector dialog.

Proposed Solution

We propose enhancing the /skill interactive selector dialog with hierarchical grouping and tab navigation:

  1. Tab Strip Group Navigation:

    • Render top-level group tabs ([All] [Group A] [Group B] ... [Uncategorized]) at the top of the dialog.
    • Support Tab / Shift-Tab navigation with brand highlighting, identical to TabbedModelSelectorComponent.
  2. Hierarchical Category Resolution:

    • Resolve skill categories based on standard metadata precedence:
      1. groups (string array in skill YAML frontmatter)
      2. category (slash-delimited string in skill YAML frontmatter)
      3. Parent directory path relative to skill root
      4. Fallback to Uncategorized
  3. Subtree Fuzzy Search:

    • Active search queries filter across both direct skills and nested sub-categories.
    • When no query is typed, display clean category-scoped lists.
  4. Direct Command Invocation:

    • Running /skill without arguments launches the interactive dialog immediately.

Reference Implementation & Prior Work

A complete, fully tested implementation of this proposal was drafted in closed PR #2995 with full test coverage (skill-selector.test.ts, skill-group-tree.test.ts), busy-state guards, and changeset.

Questions for Maintainers

Thank you for your feedback!

Activity

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

Metadata

Metadata

Assignees

No one assigned

    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