Commit Graph

4 Commits

Author SHA1 Message Date
Leo 1dfc4e373a v0.2.1:43 支閘的白話盤點、測試手冊、補上兩個被抓到的洞
leo 2026-08-20 問「InkStoneCo#40 加入了嗎?如果是這樣我應該可以白話文看到 hooks 的內容?」
答案是不行——43 支閘沒有任何白話清單。這一版補上。

docs/hooks-inventory.md   43 支逐支一行,按「你會在什麼時候撞到它」分 9 組
                          抽驗 5 支逐行核對源碼;順帶抓到 3 支有檔案沒註冊
docs/TESTING.md           A1-A8 + B1-B5,每格都有「怎麼跑/該看到什麼/什麼算失敗」
scripts/test-*.sh         兩支閘的測試,共 21 條,全過

兩個實撞的洞:
- release-tag-guard 的排除清單是前綴比對,x 整條放行
  (A8 那個新 session 抓到的,總管複驗屬實)。改用 #23 驗證過的判準:
  關鍵字要在指令位置才算執行。補 3 條複合指令測試,8/8。
  ⇒ 這是 InkStoneCo#36「包一層就繞過去」的同一個病,發生在同一天新寫的閘上。
- scripts/ticket 寫死只認名叫 gitea 的 remote,在 ISEP(remote 叫 origin)整個跑不起來
  ⇒「開票前先搜」那道閘在新 repo 等於不存在。改成掃所有指向本站的 remote + 環境變數 fallback。

A8 已通過:新 session 裡 plugin 的閘真的觸發(exit 2、tag 未建立、訊息來自 plugin 路徑)。

文件漂移訂正:plugin.json 與 README 寫 42 支/52 條,實際 43 支/53 條。

兩支新閘補上 #40 §1 要求的三行中文檔頭。
🔴 但仍違反 #40 §3「新規則一律先 warn」——兩支都是 block。理由記在 #40 留言,等 leo 裁。
2026-08-20 17:08:00 +08:00
Leo e4e3d69acf fix(release): 版本只有 Gitea Releases 答得出來,不再靠 README 自報(inkstone/ISEP#6)
現況:README.md 宣稱「狀態 0.1.0」,但 repo release_counter=0、一個 tag
都沒打。leo 當場指出這是違規,命中規範自己的 E12(宣稱交付但沒有 tag);
leo 補充:「release 不是寫在 readme,要放在 release 裡」。

改法(結構性防漂移,不是靠人記得同步):
- README.md 不再自行宣告版本號,改成指向 Gitea Releases 頁面
- .claude-plugin/plugin.json 的 version 改回哨兵值 0.0.0
  (=誠實承認目前沒有一個經過驗證、掛在 Releases 上的版本;
  真正打 tag 那天才跟 tag 一起同步成那個號碼)
- 新增 scripts/check-version-consistency.sh:隨時可跑的一致性檢查
  (plugin.json version 是否等於最新 tag/README 是否偷偷自報版本)
- 新增 hooks/release-tag-guard.sh:PreToolUse Bash 閘,在真正打 git tag
  的那一刻擋下與 plugin.json 不一致的版本號,註冊進 hooks.json

紅線:本次不打 tag、不建 release——那是總管驗過整個 milestone 之後的動作,
這裡交的是機制與草稿。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 13:10:00 +08:00
Leo 54e479900a 新增標籤唯一真相源 + 冪等同步腳本,全 org 14 個 repo 對齊(inkstone/ISEP#4)
labels.yaml:23 個標籤定義(名稱/顏色/描述/exclusive),已是 ISEP repo 現行實況。
scripts/gitea-labels-sync.sh:讀 labels.yaml 對齊任一/全部受治理 repo——
缺的建、改的還原(僅 color/description/exclusive,不改名)、多出來的只告警不刪,
兩次連跑第二次必為 no-op(已實測 0 created/0 updated)。

實跑對帳:14 個 repo 首跑 253 created + 46 updated;重跑 0/0(冪等);
InkStoneCo / Arcrun / content-pipeline 三個抽查點逐欄核對與 labels.yaml 完全一致;
arcrun-rag 留有 6 個 Gitea 預設英文標籤(bug/enhancement/help wanted/invalid/question/wontfix),
按規約只告警不刪。
2026-08-20 13:03:12 +08:00
Leo c2638668e3 ISEP 0.1.0:環境設定收成一個 plugin,本機與雲端共用一份
leo 2026-08-20:「同一個 plugin 你用,薄殼也用,保證兩邊同步」
              「我要你幫雲端做薄殼,永遠都有問題,你要做的就是這組設定
                你自己可以 dogfooding」

搬進來:41 支 hook(51 條註冊)/7 支 command/2 支 skill/23 支腳本。
不搬 .env、wiki、docs——那些是知識不是環境。

51 條 hook 路徑全部從 $CLAUDE_PROJECT_DIR/.claude/hooks/ 改成 ${CLAUDE_PLUGIN_ROOT}/hooks/,
零漏網。那正是薄殼一直壞掉的根:雲端 cwd 不是真身,寫死路徑就斷。

尚未驗證:Claude Code 能不能從私有 Gitea repo 裝 marketplace(要憑證)。
下一步就是在本機實際裝一次,通了才動雲端 bootstrap.sh。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 11:41:46 +08:00