: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:autonomousty:autonomy: * Overview The *Environment Configuration Manager* is the source of truth for user preferences. It persists settings (like LLM Model Fleets) into the harness's Memory, 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 Memory. - *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 Memory. Provide getter/setter functions for the "LLM Fleet." ** 2. Semantic Interfaces *** Fleet Configuration #+begin_src lisp (defun set-llm-model (provider model-id) "Registers a preferred model for a provider in the Memory." (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 *memory*) obj) (harness-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 Memory." (let* ((config-id (format nil "config-llm-~a" (string-downcase (string provider)))) (obj (gethash config-id *memory*))) (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 :probabilistic (lambda (context) nil) :deterministic (lambda (action context) action)) #+end_src