Skip to content

建立 2026-09-15 更新 2026-09-15

指令與 Skills

兩者都是「把重複提示詞寫成檔案」,觸發方式不同:

  • Command:你在 TUI 打 /名稱,立刻送出範本。
  • Skill:出現在 skill 工具清單裡,agent 判斷需要才載入全文,比較不占起始上下文。

自訂指令

專案指令放 .opencode/commands/,全域放 ~/.config/opencode/commands/test.md 就對應 /test。也可寫在 opencode.jsoncommand

---
description: 跑測試並解讀失敗
agent: build
---

跑完整測試並整理失敗原因。重點看剛改過的檔案。
$ARGUMENTS

範本可用:

  • $ARGUMENTS$1$2:你打在指令後面的參數
  • 在範本裡寫 ! 加上 shell 指令(例如 npm test):先跑指令,把輸出嵌進提示
  • @src/app.ts:帶入檔案內容

可指定 agentmodel。設 subtask: true 會當 subagent 跑,避免污染主對話。自訂名稱若與內建相同,會蓋掉內建指令。

Skills

每個 skill 一個資料夾,裡面放 SKILL.md。OpenCode 會搜:

  • .opencode/skills/<name>/SKILL.md
  • ~/.config/opencode/skills/<name>/SKILL.md
  • 相容路徑:.claude/skills/.agents/skills/ 以及對應的家目錄

Front matter 一定要有 namedescriptionname 必須小寫、數字與單一連字號,且與資料夾名相同。

---
name: git-release
description: 依已合併的 PR 草擬版本號、changelog 與 gh release 指令
---

## 什麼時候用

準備打 tag、發 GitHub Release 時載入。版本規則不清楚就先問。

Agent 只先看到名稱與描述,呼叫 skill({ name: "git-release" }) 才讀全文。因此 description 要寫到「何時該用」,不要只寫「一個 git skill」。

權限在 opencode.json

{
  "permission": {
    "skill": {
      "*": "allow",
      "internal-*": "deny",
      "experimental-*": "ask"
    }
  }
}

載入不到時檢查:檔名必須是 SKILL.md、front matter 欄位齊、名稱不重複、沒有被 deny

怎麼選

你想要…
自己一鍵觸發(跑測試、開 PR) Command
流程長、只在相關任務才需要 Skill
整個專案每次都要遵守 AGENTS.md

相關資料

推薦影音

Rules、Skills 與 MCP 實作

約 20 分鐘,示範規則層、Skills、MCP 怎麼一起用,以及用 Plan 把功能做完。適合看完本頁後對照實作。