# 資安人工批准 Gate 契約 | 項目 | 內容 | |------|------| | 日期 | 2026-05-17 | | 狀態 | 草案 | | Schema | `docs/schemas/security_approval_gate_v1.schema.json` | | Snapshot | `docs/security/security-approval-gate.snapshot.json` | | 模式 | `approval_gate_only` | | runtime 執行授權 | `false` | ## 0. 核心結論 `security_approval_gate_v1` 是 S3 的第一個框架契約。 它讓 AwoooP 能顯示、排序、記錄人工批准,但不讓批准自動變成執行。 批准後最多只能進入下一步設計、草案、只讀 inventory、低噪音 scope 或人工 exception;任何真正 runtime action 都還需要後續 runtime gate。 S3.1 開始,實際人工決策紀錄由 `security_approval_decision_record_v1` 保存。S3.2 開始,可用 `security_approval_review_packet_v1` 把 gate item 包成 review packet。S3.3 開始,決策後 next state 由 `security_approval_state_transition_v1` 定義。S3.4 開始,未來 runtime gate 的前置條件由 `security_followup_runtime_gate_v1` 顯示。Gate 定義可審項目與批准範圍;Review Packet 協助人工審查;Decision Record 保存決策結果與 audit evidence;State Transition 避免批准被誤解成執行;Follow-up Runtime Gate 避免批准後缺少 preflight 與 rollback 條件。 ## 1. 目前 Gate 狀態 | 指標 | 數量 | |------|------| | Gate items | 8 | | Pending human decision | 7 | | Block candidate | 1 | | Approved | 0 | | Runtime actions authorized | `false` | | Immediate execution after approval | `false` | | Raw secret storage authorized | `false` | ## 2. 建議審查順序 | 順序 | Gate | 初期批准範圍 | |------|------|--------------| | 1 | Redacted finding ingestion | 只批准設計或 draft PR | | 2 | Safe web crawl | 只批准低噪音 scope 定義 | | 3 | Gitea owner attestation + read-only inventory | 先依 S4.9 驗收 S4.7 owner response,再只批准只讀 inventory 或 redacted admin export | | 4 | GitHub target decisions | 只批准逐 repo S4.10 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / response 與 S4.12 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / workflow secret 名稱 response 驗收與決策草案 | | 5 | Ref truth review | 只批准 S4.11 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / owner response 驗收、人工分類與 reconcile 草案 | | 6 | Credentialed scan | 只允許人工 exception 設計,仍需 runtime gate | | 7 | Kali full-upgrade / reboot | 只允許維護窗口與 rollback 規劃 | | 8 | Kali `/execute` | 預設維持 block candidate | ## 3. AwoooP 可做 1. 顯示 gate item、risk、required reviewers 與 evidence refs。 2. 記錄 approve / reject / defer / request more evidence / keep blocked。 3. 將人工決策寫入 Audit evidence。 4. 顯示批准範圍與仍然禁止事項。 5. 提醒哪些項目需要 follow-up runtime gate。 6. 將決策結果寫成 `security_approval_decision_record_v1`,但維持 `execution_authorized=false`。 7. 將 gate item 包成 `security_approval_review_packet_v1`,只顯示 review lane、required reviewers 與仍禁止事項。 8. 依 `security_approval_state_transition_v1` 顯示 next state;`approve_scope` 仍只進入 waiting runtime gate。 9. 依 `security_followup_runtime_gate_v1` 顯示 minimum evidence、preflight checks 與 rollback / disable requirement,但不啟用 runtime gate。 ## 4. AwoooP 不可做 1. 不自動批准。 2. 不在批准後自動執行。 3. 不把 approval queue 接成 runner。 4. 不啟動 scan、credentialed scan 或 Kali `/execute`。 5. 不建立 GitHub repo、不改 visibility、不 sync refs、不切 GitHub primary。 6. 不保存 raw secret、token、cookie、private key 或 exploit payload。 ## 5. 階段定位 S3.0 只讓人工批准有一致語言與可稽核格式。 它仍然不是 runtime enforcement,也不是一次把資安等級拉滿。低風險與中風險觀察仍以 observe / warn 為主;只有不可逆或高風險動作才進 gate。 2026-05-17 S4.8 追加:Gitea gate 的批准範圍已改為 owner attestation 先行。`approve_scope` 最多允許補 S4.7 owner coverage attestation、更新 matrix / decision table,並在後續 runtime gate 準備妥當後才可做一次 read-only inventory;仍不得保存 token value、寫 Gitea、建立 GitHub repo、sync refs 或切 primary。 2026-05-17 S4.9 追加,2026-05-18 補 request packet、template status ledger、audit event templates、redaction examples、display sections 與 collection checks:Gitea gate 現在要求 AwoooP 先顯示 S4.9 owner response request packet 與五個 template statuses,並用 audit event templates / redaction examples / display sections / collection checks 確認只記錄 metadata、request / received / accepted 分離;owner response 依 S4.9 收件包通過 intake preflight checks、outcome lanes 與基本驗收後,才可把 S4.7 coverage attestation 視為可審 evidence。此驗收仍只更新 read-only matrix / decision table / readiness gate,不授權 inventory runtime、repo migration 或 GitHub primary。