FR-092 · 需求索引 · 本頁由 build 掃資料夾生成
✅ 全案收口(2026-09-13 晚)。母卡 CM-1703 Done;16 棒實作+3 棒收尾(CM-1763 文件清理、CM-1764 十九檔活 schema 搬家、CM-1765 四張表 drop)全 Done。留給後續:version-bump 前跑 site-regression;jedi-task-platform 677f20f 併 1.1.0,發出前 DEV 刪設備確認框壞、STG/POC 不可套 cm1765 主檔 migration。
subtask_status_history 整個模組(21 檔)跟著退。views/_archived/ 15 檔自 2026-03-31 起無路由引用,README 自承備份,一起清。common/authz/*、common/util/permission.py 四支、app/detection_tools/*、common/util/profile_extractor/)與 app/evidence_classification/resources/——前者 FR-090 第 3 棒與 FR-091 detection 大卡會動 import 路徑,現在改是白做;後者 build 腳本還在包。/audit-round/<uid>/{launch-audit, start-auditing, ar/finalize, ap/generate-draft} 四支前端零呼叫、只有 e2e step 在打——是前端漏做還是流程改走別路,未定,本案不動。| 棒 | 卡 | 做什麼 | 規模 | 狀態 |
|---|---|---|---|---|
| 1 | CM-1704 | OSCAL v1 序列化殘骸+FR-038 掏空的 versioning/diff/reconciliation/project_system_info | 53 檔 約 2,900 行 | ✅ |
| 2 | CM-1705 | common/ 死掉的 PDF 鏈與工具、common/code/event_code.py 同名雙真相 |
17 檔 約 3,000 行 | ✅ |
| 3 | CM-1706 | 12 支零呼叫端點退役+subtask_status_history 整模組 | 21+約 15 檔 | ✅ |
| 4 | CM-1707 | FE views/_archived/ 15 檔刪除 |
FE 15 檔 | ✅ |
| 5 | CM-1708 | 盤活檔裡的死方法/class:vulture 394 條逐一核動態呼叫,分確定/疑似 | 唯讀 | ✅ 完成 2026-09-12 → scan-dead-members.md:確定 63 條/約 611 行/28 檔,誤報 105、活的 126;建議拆四張修正卡 |
| 6 | CM-1709 | 盤 pyproject 未用依賴:deptry 對照主專案/jedi 套件/build 清單,分 A-D | 唯讀 | ✅ 盤完 → scan-unused-deps.md:A 類 3 支可拔(gevent/flask-marshmallow/google-auth-oauthlib)/B 類 6 支屬套件領域/D 類 5 支動不得(psycopg 靠 DB URL 動態載入、三家 LLM SDK 是套件 extras 要宿主提供);反向 7 支未宣告,openpyxl 11 檔最嚴重;另抓到第 2 棒清單缺口 pdf_backend.py |
| 7 | CM-1710 | 盤 DEV 庫無人讀寫的表:ORM+SQL 字串+view 三方對照,分 A-D | 唯讀、DEV 只 SELECT | ✅ 盤完 → scan-orphan-tables.md:A 類 13 張可 drop/B 類 3 張待裁/D 類 3 張備份表;反向零筆 |
| 8 | CM-1711 | 盤 scripts/ 8/16 後新增腳本+test/ 死測試 | 唯讀 | ✅ 盤完,確定 7 條疑似 0 條 → 報告 |
| 9 | CM-1717 | flow_engine 14 條死成員(含 notify_control_reviewers 89 行,決策者裁刪) | 5 檔 254 行 | ✅ Done |
| 10 | CM-1718 | OSCAL 14 條死成員(v1 schema 四支、未接線 parser 三支) | 7 檔 118 行 | ✅ Done |
| 11 | CM-1719 | module_frame/feedback/summary_report/associations 16 條 | 7 檔 95 行 | ✅ Done |
| 12 | CM-1720 | api serializers+common/infra/config 18 條(system_asset_snapshot 只刪一支) | 9 檔 136 行 | ✅ Done |
| 13 | CM-1721 | pyproject 拔 gevent/flask-marshmallow/google-auth-oauthlib,補 openpyxl/werkzeug/cryptography/requests/httpx | pyproject+lock | ✅ Done |
| 14 | CM-1722 | jedi 套件漏宣告 11 條(integrity→sqlalchemy 等),套件異動不發版 | 7 支 pyproject | ✅ Done |
| 15 | CM-1723 | drop 16 張表(cd_* 六/hi_* 四/device_monitors 二/role_members/alembic_version/DEV 備份二)+基線重產 | 2 migration | ✅ Done |
| 16 | CM-1724 | test/ 六支死測試+scripts/archive 兩支 | 8 檔 | ✅ Done |
2026-09-12 深夜 首腦驗收四棒盤點:抽查關鍵斷言屬實(gevent 零 import、openpyxl 12 活檔零宣告、cd_* 零命中、無 alembic、test_decision_merge:9 踩第 1 棒);CM-1708 一處補正(system_asset_snapshot.py 只刪一支)。決策者裁「1 到 3 照建議」→ 開第二批修正卡 CM-1717~1724 八張。待裁記帳:pdf_backend 去留、B 類三張表、/audit-round 四支端點、jedi-iam role_members 死路徑。盤點結果總帳:活檔死成員 63 條 611 行/依賴拔 3 補 5+套件漏宣告 11/孤兒表 16 張/死測試 6+2。
2026-09-12 決策者:問「什麼時候可以開始做、等 91 全收嗎」→ 重估重疊面:只有第 3 棒碰 app_modules.py 與 DI 接線需等 CM-1700/1701,其餘現在可派。再問「還有需要另外盤的嗎」→ 列六項,裁「先做 1 到 4」→ 開四張唯讀盤點卡 CM-1708~1711(活檔死方法/未用依賴/無人讀寫的表/scripts 與 test 死物),同晚四棒全派出平行跑。等 FR-091 收口再盤的:jedi 套件內部廢碼、CM-1696 後的 DI 殘留。
2026-09-12 決策者:「主專案好像還有很多廢 code 殘留,先盤點」→ 盤點後問「cloner 那支是不是接線漏了」→ 查證為 FR-038 掏空的整組殭屍,非漏接。裁「先列確定的,開卡準備」,時序等 FR-090/091 做完。
cloner 查證結論:SspVersioningService 全專案零 caller 零 DI wiring,docstring 自承 FR-038 2A「v2 切換後停用、2B 重建」,所有 _clone_* 為空存根;v2 版本化走 living SSP+凍結快照,不用 deep clone。三支(service/gateway 介面/infra impl)一起刪。
app/ 下 auth/flow_control/cloud_integration 為何還在:auth 已搬 jedi-iam,剩 license 守門 wrapper,FR-090 第 3 棒收;flow_control 已搬 jedi-compliance-audit,剩宿主編排(design「project =插座」);cloud_integration 在 FR-069 §7 標「待定序」從未排進棒次,要抽得另開 FR。
add_resource/@route 抓 227 支 → 對 FE src/、evidence-agent/、compliance-manager-test/ 全文比對 literal 路徑段feature/FR-075(開卡時查)以下全部由 build 掃資料夾產生,新增檔案重 build 即自動出現。標題連結指向渲染後的 HTML,md 連向源檔。
| 文件 | 類型 | 標題 | 最後更新 |
|---|---|---|---|
| scan-dead-members / md | 盤點證據 | FR-092 第 5 棒盤點報告——活檔裡的死方法與死類別 | 2026-09-12 |
| scan-dead-tests-scripts / md | 盤點證據 | FR-092 第 8 棒盤點報告——scripts/ 與 test/ 的死物 | 2026-09-12 |
| scan-orphan-tables / md | 盤點證據 | FR-092 第 7 棒 盤點報告 — DEV 庫裡沒人讀寫的表 | 2026-09-12 |
| scan-unused-deps / md | 盤點證據 | FR-092 第 6 棒 盤點報告 — pyproject 沒人 import 的依賴 | 2026-09-12 |
其他檔案:dead-files.txt
卡片內容(決策紀錄、驗收條件)以 Notion 為準,本頁只記座標。
| 關係 | 卡號 | 標題 | 狀態 |
|---|---|---|---|
| 母案 | CM-1703 | FR-092 主專案廢碼清理——套件搬移後沒人引用的 73 檔、沒人打的 12 支端點、前端 15 檔備份頁(四棒,實作) | — |
| 子卡 | CM-1704 | 第 1 棒 OSCAL v1 序列化殘骸與 FR-038 孤兒 53 檔 | Done |
| 子卡 | CM-1705 | 第 2 棒 common/ PDF 工具鏈與 event_code 雙真相 20 檔 | Done |
| 子卡 | CM-1706 | 第 3 棒 12 支零呼叫端點退役+subtask_status_history 整模組 | Done |
| 子卡 | CM-1708 | 第 5 棒 盤活檔裡的死方法與 class | Done |
| 子卡 | CM-1709 | 第 6 棒 盤 pyproject 未用依賴 | 修正待驗證 |
| 子卡 | CM-1710 | 第 7 棒 盤 DEV 庫無人讀寫的表 | Done |
| 子卡 | CM-1711 | 第 8 棒 盤 scripts/ 與 test/ 死物 | 修正待驗證 |
| 子卡 | CM-1707 | 第 4 棒 FE views/_archived 15 檔 | Done |