Files
memex/notes/org-skill-project-manager.org

68 lines
2.2 KiB
Org Mode

#+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