ADR 0004 · Policy envelope shape
What this ADR decides
That craik.policy_envelope is the stable governance boundary for a
task-scoped action context. Capability grants are kept as separate
records so they can be linked, expired, denied, or carried into
receipts independently.
Status: Accepted.
Policy lives in artifacts, not in code paths. Every action threads a policy envelope id and (where applicable) grant ids.
Context
Craik coordinates agent work across file changes, shell commands, provider calls, memory writes, handoffs, channel ingress, and sandbox backends. Each action needs a stable record of actor, task, profile, grant requirements, redaction posture, and receipt obligations.
Decision
craik.policy_envelopeConsequences
Policy behavior is explicit in artifacts rather than implicit in code paths. This makes receipts and handoffs auditable. The cost is that every new surface must thread policy envelope ids and grant ids through its contracts.
Alternatives considered
Retraction: none active.
Retract this ADR if Craik replaces policy envelopes with a formally versioned external authorization service and migration path.