Plugin details hide shadowed skills without explaining source precedence
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 153
- PR merge metrics
- No merged PRs in 30d
Description
### Short summary
When plugin skills overlap with standalone user-installed skills, the plugin details page counts and displays only the unshadowed skills without explaining that other declared skills were shadowed.
### Affected version or release
GitHub Copilot app 1.1.10.
### Installation context
A user-scoped marketplace plugin was installed after matching skills had already been installed in the standard user skill location.
### What happened?
A plugin declared six skills. Five matching skills already existed in the user skill location.
After installing the plugin, its details page reported **Provides 1 skill** and displayed only the uniquely named skill. The installed plugin package and manifest still contained all six skills.
After removing the five standalone copies and reloading the app, the plugin details page displayed all six skills.
The UI therefore presented the resolved, unshadowed skill set as though it were the plugin's complete package contents. It provided no indication that additional skills existed, were shadowed, or came from another source.
### Steps to reproduce
1. Install several skills into the standard user skill location.
2. Open a valid installation link for a test marketplace plugin declaring those same skills plus one uniquely named skill.
3. Complete the installation.
4. In the plugin view opened by the installation flow, select the newly installed plugin to open its details.
5. Observe that the details page counts and displays only the unique skill.
6. Confirm that every declared skill exists in the installed plugin directory.
7. Remove the standalone skill copies and reload the app.
8. Observe that all plugin skills now appear.
### Expected behavior
The plugin details page should show every skill declared by the plugin.
Each skill should indicate whether it is:
- Active
- Disabled
- Shadowed by another source
- Failed to load
When shadowed, the UI should identify the source taking precedence. Counts should distinguish total declared skills from currently active skills.
### Additional context
Related issues:
- https://github.com/github/app/issues/2814 discusses confusion caused by skills adopted from other harnesses.
- https://github.com/github/app/issues/2718 requests consistent plugin provenance in the slash-command menu.
- https://github.com/github/copilot-cli/issues/4430 reports duplicate repository and plugin skills.
This report is specifically about the plugin details page presenting the resolved active set as the plugin's complete inventory without exposing shadowing or source precedence.
Contributor guide
Research direction
Start by reproducing the plugin installation and opening the plugin details page with overlapping standalone skills. Inspect how the page obtains declared versus resolved skills and how source precedence is represented. Done means all declared skills appear with active, disabled, shadowed, or failed status, shadowed sources are identified, and counts distinguish declared from active skills.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100