roster-guard 認不出真實的 subagent_type,整個環境派不出工
Claude Code 給 plugin agent 的 subagent_type 帶前綴(isep:isep-hand), 而 agents/*.md 的 frontmatter name 沒有(isep-hand)。roster.find() 用完全相等比對 ⇒ 真實派工一律被擋,而名單上的裸名字工具又不收 ⇒ 兩種寫法都派不出去。 測試沒抓到是因為 24 條全部餵手寫 payload,沒有一條用真實的 subagent_type 形狀。 補第 19 條專測這個:舊 roster.py + 新測試 → 紅;修好 → 25/25。 順手補 gate-ok 漏掉的 roster——v0.15.0 新增那支閘時沒同步逃生口清單, 所以撞上死鎖時連留痕的出口都沒有。
This commit is contained in:
+3
-1
@@ -41,6 +41,7 @@ usage() {
|
||||
solo <session_id> 這件事真的該自己做(subagent-first-guard)——回覆裡要寫理由
|
||||
dispatch <session_id> 派工單真的有例外(dispatch-format-guard)
|
||||
ask <session_id> 這題真的是人閘(ask-user-question-guard)
|
||||
roster <session_id> 派工真的是名單的例外(roster-guard)
|
||||
kbdb-down KBDB 真的連不上(history-first-guard)——回覆裡要說明
|
||||
|
||||
--list 列出目前存在的戳記
|
||||
@@ -93,7 +94,7 @@ case "$GATE" in
|
||||
kbdb-down)
|
||||
stamp /tmp/.kbdb-down "KBDB 連不上而放行——**回覆裡要說明**,這是留痕不是豁免" ;;
|
||||
|
||||
solo|dispatch|ask)
|
||||
solo|dispatch|ask|roster)
|
||||
SID="${1:-${CLAUDE_SESSION_ID:-}}"
|
||||
if [ -z "$SID" ]; then
|
||||
printf '❌ %s 要綁 session id(閘用它認「是不是同一個 session」)。\n' "$GATE" >&2
|
||||
@@ -104,6 +105,7 @@ case "$GATE" in
|
||||
solo) stamp "/tmp/.solo-ok-$SID" "這件事自己做——**回覆裡要寫理由**" ;;
|
||||
dispatch) stamp "/tmp/.dispatch-ok-$SID" "這張派工單的例外,放行一次" ;;
|
||||
ask) stamp "/tmp/.ask-ok-$SID" "這題確認是人閘,放行一次" ;;
|
||||
roster) stamp "/tmp/.roster-ok-$SID" "這次派工確認是名單的例外,放行一次" ;;
|
||||
esac ;;
|
||||
|
||||
*)
|
||||
|
||||
Reference in New Issue
Block a user