本卡屬 FR-091(母卡 CM-1690),能力點前置三卡的第一張。只動 jedi-asset 與 jedi-common 兩支套件,不動主專案、不動 DB、不動 seed 檔。建議 model:Opus,effort:high——這張在定 19 支要照抄的形狀,判斷比手速重要。

這一棒在做什麼(白話)

每支套件的 API 用「能力點」(capability,例如 device.create)決定誰能按哪個按鈕。現在套件裡的能力點名字是散裝的:jedi-asset 在 plugin/contract.py 寫了六個 DEFAULT_*_CAPABILITY 常數,survey 與 detection 直接在 route 上寫死字串,read 類的能力點(device.read,前端選單用)套件裡根本沒提到。主專案要知道「這支套件總共需要哪些能力點」,只能打開檔案用眼睛找,然後手抄進 scripts/init/04-seed-core.sql。兩邊靠人對齊,改名或漏抄不會有任何測試變紅,症狀是某個操作永遠 403。

這張卡要做的是:讓 jedi-asset 用程式讀得到的方式,把自己需要的能力點列成一份清單(叫 CAPABILITIES),每一項寫清楚名字、資源、動作、說明、預設該給哪個角色。既有的六個常數與 AssetPluginConfig 的預設值改成從清單取,對外 import 面不變。這份清單之後會被三個地方用:① 主專案守衛測試比對 seed 檔有沒有漏(下一張卡);② 其餘 18 支照抄(回補卡與 1726/1727);③ 未來的 migrate arc 由 init image 讀清單自動補 row(另案,本卡不做)。

為什麼切這一塊

首腦核對過的現況

怎麼做