Skip to content

feat: Group skills by plugin in 'skills list' and 'add' output#361

Merged
quuu merged 2 commits intovercel-labs:mainfrom
dingruoqian99:feature/group-skills-by-plugin
Feb 25, 2026
Merged

feat: Group skills by plugin in 'skills list' and 'add' output#361
quuu merged 2 commits intovercel-labs:mainfrom
dingruoqian99:feature/group-skills-by-plugin

Conversation

@dingruoqian99
Copy link
Contributor

@dingruoqian99 dingruoqian99 commented Feb 13, 2026

Summary

Display installed skills grouped by their plugin name (as defined in marketplace.json or plugin.json) in the skills list command and skills add interactive prompts.

Problem/Background

When installing skills from a large repository (like Anthropic's agent skills), skills are currently shown in a flat list. This makes it difficult to navigate and understand the available capabilities when dealing with 100+ skills.

Solution

  1. Plugin Mapping: Added logic to parse marketplace.json and map skill paths to their plugin names.
  2. Persistence: Updated the skill lock file (~/.agents/.skill-lock.json) to store the pluginName for each installed skill.
  3. Visualization: Updated skills list and skills add to group skills by their plugin name.
  4. Interactive Selection: Uses clack's built-in p.groupMultiselect when plugins have groups, falls back to standard p.multiselect when no groups exist. No custom prompt needed for skill selection.

Impact

  • Better organization of installed skills
  • Seamless support for marketplace-style plugin repositories
  • Uses clack's native groupMultiselect — no custom prompt complexity for skill selection
  • Selecting all within a group is supported via the group header; global "select all" (a key) is not available in groupMultiselect but works when falling back to multiselect (no groups)

Testing

  • Unit test tests/plugin-grouping.test.ts added and passed
  • 338/339 tests pass (1 pre-existing dist.test.ts failure unrelated to this PR)
  • Type-check passes (1 pre-existing src/git.ts error unrelated to this PR)

Example Output

image

@vercel
Copy link

vercel bot commented Feb 13, 2026

@dingruoqian99 is attempting to deploy a commit to the Vercel Team on Vercel.

A member of the Team first needs to authorize it.

Copy link

@vercel vercel bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Suggestion:

The handleDirectUrlSkillLegacy function was deleted but its call site at line 345 was not removed, causing a TypeScript compilation error (TS2304: Cannot find name 'handleDirectUrlSkillLegacy').

Fix on Vercel

@quuu quuu force-pushed the feature/group-skills-by-plugin branch from 710f3a3 to 5126993 Compare February 18, 2026 21:51
@quuu
Copy link
Collaborator

quuu commented Feb 18, 2026

i think the interaactive prompt is a bit overkill, but i like the grouping!

@dingruoqian99
Copy link
Contributor Author

dingruoqian99 commented Feb 19, 2026

@quuu, I will keep the PR simple by only introducing the grouping.

Which kind of grouping would you think is better?

Option 1 - Using prefixes
skill-grouping-v1

Option 2 - Distinct multi-select groups for grouping (note that this no longer supports "a" key for selecting all, which in my opinion is a good thing as users might want to be selective with their skill installation)
image

Personally prefer Option 2

Note: Repos without groupings will still function as is.

@dingruoqian99 dingruoqian99 force-pushed the feature/group-skills-by-plugin branch from 2539ed6 to 257368f Compare February 19, 2026 03:51
- Replace custom searchMultiselect with p.groupMultiselect for grouped skill selection
- Fall back to p.multiselect when no groups exist
- Restore handleDirectUrlSkillLegacy as backwards-compatible fallback
- Fix process.exit(1) unconditionally exiting when --skill flag is used
- Fix strict null assertions on grouped record access
- Restore 'Selected N skills' info log in handleWellKnownSkills
- Remove group support from search-multiselect (only used for agent selection)
@dingruoqian99 dingruoqian99 force-pushed the feature/group-skills-by-plugin branch from 257368f to 1487855 Compare February 23, 2026 01:56
@dingruoqian99
Copy link
Contributor Author

dingruoqian99 commented Feb 23, 2026

Hey @quuu, I've simplified the PR based on your feedback. Let me know how you feel about it!

Copy link
Collaborator

@quuu quuu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great ty!

@quuu quuu merged commit b248cdf into vercel-labs:main Feb 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants