# 資安鏡像狀態彙整契約 | 項目 | 內容 | |------|------| | 日期 | 2026-05-13 | | 狀態 | 草案 | | Schema | `docs/schemas/security_mirror_status_rollup_v1.schema.json` | | Snapshot | `docs/security/security-mirror-status-rollup.snapshot.json` | | 模式 | `mirror_only` | | runtime 執行授權 | `false` | ## 0. 核心結論 `security_mirror_status_rollup_v1` 是 AwoooP 與 Security Supply Chain Session 的共同狀態入口。 它只彙整目前框架、鏡像契約、approval queue 與下一個安全 gate,不授權任何 scan、execute、repo、refs、deploy 或 secret 類動作。 ## 1. 目前狀態 | 類型 | 狀態 | |------|------| | Contract manifest | 35 個 contracts | | Mirror readiness | 32 ready、2 partial、1 contract-only、0 blocked | | Approval queue | 8 items:7 pending approval、1 block candidate | | Approval gate | S3.0 已建立;0 approved、7 pending、1 block candidate | | Decision records | S3.1 已建立;目前 0 筆決策紀錄 | | Review packets | S3.2 已建立;8 packets、7 ready for human review、1 block candidate | | State transitions | S3.3 已建立;5 個 decision options 都有 next state,且都不授權執行 | | Follow-up runtime gate templates | S3.4 已建立;8 個 templates、0 個 active runtime gates | | GitHub primary readiness gate | S4.0 已建立;8 個 candidate repos、7 個 in-scope blocked、0 個 primary ready | | GitHub primary rollback ADR | S4.4 已建立;7 個 in-scope rollback drafts、0 個 owner approved、0 個 dry-run completed、0 個 active cutover | | Gitea inventory | S4.5 已補認證清冊匯出請求;目前 status=`partial_waiting_authenticated_inventory`、未認證公開範圍 repos 2 個、本機可見 Gitea unique repos 4 個、匯出來源選項 2 類、允許收集 token value=false | | Workflow / secret name inventory | S4.1 已建立;S4.2 補 4 個 repos、31 個 workflow files、43 個 referenced secret names 的 local evidence;S4.3 補 7 個 repos、5 類 lanes 的 redacted export request;0 個 inventory complete、禁止收集 secret value、禁止 write token | | Dry-run | `contract_defined_not_executed` | | Runtime actions | `false` | | Payload ingestion | `false` | ## 2. AwoooP 可做 1. 顯示 S0 到 S4 的階段狀態。 2. 顯示 contract readiness、approval queue summary、approval gate summary 與下一個 gate。 3. 將彙整結果寫入 Audit evidence。 4. 低噪音通知階段完成、blocked reason 或人工批准必要事件。 5. 把下一步限制在 `observe` / `approval_required` / `block_candidate`。 ## 3. AwoooP 不可做 1. 不把 rollup 當成 runtime authorization。 2. 不新增 scan、execute、repo、refs、deploy、secret 類 action button。 3. 不把 LOW / MEDIUM observation 變成 blocking gate。 4. 不把 approval queue 接成 runner。 5. 不把 GitHub primary、refs sync 或 Kali `/execute` 當成已批准。 ## 4. 下一個安全 gate 下一步仍不是 runtime enforcement。 建議先讓 AwoooP 主線只讀消費本 rollup、`security_approval_gate_v1`、`security_approval_decision_record_v1`、`security_approval_review_packet_v1`、`security_approval_state_transition_v1`、`security_followup_runtime_gate_v1`、`source_control_primary_readiness_gate_v1`、`source_control_primary_rollback_adr_v1` 與 `source_control_workflow_secret_name_inventory_v1`,並由人工依序 review: 1. redacted finding ingestion adapter。 2. safe web crawl scope。 3. Gitea private/internal read-only inventory:依 S4.5 認證匯出請求補全量清冊;目前未認證公開範圍 2 個、本機可見 Gitea unique 4 個、覆蓋缺口 2 個,不保存 token value。 4. GitHub target / owner / visibility / canonical。 5. Kali `/execute` 維持 block candidate。 6. GitHub primary readiness blockers 與 rollback ADR 缺口。 7. S4.4 GitHub primary rollback ADR 草案:先顯示 7 個 repo 的 rollback owner、validation window 與 triggers,owner approval 前不可執行。 8. workflow / webhook / runner / deploy key / branch protection / CODEOWNERS / secret 名稱 inventory 缺口,先看 S4.2 local evidence,再依 S4.3 redacted export request 補 webhook / runner / deploy key / branch protection / repository secret parity;只保存名稱與 owner,不保存 value,不使用 write token。 任何批准後的執行仍需下一階段 runtime gate 與獨立 evidence,不得由本 rollup 自動觸發。