#+TITLE: SKILL: Chaos Gauntlet (Universal Literate Note) #+ID: skill-chaos #+STARTUP: content #+FILETAGS: :chaos:testing:reliability:psf: #+DEPENDS_ON: skill-shell-actuator skill-tdd-runner * Overview The *Chaos Gauntlet* is an adversarial testing skill designed to ensure the system's resilience. It simulates environmental failures, malformed LLM responses, and network disruptions, forcing the kernel and its skills to handle "Byzantine" conditions gracefully. * Phase A: Demand (PRD) :PROPERTIES: :STATUS: FROZEN :END: ** 1. Purpose Verify the system's stability and error-handling capabilities under stress. ** 2. User Needs - *Failure Simulation:* Ability to inject artificial delays or errors into the OACP bus. - *Byzantine Response Testing:* Test how System 2 handles nonsensical or malicious System 1 proposals. - *Network Resilience:* Simulate Gitea or LLM provider timeouts. - *Recovery Verification:* Ensure the kernel can recover from a "skip-event" restart. * Phase D: Build (Implementation) ** Chaos Injection Logic #+begin_src lisp :tangle ../projects/org-skill-chaos/src/chaos-logic.lisp (defun chaos-inject-error (sensor-type) "Injects a synthetic error into a specific sensor pipeline." (org-agent:kernel-log "CHAOS - Injecting synthetic error into ~a sensor..." sensor-type) (org-agent:inject-stimulus `(:type :EVENT :payload (:sensor ,sensor-type :error "SYNTHETIC_CHAOS_ERROR")))) (defun chaos-stress-test (action context) "Executes a randomized stress test by injecting failures into the system." (declare (ignore context)) (let* ((payload (getf action :payload)) (mode (or (getf payload :mode) :random)) (intensity (or (getf payload :intensity) 3))) (org-agent:kernel-log "CHAOS - Commencing stress test (Mode: ~a, Intensity: ~a)" mode intensity) (case mode (:random (dotimes (i intensity) (let ((failure-type (nth (random 3) '(:test-failure :shell-timeout :llm-error)))) (org-agent:inject-stimulus `(:type :EVENT :payload (:sensor :chaos-injection :type ,failure-type)))))) (:shell (org-agent:inject-stimulus `(:type :EVENT :payload (:sensor :shell-response :cmd "git push" :exit-code 128 :stderr "fatal: network unreachable"))))) (format nil "SUCCESS - Chaos stress test initiated."))) #+end_src * Registration #+begin_src lisp (defskill :skill-chaos :priority 10 ; Lower priority, used for background testing :trigger (lambda (context) (eq (getf (getf context :payload) :sensor) :chaos-trigger)) :neuro (lambda (context) (let ((p (getf context :payload))) (format nil "A chaos trigger was received (~a). Should I run a stress test?" (getf p :mode)))) :symbolic #'chaos-stress-test) #+end_src * Phase B: Blueprint (PROTOCOL) :PROPERTIES: :STATUS: SIGNED :END: ** 1. Architectural IntentnEstablish functional interfaces.\n\n** 2. Semantic Interfaces\n(defun trigger-skill-org-skill-chaos (context))\n(defun neuro-skill-org-skill-chaos (context))