Skip to content

RFC: centralized policy framework with PolicyDecisionEvent #482

Description

@krokoko

Context: ROADMAP.md → Centralized policy framework
Related: #230 (event-driven governance), Cedar HITL (shipped)


Primary area

Cross-cutting / multiple

Related issue or feature request

#230 (Event-Driven Governance and Actions), shipped Cedar HITL gates

Summary

Unified Cedar-based policy framework with PolicyDecisionEvent audit schema. Three enforcement modes with observe-before-enforce rollout across tool calls, lifecycle events, and future event-driven governance.

Use case and motivation

Policy decisions today are fragmented (PreToolUse Cedar, guardrails, bash allowlists). Compliance needs a single auditable decision stream and consistent observe/enforce rollout.

Proposal

  1. Define PolicyDecisionEvent schema: decision, policy_id, matching_rule_ids, context, task_id, timestamp.
  2. Emit on every Cedar evaluation + lifecycle policy hook (RFC: Event-Driven Governance and Actions #230).
  3. Modes: observe, enforce, disabled per policy pack.
  4. Export to immutable audit (RFC: Governance planes — analytics and compliance export #237) when available.
  5. Operator dashboard: deny rates by repo/policy.

Out of scope

Potential challenges

  • cedarpy/cedar-wasm parity (see AGENTS.md cedar pin rules).
  • Volume of decision events at high task throughput.
  • Migration from current HITL-only audit shape.

Dependencies and integrations

Alternative solutions

  • Extend current HITL audit only—less unified for non-tool policies.
  • OPA/Cedar split—rejected for dual engine maintenance.

Note: Non-triaged RFCs may not get timely review.

  • RFC PR:
  • Approved by:
  • Reviewed by:

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFC-proposalRequest for Comments: design proposalgovernanceADRs, contribution rules, enforcement hooks, inter-agent protocolsecurityCedar/HITL, IAM least-privilege, secrets, PII/DLP, guardrails, supply-chain/CVE

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions