feat(worklog): 移入工作紀錄並補 Copilot 說明
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# jsc — 跨 AI 助理文件化 Skill 集合
|
||||
|
||||
一個可同時被 **Claude Code、Codex、Antigravity、OpenCode** 安裝的文件化 skill 集合。
|
||||
目前內含五個實作型 skills:`doc-docker` 用於整理 `docker-compose.yaml` 的行內註解與標題日期;`doc-funcs` 用於掃描專案 functions、建立 `.docs/` 草稿、補齊 XML 文件註解並重建 README 功能列表與使用範例;`doc-issues-analyze-to-file` 用於讀取 Gitea issue、彙整需求並拆成多階段 issue、產生實作草稿與交付留言;`doc-issues-analyze` 用於把專案/議題/文件來源(議題連同留言與附件一起讀取)拆成小功能議題(母議題須待所有子議題關閉後才可關閉)、分析完成後把屬於專案看板的議題移到「待處理」欄位並依到期日排序留言(不實作程式碼,實作交由 code plugin 的 code-issues);`doc-issues-sync` 用於讀取 Gitea 專案或議題,依工作目錄檔案勾稽並同步議題的 TODO 進度、標籤與專案看板進度欄位、產生進度留言;指定「關閉專案/專案完成」時改為批次把專案所有議題搬到「已完成」並關閉。
|
||||
一個可同時被 **Claude Code、Codex、Antigravity、OpenCode、GitHub Copilot** 使用的文件化 skill 集合。
|
||||
目前內含六個實作型 skills:`doc-docker` 用於整理 `docker-compose.yaml` 的行內註解與標題日期;`doc-funcs` 用於掃描專案 functions、建立 `.docs/` 草稿、補齊 XML 文件註解並重建 README 功能列表與使用範例;`doc-issues-analyze-to-file` 用於讀取 Gitea issue、彙整需求並拆成多階段 issue、產生實作草稿與交付留言;`doc-issues-analyze` 用於把專案/議題/文件來源(議題連同留言與附件一起讀取)拆成小功能議題(母議題須待所有子議題關閉後才可關閉)、分析完成後把屬於專案看板的議題移到「待處理」欄位並依到期日排序留言(不實作程式碼,實作交由 code plugin 的 code-issues);`doc-issues-sync` 用於讀取 Gitea 專案或議題,依工作目錄檔案勾稽並同步議題的 TODO 進度、標籤與專案看板進度欄位、產生進度留言;指定「關閉專案/專案完成」時改為批次把專案所有議題搬到「已完成」並關閉;`worklog` 用於把 Claude Code 每次 session stop 的內容整理成六欄工作紀錄並追加到 Gitea wiki。
|
||||
核心是以 [Agent Skills(`SKILL.md`)](https://agentskills.io) 標準撰寫的共用 skills(唯一真實來源放在 `skills/`),
|
||||
搭配各助理各自的 plugin manifest,讓**同一個 repo** 可用各家**原生 plugin CLI** 安裝。
|
||||
在 Claude Code 與 Antigravity 中,skill 以 **`/jsc:` 前綴**呼叫(例如 `/jsc:doc-docker`)。
|
||||
@@ -16,8 +16,9 @@
|
||||
| Codex | `codex plugin`(marketplace) | `$<name>` 或 `/skills` 選單 | ❌(用 `$name`) |
|
||||
| Antigravity | `agy plugin install` | `/jsc:<name>` 或自動觸發 | ✅ |
|
||||
| OpenCode | skills 目錄(複製/clone) | 描述需求自動觸發 | ❌(依名稱) |
|
||||
| GitHub Copilot | repository instructions(`AGENTS.md` / `.github/copilot-instructions.md`) | 描述需求並要求讀取對應 `SKILL.md` | ❌(依指示檔) |
|
||||
|
||||
> Codex 不支援自訂前綴(skill 以 `$name` 呼叫);OpenCode 由模型依描述自動呼叫。兩者皆**不強制**前綴。
|
||||
> Codex 不支援自訂前綴(skill 以 `$name` 呼叫);OpenCode 與 Copilot 由模型依描述與指示檔觸發。三者皆**不強制**前綴。
|
||||
|
||||
---
|
||||
|
||||
@@ -35,6 +36,13 @@ doc/
|
||||
├── .agents/plugins/
|
||||
│ └── marketplace.json # Codex marketplace(name: "doc",url source 指向本 repo)
|
||||
├── plugin.json # Antigravity 外掛定義(name: "jsc",skills: "./skills/")
|
||||
├── hooks/
|
||||
│ └── hooks.json # Claude Code hooks(Stop → worklog;其他助理不吃此檔)
|
||||
├── scripts/
|
||||
│ └── worklog/ # worklog 自動記錄的可執行元件(skill 與 hook 共用)
|
||||
│ ├── worklog.sh # 主流程:抽本輪 → 濃縮成六欄 → 遮蔽 → 追加到 wiki
|
||||
│ ├── wiki_api.py # Gitea wiki 讀寫、token 解析、append 重試、週頁命名
|
||||
│ └── transcript.py # transcript 本輪抽取、耗時估算與機密遮蔽
|
||||
├── skills/ # ★ 唯一真實來源:所有 skills
|
||||
│ ├── doc-docker/ # 對齊 docker-compose 註解(含 scripts/)
|
||||
│ │ ├── SKILL.md
|
||||
@@ -44,14 +52,24 @@ doc/
|
||||
│ │ └── templates/ # 指令檔開頭「用途/更新時間」標頭範本(command-header.md)
|
||||
│ ├── doc-issues-analyze-to-file/SKILL.md # 讀 issue → 需求文件 → 拆階段 issue → 實作草稿 → 交付留言
|
||||
│ ├── doc-issues-analyze/SKILL.md # 讀來源 → 保存議題 → 小功能議題(看板移待處理)→ 排序留言(不實作)
|
||||
│ └── doc-issues-sync/SKILL.md # 讀專案/議題 → 依工作目錄勾稽 TODO → 補 TODO/更新標籤/調整看板欄位 → 進度留言;關閉專案時批次搬「已完成」並關閉
|
||||
│ ├── doc-issues-sync/SKILL.md # 讀專案/議題 → 依工作目錄勾稽 TODO → 補 TODO/更新標籤/調整看板欄位 → 進度留言;關閉專案時批次搬「已完成」並關閉
|
||||
│ └── worklog/SKILL.md # 工作證明自動記錄的操作與維護
|
||||
├── AGENTS.md # 跨助理共用指引
|
||||
└── README.md
|
||||
```
|
||||
|
||||
### worklog 適用範圍
|
||||
|
||||
| 功能 | Claude Code | Codex | Antigravity | OpenCode | GitHub Copilot |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| `Stop` hook 自動記錄 | ✅ | ❌ 不讀 `hooks/hooks.json` | ❌ | ❌ | ❌ |
|
||||
| `worklog` 手動模式 | ✅ | ⚠️ 需安裝後保留 `scripts/` | ⚠️ 同左 | ❌ | ❌ |
|
||||
|
||||
`worklog` 自動記錄依賴 Claude Code 的 Stop hook 與 transcript JSONL 結構;Copilot 可讀本 repo 的指示檔與 `SKILL.md` 作為工作方式參考,但不能執行此 hook。
|
||||
|
||||
---
|
||||
|
||||
## 安裝 / 更新 / 移除(各家原生 plugin CLI)
|
||||
## 安裝 / 更新 / 移除(各助理)
|
||||
|
||||
> 指令中的 repo 網址:`https://gitea.jsc.idv.tw/plugins/doc.git`
|
||||
>
|
||||
@@ -136,13 +154,38 @@ git -C ~/jsc-plugin pull
|
||||
cp -r ~/jsc-plugin/skills/* ~/.config/opencode/skills/
|
||||
|
||||
# 移除
|
||||
rm -rf ~/.config/opencode/skills/doc-docker ~/.config/opencode/skills/doc-funcs ~/.config/opencode/skills/doc-issues-analyze-to-file ~/.config/opencode/skills/doc-issues-analyze ~/.config/opencode/skills/doc-issues-sync
|
||||
rm -rf ~/.config/opencode/skills/doc-docker ~/.config/opencode/skills/doc-funcs ~/.config/opencode/skills/doc-issues-analyze-to-file ~/.config/opencode/skills/doc-issues-analyze ~/.config/opencode/skills/doc-issues-sync ~/.config/opencode/skills/worklog
|
||||
```
|
||||
|
||||
> **worklog 在 OpenCode 不可用**:上面的複製只帶 `skills/`,不含 `scripts/` 與 `hooks/`,worklog 的所有模式都會失敗。
|
||||
|
||||
> **Windows PowerShell**:`cp -r A B` → `Copy-Item A B -Recurse -Force`、`rm -rf X` → `Remove-Item X -Recurse -Force`、`~` → `$HOME`。
|
||||
|
||||
- **呼叫**:直接描述需求,模型會依 skill 描述自動透過 skill 工具呼叫。
|
||||
|
||||
### GitHub Copilot
|
||||
|
||||
GitHub Copilot 目前不是這類 `SKILL.md` plugin 的原生執行環境;安裝方式是把本 repo 作為 repository instructions 的來源,讓 Copilot 讀 `AGENTS.md` 與對應 `SKILL.md`。
|
||||
|
||||
```bash
|
||||
# 安裝到目標 repo(把 doc plugin vendored 進 .github/jsc-plugins/doc)
|
||||
git clone https://gitea.jsc.idv.tw/plugins/doc.git .github/jsc-plugins/doc
|
||||
cp .github/jsc-plugins/doc/AGENTS.md AGENTS.md
|
||||
|
||||
# 更新
|
||||
git -C .github/jsc-plugins/doc pull
|
||||
cp .github/jsc-plugins/doc/AGENTS.md AGENTS.md
|
||||
|
||||
# 移除
|
||||
git rm -r .github/jsc-plugins/doc
|
||||
# 若 AGENTS.md 只供此 plugin 使用,再移除;若已有其他內容,請只刪除 JSC doc 相關段落
|
||||
# git rm AGENTS.md
|
||||
```
|
||||
|
||||
- 也可把既有 `.github/copilot-instructions.md` 改成引用 `AGENTS.md` 與 `.github/jsc-plugins/doc/skills/<skill>/SKILL.md`。
|
||||
- **呼叫**:在 Copilot Chat/Coding Agent 任務中描述需求,例如「請依 `.github/jsc-plugins/doc/skills/doc-funcs/SKILL.md` 執行文件化流程」。
|
||||
- Copilot 不會讀 Claude Code 的 `hooks/hooks.json`,因此 `worklog` 不支援自動 session stop 記錄。
|
||||
|
||||
---
|
||||
|
||||
## 用 CLI 直接執行 skill(headless / 一次性)
|
||||
@@ -155,10 +198,11 @@ rm -rf ~/.config/opencode/skills/doc-docker ~/.config/opencode/skills/doc-funcs
|
||||
| Codex | `codex exec "<prompt>"` | `codex exec '$doc-docker'` |
|
||||
| Antigravity | `agy -p "<prompt>"` | `agy -p "/jsc:doc-docker"` |
|
||||
| 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 註解` |
|
||||
|
||||
- Claude / Antigravity 支援 `/jsc:` 前綴,直接 `-p "/jsc:<name>"` 即可。
|
||||
- Codex 以 `$<name>` 觸發;在 shell 請用**單引號**避免 `$` 被展開:`codex exec '$doc-docker'`。
|
||||
- OpenCode 沒有前綴,用自然語言描述需求,模型會自動透過 skill 工具呼叫。
|
||||
- OpenCode 與 Copilot 沒有前綴,用自然語言描述需求;Copilot 任務中請明確指出要讀取的 `SKILL.md`。
|
||||
- 帶引數就接在後面,例如 `claude -p "/jsc:doc-docker docker-compose.yaml"`、`codex exec '$doc-docker docker-compose.yaml'`。
|
||||
|
||||
---
|
||||
@@ -210,6 +254,14 @@ rm -rf ~/.config/opencode/skills/doc-docker ~/.config/opencode/skills/doc-funcs
|
||||
- **Codex**:`$doc-issues-sync`,或用 `/skills` 選單
|
||||
- **OpenCode**:描述需求自動觸發
|
||||
|
||||
### `worklog`
|
||||
|
||||
工作證明自動記錄與手動維護流程。Claude Code 的 `Stop` hook 會把每輪工作整理成六個固定欄位:專案/任務名稱、執行細節與產出、花費時間、任務狀態、遇到的困難、解決方式,並追加到 Gitea wiki 當週頁(`Worklog-yyyy-MM-W<週>`)。手動模式提供 `--init`、`--tune`(Claude Code 專屬)、`--diagnose`、`--append`、`--show`。
|
||||
|
||||
- **Claude Code / Antigravity**:`/jsc:worklog --diagnose`
|
||||
- **Codex**:`$worklog --diagnose`,或用 `/skills` 選單
|
||||
- **OpenCode / GitHub Copilot**:不支援(不會帶入或執行 `scripts/` 與 `hooks/`)
|
||||
|
||||
<!-- JSC-SKILLS:END -->
|
||||
|
||||
---
|
||||
@@ -228,3 +280,4 @@ rm -rf ~/.config/opencode/skills/doc-docker ~/.config/opencode/skills/doc-funcs
|
||||
- Codex:`codex plugin marketplace upgrade doc`
|
||||
- Antigravity:`git -C ~/jsc-plugin pull && agy plugin uninstall jsc && agy plugin install ~/jsc-plugin`
|
||||
- OpenCode:`git pull` 後重新複製 `skills/`
|
||||
- GitHub Copilot:更新 `.github/jsc-plugins/doc` 後同步 `AGENTS.md` 或 `.github/copilot-instructions.md`
|
||||
|
||||
Reference in New Issue
Block a user