feat(action skills): composite/docker action 標準化流程強化(參數優先序、從零建立、Dockerfile 修正) #6

Merged
admin merged 27 commits from develop into master 2026-07-17 03:36:44 +00:00
Member

變更摘要

本 PR 將 develop 併入 master,核心是 code-action-composite 與 code-action-docker 兩個 action skill 的標準化流程強化,另包含 develop 上先前的 revert 整理。

code-action-composite(skills/code-action-composite/SKILL.md)

  • 參數來源優先序:簡化為兩層——優先取用 ${{ gitea.* }}${{ github.* }} context(run 腳本可讀同源 $GITHUB_* 環境變數),無法取得才經使用者同意新增 inputssecretsvars context 在 composite action 內一律視為不可用(GitHub 官方明文限制;Gitea act_runner 未嚴格檢查、行為無保證),需要時宣告為 input 由呼叫端 workflow 以 with: 傳入。
  • 新增 A1a 問答式從零建立分支:目錄沒有 action.yml 時,問答收集名稱/輸入輸出參數/執行目標後產生 composite manifest 並實作 steps,再接回原流程。
  • JS→composite 對齊補契約映射:明定 composite step 不會自動注入 INPUT_*、也不自動轉接 outputs——範本補上 env: INPUT_<大寫>: ${{ inputs.<name> }} 映射與 outputs.<name>.value: ${{ steps.<id>.outputs.<name> }} 轉接,無法完成映射時不對齊。
  • 時間戳一致:「更新時間」明定語意,doc-funcs 完成後統一同步橫幅、註解區塊與 README 的時間戳。
  • 其他:run step 缺 shell 允許補 shell: bash(原檔錯誤);docker action 偵測只回報、決策收斂到 B2 一次詢問;doc-funcs 不可用時略過文件化階段;移除 --yes 參數。

code-action-docker(skills/code-action-docker/SKILL.md)

  • 參數來源優先序:優先取用 runner 注入容器的 GITHUB_*GITEA_* 執行期環境變數(gitea.*github.* context 同源資訊),無法取得才新增 inputs(容器內讀 INPUT_*);secrets/vars 同樣一律視為不可用、由呼叫端傳入。
  • 新增 A1a 問答式從零建立分支:產生 docker manifest 與 src/index.js 主程式骨架。
  • 修正 entrypoint 相對路徑 bugruns.entrypoint: entrypoint.sh 會覆蓋 Dockerfile 的正確絕對路徑 ENTRYPOINT 且執行期工作目錄是 workspace——範本改為不設 runs.entrypoint,入口統一由 ENTRYPOINT ["/action/entrypoint.sh"] 決定。
  • Dockerfile 骨架修正:真多階段建置(runtime 逐項明列 COPY --from=build,不整包搬)、新增 .dockerignore 產生步驟、npm cinpm install 依 lockfile 二擇一寫死(移除 || fallback)、移除 # syntax=docker/dockerfile:1
  • base image 預設改為最新 LTS 固定 tag(如 node:22node:22-slim)取代 node:latest,避免 action 每次現場 build 隨 base 跳版漂移;-alpine-slim 變體 tag 直接沿用不再組 -slim
  • src/ 搬移限縮:只搬主程式入口及其 require/import 依賴鏈,明文排除 *.config.js.*rc.jstest/scripts/ 等工具設定與測試目錄。
  • 其他:B1 選「維持非 Node」時 C/D 有對應分支(原直譯器+對應語言映像);docker 化代價揭示(Linux-only、build 開銷、需 docker 模式 runner);時間戳統一同步;移除 --yes 參數。

其他隨 develop 併入的變更(先前的 revert 整理)

  • plugin manifest 版本回退:三家 manifest(plugin.json.claude-plugin.codex-plugin)由 0.0.4 回退為 0.0.1(revert 先前升版)。
  • code-issues 功能回退:移除「專案看板欄位進度調整」與「母議題 TODO 勾選」流程(revert)。
  • README:同步上述所有章節說明。

影響範圍

檔案 變更
skills/code-action-composite/SKILL.md +61/−17(流程強化)
skills/code-action-docker/SKILL.md +78/−41 本次、含歷史合計 282 行異動(流程強化+修 bug)
skills/code-issues/SKILL.md −34 行(revert 看板欄位/母議題功能)
README.md 章節說明同步
plugin.json ×3 版本 0.0.4 → 0.0.1(revert)

風險與注意事項

  • 版本號回退:master 目前為 0.0.4,併入後 manifest 變 0.0.1,已安裝的 plugin 快取(0.0.4)可能不會視為需要更新——若非刻意,建議併入前先在 develop 重新升版。
  • 兩個 action skill 的行為變更(優先序、預設 LTS、entrypoint 規則)會影響之後由 skill 產生/整理的 action 專案,屬預期變更。
  • 純文件/skill 定義變更,無程式碼建置風險。
## 變更摘要 本 PR 將 `develop` 併入 `master`,核心是 **code-action-composite 與 code-action-docker 兩個 action skill 的標準化流程強化**,另包含 develop 上先前的 revert 整理。 ### code-action-composite(skills/code-action-composite/SKILL.md) - **參數來源優先序**:簡化為兩層——優先取用 `${{ gitea.* }}`/`${{ github.* }}` context(`run` 腳本可讀同源 `$GITHUB_*` 環境變數),無法取得才經使用者同意新增 `inputs`;`secrets`/`vars` context 在 composite action 內一律視為不可用(GitHub 官方明文限制;Gitea act_runner 未嚴格檢查、行為無保證),需要時宣告為 `input` 由呼叫端 workflow 以 `with:` 傳入。 - **新增 A1a 問答式從零建立分支**:目錄沒有 `action.yml` 時,問答收集名稱/輸入輸出參數/執行目標後產生 composite manifest 並實作 steps,再接回原流程。 - **JS→composite 對齊補契約映射**:明定 composite step 不會自動注入 `INPUT_*`、也不自動轉接 outputs——範本補上 `env: INPUT_<大寫>: ${{ inputs.<name> }}` 映射與 `outputs.<name>.value: ${{ steps.<id>.outputs.<name> }}` 轉接,無法完成映射時不對齊。 - **時間戳一致**:「更新時間」明定語意,doc-funcs 完成後統一同步橫幅、註解區塊與 README 的時間戳。 - 其他:`run` step 缺 `shell` 允許補 `shell: bash`(原檔錯誤);docker action 偵測只回報、決策收斂到 B2 一次詢問;doc-funcs 不可用時略過文件化階段;移除 `--yes` 參數。 ### code-action-docker(skills/code-action-docker/SKILL.md) - **參數來源優先序**:優先取用 runner 注入容器的 `GITHUB_*`/`GITEA_*` 執行期環境變數(`gitea.*`/`github.*` context 同源資訊),無法取得才新增 `inputs`(容器內讀 `INPUT_*`);secrets/vars 同樣一律視為不可用、由呼叫端傳入。 - **新增 A1a 問答式從零建立分支**:產生 docker manifest 與 `src/index.js` 主程式骨架。 - **修正 entrypoint 相對路徑 bug**:`runs.entrypoint: entrypoint.sh` 會覆蓋 Dockerfile 的正確絕對路徑 `ENTRYPOINT` 且執行期工作目錄是 workspace——範本改為不設 `runs.entrypoint`,入口統一由 `ENTRYPOINT ["/action/entrypoint.sh"]` 決定。 - **Dockerfile 骨架修正**:真多階段建置(runtime 逐項明列 `COPY --from=build`,不整包搬)、新增 `.dockerignore` 產生步驟、`npm ci`/`npm install` 依 lockfile 二擇一寫死(移除 `||` fallback)、移除 `# syntax=docker/dockerfile:1`。 - **base image 預設改為最新 LTS 固定 tag**(如 `node:22`/`node:22-slim`)取代 `node:latest`,避免 action 每次現場 build 隨 base 跳版漂移;`-alpine`/`-slim` 變體 tag 直接沿用不再組 `-slim`。 - **`src/` 搬移限縮**:只搬主程式入口及其 require/import 依賴鏈,明文排除 `*.config.js`、`.*rc.js`、`test/`、`scripts/` 等工具設定與測試目錄。 - 其他:B1 選「維持非 Node」時 C/D 有對應分支(原直譯器+對應語言映像);docker 化代價揭示(Linux-only、build 開銷、需 docker 模式 runner);時間戳統一同步;移除 `--yes` 參數。 ### 其他隨 develop 併入的變更(先前的 revert 整理) - **plugin manifest 版本回退**:三家 manifest(`plugin.json`/`.claude-plugin`/`.codex-plugin`)由 `0.0.4` 回退為 `0.0.1`(revert 先前升版)。 - **code-issues 功能回退**:移除「專案看板欄位進度調整」與「母議題 TODO 勾選」流程(revert)。 - **README**:同步上述所有章節說明。 ## 影響範圍 | 檔案 | 變更 | | --- | --- | | skills/code-action-composite/SKILL.md | +61/−17(流程強化) | | skills/code-action-docker/SKILL.md | +78/−41 本次、含歷史合計 282 行異動(流程強化+修 bug) | | skills/code-issues/SKILL.md | −34 行(revert 看板欄位/母議題功能) | | README.md | 章節說明同步 | | plugin.json ×3 | 版本 0.0.4 → 0.0.1(revert) | ## 風險與注意事項 - **版本號回退**:master 目前為 `0.0.4`,併入後 manifest 變 `0.0.1`,已安裝的 plugin 快取(0.0.4)可能不會視為需要更新——若非刻意,建議併入前先在 develop 重新升版。 - 兩個 action skill 的行為變更(優先序、預設 LTS、entrypoint 規則)會影響之後由 skill 產生/整理的 action 專案,屬預期變更。 - 純文件/skill 定義變更,無程式碼建置風險。
jiantw83 added 22 commits 2026-07-16 08:06:06 +00:00
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This reverts commit c16762ced3.
This reverts commit fcecc558b2.
This reverts commit c9b2e12711.
This reverts commit 223dc0c532.
This reverts commit c16762ced3.
This reverts commit fcecc558b2.
This reverts commit bff191e3d3.
This reverts commit 0e97646535.
This reverts commit b935be26d9.
This reverts commit 5e47ea938f.
This reverts commit 5633993d7f.
This reverts commit a0b1a37ff9.
This reverts commit e76775e703.
This reverts commit 5930254a5e.
This reverts commit 6b92ca9a30.
This reverts commit a3a1346ae9.
This reverts commit 3a9819f6d8.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jiantw83 added 2 commits 2026-07-17 00:58:32 +00:00
Author
Member

本 PR 新納入 2 個 commit(由 code-review-resolve 流程推送):

  1. refactor(skills 共用規範):9 個 skill 的重複區塊(語言/編碼、自動執行原則、token 保護、工具選擇、參數來源優先序、Dockerfile 六步、doc-funcs 串接、解衝突流程)抽出至 generic plugin 的 spec-* 共用規範 skills;各 skill 開頭改為「共用規範」區塊(引用 /jsc:spec-*+一行 fallback 摘要),並明訂 generic plugin 未安裝時先詢問是否安裝、不安裝就直接中斷
  2. chore(plugin 版本):三家 manifest 升版 0.0.5(master 目前 0.0.4,維持版本單調遞增)。

⚠️ 相依順序:本 PR 依賴 generic 的 PR #1(spec-* 共用規範),請先合併發佈 generic。

本 PR 新納入 2 個 commit(由 code-review-resolve 流程推送): 1. `refactor(skills 共用規範)`:9 個 skill 的重複區塊(語言/編碼、自動執行原則、token 保護、工具選擇、參數來源優先序、Dockerfile 六步、doc-funcs 串接、解衝突流程)抽出至 generic plugin 的 `spec-*` 共用規範 skills;各 skill 開頭改為「共用規範」區塊(引用 `/jsc:spec-*`+一行 fallback 摘要),並明訂 **generic plugin 未安裝時先詢問是否安裝、不安裝就直接中斷**。 2. `chore(plugin 版本)`:三家 manifest 升版 **0.0.5**(master 目前 0.0.4,維持版本單調遞增)。 ⚠️ 相依順序:本 PR 依賴 generic 的 [PR #1(spec-* 共用規範)](https://gitea.jsc.idv.tw/plugins/generic/pulls/1),請先合併發佈 generic。
jiantw83 added 3 commits 2026-07-17 03:36:27 +00:00
admin approved these changes 2026-07-17 03:36:41 +00:00
admin merged commit a0baf50761 into master 2026-07-17 03:36:44 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/code#6