本卡屬 FR-155(母卡 CM-2977 https://app.notion.com/p/FR-155-RBAC-tab-4-11-400346da4cd081c1b7ffce63ec77390d),第 5 批 T-5.2:前端三件小事。只改 FE repo。等 T-5.1(常數檔要它刪完能力點再產)。
流程設計器點任務節點的「主要角色」下拉現在列全部專案能力點(15 個),包含「看專案」「SSP 寫入」這種跟推進無關的,選錯會讓所有人都能推那一站。決策者裁示只列三個:審閱、稽核判定、推進任何階段。另外問卷頁有一條「審核者看不到填答歷史」的前端特例,後端沒擋,決策者裁示拿掉。最後把後端重產的能力點常數檔 commit 進來(少兩個)。
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/flow-template/mainRoleCaps.js:11 MAIN_ROLE_CAPS = PROJ_NAMES(改成三個)
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/flow-template/FlowTemplateEditorView.vue:130 roleOptions 用 MAIN_ROLE_CAPS
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/views/survey-v2/SurveyPreview.vue:1297 `&& userRole !== 'reviewer'` 拿掉
~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/config/projectCapabilities.js 由 BE scripts/deliverables/gen_permission_matrix.py 產(T-5.1 已重跑,拿它的輸出)
mainRoleCaps.js:MAIN_ROLE_CAPS = [PROJ.REVIEW_APPROVE, PROJ.AUDIT_JUDGE, PROJ.STAGE_ADVANCE_ANY](用常數不用字串)。載入舊範本時 toMainRoleCaps 換算出來的值若不在三個內(例如舊範本手動填過別的),下拉要仍顯示它並標「不在建議清單」,不可靜默丟掉——看 PrimeVue MultiSelect 對不在 options 內的值怎麼處理,必要時把它臨時加進 options。SurveyPreview.vue:1297 拿掉 userRole !== 'reviewer' 條件;順手看同檔還有沒有別處用 userRole === 'reviewer' 做顯示特例(問卷的 filler/reviewer 是問卷角色不是專案角色,只拿掉歷史那一條,其他不動)。projectCapabilities.js:從 BE repo T-5.1 重跑後的產出覆蓋(或在 BE 跑 python scripts/deliverables/gen_permission_matrix.py 自己產),確認少了 STAGE_ADVANCE、JOB_EXECUTE 兩個鍵;grep -rn "STAGE_ADVANCE\b\|JOB_EXECUTE" src 除 ADVANCE_ANY 外要空。vite build 過;grep -n border-left 改動檔要空。~/Projects/Billows/Audit-Manager/compliance-manager-fe)。feature/FR-139(BE ~/Projects/Billows/Audit-Manager/compliance-manager-be、FE ~/Projects/Billows/Audit-Manager/compliance-manager-fe、套件 ~/Projects/Jedicogy/module/jedi-python-package),在當前 branch 工作、不切 branch;動 git 前先 git status,有不是自己的改動就停下回報。pyproject.toml:118-128 對應註解行打開、poetry update <套件名>);path 改動不 commit、不發版、不推 Nexus。common/authz/、common/code/flow_control_error_code.py、docs/claude/domain-capabilities.md)。localhost:5432,密碼看 .env 的 DB_PASSWORD),用 cmmgr:psql --single-transaction -v ON_ERROR_STOP=1 -f <檔>;絕不碰 STG/POC。pytest test/test_module_boundaries.py test/test_project_role_literal_guard.py test/test_project_caps_not_in_tenant_expansion.py -q。不跑全量 pytest。