本卡屬 FR-091(母卡 CM-1690),能力點前置三卡的第二張。等 CM-<asset 定形卡> commit 進 jedi repo 後才派(照它的形狀抄)。動四支套件;survey 那支順帶改守門寫法。建議 model:Sonnet 5,effort:medium——形狀已定,是照抄加一次守門改寫,錯誤會被凍結集合與 pytest 抓到。

這一棒在做什麼(白話)

上一張卡(asset 定形)定了「套件把自己需要的能力點列成 CAPABILITIES 清單」的形狀。這張把已經整理完、沒人在動的四支套件補上同樣的清單。其中三支(bulletin/system-core/notification)已經是 asset 的守門形狀(route 從 config 取名字、guards.py 有 capability_required),只要加清單、常數改從清單取,半小時一支。

survey 不一樣:它的 route 直接 from jedi_iam.authz import require_capability 然後 @require_capability("survey.create") 寫死字串,23 處。而且 guards.py 檔頭有一段設計說明,明寫「capability 屬身分疆界、實體在 jedi_iam.authz,直接 import 套件,不 port 化」——這是前一棒刻意的決定,跟 asset 的形狀矛盾。決策者 2026-09-13 裁:全部收成 config 形狀,理由是換一個沒有 jedi-iam 的宿主也要能掛問卷,而且主專案守門實作要換時只能有一個落點(core/plugins/_host.py 的 host_defaults)。這張卡要把 survey 改過來,並把那段說明改成新的理由。

首腦核對過的現況

怎麼做(一支一個 commit)

要寫測試