本卡屬 FR-092(母卡 CM-1703),第 7 棒盤點(CM-1710)A+D 類產出。只套 DEV 與基線庫,STG/POC 等上版放行。報告 docs/features/FR-092-2609-dead-code-cleanup/scan-orphan-tables.md 為準。

問題是什麼(白話)

DEV 庫 189 張表裡有 13 張從建表起一列資料都沒寫過、程式碼零引用(ORM/原生 SQL/view 三方都沒有),而且全部隨出貨基線進每個客戶的庫。另外 alembic_version 主專案根本不用 alembic 卻隨基線出貨還帶假 stamp;DEV 還有兩張一次性腳本的備份表。留著每次升級都要跟著 migrate、跟著 RLS、跟著基線重產,還誤導後人。

首腦核對:cd_* 六張全 codebase 零命中、主專案無 alembic.ini/alembic/ 目錄、04-seed-core.sql:1221 確實灌 alembic 假 stamp。屬實。

在哪裡

A 類 13 張(零引用零資料,基線庫也有):
  oscal.component_definitions  oscal.cd_capabilities  oscal.cd_components  oscal.cd_control_implementations  oscal.cd_implemented_requirements  oscal.cd_statements
  compliance.hi_workflow_executions  compliance.hi_element_variables  compliance.hi_workflow_templates  public.hi_job_executions
  public.device_monitors  public.device_monitor_archive
  public.role_members
D 類 3 張:
  public.alembic_version(基線也有;04-seed-core.sql:1221 灌 stamp 要一起拔)
  survey.question_answers_dedup_backup_20260428(只在 DEV)
  config.detection_tool_profiles_deprecated_20260803(只在 DEV)
連帶:scripts/sql/2026-07-20-*-cleanup.sql 與 2026-08-17-fr065-t20-shipping-baseline-cleanup.sql 的 truncate 清單提到 cd_*,migration 套完那些歷史腳本不改(已套過),但 scripts/check_env_scoped_migrations.py 若列了 system_logs_old/deprecated 表要對一下

怎麼修

要寫測試

不寫 unit test。驗:套完 DEV python main.py 起得來+守衛三檔綠+python -m pytest test/test_build_integrity_manifest.py -q;基線庫重產後 scripts/build/assert_db_current.sh 過(若該腳本吃基線)。

手測

連帶