本卡屬 FR-092(母卡見母案),四棒之一。純刪 53 檔約 2,900 行,不改行為。

問題是什麼(白話)

FR-038 把後端從舊版 OSCAL 套件(v1)全切到 v2 之後,api/oscal/serializers/ 底下五個子目錄的回傳格式定義(ap/ar/base/catalog/profile)沒有任何路由再掛;app/oscal 與 domain/oscal 底下 SSP 版本複製(versioning)、v1 文件比對(docx_diff)、reconciliation、import_pipeline 幾組服務被掏成空殼或零呼叫者。這些檔案留著會讓人以為還在用。

首腦核對:

在哪裡

api/common/serializers/pager.py
api/oscal/serializers/ap/__init__.py
api/oscal/serializers/ap/assessment_plan.py
api/oscal/serializers/ap/assessment_plan_control.py
api/oscal/serializers/ap/assessment_plan_group.py
api/oscal/serializers/ap/assessment_plan_task.py
api/oscal/serializers/ap/assessment_task_control.py
api/oscal/serializers/ar/__init__.py
api/oscal/serializers/ar/assessment_result.py
api/oscal/serializers/ar/assessment_result_control.py
api/oscal/serializers/ar/assessment_result_data.py
api/oscal/serializers/ar/assessment_result_evidence.py
api/oscal/serializers/ar/assessment_result_finding.py
api/oscal/serializers/base/__init__.py
api/oscal/serializers/base/oscal_document.py
api/oscal/serializers/base/oscal_link.py
api/oscal/serializers/base/oscal_location.py
api/oscal/serializers/base/oscal_metadata.py
api/oscal/serializers/base/oscal_party.py
api/oscal/serializers/base/oscal_prop.py
api/oscal/serializers/base/oscal_remarks.py
api/oscal/serializers/base/oscal_responsible_party.py
api/oscal/serializers/base/oscal_role.py
api/oscal/serializers/catalog/__init__.py
api/oscal/serializers/catalog/catalog.py
api/oscal/serializers/catalog/catalog_control.py
api/oscal/serializers/catalog/catalog_control_assessment.py
api/oscal/serializers/catalog/catalog_control_parameter.py
api/oscal/serializers/catalog/catalog_control_part.py
api/oscal/serializers/catalog/catalog_group.py
api/oscal/serializers/profile/__init__.py
api/oscal/serializers/profile/profile.py
api/oscal/serializers/profile/profile_control.py
api/project/serializers/project_system_info.py
api/report/serializers/schemas.py
app/oscal/dto/ssp/ssp_control_impl_list_dto.py
app/oscal/service/ssp_docx_diff_service.py
app/oscal/service/ssp_versioning_service.py
app/project/dto/__init__.py
app/project/dto/project_dto.py
app/project/dto/project_system_info_dto.py
app/project/service/project_system_info_service.py
domain/oscal/gateway/__init__.py
domain/oscal/gateway/i_ssp_versioning_cloner.py
domain/oscal/import_pipeline/confirm_service.py
domain/oscal/import_pipeline/normalizer.py
domain/oscal/import_pipeline/warnings.py
domain/oscal/service/reconciliation/ssp_entity_orchestrator.py
domain/oscal/service/reconciliation/system_characteristic_reconciler.py
domain/oscal/strategy/__init__.py
domain/oscal/strategy/i_ssp_docx_write_strategy.py
infra/oscal/clone/__init__.py
infra/oscal/clone/ssp_versioning_cloner_impl.py

怎麼修

要寫測試

不寫新測試(純刪)。跑守衛三檔+刪掉的 test 檔以外的 oscal 相關既有測試:python -m pytest test/test_module_boundaries.py test/test_error_code_uniqueness.py test/test_build_integrity_manifest.py test/test_decision_merge.py test/test_fr032_excel_device_roundtrip.py -q。

手測