feat/report-cli-gap-against-entry-snapshot
develop
PATH
tools/schedule.sh
tools/run-due.sh
cli_missing=
skills/assistant/SKILL.md
references/behaviors.md
偵測 CLI 那一支純看 PATH,分不出「裝了但執行檔不在 PATH 上」。而條目帶的 PATH 是安裝當下拍的:
現在的 shell claude codex copilot antigravity kiro (5 支) 條目帶的 PATH 底下 claude codex antigravity kiro (4 支)
少的那一支裝在 /run/user/0/fnm_multishells/{行程編號}_{時間戳}/bin——重開機就不在了。
/run/user/0/fnm_multishells/{行程編號}_{時間戳}/bin
而少一支的後果不是報錯:那一輪照樣把偵測到的每一支都跑過、照樣全部成功、照樣回報「都跑過了」。沒有基準,就沒有東西比得出差額。
cli_path() 的註解寫過:
cli_path()
有些 CLI 裝在會過期的目錄底下,那種路徑下一次開機就不在了。這裡不特別過濾——過濾要認得每一種安裝方式,那份名單會過期得比路徑還快。重跑一次 install 就會重新拍一份。
install
預言對了,但漏了一句:沒有任何東西會提醒該重跑。
條目記 CLI 代號的判法照組 PATH 那一套逐支 command -v,不另叫外部腳本。兩個理由:
command -v
那條路徑本質上是暫時的。真正的解法是那支 CLI 該裝在穩定位置,或者重跑一次排程安裝重新拍快照——兩件都不是這一支該替人決定的。
所以只點名、只提醒,並指出重跑安裝會重新拍一份。
沒有那個變數時不警告。那一種情況分不出「沒少」與「沒基準」,而拿「沒基準」當缺失會讓每一台還沒重裝的機器每輪亮一次紅——今天已經看過一次那種雜訊怎麼把真的發現蓋掉。
cli_missing=-
crontab
偵測 CLI 那一支純看 PATH,分不出「裝了但執行檔不在 PATH 上」。而條目帶的 PATH 是安裝當下拍的,其中某些 CLI 裝在會過期的目錄底下——這台機器實測就有 一支裝在帶行程編號的多殼層目錄,重開機之後那條路徑就不在了。 少了基準的後果不是報錯,是安靜地少做一支。那一輪照樣把偵測到的每一支都跑 過、照樣全部成功、照樣回報「都跑過了」,因為它不知道該有幾支。實測那一輪報 「對 4 支 CLI 都跑過,全部成功」,而機器上裝了 5 支——報告讀起來完全正常。 所以條目多記一個變數,記下安裝當下偵測到哪幾支,作為往後每一輪的參照基準。 判法照組 PATH 那一套逐支 command -v,不另叫外部腳本:install 那一刻本來就用 同一套判過一次,再叫一支等於同一件事兩套實作,而那一支拿得到的資訊跟這裡 一樣多,多繞一層沒有換到任何東西。 讀的那一邊比對之後印 cli_missing= 並點名少了哪一支,同時明說「全部成功不代表 全部跑過」。只報不修:那條路徑本質上是暫時的,真正的解法是那支 CLI 該裝在 穩定位置,或者重跑一次排程安裝重新拍快照——兩件都不是這一支該替人決定的。 舊條目沒有那個變數時安靜通過,不誤報:那一種情況分不出「沒少」與「沒基準」, 而拿「沒基準」當缺失會讓每一台還沒重裝的機器每輪亮一次紅。 實測三種情況:基準與實際一致時不出聲;基準多一支不存在的會點名那一支;完全 沒設基準時印減號、不警告。另外拿條目實際帶的那條 PATH 在清空環境裡重現真機 情境,確實抓到少了那一支。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
巡檢步驟五的記錄清單補上那個欄位,並寫明它是唯一看得出「少跑一支」的地方 ——每一支偵測到的目標都跑過、都通過,那一輪也照樣回報都跑過了。 回報要求也寫進去:點名少了哪幾支、講明乾淨通過不等於完整通過、指出重跑排程 安裝才會重新拍快照。 三份 manifest 版號 0.2.8 升到 0.2.9。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
摘要
PATH是安裝當下拍的。報告讀起來完全正常,因為沒有東西知道該有幾支。變更內容
tools/schedule.shtools/run-due.shcli_missing=並點名skills/assistant/SKILL.mdreferences/behaviors.md為什麼原本看不出來
偵測 CLI 那一支純看
PATH,分不出「裝了但執行檔不在PATH上」。而條目帶的PATH是安裝當下拍的:少的那一支裝在
/run/user/0/fnm_multishells/{行程編號}_{時間戳}/bin——重開機就不在了。而少一支的後果不是報錯:那一輪照樣把偵測到的每一支都跑過、照樣全部成功、照樣回報「都跑過了」。沒有基準,就沒有東西比得出差額。
這件事我當初預言了一半
cli_path()的註解寫過:預言對了,但漏了一句:沒有任何東西會提醒該重跑。
判法照既有那一套
條目記 CLI 代號的判法照組
PATH那一套逐支command -v,不另叫外部腳本。兩個理由:install那一刻本來就用同一套判過一次(為了組PATH),再叫一支等於同一件事兩套實作PATH,跟這裡拿得到的資訊一樣多,多繞一層沒有換到任何東西只報不修
那條路徑本質上是暫時的。真正的解法是那支 CLI 該裝在穩定位置,或者重跑一次排程安裝重新拍快照——兩件都不是這一支該替人決定的。
所以只點名、只提醒,並指出重跑安裝會重新拍一份。
舊條目安靜通過
沒有那個變數時不警告。那一種情況分不出「沒少」與「沒基準」,而拿「沒基準」當缺失會讓每一台還沒重裝的機器每輪亮一次紅——今天已經看過一次那種雜訊怎麼把真的發現蓋掉。
測試結果
cli_missing=-cli_missing=-,不警告PATH在清空環境裡跑,確實抓到「記著五支、這一輪只偵測到 4 支」。crontab的長度上限內。前置 Push Request