本卡屬 FR-091(母卡 CM-1690)第三批。中量:五張表、沒有 api/ 目錄(純 service 插件,BPMN 執行引擎)、8 個 entity 檔全非 dataclass。主專案 venv 裡這支是 Nexus wheel,主專案側驗證必帶 PYTHONPATH。主專案接線在 api/flow_control/__init__.py(與 compliance-audit 共用同一檔,不在 CM-1689 的 11 支內)——本卡不動主專案,主專案側收進 core/plugins/ 由 compliance-audit 那張卡(CM-17xx)一併做,因為兩支的接線在同一個檔裡拆兩張卡會撞。

問題是什麼(白話)

jedi-flow-engine(流程引擎:BPMN 範本、流程執行、任務執行、元素變數)plugin.py 261 行 5 dataclass;沒有 api/ 目錄(route 都在主專案 api/flow_engine/),所以沒有 ctx();8 個 entity 檔全是手寫 __init__;logger 只有一處且掛 jedi_flow_engine.bpmn(不在主專案 dictConfig 的樹下,log 落不到 app.log);施工日誌 7 處(少);沒有整合測試。整成 jedi-asset 那個樣子,api/ 因為沒有 route 只建 guards.pyruntime()(給日後 route 或主專案取用)。

首腦核對(2026-09-13):plugin.py 261 行 5 dataclass(ISettingsReader/INotifier 是 Protocol 型 port 也在 plugin.py 裡,要搬去 domain/ports.py);api/ 無;ctx() 0;entity 檔 8(0 dataclass);表 workflow_templates/workflow_templates_trans/workflow_executions/job_executions/element_variables;migration 0(表由主專案建);tests 207 支(另有套件內 jedi_flow_engine/test/ 目錄,看是什麼、該不該在正式碼裡);harness 有 compose、無 --smoke;施工日誌 7 處;不吐 created_user_name;tests/...:118 _PKG_ROOT = Path(plugin.__file__).parent(拆檔後指錯,一併改)。主專案 45 檔 import(最多的一支,flow_control/associations/oscal 大量直接用它的 domain service);venv 是 wheel。

在哪裡

套件:/Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/jedi-flow-engine/
範例:jedi-asset/;純 service 插件的 guards.py 參考 jedi-notification(CM-1692 做的,無 route 只留 runtime())
SOP:extraction-sop.md §4.3/§3.4/§8
主專案 import 面:grep -rn "from jedi_flow_engine\|import jedi_flow_engine" compliance-manager-be --include='*.py' --exclude-dir=.venv(45 檔——拆檔後必須 AST 掃全部逐一實跑,這支 import 面最大)
主專案接線(本卡不動):api/flow_control/__init__.py 的 create_module() 同時 register flow-engine 與 compliance-audit

怎麼修(照 jedi-asset A~F,各一 commit)

要寫測試

手測(驗證等級:中重——import 面 45 檔,斷一條就是某頁 500)