# 資安鏡像驗收契約 | 項目 | 內容 | |------|------| | 日期 | 2026-05-13 | | 狀態 | 草案 | | Schema | `docs/schemas/security_mirror_acceptance_v1.schema.json` | | Snapshot | `docs/security/security-mirror-acceptance.snapshot.json` | | 模式 | `mirror_only` | | runtime 執行授權 | `false` | ## 0. 核心結論 `security_mirror_acceptance_v1` 是 AwoooP 接收資安供應鏈 mirror-only 資料時的驗收契約。 它不新增功能,也不授權執行。它只定義 AwoooP 在接收前必須看見的條件: 1. Contract 數量與集合一致。 2. 每筆鏡像 payload 都有 `security_mirror_event_v1` 信封。 3. Route group 覆蓋所有 contract。 4. Evidence 必須脫敏。 5. LOW / MEDIUM observation、缺 owner response、partial mirror、source-control drift、Kali observe finding、workflow / secret name gap 與 headline holding 初期不阻擋。 6. Approval Queue 不等於 execution queue。 7. Channel Event 初期低噪音。 8. 進度估算只能顯示,不可被解讀成 runtime authorization。 ## 1. 驗收 Checks | Check | 目的 | 失敗時是否阻擋鏡像 | |-------|------|--------------------| | `CONTRACT_COUNT_MATCH` | 確認 manifest、readiness、route coverage 對齊 36 個 contracts | 是 | | `EVENT_ENVELOPE_REQUIRED` | 確認每筆 payload 都不可執行、不可顯示執行按鈕 | 是 | | `ROUTE_GROUP_COVERAGE` | 確認 5 個 route groups 覆蓋所有 contracts | 是 | | `REDACTION_ONLY` | 確認不保存 raw sensitive value | 是 | | `PROGRESS_ESTIMATE_NOT_AUTHORIZATION` | 確認 58% headline 進度與 micro progress delta ledger 只作跨 Session 狀態顯示,不授權 scan / execute / repo / refs / workflow / secret / runner / primary 動作 | 是 | | `LOW_MEDIUM_NOT_BLOCKING` | 確認 7 條 low-friction non-blocking escalation lanes 初期只 observe / warn | 否 | | `APPROVAL_IS_NOT_EXECUTION` | 確認 approval 只留痕、不自動執行 | 否 | | `CHANNEL_LOW_NOISE` | 確認通知低噪音 | 否 | ## 2. AwoooP 可做 1. 顯示驗收結果。 2. 顯示哪個 check 失敗。 3. 將失敗 evidence 留在 Audit evidence。 4. 對 blocking check 失敗時暫停鏡像該批 payload。 5. 對非 blocking check 失敗時顯示 warn,保留低摩擦 rollout。 6. 依 `security_mirror_quarantine_v1` 顯示隔離 lane 與 retry gate。 ## 3. AwoooP 不可做 1. 不把驗收契約轉成 runtime blocker。 2. 不把 Approval Queue 接成 execution queue。 3. 不自動補猜缺失 contract。 4. 不保存 raw secret、token、cookie、private key 或 exploit payload。 5. 不啟動 Kali scan。 6. 不建立 repo、不修改 visibility、不 sync refs、不切 GitHub primary。 ## 4. 階段定位 S2.4 的目標是讓 AwoooP 消費 mirror-only 資安資料時有共同驗收語言。 它仍然屬於框架期,不是收緊期;只有「鏡像資料本身不完整或不脫敏」才阻擋該批 mirror ingestion,不阻擋產品、部署或使用者流程。