diff --git a/README.md b/README.md index 96b6bd8..b1aeb0b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # jsc-code — 跨 AI 助理程式碼工作流 Plugin 一個可同時被 **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 專案批次同步**、**`TARGET.md` 每日排程執行與 PR 流程**,以及 **action / Dockerfile 標準化流程**。 核心是以 [Agent Skills(`SKILL.md`)](https://agentskills.io) 標準撰寫的共用 skills(唯一真實來源放在 `skills/`), 搭配各助理各自的 plugin manifest,讓**同一個 repo** 可用各家**原生 plugin CLI** 安裝。 plugin 名為 `jsc-code`,在 Claude Code 與 Antigravity 中 skill 以 **`/jsc-code:` 前綴**呼叫(例如 `/jsc-code:issues`)。 @@ -44,7 +44,8 @@ code/ │ ├── action-docker/ # action 容器化(Node 主程式)+ 串接 funcs │ ├── action-composite/ # composite action 標準化 + 串接 funcs │ ├── action-node/ # Node(JS)action 標準化(ncc 打包)+ 串接 funcs -│ └── image/ # Dockerfile 整理成六步流程 + 串接 funcs +│ ├── image/ # Dockerfile 整理成六步流程 + 串接 funcs +│ └── target/ # TARGET.md 每日 00:00 排程執行 + 分類提交 + push develop + PR ├── AGENTS.md # 跨助理共用指引 └── README.md ``` @@ -136,7 +137,7 @@ git -C ~/plugins/code pull cp -r ~/plugins/code/skills/* ~/.config/opencode/skills/ # 移除 -rm -rf ~/.config/opencode/skills/{review-resolve,issues,nuget,sync,action-docker,action-composite,action-node,image} +rm -rf ~/.config/opencode/skills/{review-resolve,issues,nuget,sync,action-docker,action-composite,action-node,image,target} ``` > **Windows PowerShell**:`cp -r A B` → `Copy-Item A B -Recurse -Force`、`rm -rf X` → `Remove-Item X -Recurse -Force`、`~` → `$HOME`。 @@ -273,6 +274,16 @@ copilot plugin marketplace remove code - **Codex**:`$image`,或 `$image --dockerfile docker/Dockerfile`,或用 `/skills` 選單 - **OpenCode**:描述需求(如「把這個專案的 Dockerfile 整理成參數處理→安裝套件→複製檔案→執行程序→縮小映像檔→設定入口六步、用多階段建置縮小映像,最後跑 funcs 補文件並重建 README」)自動觸發 +### `target` + +把**專案根目錄的 `TARGET.md`** 當每日待辦清單,並用**系統排程**(Linux/WSL/macOS 用 `crontab`、Windows 用 `schtasks`)在**每天 00:00** 自動跑完它。三種用法:**`--schedule on`** 建立或更新排程(同一專案只留一筆,以 `# jsc-code:target <專案路徑>` 標記比對,**絕不覆寫整份 crontab 或刪掉其他人的排程**;安裝後會檢查排程服務是否真的在跑,**WSL 預設不啟動 cron 會明確提醒**;log 刻意寫到 `~/.jsc/` 而非專案內,避免污染變更盤點)、**`--schedule off`** 只移除自己那一筆、**`--run`** 立即(或由排程)執行一次。`--run` 走六階段:**(A Git 同步)** 工作區有未提交變更就停止(不 stash/不 reset),`fetch` 後切到 `develop`,**遠端沒有 `develop` 就從遠端預設分支建立一條**;**(B 盤點)** 讀 `TARGET.md` 的 `- [ ]` 未勾選項目(含子項目從屬關係)依檔案順序排定,檔案不存在或全部完成則正常結束;**(C 逐項實作)** 一次做一項、做完就地把該行改成 `- [x]` 並補上 `(yyyy/MM/dd HH:mm:ss 完成)`,語意不明或驗證失敗者**不硬做**、保持未勾選並補 `> ⏭️ 待人工處理:<原因>`;**(D 分類提交)** 依 conventional commit 類型分組,每型一個 commit、範圍寫實際模組名;**(E push)** 推 `develop`(認證管理器 → token → 失敗停止);**(F 發 PR)** 透過 Gitea API 對**遠端預設分支**開 PR,**已有相同 `develop` → 預設分支的 open PR 就沿用不重開**(每天執行不會灌一堆 PR)。不帶參數時只回報現況(排程裝了沒、下次執行時間、剩幾項未完成)。排程是非互動環境,建立前會提醒**先在該專案預先授權**助理所需工具,但不代為加上略過權限的旗標。 + +參數:`[--schedule on|off] [--run] [--project-dir <專案根目錄>] [--cli ] [--base ] [--no-pr] [--yes]`(專案根目錄預設目前工作目錄;`--cli` 預設為目前執行的助理,判斷不出來才問;`--base` 省略時自動取遠端預設分支;執行時間固定每天 00:00)。 + +- **Claude Code / Antigravity**:`/jsc-code:target --schedule on`、`/jsc-code:target --schedule off`、`/jsc-code:target --run --yes`、`/jsc-code:target --schedule on --run --project-dir ~/work/app` +- **Codex**:`$target --schedule on`,或 `$target --run --yes`,或用 `/skills` 選單 +- **OpenCode**:描述需求(如「幫我把這個專案的 TARGET.md 排成每天 00:00 自動執行,做完分類提交、push develop 並對預設分支發 PR」)自動觸發 + ---