Skip to content

Copilot CLI Not Detecting Symlinked Skills #1021

@thealokkr

Description

@thealokkr

Describe the bug

The /skills list command:

 - Only detects skills in real directories
 - Ignores skills that are accessed via symlinks
 - In the reproduction case above, test-skill is not listed

Real-World Example

Example directory structure:

 $ ls -la ~/.copilot/skills/
 total 0
 drwxr-xr-x  6 user  staff  192 19 Jan 01:57 .
 drwx------@ 8 user  staff  256 18 Jan 15:17 ..
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-a -> /path/to/external/skills/skill-a
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-b -> /path/to/external/skills/skill-b
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-c -> /path/to/external/skills/skill-c
 drwxr-xr-x  6 user  staff  192 19 Jan 01:26 skill-d
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-e -> /path/to/external/skills/skill-e

All symlinked skills are valid and contain SKILL.md files:

 $ find -L ~/.copilot/skills -name "SKILL.md" -type f | sort
 ./skill-a/SKILL.md
 ./skill-b/SKILL.md
 ./skill-c/SKILL.md
 ./skill-d/SKILL.md
 ./skill-e/SKILL.md

However, /skills list only shows skill-d (the only real directory).

Affected version

No response

Steps to reproduce the behavior

The /skills list command:

 - Only detects skills in real directories
 - Ignores skills that are accessed via symlinks
 - In the reproduction case above, test-skill is not listed

Real-World Example

Example directory structure:

 $ ls -la ~/.copilot/skills/
 total 0
 drwxr-xr-x  6 user  staff  192 19 Jan 01:57 .
 drwx------@ 8 user  staff  256 18 Jan 15:17 ..
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-a -> /path/to/external/skills/skill-a
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-b -> /path/to/external/skills/skill-b
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-c -> /path/to/external/skills/skill-c
 drwxr-xr-x  6 user  staff  192 19 Jan 01:26 skill-d
 lrwxr-xr-x  1 user  staff   50 19 Jan 01:57 skill-e -> /path/to/external/skills/skill-e

All symlinked skills are valid and contain SKILL.md files:

 $ find -L ~/.copilot/skills -name "SKILL.md" -type f | sort
 ./skill-a/SKILL.md
 ./skill-b/SKILL.md
 ./skill-c/SKILL.md
 ./skill-d/SKILL.md
 ./skill-e/SKILL.md

However, /skills list only shows skill-d (the only real directory).

Expected behavior

/skills list should be able to read and use symlinked skills and not just physical files

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions