From 6543ca849da23891f3700adf62b81a461598ce79 Mon Sep 17 00:00:00 2001 From: astroicers Date: Mon, 17 Aug 2026 09:46:44 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E5=8A=A0=E7=89=88=E6=9C=AC=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E6=80=A7=E6=AA=A2=E6=9F=A5(plugin=20/=20marketplace?= =?UTF-8?q?=20/=20CHANGELOG)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 既有 CI 驗 JSON 合法性與檔案齊全,但不驗版本。姊妹 repo talk-craft 正因此 發生漂移(1.2.2 只改了 CHANGELOG,兩個 JSON 停在 1.2.1)且 CI 全綠沒攔到。 本 repo 目前三處一致,此為預防性護欄:任一不一致即 fail,訊息直接指出 發版時三處要一起改。三個 repo 都無 git tag,版本全靠這三處管理。 Co-Authored-By: Claude Fable 5 --- .github/workflows/validate.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index ce6507c..8df8bd8 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -23,6 +23,17 @@ jobs: .claude-plugin/marketplace.json > /dev/null echo "✅ marketplace plugin 條目含 name/version/description/source" + - name: Check version consistency (plugin / marketplace / CHANGELOG) + run: | + pv=$(jq -r '.version' .claude-plugin/plugin.json) + mv=$(jq -r '.plugins[0].version' .claude-plugin/marketplace.json) + cv=$(grep -m1 -oE '^## \[[0-9]+\.[0-9]+\.[0-9]+\]' CHANGELOG.md | tr -d '#[] ') + echo "plugin.json=$pv marketplace.json=$mv CHANGELOG=$cv" + test -n "$cv" || { echo "❌ CHANGELOG 找不到版本標題(格式應為 '## [x.y.z] - YYYY-MM-DD')"; exit 1; } + test "$pv" = "$mv" || { echo "❌ plugin.json($pv) 與 marketplace.json($mv) 版本不一致"; exit 1; } + test "$pv" = "$cv" || { echo "❌ plugin.json($pv) 落後/超前 CHANGELOG 最新版($cv)——發版時三處要一起改"; exit 1; } + echo "✅ 三處版本一致:$pv" + - name: Check SKILL.md frontmatter run: | f="skills/visual-web-stack/SKILL.md"