feat(skills): 新增技能盤點頁與共用部署驗證流程,並把技能驗證移到新行程
技能盤點以前只回到對話裡,換一台機器就得重跑才知道裝了什麼。 現在新增技能盤點這個 wiki 頁類型,雜湊取「主機、工具名稱、登入帳號」三段。 每支 CLI 各有自己的 plugin 集合,也各有自己的 hook 接線,那是互相獨立的事實。 少了工具名稱那一段,同一台機器上五支 CLI 會算出同一個雜湊,五份盤點互相覆蓋, 讀的人還看不出被蓋掉。技能盤點新增寫入這兩頁的步驟,整步規定必須開 sub agent。 兩份樣板刻意分開:內容頁每次盤點覆寫整頁,目錄頁只更新自己那一列, 兩者的寫入語意剛好相反,合成一份遲早有人把別台機器的紀錄刪掉。 四支異動技能原本在部署完的同一個工作階段,就叫用剛做好的技能。 部署收尾自己立起重啟閘門,那支技能必被擋下,驗證做不完。 解法不是把它加進豁免清單。豁免擋得住閘門,擋不住「行程還載著舊版」這件事, 硬過關驗到的是舊版行為,等於假通過。所以把判路線、部署、驗證、失敗分流 抽成一份共用說明,驗證一律另開 CLI 行程執行,四支技能只留一行指標指過去。 新增腳本檢查工具,一次做完語法、執行權限與結束碼宣告三項檢查, 只被 source 的函式庫豁免後兩項,而且逐支記在錯誤輸出,不靜默略過。 新增部署路線判定工具,判定改動有沒有進存取庫的預設分支, 取代四支技能各抄一段、各自漂移的散文;判不出來就回報停下,不自己挑路線走。 同時把四支技能裡的中文段落抽到共用說明、指標改回英文, 修正六處相對路徑,把技能盤點的模糊描述改成查得出來的條件, 並讓 manifest 同步的每一個呼叫端逐碼分流。 七支技能改為併行執行:例行稽核從九步併成七步,技能盤點併成六步。 技能盤點不再重跑盤點腳本內部已經跑過的三支腳本, 而那三支原本兼作獨立交叉檢查,拿掉就少一層保護, 所以把少掉的是什麼、風險由誰擋住,明白寫進 Notes,不當作沒發生。
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 技能盤點目錄
|
||||
|
||||
> 由 `jsc-meta:tooling-guide` 維護。這是目錄頁 `TOOLING_CONTENTS`。
|
||||
> 一列代表一組「機器、CLI、帳號」。同一台機器裝了幾支 CLI,就有幾列。
|
||||
> `TOOLING_{HASH}` 的 `{HASH}` 交給 `jsc-gitea/tools/hash-id` 產生,雜湊來源見 `jsc-meta/references/guidelines.md` 的「Wiki 頁命名總表」。
|
||||
|
||||
| 盤點頁 | 主機 | 工具 | 帳號 | plugin 數 | 技能數 | hook 接線 | 最後盤點 |
|
||||
| --- | --- | --- | --- | ---: | ---: | --- | --- |
|
||||
| [[TOOLING_{HASH}]] | {主機名} | {claude、codex、copilot、antigravity、kiro 五選一} | {登入帳號} | {n} | {n} | {wired、degraded、unwired、unknown 四選一} | {yyyy-MM-dd HH:mm} |
|
||||
|
||||
## 欄位說明
|
||||
|
||||
| 欄位 | 內容 |
|
||||
| --- | --- |
|
||||
| 盤點頁 | 指向 `TOOLING_{HASH}` 的同 wiki 連結 |
|
||||
| 主機 | 這次盤點的機器名,與雜湊第一段相同 |
|
||||
| 工具 | CLI 代號,與雜湊第二段相同 |
|
||||
| 帳號 | 執行盤點的登入帳號,與雜湊第三段相同 |
|
||||
| plugin 數 | 該頁「已安裝 plugin」表的列數 |
|
||||
| 技能數 | 該頁「可用技能」表的列數 |
|
||||
| hook 接線 | 該頁「hook 接線狀態」對這支 CLI 的判定 |
|
||||
| 最後盤點 | 該頁盤點時間,與內容頁標頭一致 |
|
||||
|
||||
## 寫入規則
|
||||
|
||||
- 先整頁讀回來,再比對主機、工具、帳號三欄。
|
||||
- 三欄都相同就更新那一列,其餘欄位覆寫成本次結果。
|
||||
- 三欄找不到相同的一列,才新增一列。
|
||||
- 只動自己那一列,別人的列原樣保留。
|
||||
- 禁止整頁覆蓋。這一頁是共用目錄,覆蓋等於刪掉別台機器的紀錄。
|
||||
- 讀不到舊內容就中止,不新增列,也不寫入。
|
||||
@@ -0,0 +1,129 @@
|
||||
# 技能盤點 — {主機名}/{工具名稱}/{登入帳號}
|
||||
|
||||
> 由 `jsc-meta:tooling-guide` 維護。這是盤點頁 `TOOLING_{HASH}`。
|
||||
> 這頁記的是「現在這台機器上這支 CLI 長什麼樣」。每次盤點覆寫整頁,不保留歷史。
|
||||
> 覆寫是刻意的:舊的安裝內容與接線狀態早就不成立,留著只會讓人照著過期的事實下判斷。
|
||||
> 目錄頁 `TOOLING_CONTENTS` 的規則相反,那頁只更新自己那一列,兩者不要混用。
|
||||
> 要看技能組歷次異動請翻 `SKILLSET_{HASH}`,累積紀錄在那一頁。
|
||||
|
||||
## 本次盤點
|
||||
|
||||
| 項目 | 內容 |
|
||||
| --- | --- |
|
||||
| 盤點時間 | {yyyy-MM-dd HH:mm} |
|
||||
| 主機 | {主機名} |
|
||||
| 工具 | {claude、codex、copilot、antigravity、kiro 五選一} |
|
||||
| 帳號 | {登入帳號} |
|
||||
| 資料來源 | `meta/tools/inventory-tooling.sh` 單次執行的輸出 |
|
||||
| plugins 根目錄 | {絕對路徑} |
|
||||
| marketplace | {絕對路徑} |
|
||||
|
||||
> 全頁事實出自上面那一次執行。同一趟不重跑 `list-skills.sh`、`detect-clis.sh` 與 `wire-cli.sh status`,避免同一件事出現兩個答案。
|
||||
|
||||
## 資料新鮮度
|
||||
|
||||
對應輸出的 `Source freshness` 一節。
|
||||
|
||||
| 項目 | 狀態 |
|
||||
| --- | --- |
|
||||
| 本機 domain 清單 | {synced、stale accepted、blocked 三選一} |
|
||||
| marketplace | {絕對路徑} |
|
||||
|
||||
## 現況摘要
|
||||
|
||||
對應輸出的 `現況摘要` 一節。
|
||||
|
||||
| 項目 | 數量 |
|
||||
| --- | ---: |
|
||||
| 已註冊 plugin domain | {n} |
|
||||
| 已掃到技能 | {n} |
|
||||
| 已偵測 CLI | {n} |
|
||||
|
||||
## 已安裝 plugin
|
||||
|
||||
對應輸出的 `Supported plugins` 一節。
|
||||
|
||||
| domain | 版本 | 本機路徑 |
|
||||
| --- | --- | --- |
|
||||
| {domain} | {版本或「缺本機存取庫」} | {絕對路徑} |
|
||||
|
||||
## 可用技能
|
||||
|
||||
對應輸出的 `Supported skills` 一節。
|
||||
|
||||
| domain | skill | 用途 |
|
||||
| --- | --- | --- |
|
||||
| {domain} | {技能名} | {一句用途} |
|
||||
|
||||
## 已偵測 CLI
|
||||
|
||||
對應輸出的 `Supported CLIs` 一節。只留這一頁對應的那支 CLI,其餘 CLI 各自有自己的盤點頁。
|
||||
|
||||
| CLI | 執行檔 | 版本 |
|
||||
| --- | --- | --- |
|
||||
| {工具名稱} | {絕對路徑} | {版本字串} |
|
||||
|
||||
## 可用工具
|
||||
|
||||
對應輸出的 `Supported tools` 一節。
|
||||
|
||||
| domain | tool | 用途 |
|
||||
| --- | --- | --- |
|
||||
| {domain} | {腳本檔名} | {檔頭第二行的說明} |
|
||||
|
||||
## hook 管理
|
||||
|
||||
對應輸出的 `Hook management` 一節。
|
||||
|
||||
| hook | 用途 |
|
||||
| --- | --- |
|
||||
| {腳本檔名} | {檔頭第二行的說明} |
|
||||
|
||||
## hook 接線狀態
|
||||
|
||||
對應輸出的 `Hook wiring status` 一節。只留這一頁對應的那支 CLI。
|
||||
|
||||
| CLI | 結束碼 | 狀態 |
|
||||
| --- | ---: | --- |
|
||||
| {工具名稱} | {n} | {狀態字串;查不到就寫「未知狀態,結束碼 {n}」} |
|
||||
|
||||
## plugin 與技能管理
|
||||
|
||||
對應輸出的 `Plugin and skill management` 一節。
|
||||
|
||||
| 需求 | 入口 |
|
||||
| --- | --- |
|
||||
| 新增技能 | `jsc-meta:skill-new` |
|
||||
| 更新單一技能 | `jsc-meta:skill-update` |
|
||||
| 批次更新技能組 | `jsc-meta:skillset-update` |
|
||||
| 刪除技能 | `jsc-meta:skill-delete` |
|
||||
| 安裝、更新、移除整組 plugin | `jsc-cli:deploy` |
|
||||
| 例行稽核 | `jsc-meta:skill-check` |
|
||||
| 重新接線 hook | `jsc-hooks:hooks-install` |
|
||||
|
||||
## 例行檢查
|
||||
|
||||
對應輸出的 `Operational checks` 一節。
|
||||
|
||||
| 檢查 | 負責的技能或 hook |
|
||||
| --- | --- |
|
||||
| 體檢目前環境 | `jsc-cli:doctor` |
|
||||
| 修復體檢項目 | `jsc-cli:setup` |
|
||||
| 版本前置檢查 | `jsc-hooks/hooks/version-guard.sh` |
|
||||
| 部署後重啟閘門 | `jsc-hooks/hooks/restart-gate.sh` |
|
||||
| 語言提示與掃描 | `jsc-hooks/hooks/ste100-guard.sh`、`jsc-hooks/hooks/lang-guard.sh` |
|
||||
| 註解範圍檢查 | `jsc-hooks/hooks/comment-scope.sh` |
|
||||
|
||||
## 使用時機
|
||||
|
||||
對應輸出的 `Use this when` 一節。
|
||||
|
||||
- 這頁只回答「這台機器這支 CLI 現在裝了什麼」。
|
||||
- 要動手安裝、更新或修復,照上面兩張表找對應的入口。
|
||||
- 盤點時間離現在太久就重跑一次 `jsc-meta:tooling-guide`,不要拿舊頁當現況。
|
||||
|
||||
## 已知限制
|
||||
|
||||
| 限制 | 說明 |
|
||||
| --- | --- |
|
||||
| {限制項目} | {為什麼這一項在這台機器上查不到或不適用} |
|
||||
Reference in New Issue
Block a user