# 資安人工決策狀態轉移契約 | 項目 | 內容 | |------|------| | 日期 | 2026-05-13 | | 狀態 | 草案 | | Schema | `docs/schemas/security_approval_state_transition_v1.schema.json` | | Snapshot | `docs/security/security-approval-state-transition.snapshot.json` | | 模式 | `approval_state_transition_only` | | runtime 執行授權 | `false` | ## 0. 核心結論 `security_approval_state_transition_v1` 是 S3.3 的人工決策狀態轉移契約。 它只回答一件事:人工 reviewer 對 review packet 做出 `approve_scope`、`reject`、`defer`、`request_more_evidence` 或 `keep_blocked` 後,AwoooP 可以如何更新狀態。 它不是 runner,也不是 runtime gate。任何 transition 都必須維持 `execution_authorized=false`。 S3.4 開始,`approve_scope` 後要顯示的前置 evidence、preflight checks 與 rollback / disable requirement 由 `security_followup_runtime_gate_v1` 定義。這仍只是準備模板,不代表 runtime gate 已啟用。 ## 1. 決策到狀態 | Decision | Next state | 初期可做 | 仍需 runtime gate | |----------|------------|----------|-------------------| | `approve_scope` | `scope_approved_waiting_runtime_gate` | 進入設計、草案、只讀 inventory、低噪音 scope 或人工 exception 文件階段 | 是 | | `reject` | `closed_rejected_no_action` | 記錄拒絕原因與 audit evidence | 否 | | `defer` | `deferred_pending_owner_timing` | 等 owner、時間窗或條件明確 | 否 | | `request_more_evidence` | `evidence_requested_waiting_snapshot_update` | 要求新的 redacted snapshot 或補 evidence | 否 | | `keep_blocked` | `blocked_by_default` | 維持 blocked reason,只允許補 disable / allowlist / audit gate 設計 | 是 | ## 2. AwoooP 可做 1. 根據人工決策更新 packet / gate / rollup 的只讀狀態。 2. 將決策寫入 `security_approval_decision_record_v1`。 3. 對 `approve_scope` 依 `security_followup_runtime_gate_v1` 顯示 follow-up runtime gate required 與前置條件。 4. 對 `request_more_evidence` 顯示需要補哪一類 redacted evidence。 5. 對 `keep_blocked` 顯示 block candidate 仍未解除。 ## 3. AwoooP 不可做 1. 不把 transition rule 當成執行命令。 2. 不因為 `approve_scope` 就立即啟動 scan、Kali `/execute`、repo 建立、visibility 修改、refs sync 或 GitHub primary cutover。 3. 不把 reject/defer/request_more_evidence 轉成 cleanup、rollback 或自動修復。 4. 不保存 raw secret、token、cookie、private key、credential value 或 exploit payload。 5. 不把 LOW / MEDIUM observation 變成 blocking gate。 ## 4. 階段定位 S3.3 讓 AwoooP 對人工決策有一致狀態語義,避免「批准 scope」被誤解成「可以立刻執行」。 S3.4 補上後續 runtime gate 準備模板,讓等待 gate 的狀態更具體,但目前 `active_runtime_gates=0`。 這仍是低摩擦框架期。它讓流程更清楚,但不提高產品、部署或開發流程的資安阻力。