Files
passepartout/skills/org-skill-diagnostics.org

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))