@@ -1,6 +1,6 @@
# jsc — 跨 AI 助理程式碼工作流 Plugin
# jsc — 跨 AI 助理程式碼工作流 Plugin
一個可同時被 **Claude Code、Codex、Antigravity、OpenCode ** 安裝 的 plugin,提供一組以 **程式碼工作流 ** 為核心的 skills:
一個可同時被 **Claude Code、Codex、Antigravity、OpenCode、GitHub Copilot ** 使用 的 plugin,提供一組以 **程式碼工作流 ** 為核心的 skills:
**Gitea AI review findings 修復、分類提交、push 與 PR 建立流程 ** 、**Gitea 議題 TODO 彙整與逐項實作流程**、**C# / .NET NuGet 套件更新流程**、**Gitea 專案批次同步**,以及 **action / Dockerfile 標準化流程 ** 。
**Gitea AI review findings 修復、分類提交、push 與 PR 建立流程 ** 、**Gitea 議題 TODO 彙整與逐項實作流程**、**C# / .NET NuGet 套件更新流程**、**Gitea 專案批次同步**,以及 **action / Dockerfile 標準化流程 ** 。
核心是以 [Agent Skills( `SKILL.md`) ](https://agentskills.io ) 標準撰寫的共用 skills(唯一真實來源放在 `skills/` ),
核心是以 [Agent Skills( `SKILL.md`) ](https://agentskills.io ) 標準撰寫的共用 skills(唯一真實來源放在 `skills/` ),
搭配各助理各自的 plugin manifest,讓**同一個 repo** 可用各家**原生 plugin CLI** 安裝。
搭配各助理各自的 plugin manifest,讓**同一個 repo** 可用各家**原生 plugin CLI** 安裝。
@@ -16,8 +16,9 @@ plugin 名為 `jsc`,在 Claude Code 與 Antigravity 中 skill 以 **`/jsc:`
| 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` | ❌(依指示檔) |
> Codex 不支援自訂前綴(skill 以 `$name` 呼叫);OpenCode 由模型依描述自動呼叫。兩 者皆**不強制**前綴。
> Codex 不支援自訂前綴(skill 以 `$name` 呼叫);OpenCode 與 Copilot 由模型依描述與指示檔觸發。三 者皆**不強制**前綴。
---
---
@@ -50,7 +51,7 @@ code/
---
---
## 安裝 / 更新 / 移除(各家原生 plugin CLI )
## 安裝 / 更新 / 移除(各助理 )
> 指令中的 repo 網址換成你的:`https://gitea.jsc.idv.tw/plugins/code.git`
> 指令中的 repo 網址換成你的:`https://gitea.jsc.idv.tw/plugins/code.git`
>
>
@@ -142,6 +143,28 @@ rm -rf ~/.config/opencode/skills/{code-review-resolve,code-issues,code-nuget,cod
- **呼叫**:直接描述需求,模型會依 skill 描述自動透過 skill 工具呼叫。
- **呼叫**:直接描述需求,模型會依 skill 描述自動透過 skill 工具呼叫。
### GitHub Copilot
GitHub Copilot 目前不是這類 `SKILL.md` plugin 的原生執行環境;安裝方式是把本 repo 作為 repository instructions 的來源,讓 Copilot 讀 `AGENTS.md` 與對應 `SKILL.md` 。
``` bash
# 安裝到目標 repo(把 code plugin vendored 進 .github/jsc-plugins/code)
git clone https://gitea.jsc.idv.tw/plugins/code.git .github/jsc-plugins/code
cp .github/jsc-plugins/code/AGENTS.md AGENTS.md
# 更新
git -C .github/jsc-plugins/code pull
cp .github/jsc-plugins/code/AGENTS.md AGENTS.md
# 移除
git rm -r .github/jsc-plugins/code
# 若 AGENTS.md 只供此 plugin 使用,再移除;若已有其他內容,請只刪除 JSC code 相關段落
# git rm AGENTS.md
```
- 也可把既有 `.github/copilot-instructions.md` 改成引用 `AGENTS.md` 與 `.github/jsc-plugins/code/skills/<skill>/SKILL.md` 。
- **呼叫**:在 Copilot Chat/ Coding Agent 任務中描述需求,例如「請依 `.github/jsc-plugins/code/skills/code-issues/SKILL.md` 處理議題」。
---
---
## 用 CLI 直接執行 skill( headless / 一次性)
## 用 CLI 直接執行 skill( headless / 一次性)
@@ -154,10 +177,11 @@ rm -rf ~/.config/opencode/skills/{code-review-resolve,code-issues,code-nuget,cod
| Codex | `codex exec "<prompt>"` | `codex exec '$code-issues --tool api --repo plugins/code --issues 12,15 --yes'` |
| Codex | `codex exec "<prompt>"` | `codex exec '$code-issues --tool api --repo plugins/code --issues 12,15 --yes'` |
| Antigravity | `agy -p "<prompt>"` | `agy -p "/jsc:code-issues --tool api --repo plugins/code --issues 12,15 --yes"` |
| Antigravity | `agy -p "<prompt>"` | `agy -p "/jsc:code-issues --tool api --repo plugins/code --issues 12,15 --yes"` |
| OpenCode | `opencode run "<message>"` | `opencode run "讀 plugins/code 的 12、15 號議題,整理 TODO 並逐項實作、留言進度"` |
| OpenCode | `opencode run "<message>"` | `opencode run "讀 plugins/code 的 12、15 號議題,整理 TODO 並逐項實作、留言進度"` |
| GitHub Copilot | Copilot Chat / Coding Agent 任務 | `請依 .github/jsc-plugins/code/skills/code-issues/SKILL.md 處理 plugins/code 的 12、15 號議題` |
- Claude / Antigravity 支援 `/jsc:` 前綴,直接 `-p "/jsc:<name>"` 即可。
- Claude / Antigravity 支援 `/jsc:` 前綴,直接 `-p "/jsc:<name>"` 即可。
- Codex 以 `$<name>` 觸發;在 shell 請用**單引號**避免 `$` 被展開:`codex exec '$code-issues …'` 。
- Codex 以 `$<name>` 觸發;在 shell 請用**單引號**避免 `$` 被展開:`codex exec '$code-issues …'` 。
- OpenCode 沒有前綴,用自然語言描述需求,模型會自動透過 skill 工具呼叫 。
- OpenCode 與 Copilot 沒有前綴,用自然語言描述需求;Copilot 任務中請明確指出要讀取的 `SKILL.md` 。
- 帶引數就接在後面,例如 `claude -p "/jsc:code-issues --issues 12"` 、`codex exec '$code-issues --issues 12'` 。
- 帶引數就接在後面,例如 `claude -p "/jsc:code-issues --issues 12"` 、`codex exec '$code-issues --issues 12'` 。
---
---
@@ -267,3 +291,4 @@ rm -rf ~/.config/opencode/skills/{code-review-resolve,code-issues,code-nuget,cod
- Codex: `codex plugin marketplace upgrade code`
- Codex: `codex plugin marketplace upgrade code`
- 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/code` 後同步 `AGENTS.md` 或 `.github/copilot-instructions.md`