Files
doc/skills/docker/SKILL.md
T
jiantw83andClaude Sonnet 5 0cad39177b feat(spec-version-guard): 新增版本檢查 hook 並在 7 個 skill 檔頭引用規範
hooks/hooks.json 在既有 Stop(worklog)之外新增 PreToolUse 條目,沿用跨 plugin
腳本定位手法呼叫 shared 的 version-guard.mjs;docker/funcs/issues-analyze-to-file/
issues-analyze/issues-sync/notifications/worklog 七個 skill 檔頭補上
spec-version-guard。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 14:54:37 +08:00

63 lines
2.2 KiB
Markdown

---
name: docker
description: 整理並對齊 docker-compose.yaml 的行內註解與標題區塊。當使用者要對齊 docker-compose 註解、整理 compose 檔註解欄位、更新 compose 標題日期,或提到 docker-compose、dc-tidy、align_comments、註解對齊時使用此 skill。
---
# 對齊 docker-compose 註解
## 共用規範(必要前置)
先載入 `/jsc-shared:spec-preflight` 並依其流程處理;載入不到即代表 shared plugin 未安裝,
依該 spec 詢問使用者是否安裝 `https://gitea.jsc.idv.tw/plugins/shared.git`,不安裝則中斷本 skill。
本 skill 需要的規範:`spec-version-guard`、`spec-output`、`spec-execution`、`spec-time-log`
整理並對齊 `docker-compose.yaml` 的行內註解與標題。請優先使用自動化腳本執行。
以下範例中的 `skill_dir` 是本 skill 所在目錄,也就是包含此 `SKILL.md` 與 `scripts/` 的資料夾。不要假設目標專案內存在 `plugins/skills/docker/`。
## 全專案批次處理(未指定檔案時)
```bash
bash "${skill_dir}/scripts/align_comments.sh" --yes
```
## 單一檔案處理(指定檔案時)
`${file}` 為使用者指定的目標檔案:
```bash
bash "${skill_dir}/scripts/align_comments.sh" "${file}" --yes
```
## 手動執行流程參考
1. **[步驟 0] 還原空白基準**:移除既有對齊用空白,回到可重新計算的狀態。
```bash
tmp="$(mktemp "${file}.tmp.XXXXXX")" && awk -f "${skill_dir}/scripts/awk/strip_col.awk" "${file}" > "$tmp" && mv -- "$tmp" "${file}"
```
2. **[步驟 1] 校閱註解**:修正註解文字與數值正確性。
3. **[步驟 2] 計算對齊欄位**:取得對齊欄位。
```bash
awk -f "${skill_dir}/scripts/awk/find_col.awk" "${file}"
```
取得 `TARGET=XX`。
4. **[步驟 3] 執行對齊**:依 `TARGET` 欄位對齊註解。
```bash
tmp="$(mktemp "${file}.tmp.XXXXXX")" && awk -v TARGET=<TARGET> -f "${skill_dir}/scripts/awk/align_col.awk" "${file}" > "$tmp" && mv -- "$tmp" "${file}"
```
5. **[步驟 4] 驗證對齊**:驗證對齊結果。
```bash
awk -v TARGET=<TARGET> -f "${skill_dir}/scripts/awk/verify_col.awk" "${file}"
```
6. **[步驟 5] 更新日期**:更新標題區塊的 `更新日期` 為今日。