Creating local skills — 建立 local skill¶
Terminology rule (zh-TW pages)
技術名詞首次出現以「中文 (English original)」格式呈現,例:依賴注入
(dependency injection)。不自創翻譯——若無公認譯名直接保留英文
(如 embedding、tokenizer)。代碼、API 名、CLI flag、套件名、檔名一律不翻。
Local skill 是這個 repo 內、放在
skills/local/<skill-name>/
的自製 skill。
起手新 skill¶
建議用內建的 scaffolder(會把 agentskills.io best-practice 的完整佈局 seed 好,並自動為 non-universal agents 建立 discovery symlinks):
Script 會從 CWD 往上走,自動挑一個安置範圍 (placement scope);
意圖不明確時用 --local / --project / --global 顯式覆寫:
| Scope | 觸發條件 | Canonical dir | 建立的 Symlinks |
|---|---|---|---|
| LOCAL | 往上找到 vendor.yaml / skills/local/ / skills/.claude-plugin/ |
<repo>/skills/local/<name>/(搭 --vendor 則放 skills/vendor/) |
.agents/skills/<name> + .claude/skills/<name> -> ../../skills/{local,vendor}/<name> |
| PROJECT | 往上找到 .git |
<repo>/.agents/skills/<name>/(universal agents——Cursor/Codex/OpenCode/Warp——會直接讀) |
.claude/skills/<name> -> ../../.agents/skills/<name>(再加上 repo root 已存在的其他 non-universal agent dir) |
| GLOBAL | 找不到任何 anchor 或 --global |
~/.agents/skills/<name>/ |
~/.claude/skills/<name> -> ../../.agents/skills/<name>(再加上 $HOME 下已存在的其他 non-universal agent dir) |
這跟 npx skills add 的 placement contract 一致(canonical 內容放在
.agents/skills/,再用相對 symlinks 連到各 non-universal agent 的家),
所以在這裡 scaffold 出來的 skill,Claude Code、Cursor、Codex、OpenCode、
Warp 等都能自動 pick up,不用再手動接線。完整機制見
docs/reference/npx-skills-metadata.md。
備選方案(僅 SKILL.md skeleton,無 symlinks、無 references/ /
scripts/ / assets/):
這只會建立 skills/local/<skill-name>/SKILL.md,包含必要的 YAML
frontmatter(name、description)。
寫 description 前,先看這個 repo 的 Agent skill compatibility policy。Local skills 應採用 portable coding-agent limits:hyphen-case name 控制在 64 chars 內、description 控制在 1024 chars 內,首選 120-500 chars。
必要結構¶
完整佈局規則見 Conventions。簡言之:
SKILL.md—— 必要,精簡(控制在 ~500 行以內)。assets/—— skill 複製到目標 project 的 template。scripts/—— 可執行輔助 (Bash 3.2 相容)。references/—— 按需載入的長篇資料。
依照 agentskills.io best practices 寫 SKILL.md¶
agentskills.io best practices 中槓桿最大的兩條:
- 程序勝過宣告 (Procedures over declarations)。 告訴 agent 該做什麼, 不要告訴它該成為誰。寫「跟著這三步」遠比寫 「要當一個謹慎、有條理的助手」可靠。
- 預設勝過選單 (Defaults over menus)。 挑一條工作流程當預設;
其他選項透過 flag 或
references/提供。每一步都讓 agent 在三個 等價選項間挑,是除錯惡夢。
我們在這個 repo 套用的第三條:
- 能寫成 script 就寫成 script。 如果 skill 一直在叫 agent 做同樣的
多步驟程序,乾脆把它寫成
scripts/下的 shell script,然後讓 SKILL.md 去呼叫該 script。project-knowledge-harnessskill 是這個 pattern 的範本。
加一頁 docs¶
每個 local skill 也應該在 docs/skills/<skill>.md 有一頁,
向人類讀者說明這個 skill 是做什麼用的、何時會觸發、用它的成本是什麼。
SKILL.md 是面向 agent 的契約;docs 頁面是面向人類的推銷。
兩者都有價值。
建立 docs 頁面時,也要從
docs/skills/index.md 連結它,並加進 repo 根目錄
mkdocs.yml 的 nav: 區段。
用一個 scratch project 來測試安裝¶
mkdir /tmp/scratch && cd /tmp/scratch
git init
npx skills@latest add daviddwlee84/agent-skills/skills
這會把新 skill 拉進一個乾淨 project 的 .agents/skills/,讓你驗證
SKILL.md 是否如預期被觸發。