2.2 KiB
2.2 KiB
SKILL: Diagnostics (org-skill-diagnostics.org)
Overview
The Diagnostics Skill (Doctor) provides system-wide health checks and dependency verification.
Implementation
Package Context
(in-package :opencortex)
Dependency Check (doctor-check-dependencies)
(defun doctor-check-dependencies ()
"Verifies that all required external binaries are available."
(let ((deps '("sbcl" "emacs" "git" "curl" "nc)
(all-ok t))
(format t "DOCTOR: Checking System Dependencies...~%
(dolist (dep deps)
(if (uiop:run-program (list "which" dep) :ignore-error-status t)
(format t " [OK] Found ~a~%" dep)
(progn
(format t " [FAIL] Missing ~a~%" dep)
(setf all-ok nil))))
all-ok))
XDG Check (doctor-check-xdg)
(defun doctor-check-xdg ()
"Verifies XDG environment variables and directory structure."
(format t "DOCTOR: Checking XDG environment...~%
(let ((vars '("OC_CONFIG_DIR" "OC_DATA_DIR" "OC_STATE_DIR" "MEMEX_DIR))
(dolist (var vars)
(let ((val (uiop:getenv var)))
(if val
(format t " [OK] ~a: ~a~%" var val)
(format t " [WARN] ~a is not set.~%" var)))))
t)
Main Diagnostic (doctor-main)
(defun doctor-main ()
"Runs all diagnostic checks."
(format t "==================================================~%
(format t " OpenCortex System Diagnostic~%
(format t "==================================================~%
(let ((d-ok (doctor-check-dependencies))
(x-ok (doctor-check-xdg)))
(format t "==================================================~%
(if (and d-ok x-ok)
(format t " ✓ SYSTEM HEALTHY: Ready for ignition.~%
(format t " ✗ SYSTEM UNHEALTHY: Issues detected.~%)))
Skill Registration
(defskill :skill-diagnostics
:priority 100
:trigger (lambda (ctx) (eq (getf (getf ctx :payload) :sensor) :heartbeat))
:deterministic (lambda (action ctx) (declare (ignore action ctx)) nil))