github / github/copilot-cli

Feature request: config option to exclude skill scan locations and/or support namespaced skill names (e.g. `ck:name`)

Ouverte
#2,689 0 commentaires 3 réactions 0 personnes assignées Voir sur GitHub
area:configuration area:plugins
Langage dominant
Shell
Étoiles
11.2k
Forks
1.9k
Merge moyen
14 h 16 min
PR mergées (30 j)
6

Description

# Feature Request: Allow excluding skill scan locations and/or support namespaced skill names (e.g., `ck:name`)

## Summary

Two related quality-of-life improvements for skills loading in GitHub Copilot CLI:

1. **A config option to exclude specific skill scan directories** (e.g., `ignoredSkillsLocations`)
2. **Support for namespaced skill names containing `:` (colon)**, such as `ck:agent-browser`

---

## Problem

Copilot CLI auto-scans several hardcoded directories for skills, including `~/.claude/skills` and `~/.agents/skills`. These paths are also used by other AI tools (Claude Code, OpenCode, etc.) which have more permissive skill name validation — they accept names with colons, like `ck:agent-browser`.

When skills stored in `~/.claude/skills` use the `ck:` namespacing convention, Copilot CLI fails to load them with errors like:

```
✖ The following skills failed to load:
• ~/.claude/skills/agent-browser/SKILL.md: name: Skill name must contain only letters, numbers, hyphens, underscores, dots, and spaces
• ~/.claude/skills/code-review/SKILL.md: name: Skill name must contain only letters, numbers, hyphens, underscores, dots, and spaces
... (repeated for every skill in the directory)
```

This produces noisy errors on every Copilot CLI startup — even though the user has no intention of using those skills in Copilot CLI. The errors cannot currently be suppressed:

- `disabledSkills` in `config.json` works by skill *name*, but since these skills **fail to parse**, the name is never registered — so `disabledSkills` cannot silence the errors.
- There is no config key to exclude a directory from scanning.

---

## Proposed Solutions

### Option A — `ignoredSkillsLocations` config key (preferred)

Add a `config.json` key that lists directories to exclude from the auto-scan:

```jsonc
// ~/.copilot/config.json
{
"ignoredSkillsLocations": [
"~/.claude/skills",
"~/.agents/skills"
]
}
```

This gives users full control to opt out of auto-scanning shared directories they use for other tools.

---

### Option B — Allow `:` in skill names (namespace support)

Relax the skill name validation regex to accept colons, enabling namespaced names like `ck:agent-browser`:

**Current regex (inferred):** `^[a-zA-Z0-9\-_. ]+$`
**Proposed regex:** `^[a-zA-Z0-9\-_. :]+$`

This would allow skills shared across multiple AI tools to use a common namespacing convention without modification.

---

### Option C — Both (ideal)

Both options are complementary:
- Option A helps users who want clean separation between tool-specific skill directories.
- Option B helps users who want shared skill libraries with namespaced names to work uniformly across tools.

---

## Current Workaround

Users must either:
- Duplicate and rename skills into `~/.copilot/skills` with modified names (lossy, requires manual sync)
- Accept the noisy startup errors with no way to suppress them

---

## Environment

- Platform: macOS
- Tool: GitHub Copilot CLI
- Related auto-scanned paths: `~/.claude/skills`, `~/.agents/skills`, `~/.copilot/skills`

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start by tracing how config.json is read and how SKILL.md files are discovered under ~/.claude/skills, ~/.agents/skills, and ~/.copilot/skills. Check the skill-name validation involved in the reported errors. Done means the selected directories can be excluded and/or names such as ck:agent-browser no longer produce startup load errors.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
shell
Domaine
cli, tooling
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.