docs(README): 同步 code-action-docker 章節為問答式五階段流程說明

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jeffery
2026-07-15 18:23:33 +08:00
co-authored by Claude Fable 5
parent 3a9819f6d8
commit a3a1346ae9
+4 -4
View File
@@ -44,7 +44,7 @@ code/
│ ├── code-issues/ # 彙整議題 TODO(影響範圍小→大)+ 逐項實作 + 留言進度 │ ├── code-issues/ # 彙整議題 TODO(影響範圍小→大)+ 逐項實作 + 留言進度
│ ├── code-nuget/ # C# / .NET NuGet 套件更新 + build 驗證 │ ├── code-nuget/ # C# / .NET NuGet 套件更新 + build 驗證
│ ├── code-sync/ # 依擁有者批次 clone/更新 Gitea 專案 │ ├── code-sync/ # 依擁有者批次 clone/更新 Gitea 專案
│ ├── code-action-docker/ # action 容器化Node 主程式)+ 串接 doc-funcs │ ├── code-action-docker/ # 問答式打造 docker actionNode 主程式)+ 串接 doc-funcs
│ ├── code-action-composite/ # composite action 標準化 + 串接 doc-funcs │ ├── code-action-composite/ # composite action 標準化 + 串接 doc-funcs
│ ├── code-image/ # Dockerfile 整理成六步流程 + 串接 doc-funcs │ ├── code-image/ # Dockerfile 整理成六步流程 + 串接 doc-funcs
│ └── hello/ # 範例 skill:驗證安裝、新增 skill 的範本 │ └── hello/ # 範例 skill:驗證安裝、新增 skill 的範本
@@ -235,13 +235,13 @@ rm -rf ~/.config/opencode/skills/{code-review,code-review-archive,code-review-re
### `code-action-docker` ### `code-action-docker`
GiteaGitHub「Docker 容器 action」專案標準化為 **Node 主程式+容器化**,再串接文件化流程。五階段:(A) 找出 action 專案、讀 `action.yml``action.yaml``name``description`、判斷主程式語言(B) 主程式**非 Node 則保守改寫為 Node**(高風險,先以 AskUserQuestion 確認,保留對外行為),並把所有 `.js` 集中到 **`src/`**、同步更新 `require``import` 路徑、`package.json``action.yml`(C) 產生 `entrypoint.sh`**啟動 node 前先輸出 action 名稱/用途/更新時間**Asia/Taipei `yyyy/MM/dd HH:mm:ss`)再 `exec node`;(D) 依**六步流程**(參數處理 → 安裝套件 → 複製檔案 → 執行程序 → 縮小映像檔 → 設定入口)產生**使用最新 node 版本**的 `Dockerfile`**每步內容依主程式(`src/`)實作量身決定**(先盤點相依/是否需 build/OS 層相依/入口檔再填對應步驟,用不到的不硬塞),預設 build 基底 `node:latest`、runtime `node:slim`、**多階段建置縮小映像**`ENTRYPOINT` 指向 `entrypoint.sh`(E) 對整個專案**完整執行 `/jsc:doc-funcs`**function 文件、`entrypoint.sh``Dockerfile` 逐行註解、重建 README)。 以**互動問答從零打造** GiteaGitHub「Docker 容器 action」Node 主程式),再串接文件化流程。五階段:(1) **詢問 action 名稱**(用於 `action.yml``name`);(2) **詢問輸入與輸出參數**及其 description(盡量繁體中文、無亂碼;輸入含 requireddefault,實作對應 `INPUT_*` 環境變數與 `$GITHUB_OUTPUT`);(3) **詢問執行此流程的目標**,追問到可實作為止,整理**濃縮成一句話**(用於 `action.yml``description`,盡量繁體中文、無亂碼)(4) **依標準實作目標**——盡量以 **Node.js** 開發、程式檔**一律放 `src/`**(入口 `src/index.js`、共用 `src/logger.js`),**盡量詳細輸出訊息**且格式統一為 `[yyyy/MM/dd HH:mm:ss][階段][等級]: 訊息`Asia/Taipei;無階段則移除該 `[]`;等級 `INF`/`WRN`/`ERR`/`TRC`/`DBG`;一行一則),並產生 `action.yml`、啟動前先輸出名稱/用途/更新時間的 `entrypoint.sh`**使用最新 node 版本**的多階段建置 `Dockerfile`(預設 build 基底 `node:latest`、runtime `node:slim`);(5) **檢查是否有 doc-funcs 技能**:有則對整個專案**完整執行 `/jsc:doc-funcs`**function 文件、`entrypoint.sh``Dockerfile` 逐行註解、重建 README,沒有則回報後結束
參數:`[--action-dir <action 根目錄>] [--node-version <node tag>] [--main <主程式檔>] [--yes]`(根目錄預設目前工作目錄;node 版本預設最新;主程式自動判斷;`--yes` 略過一般確認,但主程式改寫與 doc-funcs 的實作詢問仍會中斷)。 參數:`[--action-dir <action 根目錄>] [--node-version <node tag>]`(根目錄預設目前工作目錄;node 版本預設最新;名稱/輸入輸出/目標以問答取得,呼叫時已口述者不再重問)。
- **Claude Code / Antigravity**`/jsc:code-action-docker`,或 `/jsc:code-action-docker --action-dir ~/work/my-action --node-version 22` - **Claude Code / Antigravity**`/jsc:code-action-docker`,或 `/jsc:code-action-docker --action-dir ~/work/my-action --node-version 22`
- **Codex**`$code-action-docker`,或 `$code-action-docker --action-dir ~/work/my-action`,或用 `/skills` 選單 - **Codex**`$code-action-docker`,或 `$code-action-docker --action-dir ~/work/my-action`,或用 `/skills` 選單
- **OpenCode**:描述需求(如「把這個 action 主程式改成 node、所有 js 收進 src/,產生會先輸出 action 名稱/用途/更新時間再啟動 node 的 entrypoint.sh、用最新 node 版本的 Dockerfile,最後跑 doc-funcs 補文件並重建 README」)自動觸發 - **OpenCode**:描述需求(如「幫我從零建一個 docker action:先問我名稱、輸入輸出參數與目標,用 node 實作放在 src/,訊息格式統一為 [時間][階段][等級],最後跑 doc-funcs 補文件並重建 README」)自動觸發
### `code-action-composite` ### `code-action-composite`