這個檔只描述「此刻」。 每棒只 Edit 變動的節,決策脈絡與教訓寫進
fr103-LOG.md(append-only)。最後更新:2026-09-16 接手首腦收工(七棒全收;後續 arc FR-104/105/106 見各自 README)
fr103-LOG.md Block 1 的「推翻了什麼」與「教訓」← 必讀, 首腦在這個 arc 判斷錯三次,形狀相同冷接自檢題(答不出來就回頭讀,不要開工):
views/workflow/ 不能整包刪?workflow.* 那四個能力點為什麼刻意留著?jedi-iam 1.2.0 發版前為什麼「乾淨環境跑不起來」?(已解,見 LOG Block 3)決策者 2026-09-16 問:「為什麼我看還有很多 route 在主專案?我以為像 system_config 等東西應該全部抽出去了」,接著說明動機:
「我要的就是乾淨的 code,因為我後面要去開發新功能了,不要再留一堆無意義的東西。」
所以本 arc 的目標不是「把東西搬進套件」,是讓主專案只剩該留的。判準有三層:
| 該留的 | 該清的 | 該搬的 |
|---|---|---|
| 本產品獨有的業務(oscal、module_frame、cloud_integration) | 沒人用的死碼 | 主專案只剩殼、實體已在套件 |
| 只有這個產品才對的規則(多租戶、產品知識) | 功能退役後的殘留 | 接線該在 core/plugins/ 而非 api/ |
⚠️ 「清乾淨」不等於「刪掉」——本 arc 有三處查證後決定不動:evidence_classification (原型腳本的資料檔)、associations(v1 退場 v2 未接的中間狀態,341 筆真實資料)、 COMMON_PASSWORD_TOO_SHORT(號碼不可讓出,見 LOG D4)。
盤點時間:2026-09-16 16:43|盤點者:subagent|全部唯讀
⚠️ 表 A 已由接手首腦整表更新(2026-09-16,三 repo 皆已 push);其餘各表為盤點當下狀態, 表 F 的 CM-1836/1837/1823 三列另有註記。
| Repo | 當前 branch | push 狀態 | 工作區未 commit 檔 | 最近 3 筆 commit |
|---|---|---|---|---|
BEcompliance-manager-be |
feature/review |
已全部 push(2026-09-16) | (乾淨;jedi-iam pin 已升 1.2.0,path dependency 已還原) |
7683b45b docs(FR-101.2) J2 驗收落地(CM-1827)a54eccf0 fix(deliverables) plugin_metrics 接線清單改指 core/plugins/detection.py22bb4dba docs(FR-101.2) J2 掃描結果(CM-1827) |
FEcompliance-manager-fe |
feature/review |
已全部 push(2026-09-16) | (乾淨,無未 commit 檔) | ea74482 清掉指向已退役後端端點的前端殘骸(CM-1841 FE 段)3d35229 標註舊版 BPMN 編輯器不是死碼(CM-1836)0dc93e1 退役三條零引用路由與孤兒頁面(CM-1835) |
套件jedi-python-package |
feature/review |
已全部 push(2026-09-16) | (乾淨,無未 commit 檔) | 3cc966f chore(release) jedi-iam 1.2.0edc9118 帳號匯入改必填+修密碼產生器少一碼589d034 吸收第三方登入綁定與 LDAP 連線測試(CM-1832) |
| Commit | 卡號/關鍵字 | 一句話說明 |
|---|---|---|
86d62988 |
CM-1830、FR-103 | 退役排程報表整條線(report_downloader + schedule-report API)——決策者裁不需要 |
e5548de8 |
CM-1833、FR-103、出貨基線 | 退役 12 個 enable=0 舊選單的 DB 側——選單/綁定/16 個能力點/回饋標籤 |
0c7e4e38 |
CM-1832、FR-103 | 第三方登入綁定與 LDAP 連線測試上移 jedi-iam——主專案只留接線(第 3 棒) |
33709786 |
CM-1834、FR-103 | 問卷接線收進 core/plugins/survey.py——主專案側 23 支套件全部同形(第 5 棒) |
08d1267f |
CM-1833、FR-103、出貨基線 | 重產出貨基線——收斂 CM-1833 的 12 個舊選單退役 |
90be71f6 |
CM-1830/CM-1832/CM-1834、重產 Postman | 重產 Postman collection 與 route 清單——反映 FR-103 四棒的端點異動 |
11773fde |
FR-102、FR-103 | FR-102 地圖加失效警示——FR-103 四棒落地後四項狀態已變 |
BE 查無命中:CM-1831(該棒為純 FE 工作,commit 在 FE repo)
| Commit | 卡號/關鍵字 | 一句話說明 |
|---|---|---|
589d034 |
CM-1832、FR-103 | 吸收主專案的第三方登入綁定與 LDAP 連線測試——四條 route+設定來源 port(第 3 棒) |
套件 repo 查無命中:CM-1830 / CM-1831 / CM-1833 / CM-1834
| Commit | 關鍵字 | 一句話說明 |
|---|---|---|
a2812d90 |
FR-100 | 更正 flow_engine 歸屬敘述——226 檔是 flow_control 的數字,兩份舊數字皆失效 |
326e8b14 |
FR-100、重產 Postman | 重產 Postman collection 與 route 清單——反映 FR-099/FR-100 的端點異動 |
b1cef859 |
FR-100 | 兩棒完成+report 改判為活的——盤點方法補第四層(CM-1820/1821/1822) |
0c8fbbbb |
FR-100 | 清理 gen_postman_collection.py 殘留的 api.translate 項(CM-1821) |
16ff211c |
FR-100 | 退役 translate 端點——前端零入口、四方查證皆無呼叫者(CM-1821) |
2cd7e624 |
FR-100 | 主專案剩餘 route 逐支盤點結論——三支待處理,純記錄不派工(CM-1820) |
808af30c |
FR-102 | 主專案全模組現況地圖——26 模組逐一盤完,只給現況不給建議(CM-1824) |
註:
出貨基線關鍵字在 BE repo 全歷史共 28 筆命中,上表只列 FR-103/FR-100/FR-102 區段內的;其餘屬 FR-065/FR-092/FR-094 等歷史 arc,與本 arc 無關。
| 目錄 | git 追蹤檔數 | 判定 |
|---|---|---|
api/report |
0 | 0 檔=已清空 |
app/report |
0 | 0 檔=已清空 |
bin/report_downloader |
0 | 0 檔=已清空 |
api/translate |
0 | 0 檔=已清空 |
api/user_auth_provider |
0 | 0 檔=已清空 |
app/user_auth_provider |
0 | 0 檔=已清空 |
api/survey |
0 | 0 檔=已清空 |
api/task_survey |
0 | 0 檔=已清空 |
api/feedback |
0 | 0 檔=已清空 |
api/label |
0 | 0 檔=已清空 |
app/feedback |
0 | 0 檔=已清空 |
domain/feedback |
0 | 0 檔=已清空 |
infra/feedback |
0 | 0 檔=已清空 |
13 個目錄全部 0 檔,退役皆已落地。
連線:localhost:5432 / cmmgr / guidant_ai_dev(查詢成功)
| # | 查詢 | 實際值 | 預期 | 判定 |
|---|---|---|---|---|
| 1 | ui_routes where enable=0 |
0 | 0 | ✅ 相符(關閉選單已全數退役) |
| 2 | ui_routes where enable=1 |
43 | —(僅記錄) | — |
| 3 | capabilities where name in ('bulletin.read','feedback.read') |
2 | 2 | ✅ 相符(共用點留存) |
| 4 | capabilities where name like 'workflow.%' |
4 | 4 | ✅ 相符(刻意保留待 CM-1836) |
| 5 | capabilities 退役族群( cruise-project* / resource.* / dashboard.* / report) |
0 | 0 | ✅ 相符(已清乾淨) |
存取:ssh jedi@192.168.50.188 → docker exec postgres psql -U cmmgr -d guidant_ai(查詢成功)
| 查詢 | 實際值 | 預期 | 判定 |
|---|---|---|---|
ui_routes where enable=0 |
0 | 0 | ✅ 相符(本 session 已重產) |
ui_routes where enable=1 |
43 | —(加查對照) | ✅ 與 DEV 的 43 完全一致 |
| 卡號 | 狀態 | 是什麼(任務名稱前段) |
|---|---|---|
| CM-1829 | Not started | FR-103 主專案殘留清理——四件確定要整理的(母卡,三棒) |
| CM-1830 | 修正待驗證 | FR-103 第 1 棒 report 整條線退役 + translate 本機殘留清除 |
| CM-1831 | 修正待驗證 | FR-103 第 2 棒 cruising 舊回饋頁退役——選單已關但路由仍掛著 |
| CM-1832 | 修正待驗證 | FR-103 第 3 棒 user_auth_provider 搬進 jedi-iam——地圖唯一的殼 |
| CM-1833 | 修正待驗證 | FR-103 第 4 棒 退役 12 個關閉的舊選單——含權限點、前端孤兒頁、出貨基線同步 |
| CM-1834 | 修正待驗證 | FR-103 第 5 棒 survey/task_survey 接線收進 core/plugins |
| CM-1835 | Not started | FR-103 第 6 棒 退役三條確定無人引用的前端路由——乙案 |
| CM-1836 | 修正待驗證→驗收通過 | FR-103 第 7 棒 新舊兩代 BPMN 編輯器整併——五支活頁面改用 flow-template(丙案)。決策者裁不遷、加註記(FE 3d35229/BE 98d756bb) |
| CM-1837 | 已作廢 | 使用者 Excel 匯入:租戶/單位/角色三欄的名稱從未被解析成 id——決策者重走流程證實正常 |
| CM-1823 | 驗收通過 | FR-104 流程疆界重新分析——舊設計稿全部數字失效(一棒,只分析不動程式)。見 FR-104 README |
| CM-1824 | 修正待驗證 | FR-102 主專案全模組現況地圖——636 檔逐模組盤點(一棒,唯讀) |
| CM-1820 | Not started | FR-100 主專案剩餘 route 逐支盤點結論——三支待處理,純記錄不派工 |
| CM-1816 | Not started | FR-099 意見回饋與標籤併入 jedi-issue——主專案側整組退場(三棒,實作) |
母卡 CM-1829 狀態仍為
Not started,七張子卡(CM-1830~1836)皆已驗收通過(Notion 狀態以實際卡為準)。
| 卡 | 做什麼 | 建議 model | 卡在哪 |
|---|---|---|---|
| CM-1823 | ✅ 已完成,見 FR-104(流程疆界重新分析) | — | — |
| 後續 arc | FR-104/FR-105/FR-106 見各自 README(docs/features/FR-104-*/FR-105-*/FR-106-*) |
— | — |
✅ CM-1835(乙案)已於 2026-09-16 完成並驗收通過(FE 0dc93e1)。 ✅ CM-1836(丙案)已於 2026-09-16 驗收通過——決策者裁不遷、加註記(FE 3d35229/BE 98d756bb)。
| 項目 | 為什麼卡著 |
|---|---|
oscal/module_frame 內部逐檔分類 |
已由 FR-105 三棒完成並驗收(母卡 CM-1838),見該案 README |
license_readonly_mw.py:110 白名單列著 /schedule-report/file-list,但那條路徑 從來沒註冊過(CM-1830 退役 report 時已順手移除該行,此項已解)user_batch_import_service.py 的 policy=None 語意問題(見 LOG 教訓 4)—— 不影響功能,未改| 東西 | 為什麼 |
|---|---|
src/views/workflow/ 整包(16 檔含 55KB BPMN 編輯器) |
五支活頁面用 window.open/router.push 開它。FE 路由守衛只擋 requiresAdmin,不依 ui_routes 擋直入——選單關了不代表進不去 |
capabilities 的 workflow.* 四個 |
jedi-flow-engine 的 plugin 契約仍宣告它們,刪掉 seed 會讓 test_plugin_capabilities_are_seeded 變紅。要收得連套件一起收 |
capabilities 的 bulletin.read/feedback.read |
公告與意見回饋兩個活功能共用,刪了整個功能 403 且無錯誤訊息 |
COMMON_PASSWORD_TOO_SHORT(error_code.py:145) |
號碼是 CM-1802 特地分出來的,刪掉會被回收重用、重蹈覆轍 |
src/views/bulletins/ 另外四支 |
活的公告功能(只有 UserGuide.vue 是孤兒) |
src/views/flow-template/ |
新一代流程範本,ui_routes 的 flow-template-manage enable=1 |
localhost:5432/guidant_ai_dev),絕不碰 STG/POCguidant_ai(port 25432)——動它前必先 pg_dump 備份, 且屬決策者裁示範圍phase=active/envs=* 的 migration 寫完要回報「出貨基線待重產」,不自己動jedi-iam 已發 1.2.0、pin 已升(pyproject.toml:64),path dependency 已還原為註解(:115)本 repo 2026-09-16 當天發生過 commit 夾帶事故(CM-1821 夾走 CM-1818 在 config/app_modules.py 的改動)。顯式 git add 檔名、禁用 -am、commit 前跑 git status 逐檔確認。
| 什麼 | 在哪 |
|---|---|
| 母卡 | CM-1829 |
| 全模組地圖(26 模組現況) | docs/features/FR-102-2609-host-module-map/README.md ⚠️ 檔頭有失效警示 |
| route 盤點結論 | docs/features/FR-100-2609-host-route-inventory/README.md |
| 意見回饋併入 jedi-issue | docs/features/FR-099-2609-feedback-label-into-jedi-issue/README.md |
| 終局形狀定義 | docs/features/FR-080-.../FINAL-SPEC.md「主專案怎麼接」 |
| 接線樣板 | core/plugins/issue.py(三段形狀)、core/plugins/remote_agent.py(一個 mount 掛多個) |
| 出貨基線重產步驟 | .claude/skills/sql-migration/SKILL.md「首腦重產的步驟」 |