FR-164 專案總覽控制項視角重設計——收口 SUMMARY

FR-164 專案總覽控制項視角重設計——收口 SUMMARY(2026-10-26)

§1

一句話

專案總覽頁的控制項視角整個重排:左樹三層都能點(與證據視角共用同一棵),右欄固定「參考資料(只讀)」+「任務(唯一可操作、永遠一張平表)」上下兩塊,可拖可收。使用者看得出哪裡能點、點得到評估目標、同一件事的資料不再散三層。順手做了「專案只有一輪且未走完時直接進總覽」。

§2

為何做

決策者 2026-10-25 口述:「使用者反應看不出哪些是可以操作的;左邊導航點不到 AO;東一塊西一塊。」實查舊版:左樹只到控制項;右欄控制項卡→現況說明摺疊→評估目標卡→任務列,三層手風琴。

§3

做出來的行為(終局)

  • 左樹:EvidenceNavTree mode="control"——群組/控制項/評估目標三層可點;列尾進度%(群組、控制項)或 k/n(評估目標);⚡待執行、✎現況未填(規劃期)、✓已審閱三種徽章;搜尋、全部展開/收合、「我的待辦」(左樹與右表同步過濾);底部圖例。進度條軌道加 1px 框,兩個主題 0% 都看得出空軌。
  • 右上參考資料(只讀,無按鈕除收起):群組=描述+統計;控制項=條文、現況說明(狀態 Tag/描述/備註/程序書);評估目標=條文、評估目標現況、控制項現況說明。全部上下疊。高度預設跟著內容(上限佔右欄七成),拖上下分隔線後固定並記住,標題列「恢復自動」清掉;可收起只留標題列。
  • 右下任務:永遠一張平表、一列一個任務、表內無展開收合。篩選 全部|待我執行|未完成|已完成;分群預設跟選取層走(群組→依控制項、控制項→依評估目標、評估目標→不分群,改過記住)。欄:任務名、位置(控制項代號+[a]+條文完整換行;依評估目標分群或選評估目標時隱藏)、負責人、證據數+AI 徽章、狀態、「⚡執行/開啟›」。分群小標列浮在卡片上(控制項淡主色、評估目標浮層色、圓角),群間留空白帶;審閱鈕在小標列(不分群時在任務標題列右側)。表格離卡片四邊 1rem,列距 0.75rem。
  • 移除:舊右側面板整段(總覽頁 2,140→1,155 行);專案資訊的「受評範圍→前往系統安全計畫編輯」提示列。
  • 專案入口:只有一輪且 is_finished=false 時,稽核計畫列表 router.replace 進該輪總覽。
  • 不動 BE。
§4

Commits

FE feature/FR-139(工作坊 20 三卡合回 f587398b;其後首腦直改)

hash 內容
3caed67c FR-164.1 左樹加 control 模式(CM-3092)
705d176f FR-164.2 右側兩塊子元件+composable+單測(CM-3095)
4c552922、0bed488f FR-164.3 接線、刪舊面板、1280 寬修正(CM-3096)
f587398b 合回 ws-CM-3091 → feature/FR-139
f19a4641 CM-3099:參考資料上下疊、拔 SSP 提示列、任務表版面重訂、小標列底色與 sticky 修正
bc84cb78 參考資料自適應高度(第一版,純自適應)
a4b8ea79 參考資料「預設自適應、拖過固定、可恢復自動」;左樹進度條軌道加框
1861a89f 專案只有一輪且未走完直接進總覽
a1e8bb43 證據視角分段列同步改成浮在卡片上(決策者收口後追加)

BE feature/FR-139(文件):6a7fecf57→e932aa79e→eb0da3fb8→9eab58107→566f1aff9(雛形五版)、dcfc7bde4(design+開卡)、88c89b950、cf1c6b4df、3be2c8d18、c52ff73d4、4eddf16c7、959d56e65、6905b9c8c、本收口 commit。

§5

卡片

母卡 CM-3091;子卡 CM-3092(批 1)、CM-3095(批 1)、CM-3096(批 2)、CM-3099(批 3,首腦直改)。CM-3093/3094 為建卡腳本重跑誤建,已刪。

§6

決策軌跡(含被推翻的)

回合 提案 結果
雛形 v1 上下兩塊、群組層全攤平、表內「只看這條」跳左樹 上下定案;拿掉「只看這條」;群組層「預設只列分段列」
雛形 v2 把「只列分段列」做成控制項卡→評估目標→任務三層收合 退回:「跟原本一樣」
雛形 v3 徹底平表+位置欄+分群選配 核可;再加:位置欄不截斷、分群預設跟層走、「分段」改名「分群」
複測 1 參考資料條文與現況說明兩欄 退回:「永遠不要左右」(design.md 寫錯,runner 照做)
複測 2 任務表列距、底色、貼邊 三度點名後改成整套版面重訂
複測 3 參考資料固定高(上下 Splitter) 退回→純自適應→退回→「預設自適應、拖過固定、恢復自動」
§7

驗收與直改的根因(給下次開卡)

  • design.md 寫「兩欄」就會做出兩欄:版面方向要在 design 明寫「上下疊」,不能靠 runner 猜。已立 memory feedback_ui_never_side_by_side_columns_stack_vertically。
  • 「預設只列分段列」被首腦自己理解成收合:決策者的詞要回到「平表」這個已核可的前提下解讀。
  • PrimeVue 分群列 sticky:scrollable DataTable 的 rowgroup-header 預設 sticky,換透明底一定露餡。
  • 工作坊同一張卡派了兩個 session(CM-3092、CM-3095 都有):兩邊 runner 自行協調停手,但要查工作坊為何重派。
  • 建卡腳本炸在第 N 張會留下前幾張:spec 先驗 block 型別(rules() 的 extra 要字串)再建。
§8

規範文件

  • SPEC:docs/spec-site/current/project-management/project-overview.md(變更紀錄+§1.1 第 3/9/9b/10/11 列+§7+§12 坑 20)、project-ap-list.md(變更紀錄+§1.1 第 5 列)。
  • design:design.md D1~D10(D8 已改為自適應+可拖)。
  • 使用手冊:docs/user-manual/lifecycle-and-use-cases.md「所有參與者:在專案總覽找到自己要做的任務」(三塊怎麼用、專案入口直接進總覽)。
  • 對話歸檔:docs/conversation-history/2026-10-25/fr164-control-view-redesign/(10-25~10-26 同一個 session,原始 dump,已掃 secret 命中 0)。
  • memory:feedback_ui_never_side_by_side_columns_stack_vertically(新);feedback_fe_nav_tree_rewritten_per_page_reuse_first(本案沿用左樹,第一個沒再刻的案例)。
§9

Follow-up

  • AOPickerDialog(FR-162)徽章整面紅棕太重,決策者看過後裁「先不要動」。
  • 7 棵手刻導航樹的收斂仍待另開 FR(本案是第一個沿用而非重刻的)。
  • 1280 寬且左欄拉很寬時,任務表在框內橫捲(頁面不橫捲)。