本卡屬 FR-092(母卡 CM-1703),第 5 棒盤點(CM-1708)產出的修正卡 A。純刪成員,不改行為。清單以
docs/features/FR-092-2609-dead-code-cleanup/scan-dead-members.md為準,本卡只摘要。
這些檔案本身活著、有人 import,但裡面的14 條方法/class沒有任何呼叫者。第 5 棒 runner 用五路核對(BE 直接呼叫/BE 字串引用/jedi 套件端/前端 emit/同檔字串)確認零命中,且不是 Flask HTTP 動詞、marshmallow Meta、框架 decorator 這類框架回呼。留著會讓人以為有人用。
首腦核對:報告內三條重點(notify/system_asset_snapshot/resolve_license_tenant_id)已親自 grep 複驗,結論見各卡「怎麼修」。
app/flow_engine/service/workflow_execution_service.py:468,1033,1123,1139,1375,1520 6 條方法 約 231 行
api/flow_engine/serializers/flow_engine/workflow_execution.py:28,33,67 3 個 class
api/flow_engine/serializers/flow_engine/element_variable.py:4 ElementVariableRequest(刪後若檔案空掉整檔刪)
domain/flow_engine/service/stage_completion_registry.py:179,182,185 has_handler/has_precondition/has_rollback_handler
domain/flow_engine/service/ext_workflow_execution_domain_service.py:28 get_workflow_execution_by_ids
docs/features/FR-092-2609-dead-code-cleanup/scan-dead-members.md 對應檔案段落,逐條到該行(vulture 行號是 decorator 那行,def 在其下)刪整個定義區塊(含 decorator 與 docstring)。notify_control_reviewers_on_task_complete(:1375,89 行)決策者已裁刪:檔內原註解「CM-1504 刻意保留給 FR-038 2B」作廢;同 commit 把 docs/system-design/scripts/generate_business_logic_v2.py:1992 那一列拔掉。它是 @transaction 方法,刪完確認檔內沒有別的方法呼叫它。update_job_comment/add_workflow_execution(jedi-flow-engine 覆寫)、notify_users_batch_assigned(jedi-task-platform 注入呼叫)、get_sub_workflow_executions(AI 儀表板申報表字串指名)。__all__、同檔別的方法呼叫);有就一起處理。docs/api/*/api-spec.md 與 docs/system-design/scripts/generate_*.py 若提到被刪的名字,屬描述性引用,順手拔該行/該列,同一 commit。不寫(純刪,test/ 對這批零引用)。跑:python -m pytest test/ -k 'workflow_execution or flow_engine or stage_completion' -q
git rm 並在 docs/features/FR-092-2609-dead-code-cleanup/dead-files.txt 補一行。python -m pytest test/test_module_boundaries.py test/test_error_code_uniqueness.py test/test_build_integrity_manifest.py -q 綠(必 python -m)+本卡列的相關模組既有測試綠+python main.py 起得來、curl -s localhost:8000/api/1.0/version 200。不跑全量。