:PROPERTIES: :ID: 9d3fe6c3-904c-4750-ad37-0364ad0c4dde :CREATED: [2026-04-12 Sun 20:00] :END: #+TITLE: SKILL: Policy Enforcer #+STARTUP: content #+FILETAGS: :security:alignment:policy:autonomy: #+DEPENDS_ON: id:47425a43-2be0-423c-8509-22592cfe9c9e * Overview The *Policy Enforcer* is the deterministic gate that ensures all probabilistic proposals adhere to the Core Invariants defined in the [[id:47425a43-2be0-423c-8509-22592cfe9c9e][System Policy]]. ** Architectural Intent: The Implicit Bridge Unlike traditional software where a "Kernel" might have hardcoded rules, the OpenCortex harness is a "dumb" pipeline. This skill creates the bridge between human-readable rules and machine-enforced constraints through three mechanisms: 1. **Topological Bootstrapping:** By declaring a #+DEPENDS_ON: dependency on the Policy file's ID, we ensure the System Policy is always registered in the Lisp image's skill catalog before this enforcer attempts to guard it. 2. **Priority Preemption:** By setting :priority 1000, this skill registers itself as the very first check in the decide-gate. It effectively "pre-empts" all other skills, ensuring that no action (like a shell command or a file write) is even considered until it has cleared the alignment check. 3. **Decoupled Enforcement:** The harness does not "know" it is enforcing a policy. It simply executes the highest-priority deterministic functions provided by its skills. This allows the Autonomous to swap out policies or enforcers without ever touching the core harness code. * Implementation #+begin_src lisp (defskill :skill-policy-enforcer :priority 1000 ; Absolute highest priority :trigger (lambda (context) t) ; Always active as a fallback :probabilistic (lambda (context) \"You are the OpenCortex Policy Enforcer. Your goal is to ensure all actions empower the user through the Lisp Machine and adhere to the System Policy.\") :deterministic (lambda (action context) ;; Basic invariant check: Block actions that appear to violate autonomy (let ((payload (getf action :payload))) (if (and payload (search \"proprietary\" (format nil \"~s\" payload))) (progn (opencortex:harness-log \"DETERMINISTIC [Policy]: Autonomy violation suspected. Blocking action.\") nil) action)))) #+end_src