本卡屬 FR-092,四棒之一。純刪 17 檔 common/ 約 3,000 行+3 檔零散,不改行為。序列在第 1 棒之後(同動 test/ 與守衛)。
common/util 底下整條 PDF 讀取與轉檔鏈(pdf_util、pdf_backend、nist171_converter_v1、pdf_converter_v2)沒有任何活路徑走到——框架 PDF 匯入早已改走 jedi 套件。去年 8 月 CM-1235 為了拔 AGPL 套件還改了這三支,等於維護沒人跑的碼。另外 common/code/event_code.py 與真正在用的 common/enum/event_code.py 同名不同內容,是兩份真相。
首腦核對:
pdf_backend.py 只被 pdf_util.py/nist171_converter_v1.py/pdf_converter_v2.py 三支引用,三支本身全專案零 caller(含 scripts/、jedi 套件目錄 grep 零命中)。四檔要一起刪,順序無所謂。common/enum/event_code.py 有 4 處活引用(project_summary_report_route、job_batch_complete_service、security_policy_app_service);common/code/event_code.py 零引用,且兩檔的常數集合不同(diff 2026-09-12)。刪 code/ 那份。common/decorator/common_decorator.py(123 行 error_handler 裝飾器)零引用;common/util/control_mapping_reorganize.py 最後動於 2026-01-01。common/code/local_code.py、common/enum/code.py、common/enum/http_code_enum.py、common/util/{excel_util,file_util,captcha_image_util}.py 零引用。test/test_jedi_package_logger_names.py:59 提到的 excel_util 是 jedi_api_log 套件內的同名檔,不是這支。domain/cloud_integration/enums/sync_job_status.py、domain/flow_engine/repository/ext_job_execution.py 零引用;infra/mail/smtp/smtp_mail_client.py 是 0 位元組空檔。common/code/event_code.py
common/code/local_code.py
common/decorator/common_decorator.py
common/enum/code.py
common/enum/http_code_enum.py
common/middleware/permission/__init__.py
common/middleware/permission/ssp_permission.py
common/util/captcha_image_util.py
common/util/control_mapping_reorganize.py
common/util/excel_util.py
common/util/file_util.py
common/util/nist171_converter_v1.py
common/util/participant_guard.py
common/util/pdf_converter_v2.py
common/util/pdf_util.py
common/util/permission.py
common/util/workflow_project_guard.py
domain/cloud_integration/enums/sync_job_status.py
domain/flow_engine/repository/ext_job_execution.py
infra/mail/smtp/smtp_mail_client.py
git rm;PDF 四檔互引屬允許命中。common/util/pdf_backend.py:293 註解提到 pdf_util,一起刪不必改。scripts/build/excluded_pkgs_probe.py 與 build_release.sh 若列有 pdfplumber/pypdfium2 排除或打包規則,不動——那是 build 側,是否隨此清理拔依賴屬另案(回寫本卡標記)。infra/mail/smtp/、common/decorator/ 若空)連 __init__.py 刪。不寫新測試。跑守衛三檔+test/test_jedi_package_logger_names.py。