feat/seed-reads-probe-column-for-readonly-commands
develop
probe
seed-tasks.sh
invoke
pending
tools/seed-tasks.sh
way
resolve_root()
probe_action()
{root}
is_invoke()
action_of()
spec_cols=
root=
probe=
pending=
probe_bad=
skills/assistant/SKILL.md
start
status
references/behaviors.md
action
.claude-plugin/plugin.json
.codex-plugin/plugin.json
plugin.json
apply
{cli}
{repo}
tasks.sh
due.sh
drift=
sdlc-gate.sh wp-report
report
wp-report
全程用隔離的根目錄與家目錄,正式的助理目錄沒有被動到。
want=16 added=16 held=3 bad=0 probe=4 pending=7 probe_bad=0
added=0 kept=16 drift=0
spec_cols=11
probe=0 pending=0 probe_bad=0
spec_cols=13
action=JSC_READONLY=1 …/wire-cli.sh status {cli}
due.sh scan
--root
lint-scripts.sh
check-behaviors.sh
ste100-lint.sh
拿這台機器正式的連結根目錄跑 plan(唯讀,什麼都沒寫),得到 probe=2 pending=7 probe_bad=2:
plan
probe=2 pending=7 probe_bad=2
probe_bad=jsc-log:worklog 這台機器的 …/current 底下找不到 jsc-log probe_bad=jsc-pkg:pkg-update 這台機器的 …/current 底下找不到 jsc-pkg
根因不在這一批:連結農場目前只有五條,機器上卻裝了十一個 domain。刷新連結那一段照這一輪指名的 domain 走,沒被指名的就沒有連結,所以只部署過的那五個有、其餘六個沒有。補法是把缺的那幾個 domain 也跑一次部署,乾跑確認六條全建得起來、相依全過。
這一段特地寫進來,是因為它正好示範了退回只提醒那個決定的價值。 舊行為下這兩筆本來就是只提醒,看不出任何異狀;現在同樣是只提醒,但多了兩行指名道姓的 probe_bad=,說得出是哪一支、少了什麼。差別不在做了什麼,在於說不說得出來。
委派清單補上第十二欄 probe 之後,這一支不再把所有非 invoke 的列一律推成 只提醒:填了指令的四列改成把那一行指令代好代入點寫進動作欄,寫著 pending 的七列照舊只提醒但另外印出來,讓「入口還沒接上」跟「本來就只提醒」 在回報上分得開。 三個判斷刻意寫死: 一、way 含 invoke 的列連看都不看 probe。填了指令會讓整支技能的交出變成 只跑一支腳本,那支技能該寫的頁一頁都不會寫,而且看起來完全正常。 二、probe 代不進去一律退回只提醒並照樣種入。不種入在 apply 那一路等於 移除,於是上游一格填錯就會刪掉一筆帶著 last_run 與 fail_count 的內建項。 金錢符號與波浪號擋在種入這一刻,那兩種寫法在無人值守那一輪解不出來、 也進不了允許清單,會被靜靜擋掉。 三、{cli} 與 {repo} 留在值裡不展開。種入的當下還不知道要代什麼,展開成 多筆會讓同一個 spec_key 有好幾個檔案,一致化整個垮掉。展開由執行那一步 負責,而動作欄裡出現大括號就是還沒代好,一律不得原樣拿去執行。 清單只有十一欄時整份先數一次欄位數,全部照舊推成只提醒、只印一行說明, 行為與加這一欄之前一模一樣。第十三欄以後另接一個收尾變數,免得上游哪天 加一欄就把多出來的值黏進 probe,代入點檢查全過得了關、最後執行的卻是 一行誰都沒寫過的指令。 相依下限刻意不動。清單那一欄晚一步到也照常跑得完,把下限拉到有那一欄的 版本等於逼兩個存放庫排合併順序,而排順序正是這一段程式碼要免掉的事。 三份 manifest 的版號從 0.1.9 升到 0.2.0。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
助理種入內建項時改讀委派清單的唯讀盤點指令欄
摘要
probe,記一支技能的唯讀盤點實際上跑哪一行指令。seed-tasks.sh以前把所有非invoke的列一律推成只提醒,現在改成照probe走:填了指令的四列,動作欄換成代好代入點的那一行指令;寫著pending的七列照舊只提醒,但另外印出來,讓「入口還沒接上」跟「本來就只提醒」在回報上分得開。同時把兩個存放庫的合併順序拆開,誰先合併都跑得完。變更內容
tools/seed-tasks.shprobe,依way與probe一起推動作欄;新增resolve_root()解根目錄、probe_action()代入{root}並檢查代入點、is_invoke()取代原本的action_of();整份清單先數一次欄位數決定要不要套用這一欄;摘要多印spec_cols=、root=、probe=、pending=、probe_bad=五個值skills/assistant/SKILL.mdway與probe怎麼推出動作欄、pending為什麼只印不寫、合併順序為什麼不會壞;start與status兩個操作的收尾回報加上probe=、pending=、probe_bad=三種列的寫法;結束碼 0 的處置補上新的計數references/behaviors.mdway加第十二欄、漂移比對補上action、摘要計數補上三個新值.claude-plugin/plugin.json、.codex-plugin/plugin.json、plugin.json設計重點
invoke的列連看都不看probe。 那一路填了指令,整支技能的交出就退化成只跑一支腳本,該寫的頁一頁都不會寫,而且看起來完全正常。清單自己的檔頭也明寫invoke的列一律填減號,所以那是清單填錯,不是要順從的設定。這一支照way取技能名,另外印一行probe_bad=報出來,不因為那個錯就不種入。probe代不進去一律退回只提醒,並照樣種入。 不種入在apply那一路等於移除,上游一格填錯就會刪掉一筆帶著執行紀錄與失敗次數的內建項。退回只提醒的代價只是那一筆這一輪不動手,probe_bad=那幾行指得出是哪一支、壞在哪。{cli}與{repo}留在值裡不展開。 種入的當下還不知道有哪幾支 CLI、掃得到哪幾個存放庫。種入時就展開成多筆的話,同一個反查鍵會有好幾個檔案,一致化整個垮掉,而且裝一支新 CLI、多 clone 一個存放庫就過期,重新展開要先移除再登錄,執行紀錄與失敗次數跟著歸零。所以留著代入點,改由往後接執行那一步的人代。配套是一條寫死的規則:動作欄裡出現大括號就是還沒代好,一律不得原樣拿去執行。現有三個讀取端都不執行動作欄,tasks.sh只存放、due.sh只判到期、狀態與監控頁只原樣印出來,所以這條規則防的是往後的人。probe走,十一欄以下全部照舊、只印一行說明。不逐列印警告——三十五行同一個原因會把真的缺失蓋掉。取最大值而不是逐列各判,是為了讓十二欄清單裡漏填的那一列被抓出來,而不是被當成舊格式靜靜放過。上游那一欄合併進來的那一輪,四筆會印成drift=而不自動改值,那是預期的過渡,不是故障。probe,代入點檢查全部過得了關,最後執行的是一行誰都沒寫過的指令。sdlc-gate.sh wp-report,不是文件上寫的report:實測report在標準輸入是無盡流的情況下會無限卡住(逾時碼 124),而wp-report回 0,因為那支腳本有一份明確的「不讀標準輸入」子命令清單。照文件措辭填的話,種出來的內建項會在無人值守的巡檢裡永遠卡住,沒有錯誤也沒有輸出。那一欄的值屬於清單那一邊的變更,在這裡提一句,是要說明為什麼這一欄不能想當然爾地填。測試結果
全程用隔離的根目錄與家目錄,正式的助理目錄沒有被動到。
want=16 added=16 held=3 bad=0 probe=4 pending=7 probe_bad=0,結束碼 0。第二次apply是added=0 kept=16 drift=0,冪等。spec_cols=11、probe=0 pending=0 probe_bad=0,十六筆的動作與這次改動前逐字相同,另印一行說明整份沒有那一欄。spec_cols=13,四筆指令一字不多,收尾變數確實把多出來的值擋住了。drift=顯示只提醒要換成指令,一筆都沒改。action=JSC_READONLY=1 …/wire-cli.sh status {cli}寫進待辦檔再讀回來一字不差,只在第一個等號斷開這條約定撐得住。due.sh scan也讀得回同一個值、判得出到期。--root時,從清單自己的位置往上推三層也解得出根目錄。lint-scripts.sh、check-behaviors.sh、ste100-lint.sh三支都回結束碼 0。真機上目前四筆只成立兩筆,而且它報得出來
拿這台機器正式的連結根目錄跑
plan(唯讀,什麼都沒寫),得到probe=2 pending=7 probe_bad=2:根因不在這一批:連結農場目前只有五條,機器上卻裝了十一個 domain。刷新連結那一段照這一輪指名的 domain 走,沒被指名的就沒有連結,所以只部署過的那五個有、其餘六個沒有。補法是把缺的那幾個 domain 也跑一次部署,乾跑確認六條全建得起來、相依全過。
這一段特地寫進來,是因為它正好示範了退回只提醒那個決定的價值。 舊行為下這兩筆本來就是只提醒,看不出任何異狀;現在同樣是只提醒,但多了兩行指名道姓的
probe_bad=,說得出是哪一支、少了什麼。差別不在做了什麼,在於說不說得出來。前置 Push Request
委派清單補上第十二欄 probe 之後,這一支不再把所有非 invoke 的列一律推成 只提醒:填了指令的四列改成把那一行指令代好代入點寫進動作欄,寫著 pending 的七列照舊只提醒但另外印出來,讓「入口還沒接上」跟「本來就只提醒」 在回報上分得開。 三個判斷刻意寫死: 一、way 含 invoke 的列連看都不看 probe。填了指令會讓整支技能的交出變成 只跑一支腳本,那支技能該寫的頁一頁都不會寫,而且看起來完全正常。 二、probe 代不進去一律退回只提醒並照樣種入。不種入在 apply 那一路等於 移除,於是上游一格填錯就會刪掉一筆帶著 last_run 與 fail_count 的內建項。 金錢符號與波浪號擋在種入這一刻,那兩種寫法在無人值守那一輪解不出來、 也進不了允許清單,會被靜靜擋掉。 三、{cli} 與 {repo} 留在值裡不展開。種入的當下還不知道要代什麼,展開成 多筆會讓同一個 spec_key 有好幾個檔案,一致化整個垮掉。展開由執行那一步 負責,而動作欄裡出現大括號就是還沒代好,一律不得原樣拿去執行。 清單只有十一欄時整份先數一次欄位數,全部照舊推成只提醒、只印一行說明, 行為與加這一欄之前一模一樣。第十三欄以後另接一個收尾變數,免得上游哪天 加一欄就把多出來的值黏進 probe,代入點檢查全過得了關、最後執行的卻是 一行誰都沒寫過的指令。 相依下限刻意不動。清單那一欄晚一步到也照常跑得完,把下限拉到有那一欄的 版本等於逼兩個存放庫排合併順序,而排順序正是這一段程式碼要免掉的事。 三份 manifest 的版號從 0.1.9 升到 0.2.0。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>