roster-guard 認不出真實的 subagent_type,整個環境派不出工(inkstone/ISEP#86 迴歸) #108

Merged
claude-code merged 1 commits from fix/roster-plugin-prefix into main 2026-08-28 12:37:37 +00:00
Member

v0.15.0 上線後實撞:兩種寫法都派不出去 ⇒ 環境完全派不出工。

根因:Claude Code 給 plugin agent 的 subagent_type 帶前綴(isep:isep-hand),而 agents/*.md 的 name 沒有(isep-hand),roster.find() 用完全相等比對。

測試沒抓到是因為 24 條全部餵手寫 payload,沒有一條用真實的 subagent_type 形狀。已補第 19 條專測它:舊 roster.py + 新測試 → 紅;修好 → 25/25。

順手補 gate-ok 漏掉的 roster——v0.15.0 新增那支閘時沒同步逃生口清單,撞上死鎖時連留痕的出口都沒有。

隔離重跑 36 支全綠零紅。

v0.15.0 上線後實撞:兩種寫法都派不出去 ⇒ 環境完全派不出工。 根因:Claude Code 給 plugin agent 的 subagent_type 帶前綴(`isep:isep-hand`),而 `agents/*.md` 的 name 沒有(`isep-hand`),`roster.find()` 用完全相等比對。 測試沒抓到是因為 24 條全部餵手寫 payload,**沒有一條用真實的 subagent_type 形狀**。已補第 19 條專測它:舊 roster.py + 新測試 → 紅;修好 → 25/25。 順手補 `gate-ok` 漏掉的 `roster`——v0.15.0 新增那支閘時沒同步逃生口清單,撞上死鎖時連留痕的出口都沒有。 隔離重跑 36 支全綠零紅。
claude-code added 1 commit 2026-08-28 12:36:31 +00:00
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 新增那支閘時沒同步逃生口清單,
所以撞上死鎖時連留痕的出口都沒有。
claude-code merged commit aac6498850 into main 2026-08-28 12:37:37 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inkstone/ISEP#108