MoonshotAI / MoonshotAI/kimi-code

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

Open
#3,439 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
7.5k
Forks
1.2k
Avg merge
11h 53m
Merged PRs (30d)
350

Description

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
  • Does the Moonshot team support adopting tabbed category navigation for /skill aligned with the /model selector UX?
  • If aligned with the roadmap, would maintainers give /approve to reopen/review PR #2995?

Thank you for your feedback!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing closed PR #2995 and its mentioned tests, skill-selector.test.ts and skill-group-tree.test.ts. Compare the existing /skill behavior with the /model selector and the TabbedModelSelectorComponent reference. Done means a maintainer-approved implementation covers the proposed grouping, navigation, search, and direct invocation behavior with the stated tests and changeset.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.