FR-090 · 需求索引 · 本頁由 build 掃資料夾生成

FR-090 主專案側殘留收斂(套件上移後的空殼、port 實作、轉發殼與 wrapper)

🟢 七棒 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 筆能力點申報處(待開卡)。

狀態:詳見下方 文件 0 份

一頁看完

後端模組化(FR-069/FR-080)把功能一支支搬進 jedi-* 套件,但主專案這邊沒統一清場:有的目錄空了還留著、有的「套件需要主專案提供的東西」(port 實作)放在 app/ 而不是 infra/、有的用轉發殼包住套件、有的用 wrapper 在外面補欄位。本案把主專案側收成 jedi-asset 那一種形狀,是 FR-089 的第二段,必須先於 18 支套件套用——18 支每支都要確認主專案有沒有重複給工廠/port,主專案先清乾淨卡才寫得準。

§1

四棒各做什麼

做什麼 狀態
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.pyjedi-iam 開 identity portIdentityAdapters 補 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 條實打、拔掉測試路由歸零)
§2

統一規則五條(D1)

  1. port 實作放 infra/<pkg>/
  2. 接線放 core/<pkg>_wiring.py
  3. 套件上移後 app/<pkg>/ 整個刪
  4. 補暱稱由套件走 identity port(D8),主專案不寫 wrapper
  5. 主專案 DI 不重複建套件 service,只給 port(除非主專案其他模組直接用該套件 domain service)
§3

第 4 棒盤點修正

母卡開卡時寫「補審計暱稱自己寫的 7 處」。第 4 棒開卡前實查:是三套並存,不是七處各自獨立——common/util/audit_nickname.py 一套、三支手寫複本一套、flow_engine 自己一套;七個呼叫點分屬這三套。修法因此是「保留 audit_nickname.py 一支改包 IdentityContext,其餘改呼叫它」,不是七處逐一改寫。

§4

座標

  • 母案:FR-089;設計源頭 FR-069 design.md D8
  • 主專案:infra/<pkg>/core/<pkg>_wiring.pycommon/util/audit_nickname.pytest/test_module_boundaries.py;branch feature/FR-075
  • 套件:~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/(第 3 棒);branch feature/FR-075
§5

Notion 卡

卡片內容(決策紀錄、驗收條件)以 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
§6

關聯

相關需求