一句話:2026-08-31 的
flow-boundary-design.md每個數字都已過期(兩包從 260 檔/32,000 行縮到 114 檔/14,350 行),依賴關係也變過。本棒重新逐檔實查flow_engine+flow_control兩包,產出新的歸屬判定取代舊稿,舊稿刪除。只分析不動程式。
系統裡管「流程」的程式分散在兩個地方:flow_engine(流程引擎,管一個流程跑到哪一步)與 flow_control(稽核流程控管,管稽核專屬的規則)。這兩包長年混在一起——有些程式明明是通用的卻放在稽核那邊,有些是稽核專用的卻放在引擎那邊。
去年 8 月做過一次盤點,判定每一支該歸哪邊,寫成一份設計稿。但那份稿子現在不能用了——之後有人動過兩次大的,程式少了六成,稿子上的數字沒有一個對得上。
這一棒把兩包重新逐檔查一遍,重新判定歸屬,產出一份新的、可信的圖。不動任何程式——決策者要的是「有正確的圖才動刀」,在錯的圖上動手會留下比現在更難清的東西。
舊稿寫於 2026-08-31。之後兩筆 commit 已經改變了地貌:
561922d4(CM-1486)退役 camunda 遠端引擎死碼,約 2,970 行83a5c47e(CM-1492)BPMN 工具改接 jedi-flow-engine,主專案淨刪 2,758 行結果是舊稿判給「🟦 引擎」的那四支已經全部處理完了——camunda_service.py(2,852 行)、bpmn_generator.py(2,428 行)、bpmn_topology_validator.py(330 行)在主專案已不存在,後兩支現在在套件 jedi_flow_engine/common/utils/。
數字對照(舊稿 → 現況實查):
app/flow_engine 9,183 行 → 3,041 行(16 檔)
flow_control 全包 24,047 行 → 8,019 行(34 檔)
226 檔 → 34 檔
另外 domain/flow_control 現在是 0 檔(舊稿把它列為要整包搬遷的四層之一)
依賴關係也變過:舊稿判 stage_rollback_service 歸稽核,理由是「import AuditRoundAppService」——現在已經不 import 了(實查其依賴只剩 jedi-common/jedi-flow-engine/jedi-task-platform)。原判的證據本身失效。
🔴 教訓(本卡要避免重蹈):舊稿正文自己記著「卡片寫 6,375 行,實查是 9,183」「卡片寫 19 條 route,實查是 16 條還在用」——它當初就是為了更正卡片數字而做的實查,結果半個月後自己也過期了。本棒的產出必須標明實查日期與當時的 HEAD commit,並寫明「引用前先重驗」。
flow_engine(80 檔 / 6,331 行)
api/flow_engine 17 檔 / 1,320 行 19 條 route 註冊
app/flow_engine 16 檔 / 3,041 行 6 支 service
domain/flow_engine 27 檔 / 852 行
infra/flow_engine 20 檔 / 1,118 行
flow_control(34 檔 / 8,019 行)
api/flow_control 7 檔 / 1,151 行 12 條 route 註冊
app/flow_control 17 檔 / 3,995 行
domain/flow_control 0 檔(已空)
infra/flow_control 10 檔 / 2,873 行
為什麼兩包一起做、不能只做 flow_engine:stage_advance_service(702 行)import jedi_compliance_audit、stage_rollback_service 的稽核依賴已消失——這兩支歸哪邊,取決於 flow_control 的邊界怎麼畫。只看一半就判不了。
檔 行 實查依賴(2026-09-16)
──────────────────────────────────────────────────────────────────────
workflow_execution_service 1,321 app.associations / app.notification /
domain.module_frame / jedi_survey /
jedi_task_platform / jedi_iam /
jedi_flow_engine
stage_advance_service 702 jedi_compliance_audit / jedi_task_platform /
domain.flow_engine / jedi_flow_engine
stage_rollback_service 189 jedi_task_platform / jedi_flow_engine
⚠️ 舊稿說它 import AuditRoundAppService,
現已不 import——原判證據失效
flow_template_app_service 265 只有 app.flow_engine / domain.flow_engine /
jedi_flow_engine(最乾淨)
job_evidence_service 181 jedi_file_upload / jedi_survey /
domain.flow_engine / jedi_flow_engine
workflow_template_snapshot_service 94 只有 jedi_flow_engine
⚠️ 舊稿判稽核(理由是 snapshot 屬輪次語意),
但依賴上看更像引擎——需重判
主專案內部誰在用這六支(首腦實查,15 處):api/flow_engine/routes/ 六支 route 各對一支;app/flow_control/service/job_batch_complete_service.py 與 app/module_frame/service/module_frame_service.py 用 WorkflowExecutionService;di_containers/flow_control/ 用兩支 stage service;di_containers/flow_engine/ 用其餘四支。