# 資安鏡像路由矩陣

| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-13 |
| 狀態 | 草案 |
| Schema | `docs/schemas/security_mirror_route_v1.schema.json` |
| Snapshot | `docs/security/security-mirror-route.snapshot.json` |
| 模式 | `mirror_only` |
| runtime 執行授權 | `false` |

## 0. 核心結論

`security_mirror_route_v1` 是 AwoooP 消費資安供應鏈 contracts 時的只讀分流矩陣。

它只回答三個問題：

1. 哪些 contract 應該進 Operator Console / Runtime State / Channel Event / Audit evidence / Approval Queue。
2. 哪些 contract 只能顯示、哪些需要人工 review lane。
3. 哪些處理永遠 blocked，避免 mirror evidence 被誤解為 execution authorization。

這個契約不新增任何 runtime endpoint、不新增執行按鈕、不啟動 Kali scan、不做 Gitea/GitHub refs sync。

## 1. Route Groups

| Route group | 目的 | 初期 channel policy | review lane |
|-------------|------|---------------------|-------------|
| `M0_index_bootstrap` | 載入 readiness、manifest、policy、event、intake、route、acceptance、quarantine、dry-run、status rollup、IwoooS posture projection、S3 review packet、state transition、follow-up runtime gate、GitHub primary readiness gate、rollback ADR 與 workflow / secret name inventory 位置 | `no_channel_event` | `observe` |
| `M1_kali_visibility` | 顯示 Kali 112、111 / 168 scope、approval queue 與 finding sample | `approval_required_only` | `approval_required` |
| `M2_source_control_visibility` | 顯示 Gitea / GitHub repo、branch、tag、canonical 差異、GitHub primary readiness blockers、rollback ADR 草案與 workflow / secret 名稱 inventory 缺口 | `low_noise_status` | `source_control_review` |
| `M3_approval_candidates` | 顯示人工批准候選、S3 gate、decision record、review packet、state transition、follow-up runtime gate preparation、GitHub primary readiness gate、rollback ADR、workflow / secret 名稱 inventory gate 與留痕 | `approval_required_only` | `approval_required` |
| `M4_patch_only_backlog` | 顯示 Code Review 後的 Codex patch-only backlog lane | `no_channel_event` | `patch_only` |

## 2. AwoooP 可做

1. 依 route group 顯示不同 review lane。
2. 把 ready / partial snapshot 包成 `security_mirror_event_v1`。
3. 把高風險候選放進 Approval Queue，但不執行。
4. 把 LOW / MEDIUM、缺 owner response、partial mirror、source-control drift、Kali observe finding、workflow / secret name gap 與 headline holding 留在 observe / warn。
5. 將每個 route group 的 blocked processing 顯示給 Operator。

## 3. AwoooP 不可做

1. 不新增 scan、execute、repo、refs、deploy、secret 類執行按鈕。
2. 不把 Approval Queue 視為 execution queue。
3. 不把 GitHub target `not_found_or_private` 視為可自動建立 repo。
4. 不把 refs truth classification 視為可自動 sync refs。
5. 不把 Kali health / finding sample 視為可啟動 active scan。
6. 不保存 raw secret、token、cookie、private key 或 exploit payload。

## 4. 驗收

S2.7 後，AwoooP 主線只需要能讀到：

1. 36 個 contracts。
2. 5 個 route groups。
3. 所有 route group 都是 `runtime_execution_authorized=false`。
4. Channel Event 初期低噪音。
5. Approval Queue 只留痕，不執行。
