Feature request: config option to exclude skill scan locations and/or support namespaced skill names (e.g. `ck:name`)
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
# 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`
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách lần theo cách config.json được đọc và cách các tệp SKILL.md được phát hiện trong ~/.claude/skills, ~/.agents/skills và ~/.copilot/skills. Kiểm tra việc xác thực tên skill liên quan đến các lỗi đã báo cáo. Được xem là hoàn tất khi có thể loại trừ các thư mục đã chọn và/hoặc các tên như ck:agent-browser không còn tạo ra lỗi tải khi khởi động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- shell
- Lĩnh vực
- cli, tooling
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100