fix/schedule-entry-drops-fixed-session-id
develop
tools/schedule.sh
references/behaviors.md
配對的判準是工作階段代號加技能名。那一輪的兩半由不同的東西寫:
start
end
條目裡寫死了那個環境變數,所以每一輪的 end 都掛在同一個固定字串底下,而 start 掛在每輪不同的 UUID 底下。兩半永遠配不起來。
逐個工作階段數下來,證據很直接:
最後那一列就是寫死的代號——29 筆收尾全掛在一個從來沒開始過的工作階段底下。
代價不只是數字難看。 那一節存在的理由正是「只有 start 沒有 end 是一支技能中止的唯一證據」,而這批假訊號只增不減,遲早把真的中止蓋掉。
共用函式認三個環境標記才判定是哪一支 CLI,這一支自己抄了一份、只認第一個。而那一個標記在工具腳本被叫用時不會設。
技能本文的啟動步驟叫的正是不帶 --cli 那一種,所以這台機器上每一次啟動都停在用法錯誤。錯誤訊息還很誤導——它說「判不出要用哪一支 CLI」,看起來像這台機器沒裝 CLI。
--cli
同一個判斷寫兩份就是這樣漂走的:共用函式後來補了兩個標記,這一份沒跟上。註解裡寫明了這件事,也寫明共用函式加新標記時這裡要一起加。
claude
lint-scripts.sh
check-behaviors.sh
ste100-lint.sh
--dry-run
那一支本來就會把開超過一天的 start 丟掉,理由寫在它自己的註解裡:留著只會讓那個檔案無止境長大,而那麼久沒收尾的早就報過了。所以修好之後一天內自己收斂。
真機跑第一輪巡檢,它照設計把發現列進了待人處理。巡檢本身沒有壞——壞的是它讀的那批資料,而它老老實實把數字報出來,才讓人查得下去。
兩個坑,都在同一支腳本,都讓無人值守那一輪看起來正常卻不正常。 一、條目寫死了工作階段代號。那一輪的兩半因此落在不同的值上:start 由 hook 寫,它從 hook 的標準輸入 JSON 讀得到 CLI 真正的代號;end 由工具腳本寫,沒有 那份 JSON,只能讀環境變數,於是讀到寫死的那個字串。配對的判準是工作階段 代號加技能名,兩半的代號不同就永遠配不起來。 這台機器上實測累積了 91 筆假的「只有 start 沒有 end」,其中 90 筆是同一支 每輪都會被叫用的技能。逐個工作階段數下來:92 個是一個 start 零個 end,另有 一個工作階段收著 29 個 end 卻一個 start 都沒有——那一個就是寫死的代號。 代價不只是數字難看。那一節存在的理由正是「只有 start 沒有 end 是一支技能 中止的唯一證據」,而這批假訊號只增不減,遲早把真的中止蓋掉。不設這個變數, 兩半就都落在 CLI 自己給的代號上,實測驗過確實配得起來。 二、CLI 判定抄了一份較窄的。共用函式認三個環境標記,這一份只認第一個,而 工具腳本被叫用時那一個不會設。於是每一次不帶 --cli 的安裝都回用法錯誤—— 技能本文的啟動步驟叫的正是不帶 --cli 那一種,這台機器上一定裝不起來。同一個 判斷寫兩份就是這樣漂走的:共用函式後來補了兩個標記,這一份沒跟上,而漂移 的代價是一個看起來像「這台機器沒裝 CLI」的錯誤。 殘留的那 91 筆不必手動清,那一支本來就會把開超過一天的丟掉,一天內收斂。 三份 manifest 版號 0.2.1 升到 0.2.2。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
摘要
變更內容
tools/schedule.shreferences/behaviors.md一、91 筆假中止
配對的判準是工作階段代號加技能名。那一輪的兩半由不同的東西寫:
startend條目裡寫死了那個環境變數,所以每一輪的
end都掛在同一個固定字串底下,而start掛在每輪不同的 UUID 底下。兩半永遠配不起來。逐個工作階段數下來,證據很直接:
最後那一列就是寫死的代號——29 筆收尾全掛在一個從來沒開始過的工作階段底下。
代價不只是數字難看。 那一節存在的理由正是「只有 start 沒有 end 是一支技能中止的唯一證據」,而這批假訊號只增不減,遲早把真的中止蓋掉。
二、不帶 --cli 一定裝不起來
共用函式認三個環境標記才判定是哪一支 CLI,這一支自己抄了一份、只認第一個。而那一個標記在工具腳本被叫用時不會設。
技能本文的啟動步驟叫的正是不帶
--cli那一種,所以這台機器上每一次啟動都停在用法錯誤。錯誤訊息還很誤導——它說「判不出要用哪一支 CLI」,看起來像這台機器沒裝 CLI。同一個判斷寫兩份就是這樣漂走的:共用函式後來補了兩個標記,這一份沒跟上。註解裡寫明了這件事,也寫明共用函式加新標記時這裡要一起加。
測試結果
--cli的安裝:乾跑回結束碼 0,判出來是claude。改動前同樣的呼叫回 6。lint-scripts.sh、check-behaviors.sh、ste100-lint.sh三支都回結束碼 0。--dry-run。殘留的那 91 筆不必手動清
那一支本來就會把開超過一天的
start丟掉,理由寫在它自己的註解裡:留著只會讓那個檔案無止境長大,而那麼久沒收尾的早就報過了。所以修好之後一天內自己收斂。這兩個坑是怎麼被發現的
真機跑第一輪巡檢,它照設計把發現列進了待人處理。巡檢本身沒有壞——壞的是它讀的那批資料,而它老老實實把數字報出來,才讓人查得下去。
前置 Push Request