:PROPERTIES: :ID: 20afa98c-446d-437b-b388-b2616e7b4531 :CREATED: [2026-03-30 Mon 21:16] :EDITED: [2026-04-07 Tue 13:42] :END: #+TITLE: SKILL: Environment Configuration Manager (Universal Literate Note) #+STARTUP: content #+FILETAGS: :system:config:sovereignty:psf: * Overview The *Environment Configuration Manager* is the source of truth for user preferences. It persists settings (like LLM Model Fleets) into the kernel's Object Store, allowing for dynamic runtime reconfiguration without environment variable bloat. * Phase A: Demand (PRD) :PROPERTIES: :STATUS: SIGNED :END: ** 1. Purpose Provide a programmatic and literate interface for managing system-wide settings. ** 2. User Needs - *Fleet Management:* Define preferred models for each LLM provider. - *Persistence:* Ensure settings survive kernel restarts via the Object Store. - *Transparency:* Allow the user to audit current settings via the REPL or Org tables. * Phase B: Blueprint (PROTOCOL) :PROPERTIES: :STATUS: SIGNED :END: ** 1. Architectural Intent Define a standardized `CONFIG` object type in the Object Store. Provide getter/setter functions for the "LLM Fleet." ** 2. Semantic Interfaces *** Fleet Configuration #+begin_src lisp :tangle ../projects/org-skill-environment-config/src/config-logic.lisp (in-package :org-agent) (defun set-llm-model (provider model-id) "Registers a preferred model for a provider in the Object Store." (let ((config-id (format nil "config-llm-~a" (string-downcase (string provider))))) (let ((obj (make-org-object :id config-id :type :CONFIG :attributes `(:provider ,provider :model-id ,model-id) :content (format nil "Fleet preference for ~a set to ~a" provider model-id) :version (get-universal-time)))) (setf (gethash config-id *object-store*) obj) (kernel-log "CONFIG - Fleet updated: ~a -> ~a" provider model-id) t))) (defun get-llm-model (provider &optional default) "Retrieves the preferred model for a provider from the Object Store." (let* ((config-id (format nil "config-llm-~a" (string-downcase (string provider)))) (obj (gethash config-id *object-store*))) (if obj (getf (org-object-attributes obj) :model-id) default))) #+end_src * Registration #+begin_src lisp (defskill :skill-environment-config :priority 100 :trigger (lambda (context) nil) ; Passive utility skill :neuro (lambda (context) nil) :symbolic (lambda (action context) action)) #+end_src