feat: 新增 code-review-image 等三個容器化/文件化 skill(bump 0.1.9) #31

Merged
admin merged 4 commits from develop into master 2026-06-30 03:53:33 +00:00
Showing only changes of commit 4d5b4553fb - Show all commits
+34 -1
View File
@@ -42,7 +42,10 @@ code-review/
│ ├── code-review-archive/ # 保存裁決:成立→已知問題、誤判→排除事項 │ ├── code-review-archive/ # 保存裁決:成立→已知問題、誤判→排除事項
│ ├── code-review-resolve/ # 解決 findings.json + 分類提交 + push + 發 PR │ ├── code-review-resolve/ # 解決 findings.json + 分類提交 + push + 發 PR
│ ├── code-review-nuget/ # C# / .NET NuGet 套件更新 + build 驗證 │ ├── code-review-nuget/ # C# / .NET NuGet 套件更新 + build 驗證
── code-review-sync/ # 依擁有者批次 clone/更新 Gitea 專案 ── code-review-sync/ # 依擁有者批次 clone/更新 Gitea 專案
│ ├── code-review-action-docker/ # action 容器化(Node 主程式)+ 串接 doc-funcs
│ ├── code-review-action-composite/ # composite action 標準化 + 串接 doc-funcs
│ └── code-review-image/ # Dockerfile 整理成六步流程 + 串接 doc-funcs
├── AGENTS.md # 跨助理共用指引 ├── AGENTS.md # 跨助理共用指引
└── README.md └── README.md
``` ```
@@ -218,6 +221,36 @@ rm -rf ~/.config/opencode/skills/code-review
- **Codex**`$code-review-sync`,或 `$code-review-sync --owner plugins --target-dir ~/work`,或用 `/skills` 選單 - **Codex**`$code-review-sync`,或 `$code-review-sync --owner plugins --target-dir ~/work`,或用 `/skills` 選單
- **OpenCode**:描述需求(如「用 GITEA_TOKEN 取得我有讀取權限的所有 Gitea 專案,依擁有者分組讓我多選,把選定擁有者的專案 clone 到家目錄;已存在的切到 develop/master 更新到最新」)自動觸發 - **OpenCode**:描述需求(如「用 GITEA_TOKEN 取得我有讀取權限的所有 Gitea 專案,依擁有者分組讓我多選,把選定擁有者的專案 clone 到家目錄;已存在的切到 develop/master 更新到最新」)自動觸發
### `code-review-action-docker`
把 GiteaGitHub「Docker 容器 action」專案標準化為 **Node 主程式+容器化**,再串接文件化流程。五階段:(A) 找出 action 專案、讀 `action.yml``action.yaml``name``description`、判斷主程式語言;(B) 主程式**非 Node 則保守改寫為 Node**(高風險,先以 AskUserQuestion 確認,保留對外行為),並把所有 `.js` 集中到 **`app/`**、同步更新 `require``import` 路徑、`package.json``action.yml`(C) 產生 `entrypoint.sh`**啟動 node 前先輸出 action 名稱/用途/更新時間**Asia/Taipei `yyyy/MM/dd HH:mm:ss`)再 `exec node`;(D) 依**六步流程**(參數處理 → 安裝套件 → 複製檔案 → 執行程序 → 縮小映像檔 → 設定入口)產生**使用最新 node 版本**的 `Dockerfile`**每步內容依主程式(`app/`)實作量身決定**(先盤點相依/是否需 build/OS 層相依/入口檔再填對應步驟,用不到的不硬塞),預設 build 基底 `node:latest`、runtime `node:slim`、**多階段建置縮小映像**`ENTRYPOINT` 指向 `entrypoint.sh`(E) 對整個專案**完整執行 `/jsc:doc-funcs`**function 文件、`entrypoint.sh``Dockerfile` 逐行註解、重建 README)。
參數:`[--action-dir <action 根目錄>] [--node-version <node tag>] [--main <主程式檔>] [--yes]`(根目錄預設目前工作目錄;node 版本預設最新;主程式自動判斷;`--yes` 略過一般確認,但主程式改寫與 doc-funcs 的實作詢問仍會中斷)。
- **Claude Code / Antigravity**`/jsc:code-review-action-docker`,或 `/jsc:code-review-action-docker --action-dir ~/work/my-action --node-version 22`
- **Codex**`$code-review-action-docker`,或 `$code-review-action-docker --action-dir ~/work/my-action`,或用 `/skills` 選單
- **OpenCode**:描述需求(如「把這個 action 主程式改成 node、所有 js 收進 app/,產生會先輸出 action 名稱/用途/更新時間再啟動 node 的 entrypoint.sh、用最新 node 版本的 Dockerfile,最後跑 doc-funcs 補文件並重建 README」)自動觸發
### `code-review-action-composite`
把 GiteaGitHub「composite action」專案標準化,再串接文件化流程。四階段:(A) 找出 action 專案、讀 `action.yml``action.yaml``name``description``runs`、判斷是否為 composite(B) **已是 composite 則保留既有 `steps`**,非 compositeJSDocker)則**保守確認後對齊**為 composite(高風險先以 AskUserQuestion 確認,保留 `inputs``outputs` 契約;Docker 行為無法等價塞入時標「需人工確認」並建議改用 `code-review-action-docker`);(C) 在 `runs.steps` **最前面注入啟動橫幅 step**,輸出 action **名稱/用途/更新時間**Asia/Taipei `yyyy/MM/dd HH:mm:ss`,固定字串),並於 `action.yml` 開頭補用途/更新時間註解區塊(既有橫幅 step 則更新而非重插);(D) 對整個專案**完整執行 `/jsc:doc-funcs`**`action.yml` 與被引用腳本逐行註解、function 文件、重建 README)。
參數:`[--action-dir <action 根目錄>] [--manifest <action.yml 路徑>] [--yes]`(根目錄預設目前工作目錄;manifest 自動尋找 `action.yml``action.yaml``--yes` 略過一般確認,但「非 composite 需對齊」與 doc-funcs 的實作詢問仍會中斷)。
- **Claude Code / Antigravity**`/jsc:code-review-action-composite`,或 `/jsc:code-review-action-composite --action-dir ~/work/my-action`
- **Codex**`$code-review-action-composite`,或 `$code-review-action-composite --action-dir ~/work/my-action`,或用 `/skills` 選單
- **OpenCode**:描述需求(如「把這個 composite action 標準化,在 steps 最前面加一個會輸出 action 名稱/用途/更新時間的 step,最後跑 doc-funcs 補文件並重建 README」)自動觸發
### `code-review-image`
把專案既有的 `Dockerfile` **整理成固定六步流程**,再串接文件化流程。三階段:(A) 找出專案根目錄、定位目標 `Dockerfile`(找不到則詢問、**不臆造**;要產生全新 action 容器請改用 `code-review-action-docker`),讀現有指令、判斷語言/生態與既有 base image/建置流程;(B) 在**保留建置行為**前提下,把指令重整/歸位為**六步流程**(參數處理 → 安裝套件 → 複製檔案 → 執行程序 → 縮小映像檔 → 設定入口):可調參數集中於檔首 `ARG`、相依描述先 `COPY` 以利 layer 快取、**多階段建置**讓 runtime 改用較小基底(`*-slim``*-alpine``distroless` 等)只帶執行所需產物;`ENTRYPOINT``CMD``EXPOSE``ENV` 等對外契約不動,**無法保證等價的重整先以 AskUserQuestion 確認**(可選最小重排或只補註解);(C) 對整個專案**完整執行 `/jsc:doc-funcs`**`Dockerfile` 等指令檔逐行註解、function 文件、重建 README)。
參數:`[--project-dir <專案根目錄>] [--dockerfile <Dockerfile 路徑>] [--yes]`(專案根目錄預設目前工作目錄;Dockerfile 自動定位、多個時詢問;`--yes` 略過一般確認,但「重整無法保證行為等價」與 doc-funcs 的實作詢問仍會中斷)。
- **Claude Code / Antigravity**`/jsc:code-review-image`,或 `/jsc:code-review-image --project-dir ~/work/my-app --dockerfile build/Dockerfile`
- **Codex**`$code-review-image`,或 `$code-review-image --dockerfile docker/Dockerfile`,或用 `/skills` 選單
- **OpenCode**:描述需求(如「把這個專案的 Dockerfile 整理成參數處理→安裝套件→複製檔案→執行程序→縮小映像檔→設定入口六步、用多階段建置縮小映像,最後跑 doc-funcs 補文件並重建 README」)自動觸發
<!-- JSC-SKILLS:END --> <!-- JSC-SKILLS:END -->
--- ---