FR-144 交接現況(STATE)

這份是 living 檔:每棒就地 Edit,只描述「此刻」。歷史脈絡看同資料夾的 FR-144-LOG.md。

項目 值
最後更新 2026-10-17(首腦第一棒交棒;實作全部完成、待決策者畫面驗收)
branch BE/FE/套件皆 feature/FR-139(主工作樹);未 push(BE 領先 66、FE 領先 29,含 FR-142/143/145 的 commit)
母案卡 CM-2837 https://app.notion.com/p/FR-144-3fc346da4cd0816e8322df62eba7a711 (Not started;收尾時才收 Done)
子卡 CM-2838、2839、2852、2853、2861,全部「修正待驗證」、首腦已復核
Notion 回寫規範 docs/claude/notion-issue-tracker.md
接手前必讀 §0 讀序

🧭 原始需求 / WHY

決策者原話(2026-10-17):「目前稽核計畫都只能從專案進入,很繞。我想直接增加一個入口在左側選單,進去就是看到跟自己相關的稽核計畫清單,一樣可以連到稽核計畫頁面。」

需求的演變(每次都是決策者看畫面後改,全部已實作):

  1. 卡片式 → 表格,可搜尋排序;風格要跟 FR-142「稽核作業」統一,不要一個功能設計一次。
  2. 進度不用進度條、用百分比;只列查核項目進度。一格一件事,最多一行小字。名稱拿掉「我的」,叫「稽核計畫」。日期完整帶時間。
  3. 左側選單重排:儀表板 → 待辦任務 → 專案管理 → 稽核計畫 → 稽核作業 → (改善計畫)→ 專案調查結果。
  4. 改依專案分組展開(同 FR-142 CM-2850 規則):一專案一列、點開看每一次。
  5. 拿掉獨立「稽核次」欄,照稽核作業把稽核次放在專案欄;頁尾每頁 10/25/50。
  6. 改待辦視角:稽核中/待覆核/矯正中/已結案在這頁沒意義(計畫進入稽核即唯讀),分段只留「待處理/已完成/全部」,狀態只分「待填寫/未指派/已完成」。「已完成」是決策者在「已鎖定」等候選中選定。
  7. 分頁要跟全站(待辦任務)同一模式——已由 FR-145 runner 換成共用元件 GroupedListPaginator(FE 88ca7ca8)。

現在長什麼樣:左側「專案與任務」群組的「稽核計畫」(帶待填寫數字)→ 表格一專案一列、預設「待處理」、點列直達 FR-141 稽核計畫頁(麵包屑與左側高亮回到「稽核計畫」)。

§0 接手讀序

0.1 先懂需求

  1. 本檔 WHY 節
  2. ../README.md(結論、總進度、需求討論紀錄)
  3. 雛形 ../prototype/my-audit-plans-grouped.html(現行定案長相;my-audit-plans.html 是已被取代的平列版,留作對照)

0.2 需要細節才開

  • ../design.md:v1 設計(平列版時代),決策表與清單 SQL 仍有效,但「一稽核次一列」「五個狀態分段」已被 §2 改判取代
  • 各子卡卡尾的 runner 回寫與「✅ 首腦復核」段

0.3 冷接自檢

  • 「跟我有關」用哪張表判?(答:project_participants,不用 AP 稽核人員 party——它沒連帳號)
  • 分段「已完成」包含哪些稽核次狀態?(答:auditing、pending_reverify、remediation、closed)
  • 為什麼分組要動後端而 FR-142 不用?(答:本頁是後端分頁,前端分組會把同一專案切在兩頁)

§1 當前狀態

卡 做什麼 關鍵 commit 狀態
CM-2838 BE 清單端點+選單登記 BE e1812865c、96de53fb7(舊稽核次 null 防呆)、328006511(圖示 pi-list) 修正待驗證
CM-2839 FE 清單頁+選單徽章 FE 00fa1a78 修正待驗證
CM-2852 BE 改以專案分頁 BE 1b4acbeea、9f592b002(首腦補 round_max) 修正待驗證
CM-2853 FE 分組展開、拿掉稽核次欄 FE 1625d42e、8c779e57、b3ad3170(首腦補 round_max) 修正待驗證
CM-2861 待辦視角(BE+FE) BE ae9c1e3d4、FE 9efd1267 修正待驗證
— 首腦直接修:選單重排 BE 056ec5e21(migration) 已套 DEV
— 首腦直接修:麵包屑與左側高亮 FE 3f554369(?from=audit-plan-list、AppMenuItem.isItemActive 帶 from 時只認來源頁) 已驗
— FR-145 runner 改分頁器 FE 88ca7ca8(GroupedListPaginator) 首腦未目視

Migration(只套 DEV,seed 類):scripts/sql/2026-10-17-fr144-audit-plan-list-route.sql、scripts/sql/2026-10-17-fr144-project-task-menu-order.sql。

§2 已定裁示(不要重新討論)

  • 選單名「稽核計畫」,sort 40;sort 60 留給 FR-143「改善計畫」。
  • 規劃中(還沒到填寫站)的稽核次不列。
  • 外稽未指派稽核人員時,專案經理那列「去指派」跳專案規劃頁;只是 auditor 看不到該列。
  • 一專案一列;「目前這一次」=待填寫優先、同為待填寫取填寫期限最近、都已完成取最新。
  • 專案小字:多次「共 N 次 · 第 R 輪」(R 取整個專案、不受篩選),篩選後加「(符合篩選 M 次)」;只有一次直接寫稽核次。
  • 只有一次、或篩選後只剩一次的專案不展開。沒有可展開時藏「全部展開/收合」鈕。
  • 分段「待處理/已完成/全部」,預設待處理;狀態「待填寫(橘)/未指派(紅)/已完成(綠)」。
  • 每頁 10/25/50 個專案;分段筆數仍算稽核次。

§3 下一步:全面測試時要特別看的(DEV 沒真資料、還沒人看過)

  1. 開一個新專案走到「稽核計畫填寫」站,看:
    • 左側選單「稽核計畫」旁的數字=待填寫筆數
    • 清單「待處理」出現該列,狀態橘色「待填寫」,最右鉛筆「填寫」,點進去可編輯、網址無 ?pass=
    • 預設展開邏輯(有待填寫的多次專案)
  2. 外稽走到填寫站、尚未指派稽核人員:PM 帳號看到紅色「未指派」與「去指派」,跳專案規劃頁;只是 auditor 的帳號看不到該列。
  3. 只有一次稽核的專案:小字直接寫「第 1 輪 · 內稽第 1 次」、沒有箭頭。
  4. 分頁器:頁尾跟待辦任務一致(FR-145 改的,首腦沒目視過)。
  5. 登出再登入後左側選單順序正確。

§4 待辦與風險

收尾(等決策者下令):SPEC 新增「稽核計畫清單」頁+使用手冊;兩支 migration 出貨基線重產(隨 FR-140/141);e2e 一棒;母卡 CM-2837 收 Done;push。

掛著:FR-146 清單工具列統一(CM-2847~2849,決策者裁暫不做)。三個分組清單頁分頁器兩種實作並存(稽核作業、改善計畫用 DataTable 內建;稽核計畫、結案報告用 GroupedListPaginator),畫面一致,留 FR-146 收。分段按鈕選中色仍寫死 rgba(99,102,241,0.2),同上。

§5 Pre-flight

cd ~/Projects/Billows/Audit-Manager/compliance-manager-be && git log --oneline -3 && git status --short | head
git -C ../compliance-manager-fe log --oneline -3
# 8000 是否跑最新碼:比 BE 啟動時間與最新 FR-144 commit 時間
lsof -tiTCP:8000 -sTCP:LISTEN | head -1 | xargs -I{} ps -o lstart= -p {}
# 選單登記
psql -h localhost -p 5432 -U cmmgr -d guidant_ai_dev -At -c "select name,sort from public.ui_routes where pid=42 and is_menu order by sort"   # 密碼查 .env DB_PASSWORD

§6 環境座標

  • 頁面:FE http://localhost:5180/project/audit-plans;src/views/project/AuditPlanListView.vue
  • 端點:POST /api/1.0/audit-plans/my/list、GET /api/1.0/audit-plans/my/count;BE infra/readmodel/audit/audit_plan_list_query.py、app/readmodel/service/audit_plan_list_service.py
  • 登入:blsadmin,密碼查 test repo .env.e2e 的 TEST_PASSWORD
  • 雛形:BE 根 docs/features/ 起 python3 -m http.server 8799

§7 行為規範提醒

  • FE 工作樹常有其他 FR session 的未 commit 檔,只 add 自己的檔。
  • ?from=audit-plan-list 不能拿掉,麵包屑與左側高亮靠它。