github / github/copilot-cli

Duplicate skills load from repository and installed plugin

Abierto
#4,430 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

triage
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

Problem

Copilot CLI loads the same skill twice when a repository contains a project skill and an enabled user plugin contributes the identical skill. This doubles the skill description surface in repositories that develop their own plugin.

Observed with Copilot CLI 1.0.79-9 in rjmurillo/ai-agents, where .claude/skills is the canonical source for the installed project-toolkit plugin.

Reproduction

cd <repo-that-contains-the-plugin-source>
copilot plugins list --json | jq -r '\n[.plugins[] | select(.kind=="skill") | {name,scope,source,description:(.description // "")}]\n| group_by(.name)[]\n| select((map(.scope)|index("repository")) and (map(.scope)|index("plugin")))\n| [. [0].name, (length|tostring), ([.[].scope+":"+.[].source]|join(","))]\n| @tsv'\n```\n\nMeasured result:\n\n```text\nduplicate_names=97\nidentical_descriptions=97\nduplicate_description_bytes=40624\n```\n\nExample name:\n\n```text\ncontext-optimizer  plugin  plugin\ncontext-optimizer  repository  project\n```\n\nThe installed plugin is enabled at user scope. No repository-scoped setting was found to disable that one plugin only in its source repository.\n\n## Expected\n\nWhen a repository skill and plugin skill have the same canonical name and identical content, load one entry. Project scope could take precedence, or the CLI could deduplicate by name plus content hash. A repository-scoped plugin-disable override would also provide a workaround.\n\n## Control\n\nThis is specific to skills. A canary placed in `plugin/instructions/*.instructions.md` did not load through `--plugin-dir`, while a repository `.github/instructions` canary did load.\n

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza reproduciendo el problema con copilot plugins list --json en un repositorio que contenga .claude/skills y un plugin habilitado; después, sigue cómo se descubren las skills del repositorio y del plugin. Compara las entradas repository y plugin en cuanto al nombre canónico y el contenido, y verifica que las skills idénticas produzcan una única entrada cargada sin afectar a los canarios de instrucciones documentados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
shell
Área
cli, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.