diff --git a/rfcs/0003-policy-conformance.md b/rfcs/0003-policy-conformance.md index b7430cc..6661d8f 100644 --- a/rfcs/0003-policy-conformance.md +++ b/rfcs/0003-policy-conformance.md @@ -3,8 +3,8 @@ title: Policy Conformance 1.0 authors: - giodl73-repo created: 2026-05-27 -last_updated: 2026-05-28 -rfc_pr: https://github.com/openclaw/rfcs/pull/2 +last_updated: 2026-06-03 +rfc_pr: https://github.com/openclaw/rfcs/pull/6 --- # Proposal: Policy Conformance 1.0 @@ -17,13 +17,13 @@ Define OpenClaw policy as a configuration conformance and audit-evidence layer o Policy 1.0 should help operators answer a narrow question: does this workspace configuration conform to the approved policy file? It should not become a second configuration language, a secrets-management system, or a broad runtime enforcement layer. -The Policy plugin contributes conformance checks to OpenClaw. Policy rules live in `policy.jsonc`; plugin settings live under `plugins.entries.policy.config`. The current policy surface covers configured channels, MCP server ids, model provider ids and selected model refs, private-network SSRF posture, ingress and channel access posture, Gateway exposure posture, agent workspace posture, global and per-agent tool posture, governed tool metadata declarations, sandbox runtime posture, config secret provider and SecretRef provenance, config auth profile metadata, and policy-to-policy baseline comparison. +The Policy plugin contributes conformance checks to OpenClaw. Policy rules live in `policy.jsonc`; plugin settings live under `plugins.entries.policy.config`. The current policy surface covers configured channels, MCP server ids, model provider ids and selected model refs, private-network SSRF posture, ingress and channel access posture, Gateway exposure posture, agent workspace posture, global and per-agent tool posture, governed tool metadata declarations, sandbox runtime posture, config secret provider and SecretRef provenance, config auth profile metadata, exec approval file posture, and policy-to-policy baseline comparison. The final health gate remains `doctor --lint`. Policy-specific authoring and audit workflows can run `openclaw policy check`, but policy findings should also flow into Doctor so operators have one shared lint signal. As policy grows, there is pressure to mirror every OpenClaw setting in `policy.jsonc`. That would make policy harder to review, harder to keep current, and ambiguous about which file actually controls runtime behavior. Policy 1.0 should stay focused on conformance questions that can be answered from observed OpenClaw configuration and workspace declarations. -Evidence quality varies by surface. Some posture is directly observable from config, such as configured channels, provider ids, MCP server ids, and Gateway bind posture. Other posture depends on runtime-specific details or secret material that policy should not inspect. A policy field without attributable evidence should fail as unobservable for that target instead of becoming a best-effort pass. +Evidence quality varies by surface. Some posture is directly observable from config, such as configured channels, provider ids, MCP server ids, and Gateway bind posture. Some posture is stored in named product artifacts. Those artifacts can be policy evidence only when they have a stable product schema, contain reviewable posture rather than secret material, are read by an explicit opt-in policy section, and can be redacted to stable evidence fields. `exec-approvals.json` is the first concrete example because it stores default and per-agent exec approval posture plus reviewed allowlist patterns. This RFC does not grant blanket coverage for every file under the OpenClaw state directory. Other posture depends on runtime-specific details, credential liveness, filesystem integrity, arbitrary file contents, logs, or secret material that policy should not inspect. A policy field without attributable evidence should fail as unobservable for that target instead of becoming a best-effort pass. Enterprise baselines and per-agent or per-channel overlays both need to answer whether one policy is equal or stricter than another. If each check implements that comparison separately, scoped overlays and baseline comparison will drift. Strictness metadata should be owned with the policy schema so baseline compare, scoped overlay validation, and future repair previews use the same rules. @@ -44,7 +44,7 @@ Policy findings can identify nonconforming config, but they are not runtime auth - Replacing OpenClaw configuration. - Claiming there are no secrets in config or taking ownership of secret-value management. -- Inspecting per-agent credential stores or secret material. +- Inspecting per-agent credential stores, secret material, or runtime approval decisions. - Enforcing every policy requirement at runtime. - Mirroring every plugin, channel, provider, or agent setting. - Treating unobservable runtime state as passing evidence. @@ -64,7 +64,7 @@ Policy supports top-level rules for broad workspace posture and named `scopes.