# 技能盤點目錄 > 由 `jsc-meta:tooling-guide` 維護。這是目錄頁 `TOOLING_CONTENTS`。 > 一個區塊代表一組「機器、CLI、帳號」。同一台機器裝了幾支 CLI,就有幾個區塊。 > 寫入一律用 `jsc-gitea/tools/wiki-contents.sh upsert TOOLING 1 "TOOLING_{HASH}" {區塊檔} templates/tooling-contents.md`:`` 填 `TOOLING`,`` 填這一筆的 H2 標題,也就是內容頁頁名 `TOOLING_{HASH}`,第四個參數是整個 H2 區塊的檔案,不是一列表格。 > `` 填 `1`。這個參數填的是**舊表格裡持有「內容頁連結」那一欄的序號**,只在舊頁還是 markdown 表格、需要自動轉檔時才用得到:轉檔時工具從那一欄的連結網址取最後一段路徑當 H2 標題。序號要照**線上那一頁實際的欄位排法**數,不是照這份範本的欄位排法。這裡之所以是 `1`:線上 `TOOLING_CONTENTS` 目前是空頁,沒有舊表格要轉,而這份範本的「盤點頁」連結就在第 1 欄。線上哪一天真有舊表格,就先讀回線上那一頁、看連結落在第幾欄,再照那個序號填。頁面已經是條列格式時這個參數完全不影響結果。 > 它讀回整頁、換掉 H2 標題相符的那個區塊、找不到才附加到頁尾,最後整頁寫回。不得手工改目錄頁。 > `TOOLING_{HASH}` 的 `{HASH}` 交給 `jsc-gitea/tools/hash-id` 產生,雜湊來源見 `jsc-meta/references/guidelines.md` 的「Wiki 頁命名總表」。 > 連結寫法:所有連結一律 `[{文字}]({連結})`,網址放 `jsc-gitea/tools/gitea.sh wiki-url` 印出的絕對網址,不用 `[[...]]`。寫入前先把每個連結交給 `jsc-gitea/tools/link-check.sh` 驗證,結束碼 0 才寫入;驗證走 API,不看網頁狀態碼,私有存取庫的網頁網址對未登入請求會回 404。 > > 欄位說明:一個區塊固定八條,順序照下面從上到下。 > > - 盤點頁:`[TOOLING_{HASH}]({連結})`,連結是 `gitea.sh wiki-url` 印出的絕對網址。與 H2 標題指的是同一頁,標題不放連結,這一條才放。 > - 主機:這次盤點的機器名,與雜湊第一段相同。 > - 工具:CLI 代號,與雜湊第二段相同。 > - 帳號:執行盤點的登入帳號,與雜湊第三段相同。 > - plugin 數:該頁「已安裝 plugin」一節的筆數。 > - 技能數:該頁「可用技能」一節的筆數。 > - hook 接線:該頁「hook 接線狀態」對這支 CLI 的判定。 > - 最後盤點:該頁盤點時間,與內容頁標頭一致。 > > 為什麼 H2 標題寫頁名:`TOOLING_{HASH}` 的雜湊來源就是「主機、工具、帳號」三段,所以標題相符等於三段都相符,一個鍵就夠。以前靠三個欄位逐欄比對,任一欄的寫法差一點(FQDN 對短主機名、大小寫不同)就比不到既有那一筆,同一台機器同一支 CLI 於是多出第二筆,兩筆都寫得成功,也都看不出被分裂。 > > 寫入規則: > > - 一律走 `jsc-gitea/tools/wiki-contents.sh upsert`,鍵是 H2 標題 `TOOLING_{HASH}`。 > - 那支腳本先整頁讀回來,再逐個比對 H2 標題。 > - 標題相同就整塊換掉,區塊裡的每一條都覆寫成本次結果。 > - 找不到相同的標題,才附加一個新區塊。 > - 只動自己那一個區塊,別人的區塊原樣保留。 > - 禁止整頁覆蓋。這一頁是共用目錄,覆蓋等於刪掉別台機器的紀錄。 > - 讀不到舊內容就中止,不附加區塊,也不寫入。 > - 這一頁不留任何 markdown 表格。舊頁還是表格時由 `wiki-contents.sh` 自動轉成條列後寫回,不要手工搬。 > - 先寫內容頁,成功了才回來更新這個區塊。目錄頁指向一個寫失敗的頁,比缺一筆更難查。 ## TOOLING_{HASH} - 盤點頁:[TOOLING_{HASH}]({wiki-url 印出的絕對網址}) - 主機:{主機名} - 工具:{claude、codex、copilot、antigravity、kiro 五選一} - 帳號:{登入帳號} - plugin 數:{n} - 技能數:{n} - hook 接線:{wired、degraded、unwired、unknown 四選一} - 最後盤點:{yyyy-MM-dd HH:mm}