簽核引擎(Approval Engine)
Arova Nexus — Phase 0 Product Definition | 2026-03-31

所屬模組: Nexus Core(必備)
PRD 對應: Ch6.6 AP-001~AP-005
Wireframe: 開啟互動原型 → 側邊欄「簽核中心」

解決什麼問題

VPN 申請要主管核准、變更請求要審批、軟體安裝要簽核——這些流程散落在 Email、Line 群組和口頭確認中,既沒有追蹤記錄,也沒有逾時機制。簽核引擎把所有模組的審批統一到一個地方,讓主管不用到處找待簽事項。

核心能力

統一簽核流程設定

IT 管理員可設定簽核層級(一級或多級串聯),每一級指定簽核人(固定人員或依角色)。預設 IT Manager 和 Admin 角色擁有簽核權限(RBAC1 繼承,見 使用者管理)。自訂角色也可被授予簽核權限。簽核流程定義一次,Service Desk 工單簽核、Automation Workflow 簽核節點都呼叫同一個引擎。

設定位置:MVP 在「工單管理 > 服務目錄 > 編輯服務」中設定該服務的簽核流程(幾級簽核、誰簽)。Phase 2 考慮在 Settings 新增獨立的「簽核流程管理」tab,集中管理所有簽核流程範本。

統一簽核佇列(含 UI 規格 · AP-010)

所有模組的待簽核項目匯集到簽核中心(Sidebar「簽核中心」)。對齊事件 / 工單列表已驗證的 Less is More 模式(IN-034 / SD-029)。

簽核概覽 Banner(取代既有 3 個 KPI 卡 · AP-010)

頁面頂部單行緊湊 banner,取代既有 3 個 KPI 卡:

📋 你有 7 筆待簽核(含 1 筆已超時)· 本月已處理 23 筆 · 平均 2.1h

簽核來源類型(emoji icon · AP-010)

來源 Emoji 說明
工單 💬 Service Desk 的服務申請(VPN、軟體安裝等)
變更 🔧 Service Desk 的變更申請(防火牆規則、系統升級等)
自動化 ⚙️ Automation Workflow 中的人工簽核節點
帳號 👤 使用者自助註冊帳號申請(Admin 審核)

點擊 tab 即時篩選下方表格。「全部」= 各類型加總。

簽核表格 6 欄整併(AP-010 · 對齊 SD-029 模式)

欄位 說明
☑ 勾選 用於批次操作
編號+標題 標題為主文,編號(REQ/CHG/WF/REG)+ 來源 emoji 小字標於下方;點整格進詳情頁
申請人 提交者
等待時間+AI 風險 等待時間為主文(超時紅 / 剩 < 25% 黃 / 平常黑),AI 風險 badge 標於下方;提交時間 hover 顯示
簽核進度 多級簽核顯示「Level X/N · 下一級 <姓名>」;單級顯示「—」(AP-008)
⋯ overflow 取代既有「審核」文字按鈕(整列點擊已可進詳情);overflow 內容依角色與項目類型動態

排序:預設依等待時間由長到短(逾時的排最前)。

勾選後 Sticky Toolbar(AP-010):使用者勾選 ≥ 1 筆 → 頁面底部浮出 sticky toolbar

✓ 已選 N 筆  [批次核准] [批次退回] [取消選取]

取代既有「表格底部按鈕」(容易遺忘需捲到底)。「批次核准」走 AP-007 既有 Confirm Modal 流程。「取消選取」清空勾選 + 隱藏 toolbar。

空狀態 UI(AP-010)

狀態 顯示
全空(無任何待簽核) ✅ 太棒了!目前沒有待簽核項目 + 「查看歷史簽核紀錄」「回到 Dashboard」次要連結
部分 tab 空 該 tab 顯示子空狀態:此分類目前無待簽核項目,切換其他 tab 查看;不顯示完整空狀態 UI

AI 風險標記(3 級 · AP-010)

Triage Agent 對每筆簽核項目做風險預判,幫主管快速區分批次核准範圍。3 級門檻對齊 KB 信心度分層回覆(PG-03 SD-030)的 0.80 / 0.50:

風險標記 信心度 判斷依據 說明
✓ 常規 ≥ 0.80 申請內容符合歷史模式,無異常 例如:例行 VPN 申請、軟體安裝。可放心批次核准
ℹ️ 一般 0.50-0.79 稍微異常但無明顯問題 例如:申請數量略高於平均、首次申請該服務但內容合理。主管可選擇批次或單獨審
⚠ 需注意 < 0.50 異常金額/規格、首次申請、高權限變更 例如:防火牆開放外部 Port、資料庫升級。建議個別審

為什麼加中間層「ℹ️ 一般」? 既有 2 級會把太多「不確定但不奇怪」項目推到「⚠ 需注意」,主管疲乏失去區分能力。3 級讓中間層有專屬位置,主管可彈性決定批次或單獨。

AP-007 Confirm Modal 對 ℹ️ 項目提示: 批次核准包含 ℹ️ 等級項目時,AP-007 confirm modal 對應項目顯示黃底背景 + 「中等信心度,請再次確認」提示;不阻擋核准但提供視覺警告,防止 ℹ️ 中間層被當「常規」盲簽。

風險標記是 AI 建議,不影響簽核流程本身。主管可忽略標記自行判斷。

簽核詳情與操作

點「審核」按鈕 → 跳轉到該項目的原始詳情頁(工單詳情 / 變更詳情 / 帳號詳情)。當工單/變更處於「待簽核」狀態時,詳情頁的操作列會額外顯示「核准」和「退回」按鈕。

退回必填原因。多級串聯時前一關通過後自動通知下一關簽核人。所有操作寫入稽核日誌。

批次簽核(含 Confirm Modal · AP-007)

勾選多筆 → 點「批次核准已勾選」或「批次退回已勾選」一次處理。批次退回時統一填寫一個退回原因。適合處理多筆例行申請。

批次核准強制 Confirm Modal:對齊 IN-020(事件批次 resolve preview)模式,避免盲簽稽核風險:

  1. 主管點「批次核准已勾選」MUST 顯示 confirm modal
  2. Modal 列出每筆將被核准項目:編號 / 來源 / 標題 / AI 風險標記 / 申請人
  3. 預設全部已勾選;使用者可逐條 uncheck 移除誤勾
  4. 點「確認核准 N 筆」才執行;取消則保留原狀態
  5. 稽核雙向引用:批次操作有獨立稽核 entry(主管 / 時間 / 批次大小 / 項目 ID 清單);個別項目 entry 反向引用「批次操作 ID」方便稽核員雙向追溯

批次退回沿用既有流程(影響面較小,本次不擴展 confirm modal)。

簽核委派 / 代理人(AP-006 · 結束交接 AP-012)

主管出差 / 請假時可預先設定委派,期間內所有 incoming 簽核自動轉派至代理人,避免簽核卡住。

委派模式(MVP 二選一):

模式 行為
出差期間 設起訖日期,期間內全部簽核轉派;期間結束自動恢復;恢復後通知原主管「委派已結束」
永久 持續轉派直到主管手動關閉(適合長期代理人)

MVP 不支援「常規 / 需注意分流」混合委派(v0.2 視使用反饋評估)。

代理人接代規則:

委派啟用時的存量待簽:

委派狀態可視化(UI 徽章):

稽核日誌: 委派期間每筆簽核 MUST 記錄「實際簽核人(代理人)+ 原指派主管 + 委派模式 + 起訖日期」,確保稽核可追溯實際決策者與原責任歸屬。

委派結束交接(AP-012): 委派只講「開始」不講「結束」會留兩個漏洞 — 主管回辦公室沒摘要、提前結束時存量責任不清。MVP 一起補。

情境 A:委派自然結束(到期 / 永久模式手動關閉)

系統 MUST 發「委派摘要」通知(與 AP-006 既有「委派已結束」同封整合,不拆兩封)。摘要範例:

📤 你的委派已於 2026-04-28 23:59 結束

期間摘要(2026-04-25 ~ 2026-04-28):
- 代理人:陳副理
- 代簽總筆數:7 筆
- 核准:5 筆 · 退回:2 筆
- 平均處理時間:2.1 hr
- 其中高風險(⚠):1 筆

[查看稽核日誌] [查看 1 筆高風險簽核]

情境 B:主管提前手動結束委派

主管點「個人偏好 → 簽核委派 → 結束委派」,系統檢測當前存量:

存量狀態 系統行為
無已轉派未處理項目 直接執行結束 + 顯示「委派已結束」
有 N 筆已轉派但未處理 彈出決策 modal,讓主管二選一

決策 modal:

即將結束委派,目前有 N 筆已轉派至 陳副理 但未處理:

選擇處理方式:
( ) 保留在陳副理(代理人繼續簽完這 N 筆)
(•) 全部收回給我(預設 — 我自己處理)

[確認結束] [取消]

預設「全部收回」 — 主管主動結束委派多半是想接管(出差提前回來 / 對代理人決策有疑慮 / 永久模式改主意),預設保守符合使用情境。想保留者手動改選項,成本一 click。

兩選項後續處理:

選項 代理人視角 原主管視角 新進簽核
全部收回 收通知「主管已收回 N 筆,你不需再處理」 收通知「已收回 N 筆,請至簽核佇列處理」,項目重新指派給主管 直接進主管佇列
保留在代理人 收通知「主管已結束委派但保留 N 筆讓你繼續處理」 委派狀態為「結束中,等代理人簽完保留項目」 直接進主管佇列(不再轉派)

稽核日誌: 記錄「<主管> 提前結束委派 at HH:MM · 存量處理:<收回 / 保留 / 無存量> · 筆數:N · 代理人:<姓名>」

Email 一鍵簽核(含 Token 過期 Fallback · AP-009 / 高風險二段確認 · AP-011)

簽核通知 Email 內含「核准」和「退回」按鈕連結,JWT 加密且一次性使用。主管不用登入系統,在信箱裡就能完成簽核。

⚠ 高風險項目二段確認(AP-011): 對 ✓ 常規 / ℹ️ 一般保持真一鍵(點擊 → 直接執行 → acknowledgement)。對 ⚠ 需注意 項目(AI 風險信心度 < 0.50)強制插入 pre-action Token-verified 風險摘要頁,避免主管在手機小螢幕上盲簽高風險申請(如防火牆對外開 Port、高金額採購)。

項目 AI 風險等級 Email 按鈕點擊行為
✓ 常規(≥ 0.80) 直接執行簽核 + acknowledgement「✓ 已核准」(與 AP-004 既有一致)
ℹ️ 一般(0.50-0.79) 直接執行簽核 + acknowledgement(與 AP-004 既有一致)
⚠ 需注意(< 0.50) 開啟 Token-verified pre-action confirm 頁 → 主管看完 AI 風險摘要 → 點「確認核准」才執行

Pre-action confirm 頁規格:

行動裝置 RWD 規範:

為什麼只對 ⚠ 加 friction? Less is More — 80% 例行簽核(✓ / ℹ️)不該被打斷,高風險(10%)才需要多看一眼。全部都加反而消耗主管耐心,該嚴肅看待的反而被忽略。

稽核雙向記錄: 主管開啟 pre-action 頁(entry 1)+ 最終決定(entry 2)雙向可查,證明「主管有看到 AI 風險摘要」— 出事時稽核員有憑據。

Token 過期 Fallback 重發機制(AP-009): 主管常見場景是出差幾天後才看 Email,Token 已過期但又不方便登入。改良後過期連結點擊行為:

場景 行為
過期連結點擊 MUST 顯示 fallback 頁:「此簽核連結已過期。新 Token 將寄到 <主管 Email 部分遮罩>,請點擊重發」
點「重發新 Token」 系統 MUST 寄新 JWT Token 到原簽核者 Email 地址(防釣魚 — 不接受使用者輸入新地址)
重發限制 每筆簽核每 24 小時最多 3 次;超過顯示「已達重發上限,請登入處理」+ 登入連結
新 Token 寄出 舊 Token MUST 立即失效(避免主管同時收多封 Email 點到舊的)
SLA 計時 仍以原提交時間計算(不重置),確保達標率反映真實處理時效
稽核日誌 記錄「<簽核者 Email> 對 <簽核項目 ID> 觸發 Token 重發 at HH:MM · 第 N 次/24hr」
重發後仍逾時 觸發 PG-12 既有「自動退回」流程(與 AP-005 一致)

為什麼新 Token 不接受輸入其他 Email? 防釣魚 — 若允許輸入新地址,攻擊者拿到過期連結可重發到自己信箱。原 Email 是系統已知資訊,不需使用者輸入。

多級簽核流程可視化(AP-008)

PG-12 既有支援多級串聯簽核,但 UI 完全沒呈現「現在第幾級 / 下一級是誰 / 共幾級」會造成「我簽完了 = 結束」誤解。本段補可視化規範:

簽核佇列表格新增「簽核進度」欄:

簽核級數 顯示內容
一級簽核(N=1) MUST NOT 顯示(單級不需)
兩級簽核(待 Level 2) Level 1/2 ✓ → Level 2/2 ⏳ 王 CISO
三級簽核(待 Level 1) Level 1/3 ⏳ 林經理 → Level 2/3 → Level 3/3

詳情頁顯示完整簽核鏈時間軸:

✓ Level 1/3 林經理 (IT Manager)  · 核准 · 2026-04-23 09:15
⏳ Level 2/3 王 CISO  · 等待中 · 2 hr
○ Level 3/3 陳 CTO   · 未開始

狀態 icon:

「下游卡關」徽章(≥ 24 hr 觸發): 使用者已完成自己這層簽核但下游某層 ≥ 24 hr 仍未處理時,簽核佇列頂部 MUST 顯示徽章「📋 你已簽核但下游卡關(N 筆)」,點擊列出 N 筆對應簽核項目供主管採取行動。

手動 ping 與升級至 Admin:

動作 行為
ping 下一級 詳情頁按鈕;提前觸發 PG-12 既有逾時提醒機制(不需等到逾時自然到達);動作寫入稽核日誌
升級至 Admin 必填理由;下級簽核權限轉移至 IT Admin / CTO;動作寫入稽核日誌;緊急情況用

逾時自動處理

可為每個簽核流程設定逾時提醒時間和逾時動作。逾時後先發提醒通知給簽核人,超過逾時時間後執行預設動作,避免簽核卡關。

逾時動作(可設定)

逾時動作 行為 適用場景
自動退回(預設) 退回申請並通知申請人重新提交 一般服務申請、變更請求
自動核准 自動通過並繼續流程 緊急操作(如 Workflow 中的事件處理簽核)

Service Desk 工單簽核預設「自動退回」。Automation Workflow 中的人工簽核節點可在節點設定中覆寫為「自動核准」(例如緊急事件處理流程中,30 分鐘無回應則自動放行)。

使用者場景

員工 Jenny 提交了一張「軟體安裝申請」工單。
因為這個服務項目啟用了簽核,工單自動進入簽核佇列。

Jenny 的主管 David 收到 Email,裡面有「核准」按鈕。
David 在手機上直接點「核准」,系統驗證 Token 後完成簽核。
工單自動流入 IT 維運人員的處理佇列。

如果 David 24 小時沒有動作,系統會自動發提醒通知。
48 小時仍未處理,系統自動退回並通知 Jenny。

版本規劃

版本 功能
v0.1 MVP 簽核流程設定 + 統一簽核佇列 + 核准/退回 + 批次簽核(含 Confirm Modal · AP-007) + Email 一鍵簽核(含 高風險二段確認 · AP-011)+ 逾時自動處理 + AI 風險標記 + 簽核委派 / 代理人(AP-006 + 結束交接 AP-012)
v0.2 簽核委派分流(常規 / 需注意混合)+ 簽核歷史查詢
v0.3 條件式簽核路由(依金額/類型自動選擇簽核流程)