github / github/copilot-cli

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

Abierto
#2,689 0 comentarios 3 reacciones 0 asignados Ver en GitHub
area:configuration area:plugins
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

# 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`

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.