依委派清單種入與重建助理的內建定期檢查項,條件式交的三支一律不種入 #18

Merged
admin merged 1 commits from feat/seed-builtin-check-items-from-delegate-spec into develop 2026-09-04 01:03:29 +00:00
Member

摘要

  • 需求描述:待辦簿做好了但是空的,也沒有東西會去填它。內建的定期檢查項該排哪些、什麼時候排、多久一次,這些資料就在委派清單裡——每一支非不交的技能都有時間點與週期兩欄。這一輪把清單接成待辦簿的資料來源,並讓清單改動之後助理跟著重建。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/seed-tasks.sh 新增。依清單種入與重建,兩個子命令(唯讀預覽與實際套用)
tools/tasks.sh 加一個欄位記那一筆對應哪一支技能,加移除操作,兩者都是這一輪的必要條件
skills/assistant/SKILL.md 啟動時跑實際套用、查現況時跑唯讀預覽、巡檢那一輪兩個都不跑
references/behaviors.md 五列跟著改,含修正一句與這次規格直接衝突的既有跡象
三份 manifest 相依欄加上清單所在的外掛,版號 0.1.8 升到 0.1.9

設計重點

  • 反查靠新增的一個欄位,它非有不可。 清單移除一支之後要刪掉對應那筆,但待辦簿的識別碼是建立時間加標題的雜湊、跟技能名無關。拿標題當鍵等於把措辭變成介面,改一個字舊那筆就再也認不出來,於是每次重建都刪不掉舊的又加一筆新的,同一個檢查每輪做兩次。拿動作當鍵,提醒類那十一筆全是同一個字、一支都分不出來,而觸發類那幾筆會撞上使用者自己交辦、動作剛好是同一支技能的那一筆——撞上就是把使用者交辦的事當成內建項刪掉。
  • 加欄位只能改存放那一支,它是唯一寫得出待辦檔的入口,這一輪沒有自己寫檔。連帶補上移除操作:規格要求不留孤兒,而原本六個操作一個都刪不掉。它對使用者交辦的那幾筆一律擋下、除非人親自帶強制旗標,而種入這一支一次都不帶。擋在單一寫入者這裡最省——那條規定寫在呼叫端的話,呼叫端每多一個就要各自再實作一次。
  • 交出方式與動作是兩套詞彙,對映是這一輪的重點。 含觸發就取技能名,其餘一律取提醒。觸發的定義就是呼叫既有技能、內容照那支技能自己的流程走,所以填技能名等於照判定結果做。巡檢與提醒那兩種沒有獨立入口——沒有任何腳本或技能名代表得了某一支技能的唯讀切片——這時候填技能名,助理下一輪就會把整支技能一路跑完,那正是切片交要防的事。所以填提醒:照時程提醒、指出入口,不動手。實測十六筆裡五筆是技能名、十一筆是提醒。
  • 種入與重建是同一段程式,啟動時每次都跑。 不記跑過沒有,也沒有第一次旗標,要不要動手完全由現況決定。分成兩段的話,兩段各自回答「該有哪幾筆」這同一個問題,等其中一段改了判準就會一邊加一邊刪同一筆,每輪反覆。
  • 巡檢那一輪不種入也不重建。 無人值守那一輪移除一筆會把那一筆的執行紀錄與失敗次數一起弄丟,而清單同步到一半就會刪錯。破壞性清理留給人。代價寫進文件:沒有人啟動也沒有人看的機器上,清單改動要等下一次啟動才進得了待辦簿。
  • 清單讀不到的三種情況一筆都不移除。 讀不到時「清單上沒有」與「這台機器沒裝那個外掛」分不出來,照字面跑會把所有內建項一次刪光,而且結束碼看起來完全成功。

條件式交的三支一律不種入,但吵出來

條件本身是散文,清單裡沒有機器讀得懂的條件欄位,所以「條件成立了沒有」現在只有人答得出來。

種進去的代價有現成例子:其中一支的條件明寫要等它自家路徑不再帶版本號,而那個條件現在不成立。種進去,助理每輪都會叫它、每輪停在第一支自家腳本上——沒有錯誤、沒有輸出、心跳照寫,看起來完全正常。一個會無聲卡死的項目比一個缺掉的項目難查得多。

不種入的代價(看不出為什麼少了它)用逐支印一行保留原因補掉。人確認過某一支條件成立就一支一支帶旗標放行;不給「全部放行」的旗標,那等於用一個決定蓋掉三個不同的條件。

規格沒講到的一種情況

清單上還在、還可交,只是時間點或週期換了值——既不是新增也不是移除,三條重建規則一條都沒講到。

處置是預設只報差異不改。存放那一支刻意沒有編輯操作,改值只能移除再重登,那會換識別碼、把執行紀錄與失敗次數歸零,一個已經連續失敗五次的項目會看起來像全新的。人要換就帶旗標。這一條要不要升成第四條規則,需要決策。

測試結果

  • 全程用隔離的根目錄實測,正式的助理目錄沒有被動到——那底下到現在還沒有待辦簿目錄。
  • 首次種入十六筆、第二次跑零改動、清單新增一支後重建加一筆、清單移除後重建刪一筆、清單改成不交後重建刪一筆、使用者交辦的那一筆在重建時內容與修改時間一字未動。
  • 條件式交那三支在待辦簿裡是零筆,回報逐支有保留原因;帶旗標放行其中一支之後那一支會被種入、保留筆數從三降到二。
  • 清單找不到回結束碼 1、清單只剩註解回 2,兩種情況下待辦簿檔案數前後不變。
  • 移除操作對使用者交辦的那一筆回專屬結束碼且檔案還在,帶強制旗標才刪掉。
  • 手改出「使用者交辦卻帶著技能對應欄位」這種組合的兩種情形都有專屬處置,孤兒迴圈也不刪它。
  • 到期判定那一支讀十五個鍵的待辦檔照樣回 0(新鍵對它是「不認得的鍵一律忽略」)。
  • lint-scripts.sh、check-behaviors.sh、ste100-lint.sh 都回結束碼 0。註解掃描也回 0,四個改動檔都無 BOM。

這一輪之後助理實際會做什麼

種出十六筆,其中十一筆只提醒不動手,因為巡檢與提醒那兩種交出方式還沒有可執行入口。這是誠實的狀態不是缺陷——切片交本來就規定「留在人手上的那一半」不能交。要讓那十一筆真的動手,得先為每一段唯讀切片做出獨立入口,那是另一批的工作,行為契約裡寫明了不要當成已經接線。

前置 Push Request

  • 無
## 摘要 - 需求描述:待辦簿做好了但是空的,也沒有東西會去填它。內建的定期檢查項該排哪些、什麼時候排、多久一次,這些資料就在委派清單裡——每一支非不交的技能都有時間點與週期兩欄。這一輪把清單接成待辦簿的資料來源,並讓清單改動之後助理跟著重建。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/seed-tasks.sh` | 新增。依清單種入與重建,兩個子命令(唯讀預覽與實際套用) | | `tools/tasks.sh` | 加一個欄位記那一筆對應哪一支技能,加移除操作,兩者都是這一輪的必要條件 | | `skills/assistant/SKILL.md` | 啟動時跑實際套用、查現況時跑唯讀預覽、巡檢那一輪兩個都不跑 | | `references/behaviors.md` | 五列跟著改,含修正一句與這次規格直接衝突的既有跡象 | | 三份 manifest | 相依欄加上清單所在的外掛,版號 0.1.8 升到 0.1.9 | ## 設計重點 - **反查靠新增的一個欄位,它非有不可。** 清單移除一支之後要刪掉對應那筆,但待辦簿的識別碼是建立時間加標題的雜湊、跟技能名無關。拿標題當鍵等於把措辭變成介面,改一個字舊那筆就再也認不出來,於是每次重建都刪不掉舊的又加一筆新的,同一個檢查每輪做兩次。拿動作當鍵,提醒類那十一筆全是同一個字、一支都分不出來,而觸發類那幾筆會撞上使用者自己交辦、動作剛好是同一支技能的那一筆——撞上就是把使用者交辦的事當成內建項刪掉。 - **加欄位只能改存放那一支**,它是唯一寫得出待辦檔的入口,這一輪沒有自己寫檔。連帶補上移除操作:規格要求不留孤兒,而原本六個操作一個都刪不掉。它對使用者交辦的那幾筆一律擋下、除非人親自帶強制旗標,而種入這一支一次都不帶。擋在單一寫入者這裡最省——那條規定寫在呼叫端的話,呼叫端每多一個就要各自再實作一次。 - **交出方式與動作是兩套詞彙,對映是這一輪的重點。** 含觸發就取技能名,其餘一律取提醒。觸發的定義就是呼叫既有技能、內容照那支技能自己的流程走,所以填技能名等於照判定結果做。**巡檢與提醒那兩種沒有獨立入口**——沒有任何腳本或技能名代表得了某一支技能的唯讀切片——這時候填技能名,助理下一輪就會把整支技能一路跑完,那正是切片交要防的事。所以填提醒:照時程提醒、指出入口,不動手。實測十六筆裡五筆是技能名、十一筆是提醒。 - **種入與重建是同一段程式,啟動時每次都跑。** 不記跑過沒有,也沒有第一次旗標,要不要動手完全由現況決定。分成兩段的話,兩段各自回答「該有哪幾筆」這同一個問題,等其中一段改了判準就會一邊加一邊刪同一筆,每輪反覆。 - **巡檢那一輪不種入也不重建。** 無人值守那一輪移除一筆會把那一筆的執行紀錄與失敗次數一起弄丟,而清單同步到一半就會刪錯。破壞性清理留給人。代價寫進文件:沒有人啟動也沒有人看的機器上,清單改動要等下一次啟動才進得了待辦簿。 - **清單讀不到的三種情況一筆都不移除。** 讀不到時「清單上沒有」與「這台機器沒裝那個外掛」分不出來,照字面跑會把所有內建項一次刪光,而且結束碼看起來完全成功。 ## 條件式交的三支一律不種入,但吵出來 條件本身是散文,清單裡沒有機器讀得懂的條件欄位,所以「條件成立了沒有」現在只有人答得出來。 種進去的代價有現成例子:其中一支的條件明寫要等它自家路徑不再帶版本號,而**那個條件現在不成立**。種進去,助理每輪都會叫它、每輪停在第一支自家腳本上——沒有錯誤、沒有輸出、心跳照寫,看起來完全正常。一個會無聲卡死的項目比一個缺掉的項目難查得多。 不種入的代價(看不出為什麼少了它)用逐支印一行保留原因補掉。人確認過某一支條件成立就一支一支帶旗標放行;不給「全部放行」的旗標,那等於用一個決定蓋掉三個不同的條件。 ## 規格沒講到的一種情況 清單上還在、還可交,只是時間點或週期換了值——既不是新增也不是移除,三條重建規則一條都沒講到。 處置是預設只報差異不改。存放那一支刻意沒有編輯操作,改值只能移除再重登,那會換識別碼、把執行紀錄與失敗次數歸零,一個已經連續失敗五次的項目會看起來像全新的。人要換就帶旗標。這一條要不要升成第四條規則,需要決策。 ## 測試結果 - 全程用隔離的根目錄實測,正式的助理目錄沒有被動到——那底下到現在還沒有待辦簿目錄。 - 首次種入十六筆、第二次跑零改動、清單新增一支後重建加一筆、清單移除後重建刪一筆、清單改成不交後重建刪一筆、使用者交辦的那一筆在重建時內容與修改時間一字未動。 - 條件式交那三支在待辦簿裡是零筆,回報逐支有保留原因;帶旗標放行其中一支之後那一支會被種入、保留筆數從三降到二。 - 清單找不到回結束碼 1、清單只剩註解回 2,兩種情況下待辦簿檔案數前後不變。 - 移除操作對使用者交辦的那一筆回專屬結束碼且檔案還在,帶強制旗標才刪掉。 - 手改出「使用者交辦卻帶著技能對應欄位」這種組合的兩種情形都有專屬處置,孤兒迴圈也不刪它。 - 到期判定那一支讀十五個鍵的待辦檔照樣回 0(新鍵對它是「不認得的鍵一律忽略」)。 - `lint-scripts.sh`、`check-behaviors.sh`、`ste100-lint.sh` 都回結束碼 0。註解掃描也回 0,四個改動檔都無 BOM。 ## 這一輪之後助理實際會做什麼 種出十六筆,其中**十一筆只提醒不動手**,因為巡檢與提醒那兩種交出方式還沒有可執行入口。這是誠實的狀態不是缺陷——切片交本來就規定「留在人手上的那一半」不能交。要讓那十一筆真的動手,得先為每一段唯讀切片做出獨立入口,那是另一批的工作,行為契約裡寫明了不要當成已經接線。 ## 前置 Push Request - 無
jiantw83 added 1 commit 2026-09-03 11:06:01 +00:00
待辦簿做好了但是空的,也沒有東西會去填它。內建的定期檢查項該排哪些、什麼時候排、多久一次,這些資料就在委派清單裡——每一支非不交的技能都有時間點與週期兩欄。這一輪把清單接成待辦簿的資料來源。

反查靠新增的一個欄位,它非有不可。清單移除一支之後要刪掉對應那筆,但待辦簿的識別碼是建立時間加標題的雜湊,跟技能名無關。拿標題當鍵等於把措辭變成介面,改一個字舊那筆就再也認不出來,於是每次重建都刪不掉舊的又加一筆新的,同一個檢查每輪做兩次。拿動作當鍵,提醒類那十一筆全是同一個字、一支都分不出來,而觸發類那幾筆會撞上使用者自己交辦、動作剛好是同一支技能的那一筆——撞上就是把使用者交辦的事當成內建項刪掉。所以另立一欄記那一筆對應哪一支技能。

因為要加欄位,寫入端只能改存放那一支——它是唯一寫得出待辦檔的入口,這一輪沒有自己寫檔。連帶補上移除那個操作:規格要求不留孤兒,而原本六個操作一個都刪不掉。它對使用者交辦的那幾筆一律擋下、除非人親自帶強制旗標,而種入這一支一次都不帶。擋在單一寫入者這裡最省,那條規定寫在呼叫端的話,呼叫端每多一個就要各自再實作一次。

交出方式與動作是兩套詞彙,對映是這一輪的重點。含觸發就取技能名,其餘一律取提醒。觸發的定義就是呼叫既有技能、內容照那支技能自己的流程走,所以填技能名等於照判定結果做。巡檢與提醒那兩種沒有獨立入口——沒有任何腳本或技能名代表得了某一支技能的唯讀切片——這時候填技能名,助理下一輪就會把整支技能一路跑完,那正是切片交要防的事。所以填提醒:照時程提醒、指出入口,不動手。實測十六筆裡五筆是技能名、十一筆是提醒。

條件式交的三支一律不種入,但逐支吵出來。條件本身是散文,清單裡沒有機器讀得懂的條件欄位,所以條件成立了沒有現在只有人答得出來。種進去的代價有現成例子:其中一支的條件明寫要等它自家路徑不再帶版本號,而那個條件現在不成立,種進去助理每輪都會叫它、每輪停在第一支自家腳本,沒有錯誤、沒有輸出、心跳照寫,看起來完全正常。一個會無聲卡死的項目比一個缺掉的項目難查得多。不種入的代價是看不出為什麼少了它,用逐支印一行保留原因補掉。人確認過某一支條件成立就一支一支帶旗標放行,不給全部放行的旗標,那等於用一個決定蓋掉三個不同的條件。

種入與重建是同一段程式,啟動時每次都跑。不記跑過沒有,也沒有第一次旗標,要不要動手完全由現況決定。分成兩段的話,兩段各自回答該有哪幾筆這同一個問題,等其中一段改了判準就會一邊加一邊刪同一筆,每輪反覆。啟動時跑實際套用、查現況時跑唯讀預覽,巡檢那一輪兩個都不跑——無人值守那一輪移除一筆會把那一筆的執行紀錄與失敗次數一起弄丟,而清單同步到一半就會刪錯,破壞性清理留給人。

清單讀不到的三種情況一筆都不移除。讀不到時,清單上沒有與這台機器沒裝那個外掛分不出來,照字面跑會把所有內建項一次刪光,而且結束碼看起來完全成功。

清單上還在、還可交,只是時間點或週期換了值的那種情況,規格三條規則一條都沒講到。處置是預設只報差異不改:存放那一支刻意沒有編輯操作,改值只能移除再重登,那會換識別碼、把執行紀錄與失敗次數歸零,一個已經連續失敗五次的項目會看起來像全新的。人要換就帶旗標。

跨外掛相依宣告到清單所在的那個外掛,版本下限取現行的發行版——那是清單與它的欄位說明都已經在上面的版本。寫更低的下限會讓一台裝著舊版、清單還不存在或欄位不同的機器通過相依檢查,然後在讀清單那一步才失敗。清單路徑照今天剛改的規則走,由叫用時餵進來的根目錄組成,那一支自己不解。

三份 manifest 的版號一併從 0.1.8 升到 0.1.9,並在相依欄加上清單所在的那個外掛。這一次沒有把版號分成獨立一筆:相依宣告與版號是同一個決定的兩半,宣告了新相依卻不升版,安裝端不會知道要重新檢查相依。
admin merged commit 1f02c5843d into develop 2026-09-04 01:03:29 +00:00
admin deleted branch feat/seed-builtin-check-items-from-delegate-spec 2026-09-04 01:03:29 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/assist#18