# 資安人工決策紀錄契約 | 項目 | 內容 | |------|------| | 日期 | 2026-05-13 | | 狀態 | 草案 | | Schema | `docs/schemas/security_approval_decision_record_v1.schema.json` | | Snapshot | `docs/security/security-approval-decision-record.snapshot.json` | | 模式 | `decision_record_only` | | runtime 執行授權 | `false` | ## 0. 核心結論 `security_approval_decision_record_v1` 是 S3.1 的人工決策稽核格式。 它只保存人工決策本身,例如批准範圍、拒絕、延後、要求補 evidence 或維持 blocked。 它不是 runner,也不是授權 token。任何決策紀錄都必須維持 `execution_authorized=false`。 S3.2 的 `security_approval_review_packet_v1` 只負責把待審項目整理成封包。Review packet 不是決策;只有人工審完後,才可把結果寫入本契約。 S3.3 的 `security_approval_state_transition_v1` 只負責把本契約中的決策轉成 next state。State transition 不是 runner,也不會讓 `approve_scope` 直接變成可執行。 S3.4 的 `security_followup_runtime_gate_v1` 只負責顯示未來若要進 runtime gate 時需要的前置 evidence、preflight checks 與 rollback / disable requirement。目前沒有 active runtime gate。 ## 1. 目前狀態 | 指標 | 數量 | |------|------| | Decision records | 0 | | Approved scope | 0 | | Rejected | 0 | | Deferred | 0 | | Request more evidence | 0 | | Keep blocked | 0 | | Runtime actions authorized | `false` | ## 2. AwoooP 可做 1. 對 `security_approval_gate_v1` 的 gate item 記錄人工決策。 2. 保存 reviewer、時間、evidence refs 與批准範圍。 3. 顯示哪些決策仍需要 follow-up runtime gate。 4. 將決策紀錄寫入 Audit evidence。 5. 將拒絕、延後或補 evidence 的原因顯示給 Operator。 6. 連回原始 `security_approval_review_packet_v1`,讓 Operator 可追溯決策前看到的 evidence 與限制。 7. 依 `security_approval_state_transition_v1` 顯示決策後狀態,例如 `scope_approved_waiting_runtime_gate` 或 `blocked_by_default`。 8. 依 `security_followup_runtime_gate_v1` 顯示後續 runtime gate 準備模板,但仍不執行。 ## 3. AwoooP 不可做 1. 不把 decision record 當成執行命令。 2. 不因為 `approve_scope` 就自動執行。 3. 不啟動 scan、credentialed scan 或 Kali `/execute`。 4. 不建立 GitHub repo、不改 visibility、不 sync refs、不切 GitHub primary。 5. 不保存 raw secret、token、cookie、private key、credential value 或 exploit payload。 ## 4. 階段定位 S3.1 只是讓人工決策可追溯。 它讓治理面更清楚,但仍然維持低摩擦:沒有 runtime enforcement,沒有自動修復,沒有把 approval queue 接成 runner。