FR-090 · 需求索引 · 本頁由 build 掃資料夾生成
🟢 七棒 Done(2026-09-13)。第 1~5 棒 CM-1683/1684/1686/1687/1689 + 第 7 棒 CM-1737(ai-bot/ai-dashboard/remote-agent 接線收進 core/plugins/,主專案側 21 支同形)。待開/待裁:第 6 棒 DI 瘦身 CM-1696(等決策者定「主專案哪些模組可直接用套件 domain service」規則)、主專案自有 36 筆能力點申報處(待開卡)。
後端模組化(FR-069/FR-080)把功能一支支搬進 jedi-* 套件,但主專案這邊沒統一清場:有的目錄空了還留著、有的「套件需要主專案提供的東西」(port 實作)放在 app/ 而不是 infra/、有的用轉發殼包住套件、有的用 wrapper 在外面補欄位。本案把主專案側收成 jedi-asset 那一種形狀,是 FR-089 的第二段,必須先於 18 支套件套用——18 支每支都要確認主專案有沒有重複給工廠/port,主專案先清乾淨卡才寫得準。
| 棒 | 卡 | 做什麼 | 狀態 |
|---|---|---|---|
| 1 | CM-1683 | 空殼清理:app/、api/ 下 8 個空目錄、2 個零呼叫者 dto、1 個只剩註解的 __init__ 全刪(零風險,純刪) |
✅ Done |
| 2 | CM-1684 | port 實作歸位:app/ 下五處實作 jedi 套件 port 的 adapter 搬到 infra/<pkg>/,比照 jedi-asset;test_module_boundaries.py 加守衛擋回流(零邏輯改動) |
✅ Done |
| 3 | CM-1686 | iam 宿主側收斂:app/auth/ 六檔與 user_auth_provider 薄殼收成 infra/iam/+core/iam_wiring.py;jedi-iam 開 identity port(IdentityAdapters 補 identity 欄位、UserService/RoleService 收 identity 參數)讓補暱稱回套件。含套件異動,走 path dependency 不發版 |
⬜ 待派 |
| 4 | CM-1687 | 補審計暱稱統一走 D8:common/util/audit_nickname.py 改包 IdentityContext,手寫複本與 flow_engine 改呼叫它,主專案零處自己查 UserDomainService 換暱稱;統一規則寫進 SOP。依賴第 3 棒 |
⬜ 待派 |
| 7 | CM-1737 | 三支接線收進 core/plugins/:ai-bot/ai-dashboard/remote-agent 從 api/<mod>/create_module()(REGISTERED_APPS 驅動)改成 core/plugins/<pkg>.py 三段+PLUGINS 加三列;收完守衛拿掉 _CAPABILITY_PACKAGES_OUTSIDE_PLUGINS,主專案側 21 支同形。remote-agent 留主專案的 binary 端點走 mount_api=False 逃生門掛同一 bp。零行為變更 |
✅ Done(首腦驗收:乾淨 worktree 100 passed、18 條實打、拔掉測試路由歸零) |
infra/<pkg>/core/<pkg>_wiring.pyapp/<pkg>/ 整個刪母卡開卡時寫「補審計暱稱自己寫的 7 處」。第 4 棒開卡前實查:是三套並存,不是七處各自獨立——common/util/audit_nickname.py 一套、三支手寫複本一套、flow_engine 自己一套;七個呼叫點分屬這三套。修法因此是「保留 audit_nickname.py 一支改包 IdentityContext,其餘改呼叫它」,不是七處逐一改寫。
infra/<pkg>/、core/<pkg>_wiring.py、common/util/audit_nickname.py、test/test_module_boundaries.py;branch feature/FR-075~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/(第 3 棒);branch feature/FR-075卡片內容(決策紀錄、驗收條件)以 Notion 為準,本頁只記座標。
| 關係 | 卡號 | 標題 | 狀態 |
|---|---|---|---|
| 母案 | CM-1682 | FR-090 主專案側殘留收斂——套件上移後留在 app/ 的空殼、放錯層的 port 實作、轉發殼與 wrapper 統一收成一種形狀(四棒,實作) | — |
| 子卡 | CM-1683 | 第 1 棒 空殼清理——8 個空目錄、2 個零呼叫者 dto、1 個只剩註解的 init | Done |
| 子卡 | CM-1684 | 第 2 棒 port 實作歸位——app/ 下五處 adapter 搬到 infra/ |
Done |
| 子卡 | CM-1686 | 第 3 棒 iam 宿主側收斂——app/auth/ 收成 infra/iam/+core/iam_wiring.py,jedi-iam 開 identity port | Not started |
| 子卡 | CM-1687 | 第 4 棒 補審計暱稱統一走 D8——audit_nickname.py 改包 IdentityContext,複本改呼叫它 | Not started |
| 子卡 | CM-1737 | 第 7 棒 三支接線收進 core/plugins/——ai-bot/ai-dashboard/remote-agent 改成三段形狀,主專案側 21 支同形 | Done |