feat/cli-doctor-and-setup-skills #13
1 Participants
Notifications
Due Date
No due date set.
Depends on
#21 feat/hooks-wire-cli-status
plugins/hooks
#20 feat/gitea-check-report-wiki-types
plugins/gitea
Reference: plugins/cli#13
Reference in New Issue
Block a user
摘要
變更內容
skills/doctor/SKILL.mdCHECK_{HASH}skills/setup/SKILL.mdtools/config-spec.tsvtools/scan-config.shorphans找出原始碼用到卻沒登錄的變數tools/apply-config.sh# jsc-config標記段落或建立目錄,寫前備份、寫後驗證templates/check-page.mdCHECK_{HASH}版面:四張檢查表加一張待修表templates/check-contents.mdCHECK_CONTENTS版面README.md、三份 manifest設計重點
JSC_SCRIPT_DIR這種執行期內部變數。規格表登錄全部項目(含 internal),掃描只負責回報漏登錄的,兩邊互相補位。wire-cli.sh status。分兩份實作會各自漂移,體檢說沒接、實際上接著。TOKEN的項目只印set或unset。體檢結果會寫進 wiki。skipped,報告寫「未取得結論」;沒有 plugin 註冊檔的 CLI 標「無法驗證」,不併進「最新」。JSC_WIKI_REPO_CHECK沒設定時照樣印出報表,並把這個變數列進待修第一項。apply-config.sh只重寫自己的標記段落,段落外一律不動;每次寫入前把動到的 rc 檔備份到$JSC_HOME/backup/config/{時間戳}/,備份失敗就不寫。測試結果
sh -n通過:scan-config.sh、apply-config.sh。scan-config.sh -o scan all:44 項全部走完,summary印出 missing 1、invalid 0、unset 23、skipped 2,與這台機器的實際狀態相符。scan-config.sh scan global(連線):GITEA_HOST與GITEA_TOKEN驗證通過,token 值未出現在輸出中。scan-config.sh orphans:無輸出,代表原始碼用到的變數都已登錄。apply-config.sh:以假家目錄實測set兩次、unset一次、mkdir兩種路徑寫法($JSC_HOME/plugins與~/.jsc/x)。第二次 set 保留第一個變數,fish 寫成set -gx、bash 寫成export,備份目錄與內容都建立成功。jsc-meta/tools/ste100-lint.sh:無違規。前置 Push Request
wire-cli.sh status,那個子命令在這個 PR 裡。CHECK_{HASH},需要gitea.sh放行 CHECK 類型。What: 新增 jsc-cli:doctor,一次體檢技能版本、Hook 接線、全域設定與自我設定,只讀不改,結果寫進 wiki CHECK_{HASH}。 Why: 安裝或更新技能組之後,沒有任何工具說得出這台機器還缺什麼。設定散在環境變數、rc 檔與專案目錄,出錯時只能一個一個猜。 How: 版本比對複用 jsc-hooks 的 version-guard.sh report,接線狀態複用新加的 wire-cli.sh status(唯讀),設定則由 tools/scan-config.sh 比對 tools/config-spec.tsv 判定必要或選擇。規格表是必要性的唯一判準,掃描只負責抓出漏登錄的變數。 Who: 體檢與修復流程,搭配 jsc-cli:setup 收尾。