#+TITLE: SKILL: Project Manager Agent (Universal Literate Note) #+ID: skill-project-manager #+STARTUP: content #+FILETAGS: :project:management:git:psf: * Overview The *Project Manager Agent* provides executive presence by monitoring project health and tracking git status. It leverages `:PROJECT_PATH:` metadata to gather "folder facts" and assist in the project lifecycle. * Phase A: Demand (PRD) :PROPERTIES: :STATUS: FROZEN :END: ** 1. Purpose Define automated behaviors for project monitoring and version control tracking. ** 2. User Needs - *Visibility:* Resolve physical project locations and gather git/file facts. - *Contextual Awareness:* Trigger on status queries or project-node edits. - *Lifecycle Support:* Suggest commit messages and identify uncommitted work. ** 3. Success Criteria *** TODO Project Path Resolution *** TODO Git Status Retrieval *** TODO Executive Summary Generation * Phase B: Blueprint (PROTOCOL) :PROPERTIES: :STATUS: SIGNED :END: ** 1. Architectural Intent Interfaces for filesystem and VCS introspection. Source of truth is the project's physical directory and Git state. ** 2. Semantic Interfaces #+begin_src lisp (defun trigger-skill-project-manager (context) "Triggers on status queries or :PROJECT_PATH: presence.") (defun get-project-diagnostics (raw-path) "Gathers file list and git status.") (defun get-git-diff (raw-path) "Retrieves uncommitted changes.") #+end_src * Phase D: Build (Implementation) ** Diagnostic Retrieval #+begin_src lisp :tangle projects/org-skill-project-manager/src/manager-logic.lisp (defun get-project-diagnostics (raw-path) (let ((resolved-path (uiop:native-namestring raw-path))) (if (uiop:directory-exists-p resolved-path) (format nil "FILES: ~a~%GIT: ~a" (uiop:run-program (list "ls" "-F" resolved-path) :output :string) (uiop:run-program (list "git" "-C" resolved-path "status" "--short") :output :string)) "ERROR: Path not found."))) #+end_src * Registration #+begin_src lisp (defskill :skill-project-manager :priority 70 :trigger #'trigger-skill-project-manager :neuro #'neuro-skill-project-manager :symbolic (lambda (action context) action)) #+end_src