docs(README): 改用 Copilot CLI plugin 指令

This commit is contained in:
Jeffery
2026-07-27 16:37:56 +08:00
parent f2e6176921
commit 9fa1abbb6f
+20 -20
View File
@@ -16,15 +16,15 @@
| Codex | `codex plugin`(marketplace) | `$<name>` 或 `/skills` 選單 | ❌(用 `$name`) | | Codex | `codex plugin`(marketplace) | `$<name>` 或 `/skills` 選單 | ❌(用 `$name`) |
| Antigravity | `agy plugin install` | `/jsc:<name>` 或自動觸發 | ✅ | | Antigravity | `agy plugin install` | `/jsc:<name>` 或自動觸發 | ✅ |
| OpenCode | skills 目錄(複製/clone) | 描述需求自動觸發 | ❌(依名稱) | | OpenCode | skills 目錄(複製/clone) | 描述需求自動觸發 | ❌(依名稱) |
| GitHub Copilot | repository instructions(`AGENTS.md` / `.github/copilot-instructions.md`) | 描述需求並要求讀取對應 `SKILL.md` | ❌(依指示檔) | | GitHub Copilot CLI | `copilot plugin`(marketplace) | 自然語言或 plugin skills | ❌(無 `/jsc:` 前綴) |
> Codex 不支援自訂前綴(skill 以 `$name` 呼叫);OpenCode 與 Copilot 由模型依描述與指示檔觸發。三者皆**不強制**前綴。 > Codex 不支援自訂前綴(skill 以 `$name` 呼叫);OpenCode 由模型依描述自動呼叫;Copilot CLI 透過原生 plugin 安裝後以自然語言或 plugin skills 使用。三者皆**不強制**前綴。
--- ---
## 目錄結構 ## 目錄結構
同一個 repo 同時帶四種 manifest,彼此以路徑隔離、互不干擾;四家都讀同一份 `skills/`。 同一個 repo 同時帶四種 manifest,彼此以路徑隔離、互不干擾;各助理都讀同一份 `skills/`。
``` ```
doc/ doc/
@@ -163,28 +163,28 @@ rm -rf ~/.config/opencode/skills/doc-docker ~/.config/opencode/skills/doc-funcs
- **呼叫**:直接描述需求,模型會依 skill 描述自動透過 skill 工具呼叫。 - **呼叫**:直接描述需求,模型會依 skill 描述自動透過 skill 工具呼叫。
### GitHub Copilot ### GitHub Copilot CLI
GitHub Copilot 目前不是這類 `SKILL.md` plugin 的原生執行環境;安裝方式是把本 repo 作為 repository instructions 的來源,讓 Copilot 讀 `AGENTS.md` 與對應 `SKILL.md`。 Copilot CLI 支援與 Claude Code 類似的原生 plugin / marketplace 指令,可直接從 marketplace 安裝、更新與移除本 plugin。
```bash ```bash
# 安裝到目標 repo(把 doc plugin vendored 進 .github/jsc-plugins/doc) # 安裝
git clone https://gitea.jsc.idv.tw/plugins/doc.git .github/jsc-plugins/doc copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/doc.git
cp .github/jsc-plugins/doc/AGENTS.md AGENTS.md copilot plugin install jsc@doc
# 更新 # 更新
git -C .github/jsc-plugins/doc pull copilot plugin marketplace update doc
cp .github/jsc-plugins/doc/AGENTS.md AGENTS.md copilot plugin update jsc@doc
# 移除 # 移除
git rm -r .github/jsc-plugins/doc copilot plugin uninstall jsc@doc
# 若 AGENTS.md 只供此 plugin 使用,再移除;若已有其他內容,請只刪除 JSC doc 相關段落 copilot plugin marketplace remove doc
# git rm AGENTS.md
``` ```
- 也可把既有 `.github/copilot-instructions.md` 改成引用 `AGENTS.md` 與 `.github/jsc-plugins/doc/skills/<skill>/SKILL.md`。 - 安裝 token `jsc@doc` = plugin 名(plugin manifest 的 `name`)@ marketplace 名。
- **呼叫**:在 Copilot Chat/Coding Agent 任務中描述需求,例如「請依 `.github/jsc-plugins/doc/skills/doc-funcs/SKILL.md` 執行文件化流程」。 - `copilot plugin marketplace add` 支援 GitHub `owner/repo`、git URL 與本地路徑;Gitea repo 可用上方 HTTPS URL。
- Copilot 不會讀 Claude Code 的 `hooks/hooks.json`,因此 `worklog` 不支援自動 session stop 記錄。 - **呼叫**:在 Copilot CLI 中用自然語言描述需求,例如 `copilot -i "請使用 doc-docker 整理 docker-compose 註解"`。
- `worklog` 的 Claude Code `Stop` hook 自動記錄仍只有 Claude Code 會讀取;Copilot CLI 可安裝 skill,但不會執行 Claude Code hook。
--- ---
@@ -198,11 +198,11 @@ git rm -r .github/jsc-plugins/doc
| Codex | `codex exec "<prompt>"` | `codex exec '$doc-docker'` | | Codex | `codex exec "<prompt>"` | `codex exec '$doc-docker'` |
| Antigravity | `agy -p "<prompt>"` | `agy -p "/jsc:doc-docker"` | | Antigravity | `agy -p "<prompt>"` | `agy -p "/jsc:doc-docker"` |
| OpenCode | `opencode run "<message>"` | `opencode run "整理 docker-compose 註解"` | | OpenCode | `opencode run "<message>"` | `opencode run "整理 docker-compose 註解"` |
| GitHub Copilot | Copilot Chat / Coding Agent 任務 | `請依 .github/jsc-plugins/doc/skills/doc-docker/SKILL.md 整理 docker-compose 註解` | | GitHub Copilot CLI | `copilot -p "<message>"` | `copilot -p "整理 docker-compose 註解"` |
- Claude / Antigravity 支援 `/jsc:` 前綴,直接 `-p "/jsc:<name>"` 即可。 - Claude / Antigravity 支援 `/jsc:` 前綴,直接 `-p "/jsc:<name>"` 即可。
- Codex 以 `$<name>` 觸發;在 shell 請用**單引號**避免 `$` 被展開:`codex exec '$doc-docker'`。 - Codex 以 `$<name>` 觸發;在 shell 請用**單引號**避免 `$` 被展開:`codex exec '$doc-docker'`。
- OpenCode 與 Copilot 沒有前綴,用自然語言描述需求;Copilot 任務中請明確指出要讀取的 `SKILL.md`。 - OpenCode 與 Copilot 沒有前綴,用自然語言描述需求;Copilot CLI 會讀取已安裝 plugin 提供的 skills。
- 帶引數就接在後面,例如 `claude -p "/jsc:doc-docker docker-compose.yaml"`、`codex exec '$doc-docker docker-compose.yaml'`。 - 帶引數就接在後面,例如 `claude -p "/jsc:doc-docker docker-compose.yaml"`、`codex exec '$doc-docker docker-compose.yaml'`。
--- ---
@@ -274,10 +274,10 @@ git rm -r .github/jsc-plugins/doc
- `description`:第三人稱,寫清楚「何時用、何時不用」與觸發關鍵字 — 這是各助理自動載入的唯一依據。 - `description`:第三人稱,寫清楚「何時用、何時不用」與觸發關鍵字 — 這是各助理自動載入的唯一依據。
3. 在內文寫下 skill 的具體步驟。 3. 在內文寫下 skill 的具體步驟。
4. 手動把這個 skill 補進上方「Skills 目錄」區塊。 4. 手動把這個 skill 補進上方「Skills 目錄」區塊。
5. **bump 版本並 push**:四家都以 git 內容/版本判斷更新,請把 `.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`、`plugin.json` 三個 manifest 的 `version` 一起 bump,commit 後 push 到 gitea。 5. **bump 版本並 push**:各助理都以 git 內容/版本判斷更新,請把 `.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`、`plugin.json` 三個 manifest 的 `version` 一起 bump,commit 後 push 到 gitea。
6. 讓各助理更新: 6. 讓各助理更新:
- Claude:`claude plugin update jsc@doc` - Claude:`claude plugin update jsc@doc`
- Codex:`codex plugin marketplace upgrade doc` - Codex:`codex plugin marketplace upgrade doc`
- Antigravity:`git -C ~/jsc-plugin pull && agy plugin uninstall jsc && agy plugin install ~/jsc-plugin` - Antigravity:`git -C ~/jsc-plugin pull && agy plugin uninstall jsc && agy plugin install ~/jsc-plugin`
- OpenCode:`git pull` 後重新複製 `skills/` - OpenCode:`git pull` 後重新複製 `skills/`
- GitHub Copilot:更新 `.github/jsc-plugins/doc` 後同步 `AGENTS.md` 或 `.github/copilot-instructions.md` - Copilot:`copilot plugin marketplace update doc && copilot plugin update jsc@doc`